gpt4 book ai didi

python - 如何创建 torch.utils.data.Dataset 并将其导入 torch.utils.data.DataLoader

转载 作者:行者123 更新时间:2023-12-05 04:41:10 24 4
gpt4 key购买 nike

我想使用 torch.utils.data.Dataset 从 CSV 文件导入数据,这样我就可以使用 torch.utils.data.DataLoader 来处理它.数据不属于 torchvision,它来 self 的电脑。 Google 上好像没有解决办法。如果您能给我一些建议,我将不胜感激。

最佳答案

如果您已经有了 csv 文件,您可以使用 pandas 轻松完成此操作。

import pandas as pd
my_dataframe = pd.read_csv("path/to/file.csv")

有了它,您现在可以访问 csv 文件中的数据。如果您想使用 pytorch torch.utils.data.DataLoader,您还需要一个 torch.utils.data.Dataset

根据您使用的数据类型,数据集的外观可能会有很大不同。如果您正在处理 csv 中的图像路径和标签,请查看我曾经用于 torchvision.models.resnet50() 的数据集:

from torch.utils.data import Dataset
from PIL import Image
from torchvision import models, transforms
import cv2

class createDataset(Dataset):
def __init__(self, dataframe):
self.dataframe = dataframe
self.transform = transforms.Compose([transforms.ToTensor()])

def __len__(self):
return self.dataframe.shape[0]

def __getitem__(self, index):
image = self.dataframe.iloc[index]["Name_of_imagepath_column"]
image = cv2.imread(image)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image = Image.fromarray(image)
image = self.transform(image)
label = self.dataframe.iloc[index]["Name_of_label_column"]
return {"image": image , "targets": torch.tensor(label, dtype=torch.long)}

标签/目标是可选的,仅在我的项目中是必需的。

现在您可以像这样将 pandas 数据框传递给 Dataset 类:

my_dataset = createDataset(dataframe = my_dataframe)

现在可以将此数据集传递给 torch.utils.data.DataLoader 并创建您的数据加载器:

from torch.utils.data import DataLoader

my_dataloader= DataLoader(dataset=my_dataset)

有关 Dataloader 的更多选项,例如 batchsize 和 shuffle,请查找 Pytorch DataLoader docs

关于python - 如何创建 torch.utils.data.Dataset 并将其导入 torch.utils.data.DataLoader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70127516/

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