Spaces:
Running
on
Zero
Running
on
Zero
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 | |