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中给List添加元素的4种方法分享
Nov 28 Python
Python Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
Python中函数参数匹配模型详解
Jun 09 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
详解Python3 pandas.merge用法
Sep 05 Python
Django values()和value_list()的使用
Mar 31 Python
Django model.py表单设置默认值允许为空的操作
May 19 Python
Python函数参数分类原理详解
May 28 Python
基于tensorflow for循环 while循环案例
Jun 30 Python
Python scrapy爬取小说代码案例详解
Jul 09 Python
python和go语言的区别是什么
Jul 20 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 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
解决php接收shell返回的结果中文乱码问题
2014/01/23 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
Prototype Date对象 学习
2009/07/12 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
python 读写txt文件 json文件的实现方法
2016/10/22 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
python小项目之五子棋游戏
2019/12/26 Python
python利用opencv保存、播放视频
2020/11/02 Python
Python join()函数原理及使用方法
2020/11/14 Python
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
一道SQL存储过程面试题
2016/10/07 面试题
医学院学生求职简历的自我评价
2013/10/24 职场文书
工程专业应届生求职信
2014/02/19 职场文书
项目施工员岗位职责
2014/03/09 职场文书
体育课课后反思
2014/04/24 职场文书
运动会口号大全
2014/06/07 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
学校教师培训工作总结
2015/10/14 职场文书
小学英语课教学反思
2016/02/15 职场文书
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
python神经网络ResNet50模型
2022/05/06 Python