【问题标题】:How To Import The MNIST Dataset From Local Directory Using PyTorch如何使用 PyTorch 从本地目录导入 MNIST 数据集
【发布时间】:2021-01-12 17:37:51
【问题描述】:

我正在 PyTorch 中编写一个众所周知的问题 MNIST database of handwritten digits 的代码。我下载了训练和测试数据集(从主网站),包括标记的数据集。数据集格式为t10k-images-idx3-ubyte.gz,提取后为t10k-images-idx3-ubyte。我的数据集文件夹看起来像

MINST
 Data
  train-images-idx3-ubyte.gz
  train-labels-idx1-ubyte.gz
  t10k-images-idx3-ubyte.gz
  t10k-labels-idx1-ubyte.gz

现在,我编写了如下代码来加载数据

def load_dataset():
    data_path = "/home/MNIST/Data/"
    xy_trainPT = torchvision.datasets.ImageFolder(
        root=data_path, transform=torchvision.transforms.ToTensor()
    )
    train_loader = torch.utils.data.DataLoader(
        xy_trainPT, batch_size=64, num_workers=0, shuffle=True
    )
    return train_loader

我的代码显示Supported extensions are: .jpg,.jpeg,.png,.ppm,.bmp,.pgm,.tif,.tiff,.webp

我该如何解决这个问题,并且我还想检查我的图像是否已从数据集中加载(只有一个图包含前 5 张图像)?

【问题讨论】:

    标签: python-3.x machine-learning deep-learning pytorch


    【解决方案1】:

    阅读此Extract images from .idx3-ubyte file or GZIP via Python

    更新

    您可以使用这种格式导入数据

    xy_trainPT = torchvision.datasets.MNIST(
        root="~/Handwritten_Deep_L/",
        train=True,
        download=True,
        transform=torchvision.transforms.Compose([torchvision.transforms.ToTensor()]),
    )
    

    现在,download=True 发生的事情首先您的代码将检查根目录(您给定的路径)是否包含任何数据集。

    如果是no,那么将从网络下载数据集。

    如果yes此路径已包含数据集,则您的代码将使用现有数据集运行,并且不会从 Internet 下载。

    你可以检查一下,先给个路径without any dataset(数据会从网上下载),再给个路径which already contains dataset数据不会下载。

    【讨论】:

      【解决方案2】:

      欢迎来到stackoverflow!

      MNIST 数据集不存储为图像,而是以二进制格式(如 ubyte 扩展名所示)。因此,ImageFolder 不是您想要的类型数据集。相反,您需要使用MNIST dataset class。如果您还没有这样做,它甚至可以下载数据:)

      这是一个数据集类,所以只需使用正确的root 路径进行实例化,然后将其作为数据加载器的参数,一切都会正常工作。

      如果要查看图像,只需使用数据加载器的get方法,并将结果保存为png文件(您可能需要先将张量转换为numpy数组)。

      【讨论】:

      • 谢谢。你的意思是这样吗? data_path = "/data/MNIST/raw"xy_trainPT = torchvision.datasets.MNIST( root=data_path, transform=torchvision.transforms.ToTensor()
      • 是的,可能需要转换,您可以从github.com/pytorch/examples/blob/master/mnist/main.py获取灵感
      • 但这不起作用显示Dataset not found. You can use download=True to download it,但路径是正确的
      猜你喜欢
      • 2021-05-31
      • 2019-11-06
      • 1970-01-01
      • 2018-08-11
      • 2018-06-23
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多