Матрица параметра Pytorch из функции потерь преобразования - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть тензор пироха k x (n+k-1) тензор w с requires_grad=True.Я хочу преобразовать его в kxn тензор p также с помощью следующего: p[i] = w[i][i:i+n].Как мне это сделать, чтобы, вызвав в конце backward() функцию потери p, я выучил w?

1 Ответ

0 голосов
/ 08 декабря 2018

Подойдет любая операция индексации, при этом обратная функция будет <CopySlices> Наивным способом сделать это будет использование простой индексации на Python:

w_unrolled = torch.zeros(p.size())
for i in range(w.shape[0]):
    w_unrolled[i] = w[i][i:i+n]
loss = criterion(w_unrolled, p)

Затем вы можете уменьшить свои потери с помощью среднего /сумма по любой оси.Обратите внимание, что хотя это будет работать, это неэффективно;оптимальный способ - использовать встроенную функцию индексации для ускорения процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...