PyTorch中torch.Tensor.size()除高宽外的b、c返回值含义
关于PyTorch图像张量size()返回维度b、c的含义说明
你在开发基于PyTorch的SwinIR图像超分辨率模块时用到的代码如下:
b, c, h, w = img_lq.size() E = torch.zeros(b, c, h*scale_factor, w*scale_factor).type_as(img_lq) W = torch.zeros_like(E)
你已明确h、w对应图像的高度、宽度,查PyTorch官方文档未找到b、c的相关说明,原因是这两个命名属于计算机视觉领域处理PyTorch张量的通用惯例,并非PyTorch框架强制规定的固定语法,因此不会在框架API文档中单独标注,二者具体含义为:
b:batch size(批大小)的缩写,代表当前输入张量中包含的图像样本总数量c:channel(通道数)的缩写,代表输入图像的色彩通道数量:灰度图该值为1,常规RGB彩色图该值为3,多光谱等特殊输入场景下会取其他对应值
PyTorch计算机视觉生态中,图像张量默认遵循NCHW维度排序约定,size()方法返回的四个值按顺序依次对应批大小、通道数、图像高度、图像宽度。
从代码逻辑也可以佐证这个命名规则:后续初始化的E、W两个零张量,和输入低清图像img_lq的批大小、通道数完全一致,仅把高度、宽度两个空间维度乘以超分倍率做上采样,完全符合超分任务的张量形状要求——超分操作不会改变输入的批次数量、图像通道数,仅提升图像的空间分辨率。
内容的提问来源于stack exchange,提问作者brenodacosta
相关产品推荐
相关产品推荐

