tf.keras.Sequential
Sequential是一个方法类,可以帮助我们轻而易举地以堆叠神经网络的方式集成构建一个复杂的神经网络模型,Sequential提供了丰富的方法,利用这些方法可以快速的实现神经网络模型的网络层级集成、神经网络模型编译、神经网络模型训练和保存、神经网络模型的加载和预测。
1、神经网络模型的网络层级集成
构建模型后编译
下面我们尝试构建三个全连接层的网络模型
import tensorflow as tf
model = tf.keras.Sequential()
#使用add方法集成神经网络层级
model.add(tf.kears.layers.Dense(256, activation = 'relu'))
model.add(tf.keras.layers.Dense(256, activation = 'relu'))
model.add(tf.keras.layers.Dense(2, activation = 'softmax'))
2.神经网络模型的编译
需编译后才能够进行训练,通过compile()函数编译
#loss:损失函数
#optimizer:选择优化器
#metrics:模型评价的方法,可选mse,accuracy等
model.compile(loss='sparse_categorical_crossentropy',optimizer=tf.kears.optimizers.Adan(0.01),metrics=[''accuracy])
3.神经网络模型训练和保存。
通过fit()函数训练。fit有较多参数,下面一一例举:
x: 配置训练的输入数据,可以是array或者tensor类型。
y: 配置训练的标注数据(即label),可以是array或者tensor类型。
batch_size: 配置批大小, 默认值是32.
epochs: 配置训练的epcohs的数量(说白了就是迭代训练次数)
verbose: 配置训练过程信息输出的级别,共三个级别,0代表不输出任何信息,1代表以进度条的方式输出训练过程信息,2代表每个epoch输出一条训练过程信息
validation_split: 配置验证集占训练数据集的比例,取值范围为0到1,
validation_data: 配置验证集,如果已经配置validation_split,则可以不用配置高该参数,如果同事配置,那么validation_split会自动失效。
shuffle: 配置是否随机打乱训练集。当配置steps_per_epoch为None时,本参数的配置失效。
initial_epoch: 配置进行fine_tune时,新的训练周期是从指定的epoch开始继续训练。
steps_per_peoch:配置每个epoch训练的步数。
通过**model.save()或者save_weights()**方法来保存并导出训练得到的模型。
4.神经网络模型的加载和预测
加载:
tf.keras.mosels.load_model()#加载模型 参数:模型完整名称
predict()#参数:图片数据, 用来预测