1、搭建神经网络的六步法 ——TensorFlow的API tf.keras
import
train, test——输入特征、标签
model = tf.keras.models.Sequential——逐层搭建,前向传播
model.compile——配置训练方法,优化器、损失函数、评价指标
model.fit——训练过程,epoch、batch
model.summary——结构、参数统计
2、model = tf.keras.models.Sequential ( [ 网络结构 ] ) ——描述各层网络
网络结构举例:
拉直层: tf.kears.Flatten() ——不含计算,只有形状转换,将输入特征拉直成一维数组
全连接层:tf.keras.Dense(神经元个数,activation="激活函数",kernel_regulation=正则化方法)
activation (字符串给出):relu、softmax、sigmoid、tanh
kernel_regulation可选:tf.keras.regulations.l1()、tf.keras.regulations.l2()
卷积层:tf.keras.layers.Conv2D(filters = 卷积核个数,kernel_size = 卷积核尺寸,strides = 卷积
步长,padding = "valid" or "same")
LSTM层:tf.keras.layers.LSTM()
3、model.compile(optimizer = 优化器,loss = 损失函数,metrics = ["准确率"])
optimizer可选:——可以为字符串形式或函数形式,入门时建议使用字符串形式
'sgd' 或 tf.keras.optimizer.SGD(lr=学习率,momentum=动量参数)
'agagrad' 或 tf.keras.optimizer.Agagrad(lr=学习率)
'adadelta' 或 tf.keras.optimizer.Adadelta(lr=学习率)
'adam' 或 tf.keras.optimizer.Adam(lr=学习率,beta_1=0.9,beta_2=0.999)
loss可选:
'mse' 或 tf.keras.losses.MeanSquareError()
'sparse_categorical_crossentropy' 或 tf.keras.losses.SparseCategoricalCrossEntropy(from_logits=False)
——括号内询问是否为原始输出,若经过softmax之后的概率分布输出则为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]
4、model.fit(训练集的输入特征,训练集的标签,
batch_size= , epochs= ,
validation_data=(测试集的输入特征,测试集的标签),
validation_split=从训练集划分多少比例给测试集,
validation_freq=多少次epoch测试一次)
5、model.summary( )
以上模块搭建鸢尾花识别示例: