簡體   English   中英

pytorch+tensorboard 錯誤“AttributeError: 'Tensor' object has no attribute 'items'”

[英]pytorch+tensorboard error “ AttributeError: 'Tensor' object has no attribute '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是生成器 output。 然后我有錯誤打擊。

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)

但仍然不能很好地工作。

您正在調用帶有swriter.add_scalars Pytorch Tensorboardx文檔中,您可以看到此 function 需要dictionary作為輸入。

 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 是火炬標量張量,請記住通過x.item()提取標量值。

writer.add_scalar("MSE", l_mse.item(), n_iter)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM