Expected more than 1 value per channel when training, got input size torch.Size([1, 512, 1, 1])

【小白日记】用Pytorch测试模型时,产生错误:

 ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 512, 1, 1])

根据提示,发现当输入张量为(b, d, 1, 1)时,也就是最后H,W为 1x1时,进行nn.BatchNorm2d()【每个Batch的每个通道的张量进行批量归一化处理】时会报错,这是由于nn.BatchNorm2d()的批量需要大于一个值,而这时张量每个Batch的每个通道只有一个值,因此产生错误了!因此,如果训练时BatchSize=1会产生一样的问题。

    上面  torch.randn(1, 3, 112, 112) 改为  torch.randn(2, 3, 112, 112) 即可。

    或在删除 a = net(dummy_input) 即可。

但是在用thop的profile查看网络的参数量与浮点运算数时,不会产生如上错误!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值