模型定义方法
我们通常采用:Sequential,ModuleList和ModuleDict
对比分析如下:
Sequential适用于快速验证结果,因为已经明确了要用哪些层。
ModuleList和ModuleDict在某个完全相同的层需要重复出现多次时,非常方便实现,可以”一行顶多行“,但计算结果是需在类中添加forward_。
当我们需要之前层的信息的时候,比如 ResNets 中的残差计算,当前层的结果需要和之前层中的结果进行融合,一般使用 ModuleList/ModuleDict 比较方便。
搭建复杂网络
此处利用U-Net搭建复杂网络:
更加具体的Tips如下所示: