python - pytorch+tensorboard 错误“AttributeError:‘Tensor’对象没有属性‘items’”
问题描述
下午好。我想使用 pytorch 中的张量板记录火车的损失。我有一个错误。
AttributeError: 'Tensor' object has no attribute 'items'
我想解决这个错误并使用 tensorboard 检查日志。在这里我展示我的代码。
l_mse = mseloss(img,decoder_out)
writer.add_scalars("MSE",l_mse,n_iter)
img
是 GAN 中的真实图像,decoder_out
是生成器的输出。然后我有错误打击。
Traceback (most recent call last):
File "main.py", line 39, in <module>
main()
File "main.py", line 22, in main
solover.train(dataloader)
File "path to my file", line 239, in train
writer.add_scalars("MSE",l_mse,n_iter)
File "/~~/anaconda3/lib/python3.7/site-packages/torch/utils/tensorboard/writer.py", line 378, in add_scalars
for tag, scalar_value in tag_scalar_dict.items():
AttributeError: 'Tensor' object has no attribute 'items'
我试过了
writer.add_scalars("MSE",l_mse,n_iter).eval()
writer.add_scalars("MSE",l_mse.item(),n_iter)
writer.add_scalars("MSE",l_mse.detach().cpu().numpy(),n_iter)
但仍然不能很好地工作。
解决方案
你writer.add_scalars
用s
. 从Pytorch Tensorboardx文档中,您可以看到此函数需要 adictionary
作为输入。
add_scalars(main_tag, tag_scalar_dict, global_step=None, walltime=None)
- tag_scalar_dict (dict) – 存储标签和对应值的键值对
writer = SummaryWriter()
r = 5
for i in range(100):
writer.add_scalars('run_14h', {'xsinx':i*np.sin(i/r),
'xcosx':i*np.cos(i/r),
'tanx': np.tan(i/r)}, i)
writer.close()
writer.add_scalar
改为使用
要记录标量值,请使用
writer.add_scalar('myscalar', value, iteration)
. 请注意,如果您输入 PyTorch 张量,程序会报错。x.item()
如果 x 是火炬标量张量,请记住提取标量值。
writer.add_scalar("MSE", l_mse.item(), n_iter)
推荐阅读
- core-data - 在 SwiftUI 视图中发布后台上下文 Core Data 更改而不阻塞 UI
- php - getenv(ENVIRONMENT VARIABLE) 一无所获
- python - 使用 numpy 使用 delta 函数来收缩索引
- git - 安装 libsecret 凭据帮助程序后出现 git push 错误:“credential--h”不是 git 命令
- python - 使用 smtplib 发送电子邮件时附件重复
- excel - 无法获取 Worksheet 类的 PivotTables 属性
- html - 使用引导程序 4.3.1 在视频周围环绕文本
- flutter - 为什么我的所有文件都变成红色而没有发现错误?
- flutter - 没有活动设备无法启动
- php - 有什么方法可以访问用户空间代码中的 Symfony 秘密值?