A not-very-satisfying solution is to modify the Python reading function to convert Torch tensors to Numpy arrays before returning to R:
# read_pickle.py
import pickle
import torch
def read_pickle(filepath):
file = open(filepath, 'rb')
content = pickle.load(file)
content = {k:(v.numpy() if isinstance(v, torch.Tensor) else v) for (k,v) in content.items()}
file.close()
return content