fashion数据集提供6万张28*28像素点的衣服裤子类图片和标签,用于训练
fashion数据集提供1万张28*28像素点的衣服裤子类图片和标签,用于测试
一共有十个标签,表示衣服的类型,比如T恤衫、裤子、套头衫、连衣裙......
1.导入相应模块,这里只需要用到tensorflow就行
#导入相关模块
import tensorflow as tf
2.导入数据集
#导入数据集(训练集和测试集)
fashion=tf.keras.datasets.fashion_mnist
(x_train,y_train),(x_test,y_test)=fashion.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
该数据集是灰度图像,像素值在0-255之间,除以255的意思是将其归一化到0-1之间,因为神经网络更利于处理较小的数据,0-1的数据集有很好的效果
3.搭建神经网络,具体的参数可见注释
#搭建神经网络
model=tf.keras.models.Sequential([
tf.keras.layers.Flatten(),#图像拉伸成一维数组
tf.keras.layers.Dense(256,activation='relu'),#输入层神经元个数和激活函数
tf.keras.layers.Dense(10,activation='softmax')#输出层神经元和激活函数
#上一行中的10代表的是10种衣服输出的概率
])
4.配置训练方法,参数设置可见上一篇博客
#配置训练方法
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
metrics=['sparse_categorical_accuracy'])
5.执行训练,batch_size可设置一次训练的打包输入像素点的多少,在自己机器条件允许的条件即没有超内存的情况下,可以设置大一些
#执行训练
model.fit(x_train, y_train, batch_size=64, epochs=4, validation_data=(x_test, y_test), validation_freq=1)
#打印网络结构参数统计
model.summary()