UserWarning: invalid index of a 0-dim tensor

本文介绍了将PyTorch从0.3.1版本升级到0.4.0版本后代码中可能出现的两个警告及其解决办法。第一个警告关于0维张量的无效索引操作,建议使用.tensor.item()方法转换;第二个警告涉及volatile参数的废弃,推荐使用with torch.no_grad()替代。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将pytorch更新到0.4.0最新版后对0.3.1版本代码会有如下警告,它在提醒用户下个版本这将成为一个错误
1.
[python]  view plain  copy
  1. UserWarning: invalid index of a 0-dim tensor. This will be an error in PyTorch 0.5. Use tensor.item() to convert a 0-dim tensor to a Python number  
  2.   train_loss += loss.data[0]  

修改方法如下:

[python]  view plain  copy
  1. #原语句:  
  2. train_loss+=loss.data[0]  
  3. #修改后:  
  4. train_loss+=loss.item()  
  5. #bingo  

2.
[python]  view plain  copy
  1. UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.  
  2.   label = Variable(label.cuda(), volatile=True)  

修改方法如下:
[python]  view plain  copy
  1. #原语句  
  2. label = Variable(label.cuda(), volatile=True)  
  3. #修改后语句  
  4.   label = Variable(label.cuda())  

转自:https://blog.youkuaiyun.com/weixin_41797117/article/details/80237179


Using device: cuda training 0%| | 0/30000 [00:00<?, ?it/s] 第0轮 最终误差0.0025133900344371796 0%| | 1/30000 [00:00<3:34:01, 2.34it/s] c:\Users\cw\Desktop\model_HOT.py:192: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature. checkpoint = torch.load('model_HOT.pth', map_location=device) D:\Aconda\envs\pytorch\lib\site-packages\torch\functional.py:534: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at C:\actions-runner\_work\pytorch\pytorch\builder\windows\pytorch\aten\src\ATen\native\TensorShape.cpp:3596.) return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined] Traceback (most recent call last): File "c:\Users\cw\Desktop\model_HOT.py", line 215, in <module> u_pred = U(xyt) File "D:\Aconda\envs\pytorch\lib\site-packages\torch\nn\modules\module
03-08
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值