Понимание уменьшения операций в Pytorch и Autodiff. Смущены отслеживанием операцииC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Понимание уменьшения операций в Pytorch и Autodiff. Смущены отслеживанием операции

Сообщение Anonymous »

Я пытаюсь понять, как операция по снижению, которую делает Pytorch в своем обратном проходе для трансформированных тензоров, на самом деле работает под капюшоном. Я пытаюсь сделать библиотеку CPP для нейронных сетей и некоторое время застрял на этом шаге. Я понимаю, что использование механизма отслеживания поможет, но я не уверен, насколько сглаживаются и суммирование/средние операции будут применяться в этом смысле. Но в целом эта идея, как она в основном знает, какая операция сокращает работу. Очень простым примером может быть тензор формы [2,3,4,5], транслированного в [3,2,3,4,5], и операция по сокращению как Torch.sum () при DIM 0 может вернуть его к [2,3,4,5] с KeepDims как ложные. Теперь, когда Autograd работает, вещание семантики удерживается, но тогда какова идея идентификации, которая уменьшает операции и какой порядок им необходимо применить, чтобы вернуть форму, чтобы градиент мог быть передан назад (Autodiff режима обратного режима.). На мой взгляд, я думал о том, чтобы сохранить стопку вещательных операций в тензоре, когда они применяются, а затем отменить это, но это не соблюдает: обратное вещание с тумбочками в форме может быть сглаженным или суммированием вдоль этого размера. Я надеюсь, что это поможет прояснить мой вопрос.

Подробнее здесь: https://stackoverflow.com/questions/797 ... peration-t
Ответить

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

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

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

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

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