搭建八股sequential的六个步骤:
1. import导入相关模块
import tensorflow as tf
from sklearn import datasets
import numpy as np
2.train,test
这一步主要是指定训练集、测试集的输入特征x_train,x_test以及测试集、训练集标签y_train,y_test
x_train = datasets.load_iris().data
y_train = datasets.load_iris().target
#数据集乱序
np.random.seed(116)
np.random.shuffle(x_train)
np.random.seed(116)
np.random.shuffle(y_train)
tf.random.set_seed(116)
3. model=tf.keras.models.Sequential
这一步主要是搭建网格结构,逐层描述每层网格
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(3, activation='softmax', kernel_regularizer=tf.keras.regularizers.l2())
])
在这里3代表的是神经元个数,activation='softmax'指的是选用softmax激活函数,后面的意思是选用的是L2正则化方法
4.compile
这一步主要完成配置训练方法,告知训练时使用哪种优化器,哪种损失函数,哪种评测指标
model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1),
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
metrics=['sparse_categorical_accuracy'])
在这里使用的是SGD优化器,学习率设置为0.1
第二行表示的是选择sparseCategoricalCrossentropy损失函数,后面等于false的原因是神经网络预测结果输出前已经经过概率分布了,所以是false ,如果没有经过概率分布就是true。
第三行表示的是评测指标,预测值y_为独热码,真实值y是数值。
5.fit
执行训练过程,告知batch是多少,要迭代多少次数据集
model.fit(x_train, y_train, batch_size=32, epochs=500, validation_split=0.2, validation_freq=20)
括号中x_train代表训练集输入特征,y_train代表训练集标签,batch_size指一次喂入多少组数据,epchs代表迭代了多少次,validation_split指的是从数据集中选取多少作为测试集,这里0.2就是指20%的数据拿出来做测试集,validation_freq指的是每迭代多少次训练集,要在测试集中验证一次准确率,这里是每20次。
6.summary
输出网络结构和参数统计
model.summary()