Каков эффект переноса ручного присвоения весов слою PyTorch с помощью контекстного менеджера torch.no_grad()?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Каков эффект переноса ручного присвоения весов слою PyTorch с помощью контекстного менеджера torch.no_grad()?

Сообщение Anonymous »

Я пытаюсь создать линейный слой в PyTorch, а затем вручную установить веса линейного слоя следующим образом:

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

import torch
layer = torch.nn.Linear(10, 10)
layer.weight = torch.nn.Parameter(torch.ones_like(layer.weight))
Теперь во многих темах в Интернете люди предлагают, чтобы для достижения этой цели необходимо либо напрямую изменить атрибут .data параметра, либо (предпочтительно) использовать a с torch.no_grad () контекстный менеджер (см., например, https://discuss.pytorch.org/t/initializ ... ts/29005/2 или https://discuss.pytorch.org/t /how-to-manually-set-the-weights-in-a-two-layer-linear-model/45902/2).
Может ли кто-нибудь объяснить мне, почему контекстный менеджер здесь необходим, несмотря на то, что внутри него не вычисляются градиенты, если я делаю что-то вроде

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

with torch.no_grad():
layer.weight = torch.nn.Parameter(torch.ones_like(layer.weight))
Буду очень признателен за любую помощь!
Я пытался немного покопаться в документации PyTorch, чтобы понять это, но не получил где угодно.

Подробнее здесь: https://stackoverflow.com/questions/789 ... orch-layer
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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