""" PRIMA: Boosting Animal Mesh Recovery with Biological Priors and Test-Time Adaptation Official implementation of the paper: "PRIMA: Boosting Animal Mesh Recovery with Biological Priors and Test-Time Adaptation" by Xiaohang Yu, Ti Wang, and Mackenzie Weygandt Mathis Licensed under a modified MIT license """ import torch from typing import Any from .mesh_renderer import MeshRenderer 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 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