如何加载数据以及如何使用 pytorch 进行数据扩充
Posted
技术标签:
【中文标题】如何加载数据以及如何使用 pytorch 进行数据扩充【英文标题】:how to load the data and how to do data augmentation using pytorch 【发布时间】:2020-06-18 04:07:26 【问题描述】:我是Pytorch的新手,我正在做图像分类问题,但是我不明白如何从加载目录加载图像,请帮助我如何加载数据图像数据以及如何增强。
我的数据如下所示:
train=pd.read_csv('dataset/train.csv')
test=pd.read_csv('dataset/test.csv')
train.head()
Image Class
0 image7042.jpg Food
1 image3327.jpg misc
2 image10335.jpg Attire
3 image8019.jpg Food
4 image2128.jpg Attire
这里是我的图片文件夹:
file_path='dataset/Train Images'
【问题讨论】:
我认为您不需要为此使用 Pandas。查看有关为图像数据创建 PyTorch 数据加载器的教程:pytorch.org/tutorials/beginner/data_loading_tutorial.html 【参考方案1】:您可以为此使用 torchvision。假设您将所有训练/测试图像分成两个文件夹,分别称为 train
和 test
,下面是一些关于如何加载和迭代图像的示例代码:
import torchvision
from torchvision import datasets, transforms
def load_dataset(data_path):
dataset = torchvision.datasets.ImageFolder(
root=data_path,
transform=transforms.Compose([torchvision.transforms.ToTensor()])
)
data_loader = torch.utils.data.DataLoader(
dataset,
batch_size=1,
num_workers=0,
shuffle=True
)
return data_loader
train_loader = load_dataset(f'base_dir/train')
test_loader = load_dataset(f'base_dir/test')
for batch_idx, (data, _) in enumerate(train_loader):
# Train model
...
for batch_idx, (data, _) in enumerate(test_loader):
# Evaluate model
如果您想批量训练模型,可以增加 batch_size
,将转换器添加到 transform
参数以增强图像,以及其他许多事情。
查看文档:https://pytorch.org/docs/stable/torchvision/index.html
【讨论】:
以上是关于如何加载数据以及如何使用 pytorch 进行数据扩充的主要内容,如果未能解决你的问题,请参考以下文章
Pytorch中如何使用DataLoader对数据集进行批训练