typeerror:tensor类型的对象不可json序列化-pytorch中的dict to json error

plicqrtu  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(861)

在我的pytorch代码中,我的字典输出如下:

errors = {0: tensor(64.4072, device='cuda:0'), 1: tensor(58.2704, device='cuda:0')}

我正在将此dict转换为json,并使用以下代码将json写入文件:

json_object = json.dumps(errors, indent = 4)
    with open("train_loss_dic.json", "w") as outfile:
        outfile.write(json_object)

但是,我得到以下错误:

TypeError: Object of type Tensor is not JSON serializable

如何转换Tensor,使其在pytorch中可序列化json?我的版本是torch==1.9.0和torchvision==0.10.0
感谢您的帮助!

fd3cxomn

fd3cxomn1#

因为你有单元素Tensor,你可以简单的调用 item() 关于恢复python的Tensor float 从他们那里。这些是可序列化的。
您可以使用:

json_errors = {k: v.item() for k, v in errors.items()}

换个新的 dict 这是可序列化的。
希望这有帮助:)

相关问题