Thanks for answering @ptrblck. I didint know that transforms only work with PIL objects.
It allowed me to go further in my code but now I am presented with another error:
 Traceback (most recent call last):
  File "C:/Users/sbzfk/PycharmProjects/my_FCN_attempt/Kaggle_Dogs_Competition.py", line 113, in <module>
    model = train_model(data_loaders, net, criterion, optimizer, exp_lr_scheduler, num_epochs=2)
  File "C:\Users\sbzfk\PycharmProjects\my_FCN_attempt\TrainModel.py", line 34, in train_model
    loss = criterion(outputs, labels)
  File "C:\Users\sbzfk\AppData\Local\Programs\Python\Python37\lib\site-packages\torch\nn\modules\module.py", line 477, in __call__
    result = self.forward(*input, **kwargs)
  File "C:\Users\sbzfk\AppData\Local\Programs\Python\Python37\lib\site-packages\torch\nn\modules\loss.py", line 862, in forward
    ignore_index=self.ignore_index, reduction=self.reduction)
  File "C:\Users\sbzfk\AppData\Local\Programs\Python\Python37\lib\site-packages\torch\nn\functional.py", line 1550, in cross_entropy
    return nll_loss(log_softmax(input, 1), target, weight, None, ignore_index, None, reduction)
  File "C:\Users\sbzfk\AppData\Local\Programs\Python\Python37\lib\site-packages\torch\nn\functional.py", line 1403, in nll_loss
    if input.size(0) != target.size(0):
AttributeError: 'tuple' object has no attribute 'size'

Apparently the labels list/array is giving problems. Is it because its not a Tensor? But all the examples I read online, none of them convert their labels to tensors, they are used as is as I have done here. The error is from the TrainModel code which is below:
import time
import torch


def train_model(dataloders, model, criterion, optimizer, scheduler, num_epochs=25):
    use_gpu = torch.cuda.is_available()
    since = time.time()
    best_model_wts = model.state_dict()
    best_acc = 0.0
    dataset_sizes = {'train': len(dataloders['train'].dataset),
                     'valid': len(dataloders['valid'].dataset)}

    for epoch in range(num_epochs):
        for phase in ['train', 'valid']:            # for every epoch first train and that validate, phase will take string of train first and next iter it will be valid
            if phase == 'train':
                scheduler.step()
                model.train(True)
            else:
                model.train(False)                  # set to evaluation mode

            running_loss = 0.0
            running_corrects = 0

            for inputs, labels in dataloders[phase]:            # this will load data from train data loader first and then from validation dataloader
                if use_gpu:
                    inputs, labels = inputs.cuda(), labels.cuda()

                optimizer.zero_grad()

                outputs = model(inputs)
                print(outputs.size())
                print(labels.size())
                _, preds = torch.max(outputs.data, 1)
                loss = criterion(outputs, labels)

                if phase == 'train':
                    loss.backward()
                    optimizer.step()

                running_loss += loss.data[0]
                running_corrects += torch.sum(preds == labels.data)

            if phase == 'train':
                train_epoch_loss = running_loss / dataset_sizes[phase]
                train_epoch_acc = running_corrects / dataset_sizes[phase]
            else:
                valid_epoch_loss = running_loss / dataset_sizes[phase]
                valid_epoch_acc = running_corrects / dataset_sizes[phase]

            if phase == 'valid' and valid_epoch_acc > best_acc:
                best_acc = valid_epoch_acc
                best_model_wts = model.state_dict()

        print('Epoch [{}/{}] train loss: {:.4f} acc: {:.4f} '
              'valid loss: {:.4f} acc: {:.4f}'.format(
            epoch, num_epochs - 1,
            train_epoch_loss, train_epoch_acc,
            valid_epoch_loss, valid_epoch_acc))

    print('Best val Acc: {:4f}'.format(best_acc))

    model.load_state_dict(best_model_wts)
    return model


The above print lines of print(outputs.size()) gives the output torch.Size([64, 10222]) where as the print(labels.size()) gives the error: AttributeError: 'tuple' object has no attribute 'size'
Can you please help me with this,
Many thanks