在使用Pytorch搭建多层CNN网络结构时,需要调整各层输入参数,一般输入参数可以通过计算获得,但是会比价麻烦,特别是遇到填充和修改步长之后。其实没那么复杂,只需要在定义完模型之后,模拟输入数据,就可以获得各层的输出。
1、查看整体结构
import torch import torch.nn as nn model = nn.Sequential( nn.Conv2d(64, 128, 5, 1, 2), nn.BatchNorm2d(128), nn.ReLU(), nn.MaxPool2d(2) ) print(model)
output:
Sequential( (0): Conv2d(64, 128, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2)) (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) (2): ReLU() (3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False) )
2、查看各层size
x = torch.randn([10, 64, 25, 25]) for i in range(len(model)): x = model[i](x) print(x.size())
output:
torch.Size([10, 128, 25, 25]) torch.Size([10, 128, 25, 25]) torch.Size([10, 128, 25, 25]) torch.Size([10, 128, 12, 12])
本文为 陈华 原创,欢迎转载,但请注明出处:http://edu.ichenhua.cn/read/238