Я написал следующий код для определения глубины сети в качестве параметра в Pytorch. Позже я понял, что даже если я использую много скрытых слоев, изучаемые параметры остаются неизменными.
class Net3(torch.nn.Module):
def __init__(self, n_feature, n_hidden, n_output, depth, init):
super(Net3, self).__init__()
self.input = torch.nn.Linear(n_feature, n_hidden).float().to(device)
self.hidden = torch.nn.Linear(n_hidden, n_hidden).float().to(device)
self.predict = torch.nn.Linear(n_hidden, n_output).float().to(device) =
self.depth = depth
def forward(self, x):
x = F.relu(self.input(x)) # activation function for hidden layer
for i in range(self.depth):
x = F.relu(self.hidden(x)) # activation function for hidden layer
x = self.predict(x)
return x
Есть ли другой способ добиться этого?