【问题标题】:Why does torchvision.utils.make_grid() return copies of the wanted grid?为什么 torchvision.utils.make_grid() 返回所需网格的副本?
【发布时间】:2021-04-13 10:37:57
【问题描述】:

在下面的编码示例中,我无法理解为什么输出张量 grid 的形状为 3,28,280。我理解为什么它的高度为28,宽度为280,而不是3。似乎从沿轴0 的所有3 个28x280 阵列上运行plt.imshow() 来看,它们是相同的副本,因为打印其中任何一个给出我想要的形象。 另外,我不明白为什么我可以将grid 作为参数传递给plt.imshow(),因为它应该采用2D 数组,而不是像grid 那样的3D 数组。

import torch
import torchvision
import torchvision.transforms as transforms
import matplotlib.pyplot as plt
import numpy as np

train_set = torchvision.datasets.FashionMNIST(
    root = './pytorch_obj_classifier/data/FashionMNIST',
    train = True,
    download = True,
    transform = transforms.Compose([
            transforms.ToTensor()
    ])
)
sample = next(iter(train_loader))
image,label = sample
print(image.shape)

grid = torchvision.utils.make_grid(image,padding=0, nrow=10)
print(grid.shape)

plt.figure(figsize=(15,15))
grid = np.transpose(grid,(1,2,0))
grid1 = grid[:,:,0]
grid2 = grid[:,:,1]
grid3 = grid[:,:,2]
plt.imshow(grid1,cmap = 'gray')
plt.imshow(grid2,cmap = 'gray')
plt.imshow(grid3,cmap = 'gray')
plt.imshow(grid,cmap = 'gray')

【问题讨论】:

    标签: python python-3.x pytorch torchvision


    【解决方案1】:

    MNIST 数据集由灰度图像组成。如果您查看torchvision.utils.make_gridimplementation detail,单通道图像会被其通道复制三遍:

    if tensor.dim() == 4 and tensor.size(1) == 1:  # single-channel images
        tensor = torch.cat((tensor, tensor, tensor), 1)
    

    matplotlib.pyplot.imshow 可以接受 2D、3D 或 4D 输入:

    图像数据。支持的数组形状有:

    • (M, N):带有标量数据的图像。数据使用颜色图进行可视化。
    • (M, N, 3):具有 RGB 值(0-1 float 或 0-255 int)的图像。
    • (M, N, 4):具有 RGBA 值(0-1 float 或 0-255 int)的图像,即包括透明度。

    一般来说,我们不会指代维度,而是通过张量的形状(每个轴上的大小)来描述张量。在 PyTorch 中,图像始终具有三个轴,并且具有以下形状:(channel, height, width)。即使对于单通道图像:将其视为 3D 张量 (1, height, width) 而不是 2D 张量 (height, width)。这与您拥有多个通道的情况保持一致,这种情况经常cf。卷积神经网络)。

    【讨论】:

    • 谢谢 我会开始更频繁地检查源代码!
    猜你喜欢
    • 2020-01-18
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2019-01-18
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多