【已解决】Pytorch RuntimeError: expected scalar type Double but found Float

2024-01-09

在这里插入图片描述
本文作者: slience_me


项目场景:

在训练模型时候,将数据集输入到网络中去,在执行卷积nn.conv1d()的时候,报出此错误


问题描述

报错堆栈信息

Traceback (most recent call last):
  File "D:\codeHub\AssumptionAnalysis\2024-01-08-ModernTCN\main.py", line 27, in <module>
    pred_series = model(data_tensor_part)
  File "C:\Users\slience_me\.conda\envs\machine-learning\lib\site-packages\torch\nn\modules\module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "C:\Users\slience_me\.conda\envs\machine-learning\lib\site-packages\torch\nn\modules\module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "D:\codeHub\AssumptionAnalysis\2024-01-08-ModernTCN\model.py", line 191, in forward
    x_emb = self.embed_layer(x)  # [B, M, L] -> [B, M, D, N]
  File "C:\Users\slience_me\.conda\envs\machine-learning\lib\site-packages\torch\nn\modules\module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "C:\Users\slience_me\.conda\envs\machine-learning\lib\site-packages\torch\nn\modules\module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "D:\codeHub\AssumptionAnalysis\2024-01-08-ModernTCN\model.py", line 76, in forward
    x_emb = self.conv(x_pad)  # [B*M, 1, L+P-S] -> [B*M, D, N]
  File "C:\Users\slience_me\.conda\envs\machine-learning\lib\site-packages\torch\nn\modules\module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "C:\Users\slience_me\.conda\envs\machine-learning\lib\site-packages\torch\nn\modules\module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "C:\Users\slience_me\.conda\envs\machine-learning\lib\site-packages\torch\nn\modules\conv.py", line 310, in forward
    return self._conv_forward(input, self.weight, self.bias)
  File "C:\Users\slience_me\.conda\envs\machine-learning\lib\site-packages\torch\nn\modules\conv.py", line 306, in _conv_forward
    return F.conv1d(input, weight, bias, self.stride,
RuntimeError: expected scalar type Double but found Float

原因分析:

  • tensor的数据类型dtype不正确

这个错误通常是由于数据类型不匹配导致的。在PyTorch中,张量有不同的数据类型,如float32(FloatTensor)和float64(DoubleTensor)等。在进行计算时,PyTorch要求输入的张量数据类型要与操作或模型所期望的数据类型一致,否则会出现这个错误。

例如,如果你的模型或操作期望输入的数据类型为Double(float64),但你提供的张量类型是Float(float32),就会出现类似的错误。PyTorch会提示它期望的数据类型与实际提供的数据类型不匹配。


解决方案:

  • 将数据类型转为float32
  • 或者将数据类型转为float64

解决这个问题的方式通常是将数据类型转换为匹配模型或操作所期望的类型。可以使用 .to() 方法将张量转换为正确的数据类型。例如,将Float类型的张量转换为Double类型:

double_tensor = float_tensor.to(torch.double)
double_tensor = float_tensor.to(torch.float64)
# 或者
float_tensor = double_tensor.to(torch.float32)

另外,还需确保模型的输入数据类型与模型定义时期望的数据类型相匹配,这样可以避免出现数据类型不一致的错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【已解决】Pytorch RuntimeError: expected scalar type Double but found Float 的相关文章

随机推荐

  • Move 向未来,2024 开发者大会热潮涌动

    1 月 13 日至 14 日 2024 Move 开发者大会 Move 生态关键的一年 将于上海举办 本次大会由 MoveFuns OpenBuild 和 MoveBit 主办 Rooch AptosGlobal alcove zkMove
  • go-carbon v2.3.4 发布,轻量级、语义化、对开发者友好的 Golang 时间处理库

    carbon 是一个轻量级 语义化 对开发者友好的 golang 时间处理库 支持链式调用 目前已被 awesome go 收录 如果您觉得不错 请给个 star 吧 github com golang module carbon gite
  • mybatis 增删改查

    MyBatis 是一种持久化框架 主要用于简化数据库访问代码的编写 它允许开发者使用 XML 或注解来配置 SQL 映射 并提供了自动将数据库操作映射到 Java 对象的功能 以下是 MyBatis 中的基本增删改查操作的示例 1 增加 I
  • Spark 中 BroadCast 导致的内存溢出(SparkFatalException)

    背景 本文基于 Spark 3 1 1 open jdk 1 8 0 352 目前在排查 Spark 任务的时候 遇到了一个很奇怪的问题 在此记录一下 现象描述 一个 Spark Application Driver端的内存为 5GB 一直
  • 服务器超线程的好处

    服务器超线程的好处 1 提高性能 超线程通过提高整体系统吞吐量显着提高服务器性能 通过允许多个线程在单个物理内核上同时执行 超线程减少了空闲时间并最大限度地利用了可用资源 这会加快任务执行速度并缩短应用程序的响应时间 尤其是在多线程工作负载
  • Uservisual studio winform界面切换成设计器模式,按钮移动一个位置,但是很多的designer.cs代码都变化

    当你在 Visual Studio 中通过设计器模式移动 WinForms 界面上的控件 例如按钮 实际上是在进行图形化的布局更改 这会导致设计器生成的 designer cs 文件中的相应代码也发生变化 以下是一些可能导致代码变化的情况
  • 智能访客定位在实际生活的应用

    随着科技的发展 定位技术在我们的生活中扮演着越来越重要的角色 如今 智能访客定位系统已经成为了各大企业单位办公的标配 在这个万物互联 信息数据大爆发 移动互联网普及的时代 基于物联网技术的智能访客定位系统可以说是 无处不在 它的作用不仅仅是
  • 改善python程序的91建议记录

    使用else子句简化循环 异常处理 案例1 执行sql异常时处理 def save db obj try save attr1 db execute a sql stmt obj attr1 save attr2 db execute an
  • DD小桔高级数分 2面挂

    偏业务分析一点 注重AB实验在实际业务中的操作 业务方交流方式 一面 同事面 中规中矩 面试内容偏简单 不知道是不是因为晚8点面试的原因项目没有进行深究 自我介绍 项目介绍 1 你在实际项目中是怎么设计AB实验 2 你在实际业务场景中是怎么
  • K8S部署pod状态CreateContainerConfigError问题解决

    天行健 君子以自强不息 地势坤 君子以厚德载物 每个人都有惰性 但不断学习是好好生活的根本 共勉 文章均为学习整理笔记 分享记录为主 如有错误请指正 共同学习进步 文章目录 场景 问题 解决 场景 在k8s中部署gitlab后查看状态并非R
  • 安达发|基于APS排程系统的PDM功能

    APS系统 Advanced Planning and Scheduling 先进计划与排程 是一种基于APS系统 Advanced Planning and Scheduling 先进计划与排程 是一种基于供应链管理和生产管理的综合性软件
  • Firefox浏览器-渗透测试插件推荐

    在日常工作中可能需要一些浏览器插件辅助我们做工作 下面是比较好的 当然不一定对你有用 找到适合自己的即可 FoxyProxy FoxyProxy是一个高级的代理管理工具 它完全替代了Firefox有限的代理功能 它提供比SwitchProx
  • 如何进行文本的全局搜索/替换?

    如果您经常处理大量文本 需要搜索和替换特定的词语或其他内容 HelpLook则通过其搜索 替换功能提供了一个方便的解决方案 通过使用搜索 替换功能 您可以在文章中快速找到特定的单词 并用新的文本替换它们 这对于处理大型文档或者需要大量更新的
  • 开关电源测试方法:怎么测试开关电源输入电压跌落和输出动态负载?

    开关电源输入电压跌落与输出动态负载测试 电压跌落是指开关电源电压突然从额定值降到某一电势点 从而引起用电设备线路电流突然变化 形成电势冲击造成损坏 在电源使用过程中 当输入电压跌落时 开关电源突加负载的情况是可能发生的 此时功率器件 磁性元
  • 更改本地NuGet包的存储位置

    如果你想更改NuGet本地包的默认存储位置 你可以按照以下步骤进行 更改本地NuGet包的存储位置 1 打开 Visual Studio 并进入 Tools 菜单 2 选择 Options 3 在弹出的对话框中 展开 NuGet Packa
  • 安达发APS排产软件之PDM产品工艺数据管理

    PDM Product Data Management 产品数据管理 是一种用于管理产品全生命周期内所有与产品相关的信息和数据的技术 在制造业中 PDM系统被广泛应用于产品工艺数据管理 以提高生产效率 降低成本 保证产品质量和缩短产品上市时
  • Android 9.0 ota升级关于SettingsProvider新增和修改系统数据相关功能实现

    1 前言 在9 0的系统rom定制化开发中 在进行ota升级的过程中 由于在SettingsProvider中新增了系统属性和修改某项系统属性值 但是在ota升级以后发现没有 更新 需要恢复出厂设置以后才会更改 但是恢复出厂设置 会丢掉一些
  • 等价类划分法

    专注于分享软件测试干货内容 欢迎点赞 收藏 留言 如有错误敬请指正 软件测试面试题分享 1000道软件测试面试题及答案 软件测试实战项目分享 纯接口项目 完整接口文档 软件测试实战项目分享 WEB 测试自动化项目实战 软件测试学习教程推荐
  • 医疗机构如何释放数据要素价值 推动数据资产化

    在智慧医院建设加速的今天 数据已经成为医疗机构核心的资产之一 无论是基于数据的智慧运营决策 还是医疗AI模型训练与推理 都需要大规模数据的利用 在近日国家数据局等17部门联合印发的 数据要素 三年行动计划 2024 2026年 中 要求医疗
  • 【已解决】Pytorch RuntimeError: expected scalar type Double but found Float

    本文作者 slience me 文章目录 项目场景 问题描述 原因分析 解决方案 项目场景 在训练模型时候 将数据集输入到网络中去 在执行卷积nn conv1d 的时候 报出此错误 问题描述 报错堆栈信息 Traceback most re