コード例 #1
0
 def test_clone(self):
     tex = TexturesUV(
         maps=torch.ones((5, 16, 16, 3)),
         faces_uvs=torch.rand(size=(5, 10, 3)),
         verts_uvs=torch.rand(size=(5, 15, 2)),
     )
     tex.faces_uvs_list()
     tex.verts_uvs_list()
     tex_cloned = tex.clone()
     self.assertSeparate(tex._faces_uvs_padded,
                         tex_cloned._faces_uvs_padded)
     self.assertClose(tex._faces_uvs_padded, tex_cloned._faces_uvs_padded)
     self.assertSeparate(tex._verts_uvs_padded,
                         tex_cloned._verts_uvs_padded)
     self.assertClose(tex._verts_uvs_padded, tex_cloned._verts_uvs_padded)
     self.assertSeparate(tex._maps_padded, tex_cloned._maps_padded)
     self.assertClose(tex._maps_padded, tex_cloned._maps_padded)
     self.assertSeparate(tex.valid, tex_cloned.valid)
     self.assertTrue(tex.valid.eq(tex_cloned.valid).all())
     for i in range(tex._N):
         self.assertSeparate(tex._faces_uvs_list[i],
                             tex_cloned._faces_uvs_list[i])
         self.assertClose(tex._faces_uvs_list[i],
                          tex_cloned._faces_uvs_list[i])
         self.assertSeparate(tex._verts_uvs_list[i],
                             tex_cloned._verts_uvs_list[i])
         self.assertClose(tex._verts_uvs_list[i],
                          tex_cloned._verts_uvs_list[i])
         # tex._maps_list is not use anywhere so it's not stored. We call it explicitly
         self.assertSeparate(tex.maps_list()[i], tex_cloned.maps_list()[i])
         self.assertClose(tex.maps_list()[i], tex_cloned.maps_list()[i])
コード例 #2
0
 def test_detach(self):
     tex = TexturesUV(
         maps=torch.ones((5, 16, 16, 3), requires_grad=True),
         faces_uvs=torch.rand(size=(5, 10, 3)),
         verts_uvs=torch.rand(size=(5, 15, 2)),
     )
     tex.faces_uvs_list()
     tex.verts_uvs_list()
     tex_detached = tex.detach()
     self.assertFalse(tex_detached._maps_padded.requires_grad)
     self.assertClose(tex._maps_padded, tex_detached._maps_padded)
     self.assertFalse(tex_detached._verts_uvs_padded.requires_grad)
     self.assertClose(tex._verts_uvs_padded, tex_detached._verts_uvs_padded)
     self.assertFalse(tex_detached._faces_uvs_padded.requires_grad)
     self.assertClose(tex._faces_uvs_padded, tex_detached._faces_uvs_padded)
     for i in range(tex._N):
         self.assertFalse(tex_detached._verts_uvs_list[i].requires_grad)
         self.assertClose(tex._verts_uvs_list[i],
                          tex_detached._verts_uvs_list[i])
         self.assertFalse(tex_detached._faces_uvs_list[i].requires_grad)
         self.assertClose(tex._faces_uvs_list[i],
                          tex_detached._faces_uvs_list[i])
         # tex._maps_list is not use anywhere so it's not stored. We call it explicitly
         self.assertFalse(tex_detached.maps_list()[i].requires_grad)
         self.assertClose(tex.maps_list()[i], tex_detached.maps_list()[i])