Во время обучения после некоторой итерации значения параметров выходного слоя внезапно увеличиваются, и из-за этого среда не может выбрать больше данных. Среда использует выходные данные модели, и я не могу изменить среду, чтобы сделать ее стабильной. Следовательно, есть ли способ ограничить значение параметра пороговым значением или ограничить его. (Потери рассчитываются на основе данных, выбранных средой, а затем обратного распространения)
Пример кода для модели вы можете найти ниже:
Код: Выделить всё
def forward(self, x):
# feed forwards to layers
x = F.relu(self.linear_0(x))
x = F.relu(self.linear_1(x))
return self.linear_2(x)
Код: Выделить всё
def forward(self, x):
# feed forwards to layers
x = F.relu(self.linear_0(x))
x = F.relu(self.linear_1(x))
x = self.linear_2(x)
x[0] = torch.clamp(x[0], min=min, max=max)
x[1] = torch.clamp(x[1], min=min, max=max)
return x
RuntimeError: одна из переменных, необходимых для вычисления градиента,
была изменена операцией на месте: [torch.DoubleTensor [499, 2]],
которая является выходным сигналом 0 SelectBackward, имеет версию 3; вместо этого ожидается версия
2. Подсказка: включите обнаружение аномалий, чтобы найти операцию, которой
не удалось вычислить градиент, с помощью
torch.autograd.set_detect_anomaly(True).
Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/670 ... in-pytorch
Мобильная версия