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中append()与extend()用法分享
Mar 24 Python
Python实现简单多线程任务队列
Feb 27 Python
Python中绑定与未绑定的类方法用法分析
Apr 29 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
python pycurl验证basic和digest认证的方法
May 02 Python
python 每天如何定时启动爬虫任务(实现方法分享)
May 21 Python
Python绘制频率分布直方图的示例
Jul 08 Python
django echarts饼图数据动态加载的实例
Aug 12 Python
python模拟实现斗地主发牌
Jan 07 Python
Python for循环通过序列索引迭代过程解析
Feb 07 Python
详解Django中 render() 函数的使用方法
Apr 22 Python
Python数据可视化之用Matplotlib绘制常用图形
Jun 03 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
Cannot modify header information错误解决方法
2008/10/08 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
javascript 闭包疑问
2010/12/30 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
浅谈javascript的调试
2015/01/28 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
python实现求两个字符串的最长公共子串方法
2018/07/20 Python
python游戏开发的五个案例分享
2020/03/09 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
伦敦最有品味的百货:Liberty London
2016/11/12 全球购物
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
新加坡第一的杂货零售商:NTUC FairPrice
2020/12/05 全球购物
加拿大探亲邀请信
2014/01/28 职场文书
企业精神口号
2014/06/11 职场文书
动物科学专业求职信
2014/07/27 职场文书
青年标兵事迹材料
2014/08/16 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
Python实战之疫苗研发情况可视化
2021/05/18 Python
Elasticsearch 批量操作
2022/04/19 Python