Операции на месте при вычислении градиента во вложенных циклах PyTorchPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Операции на месте при вычислении градиента во вложенных циклах PyTorch

Сообщение Anonymous »

Я разрабатываю модель на основе PyTorch, в которой для вычислений используются вложенные циклы.
Я столкнулся с препятствием при попытке вычислить градиенты. Процесс обратного распространения ошибки завершается сбоем из-за, по-видимому, операций внутри циклов.
Вот минимальный пример, иллюстрирующий проблему:
import torch

# Setup
length, dx = 1000, 100
num_rows, num_cols = 5, int(length / dx) + 1

# Parameters requiring gradients
C = torch.rand(num_rows, requires_grad=True)
D = torch.rand(num_rows, requires_grad=True)
qobs = torch.rand(num_rows)

# Intermediate calculations
Caux = 1 + C + D
C0, C1, C2 = (-1 + C + D) / Caux, (1 + C - D) / Caux, (1 - C + D) / Caux

# Main computation
qprop = torch.zeros((num_rows, num_cols))
qprop[:, 0] = qobs

for j in range(1, num_cols):
for n in range(1, num_rows):
qprop[n, j] = (C2[n] * qprop[n-1, j-1] +
C1[n] * qprop[n, j-1] +
C0[n] * qprop[n-1, j])

# Attempt gradient computation
loss = qprop.sum()
loss.backward() # This operation fails


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как использовать что-то вроде оператора continue во вложенных циклах for?
    Гость » » в форуме C++
    0 Ответы
    43 Просмотры
    Последнее сообщение Гость
  • Проблема C++: «разрыв» во вложенных циклах for не работает должным образом?
    Anonymous » » в форуме C++
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Проблема C++: «разрыв» во вложенных циклах for не работает должным образом?
    Anonymous » » в форуме C++
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Удалить во вложенных циклах (удалить внутри foreach)
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Лучший способ сократить время расчета формул во вложенных циклах?
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

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