六步法搭建神经网络(tensorflow.Sequential顺序网络结构)

六步法

import
train,test
model = tf.keras.models.Sequential
model.compile
model.fit
model.summary

model = tf.keras.models.Sequential([网络结构])

常见网络结构举例

拉直层:tf.keras.layers.Flatten()
全连接层:tf.keras.layers.Dense(神经元个数, activation=‘激活函数’, kernel_regularizer=正则化方式)
activation可选参数:relu,softmaxt,sigmoid,tanh。通常最后一层softmax用于二分类以上的多分类,sigmoid在最后一层用于二分类。
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()

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.MeanSequaredError()
‘sparse_categorical_crossentropy’ = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),如果神经网络输出结果经过了概率分布,from_logits=False;如果神经网络输出结果没有经过概率分布,from_logits=True。
metrics可选(y_是标签,y是预测结果):
‘accuracy’ = y_ 和 y 都是数值,如:y_ = [1],y = [1]
‘categorical_accuracy’:y_ 和 y 都是独热编码(概率分布),如:y_ = [0, 1, 0],y = [0.1, 0.7, 0.2]
‘sparse_categorical_accuracy’:y_是数值,y是独热码,如:y_ = [1],y = [0.2, 0.7, 0.3]。

model.fit()

model.fit(训练集的输入特征, 训练集的标签, batch_size=64, epochs=10,
validation_split=0.2, validation_data=(测试集的输入特征,测试集标签), validation_freq=4)
batch_size:每次喂入神经网路的样本数。
epochs:要迭代多少次数据集。
validation_split:测试集的比例,validation_data只使用一个即可。
validation_data:测试集
validation_freq:多少次epoch使用测试集验证一次结果。

model.summary()

打印出网络结构及参数统计。

六步法鸢尾花代码示例

# 第一步:import
import tensorflow as tf
from sklearn import datasets
import numpy as np

# 第二步:train, 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)

# 第三步:model = tf.keras.models.Sequential
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(3, activation='softmax', kernel_regularizer=tf.keras.regularizers.l2())
])

# 第四步:model.compile()
model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1),
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
              metrics=['sparse_categorical_accuracy'])

# 第五步:model.fit()
model.fit(x_train, y_train, batch_size=32, epochs=500, validation_split=0.2, validation_freq=20)

# 第六步:model.summary()
model.summary()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值