Found a solution of a kind. Setting shuffle to “False” in the DataLoader initialisation stops this error from occurring.
Will try digging a little deeper. If this stokes any ideas let me know. Think this should work now but interested in why exactly it doesn’t work if shuffle = True.
We now have:
def ucf101_dataloader(dataset, batch_size=4, shuffle=False, num_workers=1):

    return DataLoader(dataset=dataset, batch_size=batch_size, shuffle=shuffle, num_workers=num_workers)

test_set = ucf101_dataloader(ucf101_dataset(train=False))

test_set = iter(test_set)
print(test_set.next())

Producing lovely normal tensors:
[tensor([[[[[64, 65, 88],
            [64, 65, 88],
            [65, 66, 89],
            ...,

One thing I notice immediately is that elements of these tensors do not appear to be floats.