You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch变量转Tensor后标签张量为空无元素问题求助

问题原因
  • 核心错误是误用了torch.Tensor()的参数规则:torch.Tensor()是PyTorch浮点张量的类构造方法,当传入单个整数参数时,会生成一个对应长度的空一维张量。你传入的标签是标量0,因此直接生成了torch.Size([0])的空张量,和你预期的「将标量0转为张量」的逻辑完全不符。
  • 补充验证:你可以尝试传入label=3测试,torch.Tensor(3)会返回一个长度为3的未初始化浮点张量,同样不会返回值为3的标量张量。
解决方案

以下3种修正方案任选其一即可:

  1. 使用小写开头的torch.tensor()工厂方法,该方法会自动把输入标量转为对应值的张量,同时可直接指定数据类型,是最推荐的写法:
label = torch.tensor(label, dtype=torch.long)
  1. 将标量标签放入列表中再传入torch.Tensor(),让方法识别为张量的内容而非维度参数:
label = torch.Tensor([label]).long()
  1. 使用torch.as_tensor()方法,兼容标量输入,同时可自动匹配输入数据类型,避免不必要的内存拷贝:
label = torch.as_tensor(label, dtype=torch.long)

内容的提问来源于stack exchange,提问作者patrick823

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:36:03