From abd390319c83077686d1f1f5cd5ea126088724ec Mon Sep 17 00:00:00 2001 From: Jeremy Reizenstein Date: Tue, 20 Oct 2020 13:44:41 -0700 Subject: [PATCH] Reshape for faces_packed_to_edges_packed Summary: As pointed out in #328, we had an indexing operation where a reshape would do and be faster. The resulting faces_packed_to_edges_packed is no longer contiguous. Also fix a use of faces_packed_to_edges_packed which might modify the object unintentionally. Reviewed By: theschnitz Differential Revision: D24390292 fbshipit-source-id: 225677d8fcc1d6b76efad7706718ecdb5182ffe1 --- pytorch3d/ops/subdivide_meshes.py | 5 +++-- pytorch3d/structures/meshes.py | 4 +--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pytorch3d/ops/subdivide_meshes.py b/pytorch3d/ops/subdivide_meshes.py index 6a2386e8..417a1447 100644 --- a/pytorch3d/ops/subdivide_meshes.py +++ b/pytorch3d/ops/subdivide_meshes.py @@ -103,8 +103,9 @@ class SubdivideMeshes(nn.Module): verts_packed = meshes.verts_packed() with torch.no_grad(): faces_packed = meshes.faces_packed() - faces_packed_to_edges_packed = meshes.faces_packed_to_edges_packed() - faces_packed_to_edges_packed += verts_packed.shape[0] + faces_packed_to_edges_packed = ( + meshes.faces_packed_to_edges_packed() + verts_packed.shape[0] + ) f0 = torch.stack( [ diff --git a/pytorch3d/structures/meshes.py b/pytorch3d/structures/meshes.py index a911223c..e1181b0b 100644 --- a/pytorch3d/structures/meshes.py +++ b/pytorch3d/structures/meshes.py @@ -1035,9 +1035,7 @@ class Meshes(object): self._edges_packed = torch.stack([u // V, u % V], dim=1) self._edges_packed_to_mesh_idx = edge_to_mesh[unique_idx] - face_to_edge = torch.arange(3 * F).view(3, F).t() - face_to_edge = inverse_idxs[face_to_edge] - self._faces_packed_to_edges_packed = face_to_edge + self._faces_packed_to_edges_packed = inverse_idxs.reshape(3, F).t() # Compute number of edges per mesh num_edges_per_mesh = torch.zeros(self._N, dtype=torch.int32, device=self.device)