Как я могу просто вычислить часть градиента, используя make_functional в PyTorch?Python

Программы на Python
Anonymous
Как я могу просто вычислить часть градиента, используя make_functional в PyTorch?

Сообщение Anonymous »

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

func_model, func_params = make_functional(self.model)
def fm(x, func_params):
fx = func_model(func_params, x)
return fx.squeeze(0).squeeze(0)
def floss(func_params,input):
fx = fm(input, func_params)
return fx

per_sample_grads =vmap(jacrev(floss), (None, 0))(func_params, input)
В этом коде per_sample_grads включает всю градацию сетевой модели путем ввода некоторых данных. Однако я хочу получить лишь небольшую часть градиента.
И получение всего градиента — это своего рода трата в моих кодах. Я хочу сэкономить время на этом этапе auto_grad. Что я могу сделать, чтобы добиться этого?
Как я могу вычислить градиенты только для части модели, чтобы сэкономить время?

Подробнее здесь: https://stackoverflow.com/questions/789 ... in-pytorch

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