如何从 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
| |-...
|-...
我对机器学习和深度学习还很陌生。我正在做一个学生项目,其中我正在做 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
| |-...
|-...