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中多线程及程序锁浅析
Jan 21 Python
python中闭包Closure函数作为返回值的方法示例
Dec 17 Python
python 对dataframe下面的值进行大规模赋值方法
Jun 09 Python
Python全局变量与局部变量区别及用法分析
Sep 03 Python
Pytorch中膨胀卷积的用法详解
Jan 07 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
Mar 04 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
详细分析Python可变对象和不可变对象
Jul 09 Python
django有哪些好处和优点
Sep 01 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 Python
对Pytorch 中的contiguous理解说明
Mar 03 Python
python高温预警数据获取实例
Jul 23 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通用检测函数集合
2006/11/25 PHP
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
php二维数组转成字符串示例
2014/02/17 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
php如何获取文件的扩展名
2015/10/28 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
JS 遮照层实现代码
2010/03/31 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
js字符串转成JSON
2013/11/07 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
基于JavaScript实现自定义滚动条
2017/01/25 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
Python3模拟curl发送post请求操作示例
2019/05/03 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
2014年九一八事变演讲稿
2014/09/14 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
文员岗位职责
2015/02/04 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
周末问候语大全
2015/11/10 职场文书
新手必备Python开发环境搭建教程
2021/05/28 Python