Just_For_PLC_Test / src /misc /collation.py
Aeonicc's picture
Initial commit for brand new AnySplat ZeroGPU Space (part 3)
f501764 verified
Raw History Blame Contribute Delete
448 Bytes
from typing import Callable, Dict, Union
from torch import Tensor
Tree = Union[Dict[str, "Tree"], Tensor]
def collate(trees: list[Tree], merge_fn: Callable[[list[Tensor]], Tensor]) -> Tree:
"""Merge nested dictionaries of tensors."""
if isinstance(trees[0], Tensor):
return merge_fn(trees)
else:
return {
key: collate([tree[key] for tree in trees], merge_fn) for key in trees[0]
}