如何在kaggle中加载.csv和图像数据集?

问题描述 投票:0回答:1

我一直在 SIIM-ISIC 黑色素瘤分类竞赛中尝试使用 PyTorch 进行二元分类 (https://www.kaggle.com/competitions/siim-isic-melanoma-classification),但我遇到了一些问题如何组合图像和标签。我一直在尝试实现一个类来加载和合并图像及其标签,但由于某种原因,每次我尝试使用 5 或另一个索引运行线路 train[5] 时,都会出现相同的错误:

FileNotFoundError:[Errno 2]没有这样的文件或目录:'/kaggle/input/siim-isic-melanoma-classification/jpeg/train/ISIC_0074311'

我可以向大家保证路径已正确复制并且图像位于这些文件夹中。

文件夹结构为: enter image description here

train.csv: 图片名称 病人ID 性别 大约年龄 anatom_site_general_challenge 诊断 良性_恶性 目标(0或1)

jpeg文件夹中的train文件夹: ISIC_0015719.jpg ISIC_0052212.jpg ISIC_0068279.jpg ISIC_0074268.jpg ...

我的代码

import os
import pandas as pd
from PIL import Image
import torch
import torch.utils.data
from PIL import Image
class LoadDataset(torch.utils.data.Dataset):
    
    def __init__(self, csv_path, image_folder, transform = None):
        self.df           = pd.read_csv(csv_path)
        self.image_folder = image_folder
        self.transform    = transform

    def __len__(self):
        return len(self.df)
    
    def __getitem__(self, index):
        filename = self.df.loc[index, 'image_name']
        label    = self.df.loc[index, 'target']
        image    = Image.open(os.path.join(self.image_folder, filename))

        if self.transform is not None:
            image = self.transform(image)
            
        return image, label
train = LoadDataset('/kaggle/input/images1-isic2020/train.csv', '/kaggle/input/images1-isic2020/train/train')
train[5]

有没有人知道如何解决这个问题,或者除了图像生成器之外还有其他选择来获取带有标签的每个图像?

image csv pytorch kaggle importdata
1个回答
0
投票

该错误表明

filename
缺少“.jpg”扩展名。一个简单的修复方法是,如果扩展名始终采用相同的格式,则手动添加扩展名:

filename = self.df.loc[index, 'image_name'] + ".jpg"

© www.soinside.com 2019 - 2024. All rights reserved.