通过实战使用Tensorflow学习手写数字的识别来学习Tensorflow的相关知识
Tensorflow有很多很好的训练数据集可以供我们使用,第一步我们先加载数据集,在第一次使用的时候,pycharm会自动帮你从Tensorflow下载数据集到本地
import tensorflow as tf
mnist=tf.keras.datasets.mnist #获得数据集对象
(x_train,y_train),(x_test,y_test)=mnist.load_data()#加载数据集
print(x_train.shape,y_train.shape) #输出数据集
print(x_test.shape,y_test.shape) #输出测试数据集
输出
(60000, 28, 28) (60000,)
(10000, 28, 28) (10000,)
import matplotlib.pyplot as plt
image_index=1234 #显示第几个数据集
plt.imshow(x_train[image_index],cmap='Greys') #加入cmap='Greys'即为显示黑白图像
plt.show()
数据集的文件格式是没办法直接使用到Tensorflow中去的
Tensorflow输入要求是3232的所以图像需要填充到3232
因为读取到的数据集是0-255是整形,所以要进行转换为浮点型
数据正则化不是很懂是为什么
数据维度转换为[n,h,w,c]【数字,高度,宽度,通道】
import numpy as np
#将图片从28*28扩充为32*32
x_train=np.pad(x_train,((0,0),(2,2),(2,2)),'constant',constant_values=0)
#数据类型准换
x_train=x_train.astype('float32')
#数据正则化
x_train/=255
#数据维度转换
x_train=x_train.reshape(x_train.shape[0],32,32,1)
print(x_train.shape)
输出维度数据
(60000, 32, 32, 1)