python-3.x - 如何使用 PyTorch 从本地目录导入 MNIST 数据集
问题描述
我正在编写MNIST database of handwritten digits
PyTorch 中一个众所周知的问题的代码。我下载了训练和测试数据集(从主网站),包括标记的数据集。数据集格式为t10k-images-idx3-ubyte.gz
extract 和之后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 从 .idx3-ubyte 文件或 GZIP 中读取此提取图像
更新
您可以使用此格式导入数据
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
数据不会下载。
推荐阅读
- arrays - 从Swift数组中的选定复选标记中删除字符串
- c# - EF Core 多对多使用 Automapper 在 API 资源上返回循环
- android - 如何在折线图中的 xaxis 标签中心设置 yaxis 值?
- r - 取决于夏令时的奇怪 as.POSIXct 行为
- laravel - 来自 spatie 的方法 addMediaFromUrl() 不起作用
- java - 我无法将数据从 MySQL 传输到 Jsp
- android - 查询 RealmList
带参数 - sql - Laravel Eloquent 总是用 id 1 填充集合
- python - 在 PostgreSQL 中加密数据并在 Python 中解密数据
- string - DBSCAN:在 Python 中对大量字符串进行聚类