Try to pass both lengths to the random_split method as:
train_A_dataset, test_A_dataset = torch.utils.data.random_split(patch_A ,[0.7*len(patch_A), 0.3*len(patch_A)])

Also, I assume you would get another error, since you are returning two lengths in your custom Dataset implementation:
def __len__(self):
    'denotes the total number of samples'
    return len(self.patch_B) , len(self.patch_A)

You should instead return a single length and make sure that both patch tensors can be indexed in this range.