gpt4 book ai didi

python - 如何将自定义数据集拆分为训练和测试数据集?

转载 作者:IT老高 更新时间:2023-10-28 20:35:24 28 4
gpt4 key购买 nike

import pandas as pd
import numpy as np
import cv2
from torch.utils.data.dataset import Dataset

class CustomDatasetFromCSV(Dataset):
def __init__(self, csv_path, transform=None):
self.data = pd.read_csv(csv_path)
self.labels = pd.get_dummies(self.data['emotion']).as_matrix()
self.height = 48
self.width = 48
self.transform = transform

def __getitem__(self, index):
pixels = self.data['pixels'].tolist()
faces = []
for pixel_sequence in pixels:
face = [int(pixel) for pixel in pixel_sequence.split(' ')]
# print(np.asarray(face).shape)
face = np.asarray(face).reshape(self.width, self.height)
face = cv2.resize(face.astype('uint8'), (self.width, self.height))
faces.append(face.astype('float32'))
faces = np.asarray(faces)
faces = np.expand_dims(faces, -1)
return faces, self.labels

def __len__(self):
return len(self.data)

这是我可以通过使用来自其他存储库的引用来做到的。但是,我想将此数据集拆分为训练和测试。

我怎样才能在这个类中做到这一点?还是我需要单独开设一个类(class)来做到这一点?

最佳答案

从 PyTorch 0.4.1 开始,您可以使用 random_split :

train_size = int(0.8 * len(full_dataset))
test_size = len(full_dataset) - train_size
train_dataset, test_dataset = torch.utils.data.random_split(full_dataset, [train_size, test_size])

关于python - 如何将自定义数据集拆分为训练和测试数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50544730/

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