Как я могу суммировать число с плавающей запятой со списком потерь? Я получаю ошибку - PullRequest
0 голосов
/ 15 апреля 2020

Я использовал loss_val.item () вместо loss_val.data [0] в моем коде, потому что новая версия python не поддерживает это, но, как вы можете видеть здесь, но я получаю сообщение об ошибке для сбора Loss в списке

"объект с плавающей точкой не повторяется"

знаете, что мне делать?

num_epochs = 10 потерь = [] для эпохи в диапазоне (num_epochs): для i, (входы, цели) в перечислении (train_dl): входы = to_var (входы) # преобразовать в переменные цели = to_var (цели)

    # forwad pass
    optimizer.zero_grad()
    outputs = model(inputs) 

    # loss
    loss_val = criterion(outputs, targets) 
    **losses+= loss_val.item()**

    # backward pass
    loss_val.backward() 

    # update parameters
    optimizer.step()  
    #W=W-Ir*dW
    # report
    if (i + 1) % 50 == 0:
        print('Epoch [%2d/%2d], Step [%3d/%3d], Loss: %.4f'% (epoch + 1, num_epochs, i + 1, len(train_ds) // batch_size, loss_val.item())) 

1 Ответ

0 голосов
/ 15 апреля 2020

Я думаю, что должен сказать что-то еще: если вы посмотрите на мой код

1) loss = [] - это список, то я пытаюсь добавить потери в каждой итерации к той, что для рисованной диаграммы:

2) loss_val = критерий (выходы, цели)

3) loss + = loss_val.item ()

но я получаю эту ошибку, что объект "float" не повторяется "

эта ошибка появляется в 3 строки

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