搭建神经网络步骤

六步法搭建神经网络

1、导入相关模块(import)。tensorflow,numpy等模块
2、告知要喂入网络的训练集和测试集(train,test),需要指定训练集的输入特征x_train和训练集的标签y_train,以及测试集的输入特征x_test和测试集的标签y_test。
3、在Sequential()中搭建网络结构,逐层描述每层网络,相当于走了一遍前向传播。(Sequential()可以搭建出上层输出就是下层输入的顺序网络结构,但是无法写出带有跳连的非顺序网络结构,可以使用自定义类搭建神经网络结构)model=tf.keras.models.Sequential
可以把Sequential()看作一个容器,里面封装了一个神经网络结构。
model=tf.keras.models.Sequential([网络结构])#
Sequential用来描述各层网络结构
网络结构有:
拉直层:tf.keras.layers.Flattern()
这一层不含计算,只是形状转换,把输入特征拉直为一维数组
全连接层:tf.keras.layers.Dense(神经元个数,activation=’激活函数’,kernel_regularize=哪种正则化)
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()
4、在compile中配置训练方法,告诉电脑选择那个优化器,哪个损失函数,选择那种测评指标。model.compile
model.compile(optimizer=优化器,loss=损失函数,metrics=[“准确率”](p评测指标))
optimizer可选:
’sgd’ 或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.99)
loss可选:
‘mse’ or tf.keras.losses.MeanSquareError()
‘sparse_categorical_crossentropy’ or tf.keras.losses.SparseCategoricalCrossEntropy(from_logits=False)
#from_logits=True表示数据是原始数据,即参数没有经过softmax等概率分布,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.049]
‘sparse_categorical_accuracy’:y_s是数值,y是独热码(概率分布),如y_=[1],y=[0.256,0.695,0.049]
5、在fit中执行训练过程,告知训练集和测试集的输入特征和标签,告知每个batch是多少,告知要迭代多少次数据集。model.fit()
model.fit(训练集的输入特征,训练集的标签,batch_size=,epochs=,
Validation_data=(测试集的输入特征,测试集的标签),
Validation_split=从训练集划分多少比例给测试集,
Validation_freq=多少次epoch测试一次)
6、用summary()打印出网络的结构和参数统计。

猜你喜欢

转载自blog.csdn.net/weixin_45187794/article/details/108111233