| """ | |
| 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 |