pytorch model.modules()疑问

最近在做剪枝相关的事情,在遍历模型模块的时候,使用的是如下方式:

for k, m in enumerate(model.modules()):
    print("k:", k)
    print("m:", m)

但是对于模型的模块输出发现有缺失,如下:

k: 6
m: Block(
  (conv1): Conv2d(16, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (nolinear1): ReLU(inplace=True)
  (conv2): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=16, bias=False)
  (bn2): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (nolinear2): ReLU(inplace=True)
  (conv3): Conv2d(16, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn3): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (shortcut): Sequential()
  (se): SeModule(
    (avg_pool): AdaptiveAvgPool2d(output_size=1)
    (se): Sequential(
      (0): Conv2d(16, 4, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(4, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (2): ReLU(inplace=True)
      (3): Conv2d(4, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (4): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (5): hsigmoid()
    )
  )
)
k: 7
m: Conv2d(16, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
k: 8
m: BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
k: 9
m: ReLU(inplace=True)
k: 10
m: Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=16, bias=False)
k: 11
m: BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
k: 12
m: Conv2d(16, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
k: 13
m: BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
k: 14
m: Sequential()
k: 15

Block结构内的第二个激活函数没有遍历输出,而是跳过了,很奇怪,还没找到原因,先记录一下。

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值