手写数字识别(从ipynb转化成py,直接就可运行),转化方法如下:
https://www.jianshu.com/p/c51f9504d84fhttps://www.jianshu.com/p/c51f9504d84f
#!/usr/bin/env python # coding: utf-8 # ## 一、加载数据 # x_train表示训练数据集,y_train表示训练数据集对应的结果; # # x_test表示测试数据集,y_test表示测试集对应的结果。 # In[47]: # 教程链接:https://blog.csdn.net/dusin/article/details/108544965 import tensorflow as tf mnist=tf.keras.datasets.mnist (x_train,y_train),(x_test,y_test)=mnist.load_data() #加载数据 # In[48]: # x_train表示训练数据,共60000条数据,每个数据是28*28的图像。 x_train.shape # In[31]: # 可以使用matplotlib将其中的图像画出来。 如下代码为训练集中的第2张图片(序号从0开始): import matplotlib.pyplot as plt plt.imshow(x_train[1]) # In[32]: y_train[1] # In[33]: x_train[1] # ## 二、预处理数据 # In[34]: # 将训练集和测试集数据都进行归一化处理,如下代码所示: x_train=tf.keras.utils.normalize(x_train,axis=1) x_test=tf.keras.utils.normalize(x_test,axis=1) # In[45]: # 然后再使用 “x_train[1]”显示一下结果,如下图所示,相当于每个数据都除以了255 x_train[1] # ## 三、构建神经网络并训练 # 下面的代码构建了一个输入层748(即28 * 28个像素),两个128神经元的隐藏,及10个神经元的输出层的神经网络。 # # metrics是衡量指标,有很多,这里选了准确度 # # 损失函数:选用sparse_categorical_crossentropy而不是categorical_crossentropy的原因是:y_train不是one-hot类型的 # # https://www.cnblogs.com/pandas-blue/p/12448185.html # In[49]: model = tf.keras.models.Sequential() model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(128,activation=tf.nn.relu)) model.add(tf.keras.layers.Dense(128,activation=tf.nn.relu)) model.add(tf.keras.layers.Dense(10,activation=tf.nn.softmax)) model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy']) # In[36]: model.fit(x_train,y_train,epochs=5) #训练模型,进行5次迭代训练 # ## 四、测试神经网络 # In[37]: # 以下一行代码使用测试集进行测试 val_loss,val_acc=model.evaluate(x_test,y_test) # 获取准确率 # In[38]: # 判断某些数据,还是从测试集中挑选图片来预测。如下代码: predictions=model.predict([x_test[5:8]])#识别测试集中第6到8张图片 print(predictions) # In[42]: plt.imshow(x_test[5]) # In[43]: plt.imshow(x_test[6]) # In[44]: plt.imshow(x_test[7])



