Hello,
I have images, that i need to classify. the target data is included in the image name, but not the entire image name, so i extract this by splitting the image name.
However, I am challenged on how to move this to the dataloader, and later split into train and test sets. The code is attached below.
After this split, i would like to use the dataloader, as below:
data loader
mean = 0.5
std = 0.5
batch_size=16
transformTrain = transforms.Compose(
[
transforms.RandomVerticalFlip(0.5), # Vertical flip
transforms.RandomHorizontalFlip(0.5), # Horizontally flip the given PIL Image randomly with a given probability.
transforms.RandomRotation(degrees=45), # Rotate the image by angle.
transforms.ToTensor(),
transforms.Normalize((mean, mean, mean), (std, std, std))
])
X_train, X_test, y_train, y_test = train_test_split(images, nsex, test_size=0.2)
#X_train = ImageFolder(X_train,transform=transformTrain)
#train_data = custom_dataset(X_train, transform=transformTrain, train=True) # Resize transform
#test_data = custom_dataset(X_test, transform=transform) # Resize transform
X_train = torch.Tensor(X_train)
X_test = torch.Tensor(X_test)
y_train = torch.Tensor(y_train)
y_test = torch.Tensor(y_test)
X_train = X_train.permute(0,3, 1, 2)
X_test = X_test.permute(0,3, 1, 2)
train_dataset = TensorDataset(X_train, y_train)
test_dataset = TensorDataset(X_test, y_test)
train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)