pytorch中的打印和查看功能是如何工作的?

pytorch中的打印和查看功能是如何工作的?,pytorch,Pytorch,这是我在网上找到的一个卷积神经网络 class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(3, 10, kernel_size=5) self.conv2 = nn.Conv2d(10, 20, kernel_size=5) self.conv2_drop = nn.Dropout2d()

这是我在网上找到的一个卷积神经网络

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 10, kernel_size=5)
        self.conv2 = nn.Conv2d(10, 20, kernel_size=5)
        self.conv2_drop = nn.Dropout2d()
        self.fc1 = nn.Linear(500, 50)
        self.fc2 = nn.Linear(50, 64)

    def forward(self, x):
        x = F.relu(F.max_pool2d(self.conv1(x), 2))
        x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))
        x = x.view(-1, 500)
        x = F.relu(self.fc1(x))
        x = F.dropout(x, training=self.training)
        x = self.fc2(x)
        return F.log_softmax(x)
及其摘要

print(net)
Net(
  (conv1): Conv2d(3, 10, kernel_size=(5, 5), stride=(1, 1))
  (conv2): Conv2d(10, 20, kernel_size=(5, 5), stride=(1, 1))
  (conv2_drop): Dropout2d(p=0.5)
  (fc1): Linear(in_features=500, out_features=50, bias=True)
  (fc2): Linear(in_features=50, out_features=64, bias=True)
)
什么是
x.view
的功能?它是否类似于keras中的
展平
功能。另一个查询是重新考虑pytorch如何打印模型摘要。即使模型使用两个辍学
nn.Dropout2d()
F.dropout
。打印模型时,我们只能看到一个
(conv2\u drop):Dropout2d(p=0.5)
,为什么?。最后一个问题是为什么pytorch不打印
F.max\u pool2d
layer?

1)
x.view
可以做的不仅仅是展平:它将在重塑尺寸的同时保持相同的数据。因此,使用
x.view(batch\u size,-1)
相当于
Flatten

2) 在的
\uuuu repr\uuuu
函数中,打印的元素是
self.\u modules.items()
中的模块,它们是其子级

F.dropout
F.max\u pool2d
是函数,而不是
nn.Module
的子级,因此它们不是层,不会被打印。但是,对于池和退出,在
torch.nn
中有一个模块,您已经将其用于第一次退出。

1)
x.view
可以做的不仅仅是展平:它将在重塑维度的同时保持相同的数据。因此,使用
x.view(batch\u size,-1)
相当于
Flatten

2) 在的
\uuuu repr\uuuu
函数中,打印的元素是
self.\u modules.items()
中的模块,它们是其子级

F.dropout
F.max\u pool2d
是函数,而不是
nn.Module
的子级,因此它们不是层,不会被打印。然而,对于池和辍学,在
torch.nn
中有一个模块,您已经将其用于第一次辍学