首页 理论教育 深度学习网络模型定义

深度学习网络模型定义

时间:2023-11-18 理论教育 版权反馈
【摘要】:在定义的网络结构中,输入层有784个节点,隐含层有256个节点,输出层有10个节点,输出层的10个节点代表10个数字的识别结果,它将返回一个由10个和为1的概率值组成的数组。每个概率值代表当前数字图像属于0~9这10个数字中某一个的概率。定义好网络模型后,可以通过model.summary()函数直观地看到网络结构及参数数量,如图4-21所示。

深度学习网络模型定义

数据预处理完毕得到了网络训练和测试的数据集以后,就可以定义神经网络模型了,此处构建一个简单的多层感知器网络,相应代码如下:

#通过Sequential序列模型实现多个网络层layer的线性堆叠

from keras. models import Sequential

from keras. layers import Dense#引入密集连接的全连接层

model=Sequential()

#定义输入层、隐含层,输入层节点数784,隐含层节点数256,均采用relu激活函数

model. add(Dense(units=256,input_dim=784,kernel_initializer='normal',activation='relu'))

#定义输出层,采用softmax激活函数(www.xing528.com)

model. add(Dense(units=10,kernel_initializer='normal',activation='softmax'))

#对训练模型的损失函数、优化器、监控指标等参数进行设置

model. compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])

上面代码构建的网络包括输入层、隐含层和输出层共三层,采用了Keras的序列模型Sequential()方式进行搭建,这种方式可以看作多个网络层的顺序堆叠。在定义的网络结构中,输入层有784个节点,隐含层有256个节点,输出层有10个节点,输出层的10个节点代表10个数字的识别结果,它将返回一个由10个和为1的概率值组成的数组。每个概率值代表当前数字图像属于0~9这10个数字中某一个的概率。代码中最后一行中是编译步骤,其中loss参数表明选择的损失函数,这里为分类交叉熵损失函数;metrics表示如何衡量网络预测效果,accurary代表预测准确率;optimizer对应参数优化方法,除了列出的adam之外,还有SGD、Mo-mentum、AdaGrad等优化方法。

定义好网络模型后,可以通过model.summary()函数直观地看到网络结构及参数数量,如图4-21所示。

图4-21 网络结构图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈