查看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)
从左至右起,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()
官方文档中的解释:
简单说,把原本的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查看通道数 维数 尺寸大小方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 魔兽世界wlk暗牧一键输出宏是什么 wlk暗牧一键输出宏介绍
- 群星.1996-红不让台语原唱2辑【福和唱片】【WAV+CUE】
- 郭书瑶.2009-爱的抱抱(EP)【种子音乐】【FLAC分轨】
- 郑瑞芬.1989-BE.MY.BABY【现代】【WAV+CUE】
- 花钱请人每周放30万只不咬人的蚊子 防治登革热传播
- 饭制《第一后裔》丧尸版弗蕾娜
- 贝克汉姆亲临!2024FC品类游戏嘉年华圆满落幕
- 「命轨爻错之翼」风之翼发放说明
- 《原神》前瞻特别节目回顾长图
- 米游币抽抽乐-原神专场现已开启!
- 黑鸭子2001《风情中国HQCD》[日本版][WAV+CUE]
- 陈杰洲1990-成人礼[滚石][WAV+CUE]
- MarkAanderud-HandsFree(2024)[24-44,1]FLAC
- 孙露《观心》1:1母盘直刻限量版[低速原抓WAV+CUE][361M]
- 钟志刚《汽车DJ玩主》[低速原抓WAV+CUE][1G]