六步法
1.import
2.train test(数据集划分)
3.model=tf.keras.models.Sequential(搭建网络结构)
4.model.complie(设置训练方法)
5.model.fit(训练过程)
6.model.summary(打印网络结构和参数)
Sequential
- 全连接层
tf.keras.layers.Dense(神经元个数,activation=激活函数,kernel_regularizer=正则化方法)
激活函数可选:
relu/softmax/sigmoid/tanh
正则化方式可选:
tf.keras.regularizers.l1()
tf.keras.regularizers.l2()
- 拉直层
tf.keras.layers.Flatten()
不进行计算只对形状进行转换,将输入特征转化为1维数组 - 其他层用到再补充
compile
model.compile(optimizer = 优化器,loss = 损失函数,metrics=[评判指标])
优化器可选:
tf.keras.optimizers.SGD(lr=学习率,momentum=动量参数)
tf.keras.optimizers.Adagrad(lr=学习率)
tf.keras.optimizers.Adadelta(lr=学习率)
tf.keras.optimizers.Adam(lr=学习率,beta1=0.9,beta2=0.999)
loss可选:
均方误差:tf.keras.losses.MeanSquaredError()
交叉,也可填名称mse熵:tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)
最后一个参数用于设置网络是否经过了softmax进行均值分布,是原始分布则为true,经过概率分布则使用false
也可填名称sparse_categorical_crossentropy
如果预测概率和无信息计算的概率相同,应当检查此处
metrics可选:
accuracy:表示label和预测结果都是数值
categorical_accuracy:label和预测结果都是独热码(即概率分布)
sparse_categorical_accuracy:label是数值,预测结果是独热码
fit
model.fit(训练集输入特征,训练集标签,batch_szie=,epoch=,validation_data=(测试集的特征,测试集的标签),validation_split=从训练集划分多少比例给测试集,validation_freq=多少epoch进行一次验证)
summary
打印网络结构和参数统计