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

PyTorch中二分类0/1张量调用one_hot编码报错如何调试

PyTorch one_hot 报错解决方案

报错原因

F.one_hot 仅支持整数类型的索引张量作为输入,你生成 capital_t 时使用的 torch.Tensor(y) 会默认生成 torch.float32 类型的浮点张量,不符合接口参数要求,因此触发报错。

解决方案

提供三个可直接落地的修改方案:

  • 方案1:生成张量时直接指定整数类型
    将 capital_t = torch.Tensor(y) 替换为如下代码,直接生成符合要求的长整型张量:
    capital_t = torch.tensor(y, dtype=torch.long)
    
  • 方案2:调用one_hot前做类型转换
    若不想修改张量生成逻辑,调用one_hot时追加类型转换逻辑即可:
    one_hot_capital = F.one_hot(capital_t.to(torch.long), 2)
    
  • 方案3:用torch.as_tensor生成指定类型的张量
    对于列表输入也可以用as_tensor方法指定类型,内存占用更高效:
    capital_t = torch.as_tensor(y, dtype=torch.int64)
    

验证方法

修改后可以先输出张量类型确认是否符合要求:

print(capital_t.dtype)
# 正确输出应为 torch.int64 或 torch.long

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:57:00