搭建网络八股
六步法
用tf的API:tf.keras搭建:
六步法:
1 | import |
每步的简要介绍
import:导入相关模块
train,test:
告知要喂入网络的训练集和测试集是什么。
即,指定训练集的输入特征x_train和训练集的标签y_train
指定测试集的输入特征x_test和测试集的标签y_test
model=tf.keras.models.Sequential:
在Sequential()中搭建网络结构,逐层描述每层网络,相当于走了一遍前向传播。
model.compile:
在compile()中配置训练方法,
告知训练时选择哪个优化器,选择哪个损失函数,选择哪个评测指标。
model.fit:
在fit()中执行训练过程,告知训练集和测试集的输入特征和标签。
告知每个batch是多少,告知要迭代多少次数据集。
model.summary:
用summary()打印出网格的结构和参数统计
Sequential详细介绍
model = tf.keras.models.Sequential ([ 网络结构 ]) #描述各层网络
网络结构举例:
拉直层: tf.keras.layers.Flatten( )
全连接层: tf.keras.layers.Dense(神经元个数, activation= “激活函数”, kernel_regularizer=哪种正则化)
activation(字符串给出)可选: relu、 softmax、 sigmoid 、 tanh
kernel_regularizer可选: tf.keras.regularizers.l1()、 tf.keras.regularizers.l2()
卷积层: tf.keras.layers.Conv2D(filters = 卷积核个数, kernel_size = 卷积核尺寸, strides = 卷积步长, padding = “ valid” or “same”)
LSTM层: tf.keras.layers.LSTM()
compile详细介绍
model.compile(optimizer = 优化器, loss = 损失函数, metrics = [“准确率”] )
Optimizer可选:
‘sgd’ or tf.keras.optimizers.SGD (lr=学习率,momentum=动量参数)
‘adagrad’ or tf.keras.optimizers.Adagrad (lr=学习率)
‘adadelta’ or tf.keras.optimizers.Adadelta (lr=学习率)
‘adam’ or tf.keras.optimizers.Adam (lr=学习率, beta_1=0.9, beta_2=0.999)
loss可选:
均方误差:
‘mse’ or tf.keras.losses.MeanSquaredError()整数编码_多类交叉熵损失:
‘sparse_categorical_crossentropy’ or
tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)
Metrics可选:
‘accuracy’ : y_和y都是数值,如y_=[1] y=[1]
‘categorical_accuracy’ : y_和y都是独热码(概率分布),如y_=[0,1,0] y=[0.256,0.695,0.048]
‘sparse_categorical_accuracy’: y_是数值, y是独热码(概率分布),如y_=[1] y=[0.256,0.695,0.048]
fit详细介绍
1 | model.fit (训练集的输入特征, 训练集的标签, |
batch_size:每次喂入神经网络的样本数,即分多少组喂入
epochs:迭代的数据集的次数