【Datawhale深入浅出Pytorch】Task03 PyTorch模型定义

【课程链接】
https://datawhalechina.github.io/thorough-pytorch/index.html
【B站视频】
https://www.bilibili.com/video/BV1L44y1472Z


这两天没有电脑用,先跟着学习进度听了课程,虽然对我来说有些难理解,逼自己跟着学,听不懂就重复听,抓住组队学习的机会多学一点赚一点,这样才能有进步💪


第五章

PyTorch中模型定义的三种方式比较:

Sequential适用于快速验证结果,因为已经明确了要用哪些层,直接写一下就好了,不需要同时写__init__和forward;缺点:需要逐层定义。

ModuleList和ModuleDict在某个完全相同的层需要重复出现多次时,非常方便实现,可以”一行顶多行“;可以实现复用。缺点:定义完不能直接使用,需要写一个forward。

当我们需要之前层的信息的时候,如 ResNets 中的残差计算,当前层的结果需要和之前层中的结果进行融合,一般使用ModuleList/ModuleDict 比较方便。

 

【将简单层构建成具有特定功能的模型块】

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ZCs5bCP55Gc,size_20,color_FFFFFF,t_70,g_se,x_16

组成U-Net的模型块主要有如下几个部分:

1)每个子块内部的两次卷积(Double Convolution)

2)左侧模型块之间的下采样连接,即最大池化(Max pooling)

3)右侧模型块之间的上采样连接(Up sampling)

4)输出层的处理

通过模型块的方式实现了代码复用,整个模型结构定义所需的代码总行数明显减少,代码可读性也得到了提升。

【修改已有模型】

以pytorch官方视觉库torchvision预定义好的模型ResNet50为例

如何在已有模型的基础上:

修改模型若干层

添加额外输入

添加额外输出

 

PyTorch的模型的存储格式

PyTorch如何存储模型

单卡与多卡训练下模型的保存与加载方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值