nn.Sequential查看每次卷积后的大小
时间: 2023-08-10 12:20:12 浏览: 49
在使用nn.Sequential构建卷积神经网络时,可以通过打印每一层的输出大小来查看每次卷积后的大小。例如,以下是一个简单的卷积神经网络:
```
import torch.nn as nn
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv_layers = nn.Sequential(
nn.Conv2d(3, 64, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=2, stride=2),
nn.Conv2d(64, 128, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=2, stride=2),
nn.Conv2d(128, 256, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=2, stride=2),
nn.Conv2d(256, 512, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=2, stride=2),
nn.Conv2d(512, 1024, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=2, stride=2),
)
self.fc_layers = nn.Sequential(
nn.Linear(1024 * 4 * 4, 4096),
nn.ReLU(inplace=True),
nn.Linear(4096, 4096),
nn.ReLU(inplace=True),
nn.Linear(4096, 10),
)
def forward(self, x):
x = self.conv_layers(x)
x = x.view(x.size(0), -1)
x = self.fc_layers(x)
return x
```
可以通过打印每个卷积层的输出大小来查看每次卷积后的大小。例如:
```
net = Net()
print(net)
x = torch.randn(1, 3, 32, 32)
for layer in net.conv_layers:
x = layer(x)
print(x.size())
```
结果会输出每个卷积层的输出大小,从而可以查看每次卷积后的大小。