in contactopt/util.py [0:0]
def to_cpu_numpy(obj):
"""Convert torch cuda tensors to cpu, numpy tensors"""
if torch.is_tensor(obj):
return obj.detach().cpu().numpy()
elif isinstance(obj, dict):
res = {}
for k, v in obj.items():
res[k] = to_cpu_numpy(v)
return res
elif isinstance(obj, list):
res = []
for v in obj:
res.append(to_cpu_numpy(v))
return res
else:
raise TypeError("Invalid type for move_to")