HSMR / lib /utils /device.py
IsshikiHugh's picture
feat: CPU demo
5ac1897
raw
history blame contribute delete
692 Bytes
import torch
from typing import Any, Dict, List
def recursive_to(x: Any, target: torch.device):
'''
Recursively transfer data to the target device.
Modified from: https://github.com/shubham-goel/4D-Humans/blob/6ec79656a23c33237c724742ca2a0ec00b398b53/hmr2/utils/__init__.py#L9-L25
### Args
- x: Any
- target: torch.device
### Returns
- Data transferred to the target device.
'''
if isinstance(x, Dict):
return {k: recursive_to(v, target) for k, v in x.items()}
elif isinstance(x, torch.Tensor):
return x.to(target)
elif isinstance(x, List):
return [recursive_to(i, target) for i in x]
else:
return x