pytorch tensor int型除法出现的问题
昨天晚上跑起来一个classification实验,今天发现训练loss在降,然而accuracy永远是0 。。。直觉告诉我evaluation有问题
然后发现自己写了个很愚蠢的bug
accuracy对应的tensor出来是int型的,我用到了一个除法取平均。而pytorch里无论用 / or // 结果都是取整,,accuracy一直就没有。。
所以转换成float就没问题了,,低级bug,下不为例
补充:pytorch tensor division/除法
除法的时候要注意数据类型的问题
a = torch.div(torch.tensor([160, 110]), 0.137)
jupyter notebook就会奔溃, 因为torch.tensor([160, 110])是torch.int64数据类型, 而0.137(或者说torch.tensor(0.137))是torch.float32类型.
如果改成下面这样, 就会顺利运行
a = torch.div(torch.tensor([160, 110]).float(), 0.137)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
1. 扩展Tensor维度 相信刚接触Pytorch的宝宝们,会遇到这样一个问题,输入的数据维度和实验需要维度不一致,输入的可能是2维数据或3维数据,实验需要用到3维或4维数据,那么我们需要扩展这个维度.其实特别简单,只要对数据加一个扩展维度方法就可以了. 1.1torch.unsqueeze(self: Tensor, dim: _int) torch.unsqueeze(self: Tensor, dim: _int) 参数说明:self:输入的tensor数据,dim:要对哪个维度扩展就输
-
Pytorch生成随机数Tensor的方法汇总
在使用PyTorch做实验时经常会用到生成随机数Tensor的方法,比如: torch.rand() torch.randn() torch.normal() torch.linespace() 均匀分布 torch.rand(*sizes, out=None) → Tensor 返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数.张量的形状由参数sizes定义. 参数: sizes (int-) - 整数序列,定义了输出张量的形状 out (Tensor, optinal) -
-
pytorch 把图片数据转化成tensor的操作
摘要: 在图像识别当中,一般步骤是先读取图片,然后把图片数据转化成tensor格式,再输送到网络中去.本文将介绍如何把图片转换成tensor. 一.数据转换 把图片转成成torch的tensor数据,一般采用函数:torchvision.transforms.通过一个例子说明,先用opencv读取一张图片,然后在转换:注意一点是:opencv储存图片的格式和torch的储存方式不一样,opencv储存图片格式是(H,W,C),而torch储存的格式是(C,H,W). import torchvi
-
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的操作
我就废话不多说了,大家还是直接看代码吧~ b = torch.zeros((3, 2, 6, 6)) a = torch.zeros((3, 2, 1, 1)) a.expand_as(b).size() Out[32]: torch.Size([3, 2, 6, 6]) a = torch.zeros((3, 2, 2, 1)) a.expand_as(b).size() Traceback (most recent call last): File "/home/lart/.conda/en
-
Pytorch 使用tensor特定条件判断索引
torch.where() 用于将两个broadcastable的tensor组合成新的tensor,类似于c++中的三元操作符"?:" 区别于python numpy中的where()直接可以找到特定条件元素的index 想要实现numpy中where()的功能,可以借助nonzero() 对应numpy中的where()操作效果: 补充:Pytorch torch.Tensor.detach()方法的用法及修改指定模块权重的方法 detach detach的中文意思是分离,官方解释
-
Pytorch Tensor的索引与切片例子
1. Pytorch风格的索引 根据Tensor的shape,从前往后索引,依次在每个维度上做索引. 示例代码: import torch a = torch.rand(4, 3, 28, 28) print(a[0].shape) #取到第一个维度 print(a[0, 0].shape) # 取到二个维度 print(a[1, 2, 2, 4]) # 具体到某个元素 上述代码创建了一个shape=[4, 3, 28, 28]的Tensor,我们可以理解为4张图片,每张图片有3个通道,每个通道
-
pytorch tensor int型除法出现的问题
昨天晚上跑起来一个classification实验,今天发现训练loss在降,然而accuracy永远是0 ...直觉告诉我evaluation有问题 然后发现自己写了个很愚蠢的bug accuracy对应的tensor出来是int型的,我用到了一个除法取平均.而pytorch里无论用 / or // 结果都是取整,,accuracy一直就没有.. 所以转换成float就没问题了,,低级bug,下不为例 补充:pytorch tensor division/除法 除法的时候要注意数据类型的问题
-
pytorch: tensor类型的构建与相互转换实例
Summary 主要包括以下三种途径: 使用独立的函数: 使用torch.type()函数: 使用type_as(tesnor)将张量转换为给定类型的张量. 使用独立函数 import torch tensor = torch.randn(3, 5) print(tensor) # torch.long() 将tensor投射为long类型 long_tensor = tensor.long() print(long_tensor) # torch.half()将tensor投射为半精度浮点类型
-
Pytorch Tensor基本数学运算详解
1. 加法运算 示例代码: import torch # 这两个Tensor加减乘除会对b自动进行Broadcasting a = torch.rand(3, 4) b = torch.rand(4) c1 = a + b c2 = torch.add(a, b) print(c1.shape, c2.shape) print(torch.all(torch.eq(c1, c2))) 输出结果: torch.Size([3, 4]) torch.Size([3, 4]) tensor(1, dt
-
mysql日期date型和int型互换的方法
一.date型转换成int型 UNIX_TIMESTAMP('1997-10-04 22:23:00') =====> 875996580 二.int型转换成date型 FROM_UNIXTIME(875996580) =====> '1997-10-04 22:23:00' PHP里面将int型数据转换成日期输出 echo date('Y-m-d',$date); PHP里面将date型数据输出: echo $date; PHP里面将date型数据转换成int型: strtotime($d
-
用32位int型变量表示单引号括起来的四个字符的深入探讨
在C.C++中可以用32位int型变量表示单引号括起来的四个字符,例如下面代码中的示例: 复制代码 代码如下: // 字符c的16进制值是0x63,字符o的16进制值是0x6f, // 字符n的16进制值是0x6e int what = 'conn'; printf("The address of what is 0x%x \n", &what); printf("what 0x%x \n", what); if (what == 0x636f6e6e) {
-
Java利用移位运算将int型分解成四个byte型的方法
package 移位运算; public class 移位运算 { public static void main(String[] args) { //00000111 01011011 11001101 00010101 int n=123456789; //n为需要进行移位处理的32位int型初始值 byte[] a =chai(n); for (int i = 0; i < a.length; i++) { byte b=a[i]; System.out.print(b+" &qu
-
把pandas转换int型为str型的方法
今天在数据分析时遇到了一个小问题,这时才发现自己的基础知识真的不牢固,所以这里记录一下解决方法 问题: 我在处理完数据后得到的是一个列表,其中放入的是很多的元组,这时需要从元组中筛选数据保存为csv文件,但是我的数据都是int型的,所以我简单的使用了一个循环wf.write('{},{}\n'.format(str(item[0][0]),str(item[0][1]))),通过str来转换保存为str类型,但是当我再次打开文件时,发现它居然还是int,保存前都是str,真是奇了怪了. 这时该如
-
Pytorch Tensor的统计属性实例讲解
1. 范数 示例代码: import torch a = torch.full([8], 1) b = a.reshape([2, 4]) c = a.reshape([2, 2, 2]) # 求L1范数(所有元素绝对值求和) print(a.norm(1), b.norm(1), c.norm(1)) # 求L2范数(所有元素的平方和再开根号) print(a.norm(2), b.norm(2), c.norm(2)) # 在b的1号维度上求L1范数 print(b.norm(1, dim=
-
Pytorch Tensor 输出为txt和mat格式方式
假设result1为tensor格式,首先将其化为array格式(注意只变成numpy还不行),之后存为txt和mat格式 import scipy.io as io result1 = np.array(result1) np.savetxt('npresult1.txt',result1) io.savemat('save.mat',{'result1':result1}) 以上这篇Pytorch Tensor 输出为txt和mat格式方式就是小编分享给大家的全部内容了,希望能给大家一个参考
随机推荐
- 给图片加阴影效果的CSS
- SQLite中重置自动编号列的方法
- Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
- IOS多线程实现多图片下载(二)
- Java常用排序算法及性能测试集合
- fdupe 查找重复文件的Perl脚本代码
- PHP快速推送微信模板消息
- Python中正则表达式match()、search()函数及match()和search()的区别详解
- 用PHP实现多级树型菜单
- ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
- pandas 获取季度,月度,年度首尾日期的方法
- Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
- redis开启和禁用登陆密码校验的方法
- MyBatis通过BATCH批量提交的方法
- Python计算开方、立方、圆周率,精确到小数点后任意位的方法
- Android Studio三方引用报错但是项目可以运行的解决方案
- Python上下文管理器全实例详解
- Tensorflow轻松实现XOR运算的方式
- CentOS8上用Docker部署开源项目Tcloud的教程
- 从Go汇编角度解读for循环的问题