深入浅出pytorch学习记录3

Sequential来定义模型

官方代码的相关注释:

目标定义了一个三层的网络

net = nn.Sequential(:这里开始定义了一个顺序容器Sequential,用于简单地堆叠各个层(Layer)。在Sequential中的层将按照它们被添加的顺序依次执行。

两种方法的异同之处

定义方式不同:第一段代码采用的是直接传递层对象列表的方式来定义网络;第二段代码则利用OrderedDict为每一层指定了名称,使得网络结构不仅有序而且每层都有明确标识。

灵活性和可维护性:第二段代码由于为每层提供了名称,因此在网络复杂度增加时更加灵活和易于维护。


nn.ModuleList来管理网络层

最大的优势-动态性:由于nn.ModuleList允许动态添加和删除层,因此非常适合需要根据运行时条件动态调整网络结构的场景。

适用场景:

如果你的模型是一个简单的线性序列,nn.Sequential是更简便的选择。

如果你需要更多的灵活性,比如根据输入动态选择路径或在训练过程中动态调整网络结构,nn.ModuleList是更好的选择。

通过理解这两者的区别,你可以根据具体的需求选择合适的工具来构建神经网络模型。


通过搭积木的方式能够组合一个成一个较大的模型


下一个章节为如何通过一系列语句修改相关模型

比如改善模型最终fc层

增加额外性输入与输出


接下来的讨论会更加进阶

首先损失函数的调用可以参考

官方的动态调整学习率文件可以参考

模型的微调部分(学习本课程最想知道的部分)


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容