测试了一下keras和mxnet的速度

这两个都很好用啊,适合我这样的入门小白

win10 64 cuda8.0 cudnn5.1 gtx1060

cnn mnist


import numpy
import os
import urllib
import gzip
import struct
def read_data(label_name, image_name):
    s=os.getenv('DATA')
    with gzip.open(os.getenv('DATA')+'\\MNIST\\'+label_name) as flbl:
        magic, num = struct.unpack(">II", flbl.read(8))
        label = numpy.fromstring(flbl.read(), dtype=numpy.int8)
    with gzip.open(os.getenv('DATA')+'\\MNIST\\'+image_name, 'rb') as fimg:
        magic, num, rows, cols = struct.unpack(">IIII", fimg.read(16))
        image = numpy.fromstring(fimg.read(), dtype=numpy.uint8).reshape(len(label), rows, cols)
    return (label, image)
(train_lbl, train_img) = read_data('train-labels-idx1-ubyte.gz', 'train-images-idx3-ubyte.gz')
(val_lbl, val_img) = read_data('t10k-labels-idx1-ubyte.gz','t10k-images-idx3-ubyte.gz')
def to4d(img):
    return img.reshape(img.shape[0], 1, 28, 28).astype(numpy.float32)/255
def repack_data(d):
    t = numpy.zeros((d.size, 10))
    for i in range(d.size):
        t[i][d[i]] = 1
    return t
train_img=to4d(train_img)
val_img=to4d(val_img)
batch_size = 100
num_epoch =5
#backend='mxnet'
backend='keras'
if backend=='keras':
    from keras.models import *
    from keras.layers import *
    from keras.optimizers import *
    model = Sequential()
    model.add(Convolution2D(64, 5, 5, input_shape=(1,28,28), init='uniform', activation='relu'))
    model.add(MaxPooling2D())
    model.add(Convolution2D(128, 5, 5, init='uniform', activation='relu'))
    model.add(MaxPooling2D())
    model.add(Flatten())
    model.add(Dense(1024, init='uniform', activation='relu'))
    model.add(Dense(1024, init='uniform', activation='relu'))
    model.add(Dense(10, init='uniform', activation='softmax'))
    model.summary()
    model.compile(loss='categorical_crossentropy', optimizer=adadelta(), metrics=['accuracy'])
    model.fit(train_img,repack_data(train_lbl),batch_size=batch_size,nb_epoch=num_epoch,validation_data=(val_img,repack_data(val_lbl)))
else:
    import mxnet
    train_iter 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值