【问题标题】:Add channel to MNIST via transform?通过转换将频道添加到 MNIST?
【发布时间】:2019-07-09 11:17:36
【问题描述】:

我正在尝试使用来自 torchvision.datasets 的 MNIST 数据集。它似乎是作为 N x H x W (uint8)(批量尺寸、高度、宽度)张量提供的。然而,所有用于处理图像的 pytorch 类(例如 Conv2d)都需要一个 N x C x H x W (float32) 张量,其中 C 是颜色通道的数量。我尝试添加 ToTensor 变换,但没有添加颜色通道。

有没有办法使用torchvision.transforms 来添加这个额外的维度?对于原始的tensor,我们可以只做.unsqueeze(1),但这看起来不是一个非常优雅的解决方案。我只是想以“正确”的方式来做。

这是失败的转换。

import torchvision
dataset = torchvision.datasets.MNIST("~/PyTorchDatasets/MNIST/", train=True, transform=torchvision.transforms.ToTensor(), download=True)
print(dataset.train_data[0])

【问题讨论】:

    标签: pytorch mnist python-3.7 torchvision


    【解决方案1】:

    我有一个误解:dataset.train_data 不受指定transform 的影响,只有DataLoader(dataset,...) 的输出会受到影响。从

    检查data
    for data, _ in DataLoader(dataset):
        break
    

    我们可以看到ToTensor 实际上完全符合我们的要求。

    【讨论】:

      猜你喜欢
      • 2016-04-24
      • 1970-01-01
      • 2021-12-11
      • 2020-11-23
      • 2013-08-28
      • 2019-10-23
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      相关资源
      最近更新 更多