如何从 google colab 中的压缩文件夹中 read/import 训练和测试多分类图像? gdrive 已经安装到 colab

How to read/import training and testing images for multiclassification from a zipped folder in google colab? gdrive already mounted to gcolab

我对机器学习和深度学习还很陌生。我正在做一个学生项目,其中我正在做 multiclassification 图像处理。因为,我没有推荐的用于 tensorflow 的 nVIDIA gpu(也不能在 atm 上购买),我正在使用 Google colab 和他们的虚拟 GPU。

我已经将我的 gdrive 安装到 colab:

如您所见,它在训练集中显示了 131 classes/subfolders。 131 是不同水果的名称 - 每个水果都有 1 个专用子文件夹。这些子文件夹中总共存储了 40,000 张图像。如下所示:

每个水果子文件夹都有与 class 关联的图像,图像命名为 0_100.jpg、1_100.jpg、2_100.jpg.....

如何读取这些图像并将其拆分为 X-train 和 X_val 以及如何创建关联的 y_train 目标名称。到目前为止,我只在 jupyter 实验室中使用过 sklearn 和 keras 数据集,它们已经排序和命名,我只需要导入它们。

既然数据集是从 kaggle 下载的,你认为直接从 colab 连接到 kaggle 并创建一个 json 文件更好吗?...就像这样 link: https://towardsdatascience.com/an-informative-colab-guide-to-load-image-datasets-from-github-kaggle-and-local-machine-75cae89ffa1e

请有人建议如何执行此操作或向我指出一些相关示例...非常感谢。

您可以使用 PyTorch 中的 DataLoader,例如:

import torch
import torchvision
from torchvision import transforms

train_transforms = transforms.Compose([
    # ...
    transforms.ToTensor() ])

train_dir = '/train_test/Training/'

# As you are going to split Training set into Train and Val sets, "Training" is your full_dataset
# Loading dataset from directory
full_dataset = torchvision.datasets.ImageFolder(train_dir, train_transforms)
# Splitting into Train and Val
train_size = int(0.8 * len(full_dataset))
val_size   = len(full_dataset) - val_size
train_dataset, val_dataset = torch.utils.data.random_split(full_dataset, [train_size, val_size])

# Creating a data_loader
train_dataloader = torch.utils.data.DataLoader( train_dataset )
val_dataloader   = torch.utils.data.DataLoader( val_dataset   )

如果您通过其他方法将数据集拆分为 Train 和 Val,或者不想使用 Val 集,请使用 torchvision.datasets.ImageFolder 加载 train_dataset 并直接创建数据加载器并跳过拆分部分。

它会自动创建 X(输入图像)和 Y(标签)集。然后,在训练阶段,您可以按以下方式使用 train_dataloader

# ...
for inputs, labels in tqdm(train_dataloader):
    inputs = inputs.to(device) # Your X-train
    labels = labels.to(device) # Your y_train
    # ...

如果您具有以下结构(如果我清楚地了解您的数据存储方式),它会起作用:

|-train_test
    |-Test
    |-Training
        |-Apple Braeburn
        |   |-0_100.jpg
        |   |-1_100.jpg
        |   |-...
        |-Apple Crimson Snow
        |   |-0_100.jpg
        |   |-1_100.jpg
        |   |-...
        |-...