RuntimeError: expected dtype Double but got dtype Float 问题解决

2023-11-04

利用Pytorch框架自己构建网络结构,在程序运行到“loss.backward()”的时候报错:
 

RuntimeError: expected dtype Double but got dtype Float (validate_dtype at ..\aten\src\ATen\native\TensorIterator.cpp:143)
(no backtrace available)

通过查询资料得知,该错误来自于输入数据的类型和模型参数类型不一致。因此最好在程序开始统一数据类型。

Pytorch里的tensor创建时默认是Torch.FloatTensor类型(torch.float32),

可通过在import语句后增加语句

torch.set_default_tensor_type(torch.DoubleTensor)

这样之后创建的变量类型都是Double类型(torch.float64)。

如果想要创建变量类型都是Float类型,在import后增加语句

torch.set_default_tensor_type(torch.FloatTensor)

后,执行卷积操作时会报错:

RuntimeError: Expected object of scalar type Double but got scalar type Float for argument #3 'mat1' in call to _th_addmm_

这是因为numpy的默认数据类型为float64,如果根据torch.from_numpy创建tensor,如b = torch.from_numpy(a),a和返回的b共享一块内存,因此b的类型也是torch.float64,即double类型。

因此如果想要项目中参数类型都为Float类型,不仅要加

torch.set_default_tensor_type(torch.FloatTensor)

还要在根据numpy数据创建tensor时将其转换为float类型

    train_data_split = torch.from_numpy(train_data_split).float()

这样就不会报错了。

参考:

https://blog.csdn.net/chotin/article/details/104046744

https://pytorch.org/docs/stable/generated/torch.set_default_tensor_type.html

https://blog.csdn.net/Pl_Sun/article/details/106969577

https://discuss.pytorch.org/t/runtimeerror-expected-object-of-scalar-type-double-but-got-scalar-type-float-for-argument-2-weight/38961/13

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

RuntimeError: expected dtype Double but got dtype Float 问题解决 的相关文章

  • 一、Gradle入门

    文章目录 一 Gradle入门 1 1 Gradle 简介 1 2 常见的项目构建工具 1 3 Gradle 安装 1 3 1 Gradle 安装说明 1 3 2 安装 JDK 1 3 3 下载并解压到指定目录 1 3 4 配置环境变量 1
  • 关于typedef的用法总结

    typedef的应用 typedef是C 语言中用于为现有数据类型指定替代名称的关键字 它主要用于用户定义的数据类型 当数据类型的名称在程序中使用变得稍微复杂时 以下是使用的一般语法 typedef
  • Pytorch框架学习 -2 torch.nn.modules.Module(nn.Module)理解

    文章目录 Pytorch框架学习 2 torch nn modules Module nn Module 理解 最简单的例子 分析 部分源码 基本参数 dump patches version training 初始化函数 paramete
  • Vue进阶(一):v-loading实现加载效果

    原文链接 https blog csdn net sunhuaqiang1 article details 95474410 使用v loading在接口为请求到数据之前 显示加载中 直到请求到数据后消失 全局loading
  • 七牛云的使用

    1 https www qiniu com 用qq或者微信登入七牛云 2 添加一个对象存储 3 在个人中心获取appkey和appsecret 4 绑定一个域名 5 把sdk放在自己的项目中 封装一个上传的类
  • 华为笔试8.31

    Q1 int main int argc char const argv string l An introduction is the first paragraph of your paper string l a a getline
  • 【问题解决】M1芯Macbook安装python&M1 Macbook pro基本操作

    刚接触Macbook 一步一个坑 有幸家中领导赏识 才得以抚摸到传这闻已久的神器 可这神功尚未练成 差点被气的自断经脉 之前没用过苹果os系统 刚一上手各种不适应 要不是因为爱 qiong 电脑早不知道摔多少次了 F1 12哪去了 我这PK
  • 纯前端实现 导入 与 导出 Excel

    最近经常在做 不规则Excel的导入 或者一些普通Excel的导出 当前以上说的都是纯前端来实现 下面我们来聊聊经常用到的Excel导出与导入的实现方案 本文实现技术栈以 Vue2 JS 为例 导入分类 调用 API 完全由后端来解析数据
  • QT实现发送get和post请求

    介绍下如何在qt程序中给http服务端发送get和post请求 首先你要有一个http服务端 下面直接贴下代码 pro QT core gui network greaterThan QT MAJOR VERSION 4 QT widget
  • Android系统 —— 源码编译错误整理(持续更新)

    记录一些日常遇到的编译问题及解决方法 查找的时候可以直接搜索问题描述的关键部分 目录 1 更改源码目录名引发的错误 2 添加VNDK库 Vendor Native Development Kit 报错 3 头文件被重复包含 4 无法链接库文
  • 【FlashDB】第三步 FlashDB 移植 STM32L475 使用QSPI驱动外部 flash W25Q64之 FlashDB 移植

    准备事项 完成了以下两步操作后进行 FlashDB 第一步 FlashDB 移植到 STM32L475 使用QSPI驱动外部 flash W25Q64之FAL移植 FlashDB 第二步 FlashDB 移植 STM32L475 使用QSP
  • Anaconda使用教程(常用命令)

    Anaconda3安装教程 配置环境变量 图文教程 https blog csdn net love906897406 article details 125010258https blog csdn net love906897406 a
  • ECharts数据可视化

    目录 第一章 什么是ECharts 第二章 搭建环境 2 1 Echarts的下载 2 2 Visual Studio Code下载 第三章 一个简单的可视化展示 第四章 Echarts组件 4 1 标题 4 2 提示框 4 3 工具栏 4
  • 机器学习实战5(回归篇)

    目录 1 回归 2 回归代码 3 预测鲍鱼的年龄 1 回归 前面的文章介绍了很多分类算法 分类的目标变量是标称型数据 而本文将会对连续型的数据做出预测 主要讲解简单的线性回归和局部加权线性回归 并通过预测鲍鱼年龄的实例进行实战演练 说到回归
  • Keil 硬件仿真时 外设寄存器中显示的定时器计数值不准确

    最近在做定时器同步测试 发现无论如何都无法正常让定时器的计数器同步起来 很郁闷 换了多个型号的单片机都不行 于是怀疑 软件仿真有问题 于是通过曲线测试 使用连个自变量 同时读取2个定时器的CNT 观察这两个变量测试的结果才 正常
  • 解决eclipse编译老是上一个程序代码问题

    使用eclipse遇到了问题 程序无论怎么运行都是之前修改前的程序结果 如下面所示 package test public class test public static void main String args TODO Auto g
  • JavaWeb核心技术——Request请求

    目录 1 Request和Response的概述 2 Request对象 2 1 Request继承体系 2 2 Request获取请求数据 2 2 1 获取请求行数据 2 2 2 获取请求头数据 2 2 3 获取请求体数据 2 2 4 获

随机推荐

  • educoderpython答案顺序结构程序设计_程序设计基础

    程序设计基础 一 程序设计方法与风格 1 设计方法 指设计 编制 调试程序的方法和过程 主要有结构化程序设计方法 软件工程方法和面向对象方法 2 设计风格 良好的程序设计风格 主要应注重和考虑下述一些因素 符号名的命名应具有一定的实际含义
  • navicat连接mysql1064_navicat for mysql出现1064错误怎么办

    navicat for mysql出现1064错误怎么办 存储过程 参数 代码 分隔符 长度 navicat for mysql出现1064错误怎么办 易采站长站 站长之家为您整理了navicat for mysql出现1064错误怎么办的
  • 【pandas】空数据处理

    目录 1 判断空值 isna 2 空值删除 dropna 3 空值替换 dropna 数据清洗是对一些没有用的数据进行处理的过程 很多数据集存在数据缺失 数据格式错误 错误数据或重复数据的情况 如果要使数据分析更加准确 就需要对这些没有用的
  • 机器学习策略二——优化深度学习系统

    进行误差分析 Carrying out error analysis 如果你希望让学习算法能够胜任人类能做的任务 但你的学习算法还没有达到人类的表现 那么人工检查一下你的算法犯的错误也许可以让你了解接下来应该做什么 这个过程称为错误分析 假
  • C++如何做字符串分割(5种方法)

    1 用strtok函数进行字符串分割 原型 char strtok char str const char delim 功能 分解字符串为一组字符串 参数说明 str为要分解的字符串 delim为分隔符字符串 返回值 从str开头开始的一个
  • 卷积神经网络(CNN)详解与代码实现

    1 应用场景 卷积神经网络的应用不可谓不广泛 主要有两大类 数据预测和图片处理 数据预测自然不需要多说 图片处理主要包含有图像分类 检测 识别 以及分割方面的应用 图像分类 场景分类 目标分类 图像检测 显著性检测 物体检测 语义检测等等
  • 关于二阶锥优化(SOCP)的学习

    原来 数学不好的时候 真的很难深入下去做研究 最近的两个月时间里 我就边学习SOCP相关的理论知识 一边拿它当工具来分析多视角几何中的问题 包括Triangulation Homography Estimation等 接触到SOCP的起因在
  • Linux脚本启动jar包

    注意 以下脚本笔者是在Windows上编辑的 因此默认格式是dos 如果在Linux上使用 请使用vi命令编该文件 改为Unix格式 笔者使用的SpringBoot jsp 因此使用的是war包 如果你使用的是jar包 在文中用到war的地
  • 【notepad++】中删除中文字符

    一 龥
  • html中图片自动循环滚动代码,实现长图片自动循环滚动效果

    实现思路 滚动效果用实现 有个方法 可以滚动到指定位置 有滚动效果 不是直接到指定位置 不了解的看这里种定位滚动方式演示 每一个Item是一张长图 这样首尾相接滚动起来 滚到无限远 就是无限循环的效果 然后再改变滚动的速度 就可以了 sav
  • SVM实现MNIST手写数字识别的实验

    本文是对手写数字识别 二 SVM 实现Mnist image 手写数字图像识别 Sanger1990的博客 CSDN博客 mnist svm 文章中程序的小修改 使代码正常完成预定工作 原代码不能正常完成运行 from PIL import
  • 如何移植和使用QJson?

    一 QJson库的下载 下载链接 http qjson sourceforge net build 二 使用Qt4 8 Mingw编译QJson 1 解压QJson master压缩包 新建一个QJson目录 将QJson master中的
  • 北大AI公开课2019

    2019年2月20日 北京大学 人工智能前沿与产业趋势 正式开课 本学期的课程邀请到了商汤科技副总裁沈徽 驭势科技CEO吴甘沙 微软亚洲研究院副院长周明 360人工智能研究院院长颜水成 YC中国创始人及CEO 百度集团副董事长陆奇等14位来
  • RGMII接口延时问题分析

    问题1 为什么RGMII时钟线和数据线要做延时处理 由于RGMII的数据传输是根据时钟信号采样获得的 RGMII时钟在1000Mb s速率下在上升沿和下降沿均进行采样 在100Mb s速率及10Mb s速率下 仅在上升沿采样数据位 这就会出
  • IEC60601-1-2并列标准:电磁兼容第四版(2014 ed4.0/2020ed 4.1 )对比第三版2007更新内容VS新YY9706.102-2021ed3和旧YY0505-2012ed2.1

    目录 旧版YY 0505 2012 IEC60601 1 2 2004 ed2 1 与新版YY 9706 102 2021 IEC60601 1 2 2007 ed3 IEC 60601 1 2版本迭代 IEC 60601 1 2 2007
  • X-Frame-Options(点击劫持)

    漏洞描述 点击劫持 ClickJacking 是一种视觉上的欺骗手段 攻击者使用一个透明的iframe 覆盖在一个网页上 然后诱使用户在网页上进行操作 此时用户将在不知情的情况下点击透明的iframe页面 通过调整iframe页面的位置 可
  • 计算机层次结构的四个纬度,2014年计算机一级考试MS Office第四章考点解析(12)

    4 5 图标 4 5 1图表的基本概念 1 图表类型 Excel提供了标准图表类型 每一种图表类型又分为多个子类型 可以根据需要选择不同的 图表类型表现数据 常用的图表类型有 柱形图 条形图 饼图 面积图 XY散点图 圆 环图 股价图 曲面
  • 让VBS脚本也有GUI图形界面

    set ie wscript createobject internetexplorer application event 创建ie对象 ie menubar 0 取消菜单栏 ie addressbar 0 取消地址栏 ie toolba
  • js实现前端HTML操作用户文件的读写(已封装)

    readFile 第一个方法是 readFile 用于读取文件内容并以 Promise 对象的形式返回 它接受一个 File 对象和一个可选的编码格式参数 使用 FileReader 对象读取文件内容 当读取完成时调用 resolve 方法
  • RuntimeError: expected dtype Double but got dtype Float 问题解决

    利用Pytorch框架自己构建网络结构 在程序运行到 loss backward 的时候报错 RuntimeError expected dtype Double but got dtype Float validate dtype at