深度学习遇到的问题③: Can‘t call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.

问题描述:

在模型训练过程的可视化中:

 

运行出现以下错误:Can’t call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.

 

 问题分析:

 张量Train_loss_all本身带有梯度,

直接将其转换为numpy数据将破坏计算图,因此numpy拒绝进行数据转换.、故在变量转换之前添加detach()调用。

 解决办法:

将张量Train_loss_all,Test_loss_all自行转化为numpy数组。代码:
train_loss_all_np=[]
test_loss_all_np=[]
for i in range(30):
    train_loss_all_np.append(train_loss_all[i].detach().numpy())
    test_loss_all_np.append(test_loss_all[i].detach().numpy())

并将标注那两行修改为
plt.plot(train_loss_all_np,”ro-“,label=”Train loss”)
plt.plot(test_loss_all_np,”bs-“,label=”Test loss”)

即可实现模型训练过程的可视化

 

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年4月6日
下一篇 2023年4月6日

相关推荐