WiLoR / wilor /utils /__init__.py
rolpotamias's picture
Upload 124 files
aea26c8 verified
raw
history blame contribute delete
775 Bytes
import torch
from typing import Any
from .renderer import Renderer
from .mesh_renderer import MeshRenderer
from .skeleton_renderer import SkeletonRenderer
from .pose_utils import eval_pose, Evaluator
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