gpt4 book ai didi

dataset - 如何在 Pytorch 中创建类似 MNIST 的数据集?

转载 作者:行者123 更新时间:2023-12-02 02:47:40 26 4
gpt4 key购买 nike

我查看了 MNIST 数据集的 Pytorch 源代码,但它似乎直接从二进制文件中读取 numpy 数组。
我怎样才能像它一样创建 train_data 和 train_labels?我已经准备好了带有标签的图片和txt。

我已经学会了如何读取图像和标签以及编写 get_item 和 len,真正让我困惑的是如何制作 火车数据 train_labels ,即torch.Tensor。我试图将它们排列成 python 列表并转换为 torch.Tensor 但失败了:

for index in range(0,len(self.files)):
fn, label = self.files[index]
img = self.loader(fn)
if self.transform is not None:
img = self.transform(img)
train_data.append(img)
self.train_data = torch.tensor(train_data)

ValueError:只有一个元素张量可以转换为 Python 标量

最佳答案

有两种方法可以去。首先,手册。 Torchvision.datasets声明如下:

datasets are subclasses of torch.utils.data.Dataset i.e, they have __getitem__ and __len__ methods implemented. Hence, they can all be passed to a torch.utils.data.DataLoader which can load multiple samples parallelly using torch.multiprocessing workers.



所以你可以只实现你自己的类来扫描所有的图像和标签,保留它们的路径列表(这样你就不必将它们保存在 RAM 中)并拥有 __getitem__给定索引 i 的方法读取第 i 个文件及其标签并返回它们。这个最小的接口(interface)足以与并行 dataloader 一起工作。在 torch.utils.data .

其次,如果您的数据目录可以重新排列为任一结构,则可以使用 DatasetFolderImageFolder预制装载机。这将为您节省一些编码并自动为 torchvision.transforms 中的数据增强例程提供支持.

关于dataset - 如何在 Pytorch 中创建类似 MNIST 的数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53665225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com