From 0b5def5257f53526ef81e1a83d462ef08af628d5 Mon Sep 17 00:00:00 2001 From: Jeremy Reizenstein Date: Tue, 11 Oct 2022 14:49:51 -0700 Subject: [PATCH] avoid numpy warning in split Summary: avoid creating a numpy array of random things just to split it: this can now generate a warning e.g. if the list contains lists of varying lengths. There might also be a performance win here, and we could do more of the same if we care about that. (The vanilla way to avoid the new warning is to replace `np.split(a,` with `np.split(np.array(a, dtype=object), ` btw.) Reviewed By: shapovalov Differential Revision: D40209308 fbshipit-source-id: daae33a23ceb444e8e7241f72ce1525593e2f239 --- pytorch3d/implicitron/dataset/types.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pytorch3d/implicitron/dataset/types.py b/pytorch3d/implicitron/dataset/types.py index b8227567..be67c055 100644 --- a/pytorch3d/implicitron/dataset/types.py +++ b/pytorch3d/implicitron/dataset/types.py @@ -225,8 +225,8 @@ def _dataclass_list_from_dict_list(dlist, typeannot): assert indices[-1] == len(all_keys_res) keys = np.split(list(all_keys_res), indices[:-1]) - vals = np.split(list(all_vals_res), indices[:-1]) - return [cls(zip(k, v)) for k, v in zip(keys, vals)] + all_vals_res_iter = iter(all_vals_res) + return [cls(zip(k, all_vals_res_iter)) for k in keys] elif not dataclasses.is_dataclass(typeannot): return dlist