首页 > 编程语言 >Python报错 | RuntimeError: expected scalar type Long but found Float

Python报错 | RuntimeError: expected scalar type Long but found Float

时间:2023-07-07 13:12:27浏览次数:36  
标签:float nn Python RuntimeError torch 数据类型 报错 import

报错信息

在执行nlp自定义模型的训练函数的时候,报如下错误:

RuntimeError: expected scalar type Float but found Long

错误原因

错误信息指出了问题所在:模型期望的数据类型是 float,但实际上传递给模型的数据类型是 long。

这个错误通常是由于张量数据类型不匹配引起的。在 PyTorch 中,张量数据类型非常重要,因为它们指定了张量中存储的数值的精度和类型。如果您在模型的前向传递中使用了错误的数据类型,就会出现这个错误。

例如:

import torch
import torch.nn as nn

v = torch.tensor([0])
m = nn.Linear(1, 10)
m(v)

运行结果:

因为input也就是我们的v是torch.long类型的而weight是torch.float类型。所以在做矩阵乘法的时候这两种类型的不一致导致了报错。

解决方案

把v的dtype显示地设置成torch.float代码就成功运行了

import torch
import torch.nn as nn
# dtype=torch.float必不可少
v = torch.tensor([0], dtype=torch.float)
m = nn.Linear(1, 10)
m(v)

运行结果:

tensor([-0.6189, -0.9843, -0.7568,  0.9157,  0.5192, -0.6109, -0.5627, -0.7755,
        -0.9522,  0.7771], grad_fn=<AddBackward0>)

标签:float,nn,Python,RuntimeError,torch,数据类型,报错,import
From: https://www.cnblogs.com/zhangxuegold/p/17534668.html

相关文章

  • python爬虫scrapy入门教程
    背景:python实现网页爬虫,可以使用scrapy,首先,需要安装python的运行环境,我们这里使用anaconda集成环境。安装好以后,打开AnacondaNavigator,打开CMD.exePrompt,在命令行窗口运行:pipinstallscrapy,运行完,没有报错,意味着scrapy就安装好了,然后,在当前文件夹下新建一个文件,名为:myspider.p......
  • python列表
     访问方式和字符串一样有两种,一种是正向进行的,下标从0开始,另一种是反向进行的,下标从-1开始切片的语法同样适用于列表基本语法:列表名[m:n]当mn都存在时,访问所表示的元素区间但是不包括n所对应的元素当mn都不存在时,访问整个列表元素当m存在n不存在时,访问从m开始直到结尾的所......
  • Python最后一位怎么表示角标 这个问题怎么解决?
    解决问题:查找列表中特定元素的最后一位角标在Python中,我们可以使用不同的方法来查找列表中特定元素的最后一位角标。下面将介绍三种常用的方法:使用enumerate()函数,使用len()函数和列表切片。方法一:使用enumerate()函数enumerate()函数可以同时返回列表的元素和对应的角标。我们......
  • linux系统报错:系统自己弹出诸如 kernel:NMI watchdog: BUG: soft lockup - CPU#2 stuc
    1、https://blog.csdn.net/weixin_41752389/article/details/120777145 内核软死锁(softlockup)Softlockup:这个bug没有让系统彻底死机,但是若干个进程(或者kernelthread)被锁死在了某个状态(一般在内核区域),很多情况下这个是由于内核锁的使用的问题。出现死锁原因1、CPU高负载时......
  • python下使用redis分布式锁
    python下使用redis分布式锁1.什么场景需要分布式锁?我们在写业务逻辑的时候,如果多个线程同时访问某个共享变量,一般是对变量进行上锁或者使用queue.Queue()实现,以做到线程安全保证数据不被污染。在单机部署的情况下这样做完全没问题,但是随着业务规模的发展,某些单机部署的系统......
  • python wincon32 word复制
    defword_copy(f1,f2):app=win32com.client.Dispatch('Word.Application')#打开word,经测试要是绝对路径doc=app.Documents.Open(f1)#复制word的所有内容doc.Content.Copy()#关闭worddoc.Close()word=win32com.client.Dispatc......
  • 这100道Python面试题,你会做几道?【21~25题】
    二十一、请介绍下TCP和UDP的区别TCP(TransmissionControlProtocol)和UDP(UserDatagramProtocol)是两种常见的传输层协议,用于在计算机网络中传输数据。它们在数据传输方面有以下区别:连接导向vs无连接:TCP是面向连接的协议,它在通信之前建立了一个可靠的连接。连接的建立过程包......
  • Centos7安装python
    1.yum方式默认已经安装2.7.5版本#若没有执行[root@master~]#yuminstall-ypython#查看版本[root@master~]#python-VPython2.7.52.安装python3linux版本下载网址#安装编译python3所用到的相关依赖yuminstallzlibzlib-develbzip2-developenssl-develncur......
  • 华为超算平台git、cmake、wget、curl报错:SSLv3_client_method version OPENSSL_1_1_0
    最近在使用超算平台时报错,不管是git、cmake、wget、curl中的哪个都报错,大致错误: /usr/bin/cmake3:relocationerror:/usr/lib64/libcurl.so.4:symbolSSLv3_client_methodversionOPENSSL_1_1_0notdefinedinfilelibssl.so.1.1withlinktimereference  参考网......
  • python新发地每日菜价提取
    importrequestsimportcsvimporttimeclassprice_spider(object):def__init__(self):self.headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome......