深度学习遇到的问题③: 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")

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

 

  • 16
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值