加载数据
每张图片都是28x28的阵列。训练集有60000张图片,我们取5000作为验证集。
from tensorflow import keras
import pandas as pd
import matplotlib.pyplot as plt
#加载数据集
full_minist=keras.datasets.fashion_mnist
(x_train_full,y_train_full),(x_test,y_test)=full_minist.load_data()
#将像素除以255,强度降低0-1之间
x_valid,x_train=x_train_full[:5000]/255.0,x_train_full[5000:]/255.0
y_valid,y_tarin=y_train_full[:5000],y_train_full[5000:]
#构造类名列表
class_name=["T-shirt/top",'Trouser','Pullover','Dress','Coat','Sandal','Shirt','Sneaker','Bag','Ankle boot']
使用顺序API创建模型
第一层的作用是将每个输入图像转换成一维数组,然后添加具有300个神经元的Dense隐藏层,使用Relu激活函数。
在编译模型中,我们使用sparse_categorical_crossentropy作为损失函数,因为我们具有稀疏标签。如果每个实例的每个类都有一个目标概率,比如独热向量,我们需要使用categorical_crossentropy损失。如果输出层使用sigmod作为激活函数,则使用binary_crossentropy损失。
#构造神经层
model=keras.models.Sequential([
keras.layers.Flatten(input_shape=[28,28]),
keras.layers.Dense(300,activation='relu'),
keras.layers.