Процессы обучения были прерваны из-за ошибки «RuntimeError: нет аккумулятора оценок для сохраненного листа!»Python

Программы на Python
Anonymous
Процессы обучения были прерваны из-за ошибки «RuntimeError: нет аккумулятора оценок для сохраненного листа!»

Сообщение Anonymous »

При обучении простой модели процессы были аварийно завершены из-за ошибки RuntimeError: нет аккумулятора градаций для сохраненного листа! в loss.backward(), но я проверяю все данные, необходимые для расчета градиентов устанавливаются на графические процессоры.

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

def train_epoch(args, epoch, model, loss_fn, optim, dataloader, lr_scheduler=None, warmup_scheduler=None):
model.train()
dataloader.sampler.set_epoch(epoch)

mae_m, loss_m = AverageMeter(), AverageMeter()
calc_m, read_m = AverageMeter(), AverageMeter()
timer = Timer()
log_step = len(dataloader) // 11
if args.local_rank == 0:
args.writer.add_scalar('lr', optim.param_groups[0]['lr'], epoch)

mae_list, pred_list = [], []

for step, sample in enumerate(dataloader):
data, label = sample['data'].cuda().requires_grad_(), sample['label'].cuda()
read_m.add(timer.tiktok())

optim.zero_grad()
# (output, deep_output), attn = model(data)
output = model(data)
output = output.reshape(label.shape)
# loss = loss_fn(output, label) + loss_fn(deep_output, label)
loss = loss_fn(output, label)
loss.backward(retain_graph=True)
Коды для обучения указаны выше. И ошибка одного из процессов показана ниже:
ошибка
Я обратился за помощью к GPT, последовал его совету и добавил .requires_grad_() для данных (в чем я думаю нет необходимости), чтобы быть уверенным, что будут рассчитаны градиенты, и я добавил continue_graph=True для loss.backward() . Но все равно не помогло.
Как решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ator-for-a

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