Sequential六步法
首先,介绍这六个步骤:
import
train, test
model = tf.keras.models.Sequential
model.compile
model.fit
model.summary
Sequential
Sequential用来描述各层网络,并且按顺序将它们走一遍,相当于一次前向传播。
model = tf.keras.models.Sequential([网络结构])
网络结构举例:
拉直层:tf.keras.layers.Flatten()
全连接层:tf.keras.layers.Dense(神经元个数,activation='激活函数',kernel_regularizer=哪种正则化)
卷积层:tf.keras.layers.Conv2D(filters=卷积核个数,kernel_size=卷积核尺寸,strides=卷积步长,padding='valid'or'same')
LSTM层:tf.keras.layers.LSTM()
compile
配置神经网络的训练方法,告知训练时选择的优化器、损失函数和评测指标
model.compile(optimizer=优化器, loss=损失函数, metrics=["准确率"])
False和True表示的是神经网络的输出是原始输出(True)还是概率分布(False),比如在激活函数时使用了softmax函数就是进行概率分布输出,这里就需要填False
新手入门时,可以采用字符串作为值传入;当逐渐熟练掌握后,可以使用函数形式,因为这样可以调节参数
fit
这里如果使用validation_split从训练集中划分数据给测试集,就不用在前面分出x_test和y_test了
summary
打印出网络的结构和参数统计
model.summary()
以鸢尾花数据集为例
## import
import tensorflow as tf
import numpy as np
from sklearn import datasets
## train, test
x_train = datasets.load_iris().data
y_train = datasets.load_iris().target
## 随机打乱特征值和目标值
np.random.seed(520)
np.random.shuffle(x_train)
np.random.seed(520)
np.random.shuffle(y_train)
tf.random.set_seed(520)
## Sequential
model = tf.keras