【问题标题】:how can I sum float number with loss list ? I receive error如何将浮点数与损失列表相加?我收到错误
【发布时间】:2020-04-15 09:35:00
【问题描述】:

我在我的代码中使用了 loss_val.item() 而不是 loss_val.data[0] 因为新版本的 python 不支持,但是正如你在这里看到的,但是我收到了在列表中收集损失的错误

" 'float' 对象不可迭代"

你知道我该怎么办吗?

num_epochs = 10 损失= [] 对于范围内的纪元(num_epochs): 对于我,枚举(train_dl)中的(输入,目标): inputs = to_var(inputs) # 转换为变量 目标 = 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())) 

【问题讨论】:

  • 请发送一个最小的例子(我们可以运行的东西)。除了你得到的堆栈跟踪,

标签: python-3.x list syntax-error training-data loss


【解决方案1】:

我想我应该多说一些: 如果你看我的代码

1) loss= [] 是一个列表,然后我尝试将每次迭代中的损失添加到绘制图表中:

2)loss_val = 标准(输出,目标)

3)losses+= loss_val.item()

但我收到“浮动”对象不可迭代的错误

这个错误出现在 3 行中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    相关资源
    最近更新 更多