AniMer / amr /utils /__init__.py
luoxue-star's picture
init commit
48cafca
raw
history blame contribute delete
611 Bytes
import torch
from typing import Any
def recursive_to(x: Any, target: torch.device):
"""
Recursively transfer a batch of data to the target device
Args:
x (Any): Batch of data.
target (torch.device): Target device.
Returns:
Batch of data where all tensors are transfered 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