700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【Python-ML】神经网络-深度学习库Keras

【Python-ML】神经网络-深度学习库Keras

时间:2023-09-18 06:57:08

相关推荐

【Python-ML】神经网络-深度学习库Keras

# -*- coding: utf-8 -*-'''Created on 1月26日@author: Jason.F@summary: pip install KerasKeras 神经网络训练库,可使用GPU加速神经网络的训练,基于张量库Theano支持多维数组处理'''import numpy as npimport timeimport osimport structimport theanofrom keras.utils import np_utilsfrom keras.models import Sequentialfrom keras.layers.core import Densefrom keras.optimizers import SGDdef load_mnist(path,kind='train'):#load mnist data from pathlabels_path = os.path.join(path,'%s-labels.idx1-ubyte'%kind)images_path = os.path.join(path,'%s-images.idx3-ubyte'%kind)with open(labels_path,'rb') as lbpath:magic,n =struct.unpack('>II',lbpath.read(8))labels = np.fromfile(lbpath,dtype = np.uint8)with open(images_path,'rb') as imgpath:magic,num,rows,cols =struct.unpack('>IIII',imgpath.read(16))images = np.fromfile(imgpath,dtype = np.uint8).reshape(len(labels),784)#28X28像素return images,labels if __name__ == "__main__": start = time.clock() #导入数据集homedir = os.getcwd()#获取当前文件的路径X_train,y_train = load_mnist(homedir+'\\mnist', kind='train')print ('Rows:%d,columns:%d'%(X_train.shape[0],X_train.shape[1]))X_test,y_test = load_mnist(homedir+'\\mnist', kind='t10k')print ('Rows:%d,columns:%d'%(X_test.shape[0],X_test.shape[1]))#将MNIST图像的数组转换为32位浮点数格式theano.config.floatX='float32'X_train = X_train.astype(theano.config.floatX)X_test = X_test.astype(theano.config.floatX)#onehot编码print ('First 3 labels:',y_train[:3])y_train_ohe = np_utils.to_categorical(y_train)print('\nFirst 3 labels(one-hot):\n',y_train_ohe[:3])#实现神经网络,隐层使用双曲正切函数,输出层使用softmax函数np.random.seed(1)model = Sequential()model.add(Dense(input_dim=X_train.shape[1],output_dim=50,init='uniform',activation='tanh'))model.add(Dense(input_dim=50,output_dim=50,init='uniform',activation='tanh'))model.add(Dense(input_dim=50,output_dim=y_train_ohe.shape[1],init='uniform',activation='tanh'))sgd =SGD(lr=0.001,decay=1e-7,momentum=.9)pile(loss='categorical_crossentropy',optimizer=sgd)model.fit(X_train,y_train_ohe,nb_epoch=50,batch_size=300,verbose=1,validation_split=0.1)#show_accuracy=Truey_train_pred = model.predict_classes(X_train,verbose=0)print ('First 3 predictions:',y_train_pred[:3])train_acc = np.sum(y_train==y_train_pred,axis=0)/float(X_train.shape[0])print ('Training accuracy:%.2f%%'%(train_acc*100))y_test_pred=model.predict_classes(X_test,verbose=0)test_acc = np.sum(y_test==y_test_pred,axis=0)/float(X_test.shape[0])print ('Test accuracy:%.2f%%'%(test_acc*100))end = time.clock() print('finish all in %s' % str(end - start))

设置:

windows,pip install keras后,到C:\Users\user\.keras目录下找到keras.json文件,默认设置如下图:

修改backend为:

结果:

Training accuracy:13.63%Test accuracy:13.45%finish all in 13968.1836241

执行一次好长时间,准确率这么低要找下原因。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。