Prior2DSM / src /dinov3 /eval /dense /depth /utils.py
osherr's picture
Upload 222 files
bc90483 verified
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This software may be used and distributed in accordance with
# the terms of the DINOv3 License Agreement.
import torch
def cast_to(o, dtype: torch.dtype):
if isinstance(o, torch.Tensor):
return o.to(dtype)
if isinstance(o, tuple):
return tuple(cast_to(u, dtype) for u in o)
if isinstance(o, list):
return list(cast_to(u, dtype) for u in o)
if isinstance(o, dict):
return {k: cast_to(u, dtype) for k, u in o.items()}
if isinstance(o, (bool, int, float, str, type(None))):
return o
raise NotImplementedError(f"Unsupported type: {type(o)}")