解决pytorch 数据类型报错的问题
pytorch报错:
RuntimeError: Expected object of type Variable[torch.LongTensor] but found type Variable[torch.cuda.ByteTensor] for argument #1 ‘argument1'
解决方法:
pytorch框架在存储labels时,采用LongTensor来存储,所以在一开始dataset返回label时,就要返回与LongTensor对应的数据类型,即numpy.int64
补充:使用pytorch遇到的各种问题及解决方案
自己在使用pytorch遇到的各种问题及解决方案:
RuntimeError: Expected object of scalar type Float but got scalar type Double for argument #4 'mat1'
RuntimeError: The size of tensor a (12800) must match the size of tensor b (100) at non-singleton dimension 0
输入维度为12800,输出维度为100,输入输出的维度不一致,正确的例子如下:
inputs = [(1,2,3), (2,3,4)] outsputs = [4, 5]
将输入输出的长度改为一致
取tensor的第一个元素
XXX.item() # XXX为tensor对象
tensor中的元素改变数据类型
# 常常因为数据类型出错,要修改数据类型 XXX.int() XXX.float()
补充:Pytorch的Dataloader报错:TypeError: batch must contain tensors, numbers, dicts or lists
具体报错:
TypeError: batch must contain tensors, numbers, dicts or lists; found <class 'PIL.Image.Image'>
loader的代码:
dataloader=torch.utils.data.DataLoader(dataset,batch_size=1,shuffle=True)
表面上看这个代码没有问题,实际上问题出在了dataloader机制的要求上,dataloader要求接收的是一个tensor,而我的dataset没有做transform,所以dataset的getitem函数返回的是一个PIL的Image对象,所以就会报错
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
PyTorch中Tensor的数据类型和运算的使用
在使用Tensor时,我们首先要掌握如何使用Tensor来定义不同数据类型的变量.Tensor时张量的英文,表示多维矩阵,和numpy对应,PyTorch中的Tensor可以和numpy的ndarray相互转换,唯一不同的是PyTorch可以在GPU上运行,而numpy的ndarray只能在cpu上运行. 常用的不同数据类型的Tensor,有32位的浮点型torch.FloatTensor, 64位浮点型 torch.DoubleTensor, 16位整形torch.ShortTenso
-
pytorch中tensor张量数据类型的转化方式
1.tensor张量与numpy相互转换 tensor ----->numpy import torch a=torch.ones([2,5]) tensor([[1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.]]) # ********************************** b=a.numpy() array([[1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.]], dtype=float32) numpy --
-
pytorch使用 to 进行类型转换方式
在程序中,有多种方法进行强制类型转换. 本博文将介绍一个非常常用的方法:to()方法. 我们通常使用它来进行GPU和CPU的类型转换,但其实也可以用来进行torch的dtype转换. 常见方法:tensor.to('cuda:0') 先看官网介绍: **Performs Tensor dtype and/or device conversion. A torch.dtype and torch.device are inferred from the arguments of self.to(*
-
解决pytorch 数据类型报错的问题
pytorch报错: RuntimeError: Expected object of type Variable[torch.LongTensor] but found type Variable[torch.cuda.ByteTensor] for argument #1 'argument1' 解决方法: pytorch框架在存储labels时,采用LongTensor来存储,所以在一开始dataset返回label时,就要返回与LongTensor对应的数据类型,即numpy.int64
-
pytorch masked_fill报错的解决
如下所示: import torch.nn.functional as F import numpy as np a = torch.Tensor([1,2,3,4]) a = a.masked_fill(mask = torch.ByteTensor([1,1,0,0]), value=-np.inf) print(a) b = F.softmax(a) print(b) tensor([-inf, -inf, 3., 4.]) d:/pycharmdaima/star-transformer
-
解决mybatisplus插入报错argument type mismatch的问题
今天使用argument type mismatch发现插入的时候报错 java.lang.IllegalArgumentException: argument type mismatch 从错误中看是参数的问题,想到我再实体类里面定义了几个在数据库中没有的字段,就使用了 @TableField(exist = false) 来排除掉这个字段. 再跑发现还是这个错误,后来看了下主键的@TableId默认的type是IdType.NONE,想想我们应该用自增的id就手动增加了一个 @TableId
-
解决Maven 项目报错 java.httpservlet和synchronized使用方法
使用java8 的lanmbe表达式时,使用java1.8编译,则会报错 需要在pom.xml的<bulid></build>中添加 <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</versi
-
ECSHOP完美解决Deprecated: preg_replace()报错的问题
随着PHP5.5 的普及,ECSHOP系统又爆出了新的错误.PHP发展到PHP5.5版本以后,有了很多细微的变化.而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百出.说了半天,这个新错误到底是什么呢,它的完整错误提示信息是这样的: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in....... 注意:不是所有人的ECS
-
解决Unixbench安装报错信息的问题
运行环境: Ubuntu 16.04.3 x86_64 在Ubuntu下安装运行Unixbench时,提示报错信息如下 gcc -o ./pgms/ubgears -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/ubgears.c -lGL -lXext -lX11 /usr/bin/ld: /tmp/ccnTgDEZ.o: undefined reference
-
解决vue项目报错webpackJsonp is not defined问题
在vue单页面应用中,我们大概都会使用CommonsChunkPlugin这个插件. 传送门 CommonsChunkPlugin 但是在项目经过本地测试没有任何问题,打包上线后却会报错 webpackJsonp is not defined.这是因为公共文件必须在自己引用的js文件之前引用. 可以手动改文件引用,但是推荐以下解决办法: 找到build→webpack.prod.conf.js→找到HtmlWebpackPlugin插件,添加如下配置即可 chunks: ['manifest',
-
解决yum安装报错Protected multilib versions的问题
今天在云服务器上装nginx,需要先安装一些依赖库比如zlib,但是安装zlib时候报错. yum install -y zlib zlib-devel (-y 指的是如果需要选yes no的自动y)下面是报错 Protected multilib versions: zlib-1.2.7-17.el7.x86_64 != zlib-1.2.7-15.el7.i686 原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上 --setopt=protected_multili
-
解决pytorch-yolov3 train 报错的问题
UserWarning: indexing with dtype torch.uint8 is now deprecated, please use a dtype torch.bool instead https://github.com/eriklindernoren/PyTorch-YOLOv3/blob/master/models.py#L191 将model.py obj_mask转为int8 bool obj_mask=obj_mask.bool() # convert int8
-
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
报错信息 最近闲来无事,用python的tkinter库开发了一款带日程提醒的万年历桌面程序.在程序开发结束开始打包时,却发现一直报错 PyInstaller cannot check for assembly dependencies. Please install PyWin32 or pywin32-ctypes. pip install pypiwin32 但是运行pip install pypiwin32时却提示两个库都已经安装过了 可是当再运行打包脚本时就是死活无法打包,就是提示缺少
随机推荐
- 正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
- jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
- JQuery fileupload插件实现文件上传功能
- html文档中的location对象属性理解及常见的用法
- js右下角弹出提示框示例代码
- MySQL SQL语句优化的10条建议
- JS如何判断json是否为空
- Asp下实现多表单域无组件文件上传的实例
- AJAX 自学练习 请求与显示
- JQuery实现动态适时改变字体颜色的方法
- Ruby实现邮件主动推送触发程序
- c语言获取文件大小的示例
- Android通过json向MySQL中读写数据的方法详解【写入篇】
- js时间戳转为日期格式的方法
- 浅谈C++继承中的名字查找
- android Setting中隐藏项实现原理与代码
- Php+SqlServer实现分页显示
- JavaScript去掉数组重复项的方法分析【测试可用】
- JS动态插入脚本和插入引用外部链接脚本的方法
- Layui动态生成select下拉选择框不显示的解决方法