merge_data = datasets.ImageFolder(data_dir + "/train", transform=train_transforms)
fold_counts= 5
kfold = KFold(n_splits=fold_counts, random_state=777, shuffle=True)
num_workers = 0
#
#--------------------------------------------------------------
for i, (train_index, validate_index) in enumerate(kfold.split(merge_data)):
#print("train index:", train_index, "validate index:", validate_index)
train = torch.utils.data.Subset(merge_data, train_index)
validation = torch.utils.data.Subset(merge_data, validate_index)
train_loader = torch.utils.data.DataLoader(train, batch_size=batch_size, shuffle=True, num_workers=num_workers, pin_memory=False)
valid_loader = torch.utils.data.DataLoader(validation, batch_size=batch_size, shuffle=True, num_workers=num_workers, pin_memory=False)
print("Number of Samples in Train: ",len(train))
print("Number of Samples in Valid: ",len(validation))
model, train_loss, valid_loss, train_acc, valid_acc=train_model(model, train_loader, valid_loader, criterion, optimizer, num_epochs, patience)
Is it possible to get 5 models using 5 validation sets?