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实现定制交互式命令行的方法
Jul 03 Python
基于python编写的微博应用
Oct 17 Python
python之Socket网络编程详解
Sep 29 Python
python+opencv实现动态物体识别
Jan 09 Python
python os.listdir按文件存取时间顺序列出目录的实例
Oct 21 Python
解决python3读取Python2存储的pickle文件问题
Oct 25 Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
Django框架创建项目的方法入门教程
Nov 04 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
基于python获取本地时间并转换时间戳和日期格式
Oct 27 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
Feb 22 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
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
ThinkPHP5&5.1框架关联模型分页操作示例
2019/08/03 PHP
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
JavaScript学习笔记之ES6数组方法
2016/03/25 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
原生JS实现列表内容自动向上滚动效果
2019/05/22 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
Python检测网站链接是否已存在
2016/04/07 Python
Python工厂函数用法实例分析
2018/05/14 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
Python Selenium库的基本使用教程
2021/01/04 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
教师实习的自我鉴定
2013/10/26 职场文书
行政专员岗位职责
2014/01/02 职场文书
《忆江南》教学反思
2014/04/07 职场文书
婚前协议书范本
2014/04/15 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
财务助理岗位职责范本
2014/10/09 职场文书
企业党支部工作总结2015
2015/05/21 职场文书