网站大量收购独家精品文档,联系QQ:2885784924

深度学习案例教程 教案4.4用PyTorch搭建卷积网络.docx

深度学习案例教程 教案4.4用PyTorch搭建卷积网络.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

(p1)

在前面的小节中我们已经实现了卷积层和池化层,

现在来组合这些层,搭建卷积神经网络。

网络的构成是“Convolution-ReLU-Pooling-FC–FC-Softmax”,

我们将它实现为名为SimpleConvNet的类。

SimpleConvNet的初始化的实现稍长,

我们分成3部分来说明,首先是初始化的最开始部分,

函数中input_dim表示输入数据的维度:(通道,高,长),

hidden_size是隐藏层的神经元数量,

output_size是输出层的神经元数量,

weight_init_std是初始化时权重的标准差,

参数conv_param是卷积层的超参数(字典),

(p2)

接下来是权重参数的初始化部分,

学习所需的参数是第1层的卷积层和剩余两个全连接层的权重和偏置。

将这些参数保存在实例变量的params字典中。

将第1层的卷积层的权重设为关键字W1,偏置设为关键字b1。

同样,分别用关键字W2、b2和关键字W3、b3来保存第2个和第3个全连接层的权重和偏置。

(p3)

最后,生成必要的层

从最前面开始按顺序向有序字典(OrderedDict)的layers中添加层。

只有最后的SoftmaxWithLoss层被添加到别的变量lastLayer中。

以上就是SimpleConvNet的初始化中进行的处理。

(p4)

像这样初始化后,进行推理的predict方法和求损失函数值的loss方法就可以像下面这样实现。

这里,参数x是输入数据,t是标签。

用于推理的predict方法从头开始依次调用已添加的层,

并将结果传递给下一层。

在求损失函数的loss方法中,除了使用predict方法进行的forward处理之外,

还会继续进行forward处理,直到到达最后的SoftmaxWithLoss层。

(p5)

接下来是基于误差反向传播法求梯度的代码实现。

参数的梯度通过误差反向传播法(反向传播)求出,

通过把正向传播和反向传播组装在一起来完成。

因为已经在各层正确实现了正向传播和反向传播的功能,

所以这里只需要以合适的顺序调用即可。

最后,把各个权重参数的梯度保存到grads字典中。

以上这就是卷积神经网络SimpleConvNet的实现。

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档