【发布时间】:2021-01-09 22:11:25
【问题描述】:
我正在尝试使用 pytorch 实现 Dropout 层,如下所示:
class DropoutLayer(nn.Module):
def __init__(self, p):
super().__init__()
self.p = p
def forward(self, input):
if self.training:
u1 = (np.random.rand(*input.shape)<self.p) / self.p
u1 *= u1
return u1
else:
input *= self.p
然后调用一个简单的NN.sequential:
model = nn.Sequential(nn.Linear(input_size,num_classes), DropoutLayer(.7), nn.Flatten())
opt = torch.optim.Adam(model.parameters(), lr=0.005)
train(model, opt, 5) #train(model, optimizer, epochs #)
但我收到以下错误:
TypeError: flatten() takes at most 1 argument (2 given)
不知道我做错了什么。对 pytorch 来说还是新手。谢谢。
【问题讨论】: