I am trying to split the dataset into train-test datset using the SubsetRandomSampler.
I want to achieve this:
Shuffle the train dataset and not shuffle the validation dataset.
I also need first 80% of the data for training and last 20% for validation.
DOes this makes sense?
from torch.utils.data.sampler import SubsetRandomSampler, SequentialSampler
train_split = 0.8
random_seed = 42
dataset_size = len(dataset)
validation_split = .2
random_seed= 42
indices = list(range(dataset_size))
split = int(np.floor(validation_split * dataset_size))
train_indices, val_indices = indices[split:], indices[:split]
train_sampler = SubsetRandomSampler(train_indices)
valid_sampler = SequentialSampler(val_indices)
train_loader = torch.utils.data.DataLoader(dataset, batch_size=64,
sampler=train_sampler)
validation_loader = torch.utils.data.DataLoader(dataset, batch_size=64,
sampler=valid_sampler)