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读取properties配置文件操作示例
Mar 29 Python
解决Spyder中图片显示太小的问题
Apr 27 Python
使用pycharm生成代码模板的实例
May 23 Python
pandas 选择某几列的方法
Jul 03 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
Python将字符串常量转化为变量方法总结
Mar 17 Python
python 日期排序的实例代码
Jul 11 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
Aug 30 Python
给大家整理了19个pythonic的编程习惯(小结)
Sep 25 Python
Python计算不规则图形面积算法实现解析
Nov 22 Python
Python编译为二进制so可执行文件实例
Dec 23 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
Jun 11 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
浅谈apache和nginx的rewrite的区别
2013/02/22 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
js异或加解密效果代码
2008/06/25 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
详解JS函数重载
2014/12/04 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
django mysql数据库及图片上传接口详解
2019/07/18 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
大学生求职中的自我评价
2013/10/01 职场文书
采购求职信
2014/03/17 职场文书
中层干部培训方案
2014/06/16 职场文书
春节慰问信范文
2015/02/15 职场文书
聚会通知怎么写
2015/04/23 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
培根随笔读书笔记
2015/07/01 职场文书
文艺节目主持词
2015/07/06 职场文书
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB