pytorch查看通道数 维数 尺寸大小方式


Posted in Python onMay 26, 2020

查看tensor

x.shape # 尺寸
x.size() # 形状
x.ndim # 维数

例如

import torch
parser = argparse.ArgumentParser(description='PyTorch')
parser.add_argument('--img_w', default=144, type=int, metavar='imgw', help='img width')
parser.add_argument('--img_h', default=288, type=int, metavar='imgh', help='img height')
parser.add_argument('--batch-size', default=32, type=int,metavar='B', help='training batch size')
parser.add_argument('--test-batch', default=64, type=int, metavar='tb', help='testing batch size')
 
class net(nn.Module):
 def __init__(self, arch='resnet18'):
 super(net, self).__init__()
 model_ft = models.resnet50(pretrained=True)
 self.visible = model_ft
 
 def forward(self, x):
 print(x.shape)
 print(x.size())
 print(x.ndim)
 
 input = self.visible.conv1(x)
 
 print(input.shape)
 print(input.size())
 print(input.ndim)

pytorch查看通道数 维数 尺寸大小方式

从左至右起,32表示训练集batch_size大小,3是图像通道数,288是图像高度,144是图像宽度,图像尺寸 288*144,维度个数是4。很多博客在介绍论文时候,没有准确表达这些参数名称,往往出现张冠李戴,导致读者后续使用过程中被老师ma

经过标准resnet50第一层卷积后,结果是:32表示训练集batch_size大小,64是图像通道数,72是图像高度,36是图像宽度,图像尺寸72*36,维数是4

补充知识:pytorch中与维度/变换相关的几个函数

torch.size ()

先说torch.size()函数,因为后面的方法都会用这个方法看到变换后的矩阵的维度

通过该方法,可以查看当前Tensor的维度,用法也很简单:

>>>import torch
>>>a = torch.Tensor([[[1, 2, 3], [4, 5, 6]]])
>>>a.size()
torch.Size([1, 2, 3])

torch.view()

官方文档中的解释:

pytorch查看通道数 维数 尺寸大小方式

简单说,把原本的tensor尺寸,转变为你想要的尺寸,例如原尺寸为23,现在可以转为32或16等,但一定要保证等式成立,不能目标尺寸为33

此外,也可以设其中一个尺寸为-1,表示机器内部自己计算,但同时只能有一个为-1,用法如下:

>>> b=a.view(-1, 3, 2)
>>> b
tensor([[[1., 2.],
  [3., 4.],
  [5., 6.]]])
>>> b.size()
torch.Size([1, 3, 2])

torch.squeeze() / torch.unsqueeze()

torch.squeeze(n)函数表示压缩tensor中第n维为1的维数,比如下面第一个,b.squeeze(2).size(),原始的b为上面的torch.Size([1, 3, 2]),第二维是2≠1,所以不压缩,尺寸保持不变;而若b.squeeze(0).size(),则发现第一维为1,因此压缩为3x2的tensor

>>> b.squeeze(2).size()
torch.Size([1, 3, 2])
>>> b.squeeze(0).size()
torch.Size([3, 2])

相反的,torch.unsqueeze(n)则是在第n维增加一个维数=1,如下,表示在原始的b的第二维增加一维,则尺寸变为1 * 3 * 1 * 2

>>> b.unsqueeze(2).size()
torch.Size([1, 3, 1, 2])
>>> b.unsqueeze(2)
tensor([[[[1., 2.]],

  [[3., 4.]],

  [[5., 6.]]]])

torch.permute()

这个函数表示,将原始的tensor,按照自己期望的位置重新排序,例如原始tensor的第0、1、2维分别是1、3、2,那么当我执行permute(2, 0, 1),则将第三维放在最前,第一维放在中间,第二维放在最后,也就变成了2 * 1 * 3,注意这里表示的维数的index,而不是具体几维:

>>> b.permute(2, 0, 1).size()
torch.Size([2, 1, 3])
>>> b.permute(2, 0, 1)
tensor([[[1., 3., 5.]],

 [[2., 4., 6.]]])

暂时只想到这些,若有错误还请指正,或有其他相关函数,我也将持续更新。

以上这篇pytorch查看通道数 维数 尺寸大小方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的Twisted框架中使用Deferred对象来管理回调函数
May 25 Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 Python
python实现用户答题功能
Jan 17 Python
python在回调函数中获取返回值的方法
Feb 22 Python
PYQT5设置textEdit自动滚屏的方法
Jun 14 Python
python中metaclass原理与用法详解
Jun 25 Python
python创建与遍历List二维列表的方法
Aug 16 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
Aug 28 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
Dec 22 Python
keras中的backend.clip用法
May 22 Python
python中如何进行连乘计算
May 28 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
Jun 05 Python
Pytorch 使用 nii数据做输入数据的操作
May 26 #Python
python变量的作用域是什么
May 26 #Python
Python3 pywin32模块安装的详细步骤
May 26 #Python
什么是python的列表推导式
May 26 #Python
python中列表的含义及用法
May 26 #Python
初学者学习Python好还是Java好
May 26 #Python
python函数map()和partial()的知识点总结
May 26 #Python
You might like
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
php 多文件上传的实现实例
2016/10/23 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
js 省地市级联选择
2010/02/07 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
Python中的并发编程实例
2014/07/07 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
Django models文件模型变更错误解决
2020/05/11 Python
水果花束:Fruit Bouquets
2017/12/20 全球购物
毕业自荐信
2013/12/16 职场文书
工商管理专业职业生涯规划
2014/01/01 职场文书
校园文明倡议书
2014/05/16 职场文书
消防安全承诺书
2014/05/22 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
加强作风建设工作总结
2014/10/23 职场文书
迟到检讨书范文
2015/01/27 职场文书
爱晚亭导游词
2015/02/09 职场文书
优秀教师个人总结
2015/02/11 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
文明旅游倡议书
2015/04/28 职场文书
学困生转化工作总结
2015/08/13 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书