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中关于for循环的碎碎念
Jun 30 Python
python安装模块如何通过setup.py安装(超简单)
May 05 Python
基于python实现学生管理系统
Oct 17 Python
Selenium定时刷新网页的实现代码
Oct 31 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
Python列表list操作相关知识小结
Jan 29 Python
解决ROC曲线画出来只有一个点的问题
Feb 28 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
Nov 02 Python
windows系统Tensorflow2.x简单安装记录(图文)
Jan 18 Python
python 批量将中文名转换为拼音
Feb 07 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 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
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
js 左右悬浮对联广告代码示例
2014/12/12 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
微信小程序商城项目之购物数量加减(3)
2017/04/17 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
Python requests模块实例用法
2019/02/11 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
python生成器用法实例详解
2019/11/22 Python
Python使用configparser库读取配置文件
2020/02/22 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
主题教育活动总结
2014/05/05 职场文书
大学班级文化建设方案
2014/05/06 职场文书
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
国庆阅兵观后感
2015/06/15 职场文书
《开国大典》教学反思
2016/02/16 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android