Как зафиксировать выход нейрона в pytorchPython

Программы на Python
Ответить
Anonymous
 Как зафиксировать выход нейрона в pytorch

Сообщение Anonymous »

Я использую простую линейную модель nn (20,64,64,2) для глубокого обучения с подкреплением. Эту модель я использую для аппроксимации градиентов политики с помощью алгоритма PPO. Следовательно, выходной слой дает 2 значения: среднее и стандартное отклонение. Эти параметры в дальнейшем используются в среде для выборки большего количества данных. Для среды значения параметров должны находиться в пределах порогового значения. среднее значение = [max, min] и std = [max, min].
Во время обучения после некоторой итерации значения параметров выходного слоя внезапно увеличиваются, и из-за этого среда не может выбрать больше данных. Среда использует выходные данные модели, и я не могу изменить среду, чтобы сделать ее стабильной. Следовательно, есть ли способ ограничить значение параметра пороговым значением или ограничить его. (Потери рассчитываются на основе данных, выбранных средой, а затем обратного распространения)
Пример кода для модели вы можете найти ниже:

Код: Выделить всё

    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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»