ranahanocka/MeshCNN

__remove_triplete errror

ihahanovgalactica opened this issue · 1 comments

Hello Rana,

Thanks for this repository, very helpful.
I'd like to use your code in order to train a model on non-watertight models. However, I'm getting stuck on this error.
It turns out that the vertex list is empty. I wonder if it has anything to do with the fact that my model is not watertight.

Traceback (most recent call last):
  File "/home/ihahanov/Projects/meshcnn/train.py", line 30, in <module>
    model.optimize_parameters()
  File "/home/ihahanov/Projects/meshcnn/models/mesh_classifier.py", line 66, in optimize_parameters
    out = self.forward()
  File "/home/ihahanov/Projects/meshcnn/models/mesh_classifier.py", line 57, in forward
    out = self.net(self.edge_features, self.mesh)
  File "/home/ihahanov/anaconda3/envs/covid/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/ihahanov/anaconda3/envs/covid/lib/python3.8/site-packages/torch/nn/parallel/data_parallel.py", line 166, in forward
    return self.module(*inputs[0], **kwargs[0])
  File "/home/ihahanov/Projects/meshcnn/models/networks.py", line 199, in __call__
    return self.forward(x, meshes)
  File "/home/ihahanov/Projects/meshcnn/models/networks.py", line 194, in forward
    fe, before_pool = self.encoder((x, meshes))
  File "/home/ihahanov/Projects/meshcnn/models/networks.py", line 349, in __call__
    return self.forward(x)
  File "/home/ihahanov/Projects/meshcnn/models/networks.py", line 333, in forward
    fe, before_pool = conv((fe, meshes))
  File "/home/ihahanov/Projects/meshcnn/models/networks.py", line 218, in __call__
    return self.forward(x)
  File "/home/ihahanov/Projects/meshcnn/models/networks.py", line 238, in forward
    x2 = self.pool(x2, meshes)
  File "/home/ihahanov/Projects/meshcnn/models/layers/mesh_pool.py", line 21, in __call__
    return self.forward(fe, meshes)
  File "/home/ihahanov/Projects/meshcnn/models/layers/mesh_pool.py", line 34, in forward
    self.__pool_main(mesh_index)
  File "/home/ihahanov/Projects/meshcnn/models/layers/mesh_pool.py", line 53, in __pool_main
    self.__pool_edge(mesh, edge_id, mask, edge_groups)
  File "/home/ihahanov/Projects/meshcnn/models/layers/mesh_pool.py", line 61, in __pool_edge
    elif self.__clean_side(mesh, edge_id, mask, edge_groups, 0)\
  File "/home/ihahanov/Projects/meshcnn/models/layers/mesh_pool.py", line 79, in __clean_side
    self.__remove_triplete(mesh, mask, edge_groups, invalid_edges)
  File "/home/ihahanov/Projects/meshcnn/models/layers/mesh_pool.py", line 181, in __remove_triplete
    assert(len(vertex) == 1)
AssertionError

I have the same error, did you solve it?
could you tell me how it is solved?