我view()对以下代码片段中的方法感到困惑。
class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(3, 6, 5) self.pool = nn.MaxPool2d(2,2) self.conv2 = nn.Conv2d(6, 16, 5) self.fc1 = nn.Linear(16*5*5, 120) self.fc2 = nn.Linear(120, 84) self.fc3 = nn.Linear(84, 10) def forward(self, x): x = self.pool(F.relu(self.conv1(x))) x = self.pool(F.relu(self.conv2(x))) x = x.view(-1, 16*5*5) x = F.relu(self.fc1(x)) x = F.relu(self.fc2(x)) x = self.fc3(x) return x net = Net()
我的困惑是关于以下几行。
x = x.view(-1, 16*5*5)tensor.view()函数有什么作用?我已经在很多地方看到了它的用法,但是我不明白它是如何解释其参数的。
x = x.view(-1, 16*5*5)
如果我给view()函数赋负值作为参数会怎样?例如,如果我打电话给我tensor_variable.view(1, 1, -1)怎么办?
谁能view()举例说明功能的主要原理?