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

将极小浮点数列表转为PyTorch张量时触发TypeError问题求助

解决极小浮点数列表转PyTorch张量的TypeError问题

问题场景

需要将包含极小浮点数的列表ydata = [1.39e-11, 1.5e-12, 4.7e-16]转换为PyTorch张量,调用torch.FloatTensor(ydata)时触发错误:TypeError('must be real number, not str'),但检查列表元素类型均为float。

解决方案

  • 再次确认元素类型:执行print([type(x) for x in ydata])输出每个元素的类型,确保没有混入字符串类型。部分数据来源(如文件读取)可能会将数字以字符串形式存入列表,肉眼难以直接分辨。
  • 使用torch.tensor()替代旧API:PyTorch官方推荐使用更灵活的torch.tensor(),它能自动推断输入的数值类型,对极小浮点数的兼容性更好:
    import torch
    ydata = [1.39e-11, 1.5e-12, 4.7e-16]
    y_tensor = torch.tensor(ydata)
    print(y_tensor)
    
  • 显式指定数据类型:若仍有问题,可明确指定dtype,比如用torch.float32或torch.float64避免精度相关的隐式转换错误:
    y_tensor = torch.tensor(ydata, dtype=torch.float64)
    
  • 清洗数据来源:如果数据是从外部文件(CSV/JSON等)读取的,确保读取时完成类型转换。例如处理读取到的字符串型数字列表:
    # 示例:转换字符串型数字列表为float列表
    ydata_str = ["1.39e-11", "1.5e-12", "4.7e-16"]
    ydata = [float(item) for item in ydata_str]
    y_tensor = torch.tensor(ydata)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:47:03