from keras.datasets import mnist from pyexpat import model import numpy as np from keras.models import Sequential from keras.layers import Dense from keras.optimizers import SGD import matplotlib.pyplot as plt from keras.utils.np_utils import to_categorical (X_train,Y_train),(X_test,Y_test)=mnist.load_data() print("X_train.shape:"+str(X_train.shape)) print("Y_train.shape:"+str(Y_train.shape)) print("X_test.shape:"+str(X_test.shape)) print("Y_test.shape:"+str(Y_test.shape)) print(Y_train[0]) #print label plt.imshow(X_train[0],cmap='gray') plt.show() X_train=X_train.reshape(60000,784)/255.0 X_test=X_test.reshape(10000,784)/255.0 #guiyi 255huiduzuidazhi Y_train = to_categorical(Y_train,10)#durebianma Y_test= to_categorical(Y_test,10) model =Sequential() model.add(Dense(units=256,activation='relu',input_dim=784)) model.add(Dense(units=256,activation='relu')) model.add(Dense(units=256,activation='relu')) model.add(Dense(units=10,activation='softmax')) #model.add(Dense(units=1,activation='sigmoid')) model.compile(loss='categorical_crossentropy',optimizer=SGD(lr=0.05),metrics=['accuracy']) model.fit(X_train,Y_train,epochs=100,batch_size=128) loss,accuracy=model.evaluate(X_test,Y_test) print("loss"+str(loss)) print("loss"+str(accuracy))
时间: 2024-04-20 11:22:55 浏览: 182
keras_mnist实例
这段代码使用Keras库构建了一个简单的神网络模型来对MNIST数据集进行手写数字分类。首先,从keras.datasets中导入mnist数据集,并将训练集和测试集分别赋值给X_train、Y_train、X_test和Y_test。然后通过打印语句检查数据的形状和标签。接下来,将图像数据进行预处理,将其reshape为二维数组,并进行归一化处理。
模型定义部分使用Sequential模型,依次添加了三个全连接层(Dense),激活函数使用ReLU。最后一层是输出层,由于是多分类问题,使用了softmax激活函数。模型的编译部分指定了损失函数、优化器和评估指标。
使用fit方法对模型进行训练,指定了训练数据和标签、训练轮数和批次大小。训练完成后,使用evaluate方法对测试集进行评估,得到损失和准确率。
最后打印出损失和准确率的结果。
阅读全文