перекрестная проверка в k-кратном порядке с использованием DataLoaders в PyTorch - PullRequest
1 голос
/ 27 марта 2020

Я разделил свой тренировочный набор данных на 80% данных поезда и 20% проверки и создал DataLoaders, как показано ниже. Однако я не хочу ограничивать обучение моей модели. Поэтому я подумал о том, чтобы разбить мои данные на K (возможно, 5) сгибов и выполнить перекрестную проверку. Однако я не знаю, как объединить наборы данных с моим загрузчиком данных после их разделения.

train_size = int(0.8 * len(full_dataset))
validation_size = len(full_dataset) - train_size
train_dataset, validation_dataset = random_split(full_dataset, [train_size, validation_size])

full_loader = DataLoader(full_dataset, batch_size=4,sampler = sampler_(full_dataset), pin_memory=True) 
train_loader = DataLoader(train_dataset, batch_size=4, sampler = sampler_(train_dataset))
val_loader = DataLoader(validation_dataset, batch_size=1, sampler = sampler_(validation_dataset))

Заранее спасибо!

1 Ответ

0 голосов
/ 03 апреля 2020

Взгляните на Перекрестная проверка для набора данных MNIST с pytorch и sklearn . Вопрос задающий реализовал kFold Crossvalidation. Обратите особое внимание на его собственный ответ (ответ 23 ноября 19 в 10:34). Он полагается не на random_split (), а на sklearn.model_selection.KFold и оттуда создает DataSet, а оттуда Dataloader.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...