Giter Site home page Giter Site logo

subdivnet's People

Contributors

lzhengning avatar tomguluson92 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

subdivnet's Issues

Could proposed method extend to unclosed mesh?

Hi @lzhengning ,thanks for opening the code. The proposed method worked fine on those dataset, however many meshes generated by algorithms like 3d visual reconstruction and lidar are usually unclosed. I am wondering is there any method could extend this work to unclosed meshes.

AssertionError assert self.F == self.Fs.max().data[0]

你好 我在进行manifold数据集上的分类任务训练时,遇到了下面的错误

name:  manifold40
Train 0:   0%|                                                                                                                                                                           | 0/2049 [00:01<?, ?it/s]
Traceback (most recent call last):
  File "train_cls.py", line 184, in <module>
    train(net, optim, train_dataset, writer, epoch)
  File "train_cls.py", line 33, in train
    mesh_tensor = to_mesh_tensor(meshes)
  File "/mnt/data/wy/SubdivNet/subdivnet/utils.py", line 28, in to_mesh_tensor
    jt.int32(meshes['Fs']))
  File "/mnt/data/wy/SubdivNet/subdivnet/mesh_tensor.py", line 35, in __init__
    assert self.F == self.Fs.max().data[0]
AssertionError

我是在ubuntu18.04上用conda搭建环境的,jittor版本1.3.0.14,期待您的答复。

raw mesh for SHREC11 dataset

Where can I find the raw mesh for SHREC11-split10/SHREC11-split16 dataset? Are those mesh files without -xxx in name the raw ones?

reshape size error while training

Dear author, can you give me some advice about the following errors?

`/home/success/.conda/envs/subdiv2/bin/python /home/success/MgGa/upsampling/SubdivNet-master/train_cls.py train --name manifold40 --dataroot ./data/Manifold40/ --optim adam --lr 1e-3 --lr_milestones 20 40 --batch_size 48 --n_classes 40 --depth 3 --channels 32 64 128 256 --n_dropout 2 --use_xyz --use_normal --augment_scale
[i 0621 20:52:43.235719 56 compiler.py:858] Jittor(1.2.3.34) src: /home/success/.conda/envs/subdiv2/lib/python3.7/site-packages/jittor
[i 0621 20:52:43.237901 56 compiler.py:859] g++ at /usr/bin/g++(5.5.0)
[i 0621 20:52:43.237963 56 compiler.py:860] cache_path: /home/success/.cache/jittor/default/g++
[i 0621 20:52:43.240509 56 init.py:258] Found nvcc(10.0.130) at /usr/local/cuda/bin/nvcc.
[i 0621 20:52:43.283449 56 init.py:258] Found gdb(8.1.1) at /usr/bin/gdb.
[i 0621 20:52:43.285706 56 init.py:258] Found addr2line(2.30) at /usr/bin/addr2line.
[i 0621 20:52:43.296301 56 compiler.py:919] py_include: -I/home/success/.conda/envs/subdiv2/include/python3.7m -I/home/success/.conda/envs/subdiv2/include/python3.7m
[i 0621 20:52:43.307131 56 compiler.py:921] extension_suffix: .cpython-37m-x86_64-linux-gnu.so
[i 0621 20:52:43.427413 56 compiler.py:1044] OS type:ubuntu OS key:ubuntu
[i 0621 20:52:43.428020 56 init.py:169] Total mem: 31.23GB, using 10 procs for compiling.
Compiling jittor_core(144/144) used: 27.395s eta: 0.000s
[i 0621 20:53:11.122010 56 jit_compiler.cc:21] Load cc_path: /usr/bin/g++
[i 0621 20:53:11.122200 56 init.cc:55] Found cuda archs: [61,]
[i 0621 20:53:11.217410 56 init.py:258] Found mpicc(2.1.1) at /usr/bin/mpicc.
[i 0621 20:53:11.234022 56 compiler.py:660] handle pyjt_include/home/success/.conda/envs/subdiv2/lib/python3.7/site-packages/jittor/extern/mpi/inc/mpi_warper.h
[i 0621 20:53:12.588011 56 compile_extern.py:337] Downloading nccl...
Compiling gen_ops_mkl_conv_backward_x_mkl_test_mkl_matmul_mkl_conv_mkl_conv_backward_w(7/7) used: 2.288s eta: 0.000s
[i 0621 20:53:18.678607 56 compile_extern.py:19] found /usr/local/cuda/include/cublas.h
[i 0621 20:53:18.682890 56 compile_extern.py:19] found /usr/local/cuda/lib64/libcublas.so
[i 0621 20:53:18.682977 56 compile_extern.py:19] found /usr/lib/x86_64-linux-gnu/libcublasLt.so.10
[i 0621 20:53:20.146853 56 compile_extern.py:19] found /usr/include/cudnn.h
[i 0621 20:53:20.153544 56 compile_extern.py:19] found /usr/lib/x86_64-linux-gnu/libcudnn.so
[i 0621 20:53:20.164575 56 compiler.py:660] handle pyjt_include/home/success/.conda/envs/subdiv2/lib/python3.7/site-packages/jittor/extern/cuda/cudnn/inc/cudnn_warper.h
Compiling gen_ops_cudnn_test_cudnn_conv3d_backward_w_cudnn_conv_cudnn_conv3d_cudnn_conv_ba___hash8356939239020823193(12/12) used: 2.907s eta: 0.000s
[i 0621 20:53:23.476182 56 compile_extern.py:19] found /usr/local/cuda/include/curand.h
[i 0621 20:53:23.487781 56 compile_extern.py:19] found /usr/local/cuda/lib64/libcurand.so
[i 0621 20:53:24.373308 56 cuda_flags.cc:26] CUDA enabled.
name: manifold40
Train 0: 0%| | 0/206 [00:00<?, ?it/s]
Compiling Operators(1/1) used: 2.21s eta: 0s

Compiling Operators(1/1) used: 2.12s eta: 0s

Compiling Operators(1/1) used: 2.08s eta: 0s
Train 0: 0%| | 0/206 [00:08<?, ?it/s]
Traceback (most recent call last):
File "/home/success/MgGa/upsampling/SubdivNet-master/train_cls.py", line 185, in
train(net, optim, train_dataset, writer, epoch)
File "/home/success/MgGa/upsampling/SubdivNet-master/train_cls.py", line 36, in train
outputs = net(mesh_tensor)
File "/home/success/.conda/envs/subdiv2/lib/python3.7/site-packages/jittor/init.py", line 737, in call
return self.execute(*args, **kw)
File "/home/success/MgGa/upsampling/SubdivNet-master/subdivnet/network.py", line 177, in execute
mesh = self.convs(mesh)
File "/home/success/.conda/envs/subdiv2/lib/python3.7/site-packages/jittor/init.py", line 737, in call
return self.execute(*args, **kw)
File "/home/success/.conda/envs/subdiv2/lib/python3.7/site-packages/jittor/nn.py", line 1541, in execute
x = layer(x)
File "/home/success/.conda/envs/subdiv2/lib/python3.7/site-packages/jittor/init.py", line 737, in call
return self.execute(*args, **kw)
File "/home/success/MgGa/upsampling/SubdivNet-master/subdivnet/network.py", line 29, in execute
mesh = self.mconv1(mesh)
File "/home/success/.conda/envs/subdiv2/lib/python3.7/site-packages/jittor/init.py", line 737, in call
return self.execute(*args, **kw)
File "/home/success/MgGa/upsampling/SubdivNet-master/subdivnet/mesh_ops.py", line 53, in execute
CKP = mesh_tensor.convolution_kernel_pattern(self.kernel_size, self.dilation)
File "/home/success/MgGa/upsampling/SubdivNet-master/subdivnet/mesh_tensor.py", line 409, in convolution_kernel_pattern
return self.FAF
File "/home/success/MgGa/upsampling/SubdivNet-master/subdivnet/mesh_tensor.py", line 107, in FAF
self._cache['FAF'] = self.compute_face_adjacency_faces()
File "/home/success/MgGa/upsampling/SubdivNet-master/subdivnet/mesh_tensor.py", line 304, in compute_face_adjacency_faces
S = S.reshape(-1, 2)
File "/home/success/.conda/envs/subdiv2/lib/python3.7/site-packages/jittor/init.py", line 347, in reshape
return origin_reshape(x, shape)
RuntimeError: Wrong inputs arguments, Please refer to examples(help(jt.ops.reshape)).

Types of your inputs are:
self = module,
args = (Var, tuple, ),

The function declarations are:
VarHolder* reshape(VarHolder* x, NanoVector shape)

Failed reason:[f 0621 20:53:33.515809 56 reshape_op.cc:48] Check failed: y_items != 0 && x_items % y_items == 0 reshape shape is invalid for input of size 375

Process finished with exit code 1`

关于分割的对比实验结果

您好,我对分割的对比实验结果有一些疑问。
这是您文章中的结果
image
这是MeshCNN中给出的结果
image
我想问您给出的MeshCNN的结果和原有结果之间为什么会差距这么大呢?是经过了什么处理呢?

About one sample in Manifold40

Hi, thanks for you great paper and code! When I want to make use of the new dataset Manifold40 you proposed from tsinghua cloud to training my own model, I found that there was a mere mistake in only one sample that is 'bookshelf_0099.obj'. The content of the version I downloaded is:

Object res.obj

Vertices: 245

Faces: 842

with 842 faces, not 500, so I remeshed it in meshlab to make the code works.

Segmentation on my own dataset

Hi @lzhengning, Thanks for releasing this code.

I would like to test your pretrained segmentation model on .obj meshes without groundtruth, do you think it is easily achievable ?
Is there a particular tool you use to label the meshes and get the .json files present in your repository ?

Kind regards.

Regression

Hello! Can we use this model for a global regression task? If so, what changes would need to be mande?

Thanks a lot in advance!

runtime error

image
my environment is :
cuda 10.1
python 3.7
gpu 2080

Cannot run the test shell script

Hello. Thanks for your work. However, when I try to run the test script of coseg-alien, it gives me an error message like this:

name: coseg-alien
0:   0%|                    | 0/37 [00:00<?, ?it/s]/home/xxx/.cache/jittor/default/g++/jit/_opkey0:array_T:int32__JIT:1__JIT_cuda:1__index_t:int32___opkey1:broadcast_to_Tx:int32__DI...hash:bc2f95c82b48131a_op.cc(40): error: calling a constexpr __host__ function("floor") from a __global__ function("func_bc2f95c82b48131a_0") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.

1 error detected in the compilation of "/home/xxx/.cache/jittor/default/g++/jit/_opkey0:array_T:int32__JIT:1__JIT_cuda:1__index_t:int32___opkey1:broadcast_to_Tx:int32__DI...hash:bc2f95c82b48131a_op.cc".
[e 0721 14:21:37.874137 48:C15 parallel_compiler.cc:261] [Error] source file location: /home/xxx/.cache/jittor/default/g++/jit/_opkey0:array_T:int32__JIT:1__JIT_cuda:1__index_t:int32___opkey1:broadcast_to_Tx:int32__DI...hash:bc2f95c82b48131a_op.cc
[e 0721 14:21:37.874176 48:C15 parallel_compiler.cc:264] Compile fused operator(18/56) failed: [Op(0x5561911a3de0:0:0:1:i0:o1:s0,array->0x5561911a3e80),Op(0x5561911a2360:0:0:1:i1:o1:s0,broadcast_to->0x5561911a2410),Op(0x5561911a37f0:0:0:1:i2:o1:s0,binary.mod->0x5561911a30a0),] 

Reason: [f 0721 14:21:37.873882 48:C15 log.cc:387] Check failed ret(256) == 0(0) Run cmd failed: cd /home/xxx/.cache/jittor/default/g++ && /home/xxx/.cache/jittor/jtcuda/cuda11.2_cudnn8_linux/bin/nvcc '/home/xxx/.cache/jittor/default/g++/jit/_opkey0:array_T:int32__JIT:1__JIT_cuda:1__index_t:int32___opkey1:broadcast_to_Tx:int32__DI...hash:bc2f95c82b48131a_op.cc'     -std=c++14 -Xcompiler -fPIC  -Xcompiler -march=native  -Xcompiler -fdiagnostics-color=always  -I/home/xxx/anaconda3/envs/subdivnet/lib/python3.7/site-packages/jittor/src -I/home/xxx/anaconda3/envs/subdivnet/include/python3.7m -I/home/xxx/anaconda3/envs/subdivnet/include/python3.7m -DHAS_CUDA -I'/home/xxx/.cache/jittor/jtcuda/cuda11.2_cudnn8_linux/include' -I'/home/xxx/anaconda3/envs/subdivnet/lib/python3.7/site-packages/jittor/extern/cuda/inc'  -lstdc++ -ldl -shared  -x cu --cudart=shared -ccbin='/usr/bin/g++' --use_fast_math  -w  -I'/home/xxx/anaconda3/envs/subdivnet/lib/python3.7/site-packages/jittor/extern/cuda/inc'  -arch=compute_61  -code=sm_61  -o '/home/xxx/.cache/jittor/default/g++/jit/_opkey0:array_T:int32__JIT:1__JIT_cuda:1__index_t:int32___opkey1:broadcast_to_Tx:int32__DI...hash:bc2f95c82b48131a_op.so'
0:   0%|                    | 0/37 [00:02<?, ?it/s]
Traceback (most recent call last):
  File "train_seg.py", line 162, in <module>
    test(net, test_dataset, writer, 0, args)
  File "/home/xxx/anaconda3/envs/subdivnet/lib/python3.7/site-packages/jittor/__init__.py", line 257, in inner
    ret = func(*args, **kw)
  File "train_seg.py", line 64, in test
    preds = np.argmax(outputs.data, axis=1)
RuntimeError: Wrong inputs arguments, Please refer to examples(help(jt.data)).

Types of your inputs are:
 self   = Var,

The function declarations are:
 inline DataView data()

Failed reason:[f 0721 14:21:38.068584 96 parallel_compiler.cc:316] Error happend during compilation, see error above.

Any ideas on why this happens? I have downloaded the data of coseg-alien via the shell script provided.

question about visualization

hi, thanks for your work. Can MeshTensor be visualized ? How can i get the model after pooling or convolution like Fig.1 in your paper?

无法复现论文结果,一些预训练分类模型准确率为0

使用了cubesmanifold40shrec11-split10shrec11-split16的预训练模型,分类结果:

cubes

name:  Cubes
Test 0: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 103/103 [01:09<00:00,  1.48it/s]
test acc =  0.00015174506828528073
test acc [voted] =  0.0

manifold40

name:  Manifold40
Test 0:   5%|███████                                                                                                                          | 112/2057 [00:11<04:29,  7.22it/s]
[w 0723 15:28:27.917150 76 cudnn_conv_Tx:float32__Ty:float32__Tw:float32__XFORMAT:abcd__WFORMAT:oihw__YFORMAT:abcd__J...hash:798cb5ed49dadaa2_op.cc:200] forward_ algorithm cache is full
Test 0: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2057/2057 [03:12<00:00, 10.67it/s]
test acc =  0.037560777957860614
test acc [voted] =  0.03727714748784441

shrec11-split10

name:  shrec11-split10
Test 0: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 99/99 [00:48<00:00,  2.04it/s]
test acc =  0.0
test acc [voted] =  0.0

shrec11-split16

name:  shrec11-split16
Test 0: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 40/40 [00:28<00:00,  1.43it/s]
test acc =  0.0
test acc [voted] =  0.0

Dataset

Why does each sample in the 'cubes' dataset have 10 subdivision samples in the 'Cubes-MAPS-48-4'? Are all the 10 subdivision samples trained as training samples? Thank you

question concerning labeling the data

Hello, thanks for your great work and offered code.

i'm working on a school project and i want to use the SUBDIVNET code to train my data, but there are some points i did not understand..

in each .obj file there are 3 indexes:

  • raw_labels: each item here represents a label of a face in the original data.
  • sub_labels: each item here represents a label of a face in the data after remeshing it (after applying datagen_maps.py on it )
  • raw_to_sub: this i don't understand what does it represent, and what is its role

another thing i didn't understand: length of raw_labels and sub_labels is 13776 but number of faces in each object is 16384.
so if raw_labels and sub_labels are representing the label of each face why they don't have same length as faces.

so can you please explain to me how can i preprocess step by step my data to before feeding it to the subdivnet?
how can i make each object have the exact number of faces as in your input data (16384)
and how to label my data, and if you can recommend me a tool i can use!

thank you in advance

question about the input data "meshes"

Hi, @lzhengning ,

According to data loading from here, meshes['faces']:(bs, num_f, 3), meshes['feats']:(bs, 13, num_f), meshes['Fs']:(bs,) are used for training iteration. Could you elaborate what those 13 channels mean in meshes['feats']?

Thanks

Confused about the implementation of MAPS

I'm a little confused about the implementation detail of the MAPS algorithm.
In the function reparameterize, what is the use of the step split_triangles_on_segments? It seems add new vertex into ParamMesh. Does there any corresponding step in the MAPS paper?(May be the chapter 4.2 "Smoothing the Parameterization"?)
Thanks in advance!

[/mnt/disk/lzn/SubdivDataset/HumanSeg-256-aug10]

Dear author,
I am eager to know if HumanSeg-256-aug10 is available now?
I don't found any clues except for HumanBody-NS-256-3. So could you please provide it for testing?
Really appreciated! Thank you!

Questions about input data for segmentation

Thanks for sharing the code of your nice work! I've been trying to apply the framework to my own dataset for segmentation. As I understood, the dataroot contains the folders 'train', 'test' and 'raw'. For each sample, there are three files: *.obj, *.json (labels), and the *.off (in 'raw'). What is unclear to me are:

  1. What are the data in the 'raw' folder? I expect the raw data to be *.obj. What is the purpose of saving the meshes in .off instead of .obj? The remeshing algorithms (MAPS and neural subdivision) have the finest mesh as input and downsample the meshes. However, the meshes in the 'raw' folders have a lower resolution than those in the 'train' and 'test' folders.
  2. How do you obtain the labels (*.json)?

Thank you!

Data Preprocessing with datagen_maps.py

Hi so I saw the datagen_maps.py being used with the airplane.obj my obj files are in the same format but,
airplane.obj has Vertices: 252, Faces: 500 and is being converted to Maps to be used by the model.
my._obj_file.obj has Vertices: 27886, Faces: 55648
and what is the base_value variable in the code? how do I find the base_value of my obj file?

while running the code on my obj file, I faced the error :
Traceback (most recent call last):
File "datagen_maps.py", line 209, in
MAPS_demo1()
File "datagen_maps.py", line 173, in MAPS_demo1
make_MAPS_shape('Aneurisk_C0009.obj', 'Aneurisk_C0009_MAPS.obj', 200, 3)
File "datagen_maps.py", line 165, in make_MAPS_shape
maps = MAPS(mesh.vertices, mesh.faces, base_size=base_size, verbose=True)
File "/workspace/Storage_fast/SubDivNet/SubdivNet/maps/maps.py", line 361, in init
self.decimate()
File "/workspace/Storage_fast/SubDivNet/SubdivNet/maps/maps.py", line 380, in decimate
neighbors = self.base.one_ring_neighbors(i)
File "/workspace/Storage_fast/SubDivNet/SubdivNet/maps/maps.py", line 53, in one_ring_neighbors
cycle = nx.cycle_basis(G.subgraph(G[i]))[0]
IndexError: list index out of range

How many gpus do you utilize?

”name: manifold40
Train 0: 0%| | 0/2049 [00:00<?, ?it/s]
Compiling Operators(1/1) used: 19.2s eta: 0s

Compiling Operators(1/1) used: 13s eta: 0s

Compiling Operators(1/1) used: 13s eta: 0s

Compiling Operators(1/1) used: 13.8s eta: 0s

Compiling Operators(56/56) used: 78.5s eta: 0s

Compiling Operators(44/44) used: 60.4s eta: 0s

Compiling Operators(1/1) used: 16s eta: 0s
Train 0: 0%| | 1/2049 [03:56<134:34:05, 236.55s/it]
Compiling Operators(2/2) used: 19.3s eta: 0s

Compiling Operators(1/1) used: 14.4s eta: 0s
Train 0: 1%|▋ | 21/2049 [04:52<1:14:44, 2.21s/it][w 0624 09:21:26.817385 20 cudnn_conv_Tx:float32__Ty:float32__Tw:float32__XFORMAT:abcd__WFORMAT:oihw__YFORMAT:abcd__J...hash:798cb5ed49dadaa2_op.cc:200] forward_ algorithm cache is full
[w 0624 09:21:27.423196 20 cudnn_conv_backward_w_Tx:float32__Ty:float32__Tw:float32__XFORMAT:abcd__WFORMAT:oihw__YFOR...hash:c41e3d43aa5d4cf7_op.cc:199] backward w algorithm cache is full
Train 0: 1%|▊ | 24/2049 [04:56<56:14, 1.67s/it][w 0624 09:21:31.279631 20 cudnn_conv_backward_x_Tx:float32__Ty:float32__Tw:float32__XFORMAT:abcd__WFORMAT:oihw__YFOR...hash:74f24b7a5fa4fe17_op.cc:201] backward x algorithm cache is full
Train 0: 65%|███████████████████████████████████████████▌ | 1332/2049 [1:21:43<51:18, 4.29s/it]

The training process consume too much time. I utilize 1 gpu (12G) to train. An hour later, Train 0 is not over. I noticed that you mentioned that using multiple gpus could speed up the trainning, so I want to know how many gpus do you utilize and how long is the training time?

Thank you very much!

training error

Hi, @lzhengning ,

Thanks for releasing the package. After downloading the dataset, I run the training script and get the following error:

(jittor_new) root@milton-ThinkCentre-M93p:/data/code13/SubdivNet# sh scripts/shrec11-split10/train.sh 
[i 0616 23:07:49.759805 20 compiler.py:847] Jittor(1.2.2.34) src: /root2/anaconda3/envs/jittor_new/lib/python3.7/site-packages/jittor
[i 0616 23:07:49.759901 20 compiler.py:848] g++ at /usr/bin/g++
[i 0616 23:07:49.759969 20 compiler.py:849] cache_path: /root/.cache/jittor/default/g++
[i 0616 23:07:49.762716 20 compiler.py:799] Found /usr/local/cuda/bin/nvcc(10.1.105) at /usr/local/cuda-10.1/bin/nvcc
[i 0616 23:07:49.798470 20 __init__.py:257] Found gdb(7.11.1) at /usr/bin/gdb.
[i 0616 23:07:49.801743 20 __init__.py:257] Found addr2line(2.26.1) at /usr/bin/addr2line.
[i 0616 23:07:49.830711 20 compiler.py:889] pybind_include: -I/root2/anaconda3/envs/jittor_new/include/python3.7m -I/root2/anaconda3/envs/jittor_new/lib/python3.7/site-packages/pybind11/include
[i 0616 23:07:49.838109 20 compiler.py:891] extension_suffix: .cpython-37m-x86_64-linux-gnu.so
[i 0616 23:07:50.310062 20 __init__.py:169] Total mem: 11.66GB, using 3 procs for compiling.
Compiling jittor_core(143/143) used: 59.421s eta: 0.000ss
[i 0616 23:08:50.128564 20 jit_compiler.cc:21] Load cc_path: /usr/bin/g++
[i 0616 23:08:50.128595 20 jit_compiler.cc:24] Load nvcc_path: /usr/local/cuda-10.1/bin/nvcc
[i 0616 23:08:51.250901 20 init.cc:54] Found cuda archs: [61,]
[i 0616 23:08:52.635424 20 __init__.py:257] Found mpicc(1.10.2) at /usr/bin/mpicc.
[i 0616 23:08:52.793805 20 compiler.py:654] handle pyjt_include/root2/anaconda3/envs/jittor_new/lib/python3.7/site-packages/jittor/extern/mpi/inc/mpi_warper.h
Compiling jittor_mpi_core(7/7) used: 2.310s eta: 0.000s
[i 0616 23:08:55.261057 20 compile_extern.py:287] Downloading nccl...
Downloading https://github.com/NVIDIA/nccl/archive/v2.6.4-1.tar.gz to /root/.cache/jittor/nccl/nccl.tgz
147456it [00:02, 50709.85it/s]
Compiling gen_ops_mkl_conv_backward_x_mkl_conv_mkl_conv_backward_w_mkl_test_mkl_matmul(3/7) used: Compiling gen_ops_mkl_conv_backward_x_mkl_conv_mkl_conv_backward_w_mkl_test_mkl_matmul(4/7) used: Compiling gen_ops_mkl_conv_backward_x_mkl_conv_mkl_conv_backward_w_mkl_test_mkl_matmul(5/7) used: Compiling gen_ops_mkl_conv_backward_x_mkl_conv_mkl_conv_backward_w_mkl_test_mkl_matmul(6/7) used: Compiling gen_ops_mkl_conv_backward_x_mkl_conv_mkl_conv_backward_w_mkl_test_mkl_matmul(7/7) used: 4.564s eta: 0.000s
[i 0616 23:09:06.842528 20 compile_extern.py:16] found /usr/include/cublas.h
[i 0616 23:09:06.842637 20 compile_extern.py:16] found /usr/lib/x86_64-linux-gnu/libcublas.so
[i 0616 23:09:10.160118 20 compile_extern.py:16] found /usr/local/cuda-10.1/include/cudnn.h
[i 0616 23:09:10.160193 20 compile_extern.py:16] found /usr/local/cuda-10.1/lib64/libcudnn.so
[i 0616 23:09:11.063621 20 compiler.py:654] handle pyjt_include/root2/anaconda3/envs/jittor_new/lib/python3.7/site-packages/jittor/extern/cuda/cudnn/inc/cudnn_warper.h
Compiling gen_ops_cudnn_conv_backward_w_cudnn_conv_cudnn_test_cudnn_conv_backward_x(6/9) used: 2.2Compiling gen_ops_cudnn_conv_backward_w_cudnn_conv_cudnn_test_cudnn_conv_backward_x(7/9) used: 2.3Compiling gen_ops_cudnn_conv_backward_w_cudnn_conv_cudnn_test_cudnn_conv_backward_x(8/9) used: 2.5Compiling gen_ops_cudnn_conv_backward_w_cudnn_conv_cudnn_test_cudnn_conv_backward_x(9/9) used: 3.050s eta: 0.000s
[i 0616 23:09:18.184931 20 compile_extern.py:16] found /usr/local/cuda-10.1/include/curand.h
[i 0616 23:09:18.185190 20 compile_extern.py:16] found /usr/local/cuda-10.1/lib64/libcurand.so
[i 0616 23:09:19.741614 20 cuda_flags.cc:26] CUDA enabled.
Traceback (most recent call last):
  File "train_cls.py", line 153, in <module>
    optim = Adam(net.parameters(), lr=args.lr, weight_decay=args.weight_decay)
  File "/root2/anaconda3/envs/jittor_new/lib/python3.7/site-packages/jittor/optim.py", line 251, in __init__
    assert weight_decay==0, "weight_decay is not supported yet"
AssertionError: weight_decay is not supported yet
Caught segfault at address 0x10, thread_name: '', flush log...
stack trace for /root2/anaconda3/envs/jittor_new/bin/python3.7 pid=24435
[New LWP 24441]
[New LWP 25105]
[New LWP 25107]
[New LWP 25108]
[New LWP 25109]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f8481e110cb in __GI___waitpid (pid=25371, stat_loc=0x0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
29	../sysdeps/unix/sysv/linux/waitpid.c: No such file or directory.
[Current thread is 1 (Thread 0x7f8482521700 (LWP 24435))]
#0  0x00007f8481e110cb in __GI___waitpid (pid=25371, stat_loc=0x0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
#1  0x00007f848075bf3d in jittor::print_trace() () from /root/.cache/jittor/default/g++/jit_utils_core.cpython-37m-x86_64-linux-gnu.so
#2  0x00007f848075729d in jittor::segfault_sigaction(int, siginfo_t*, void*) () from /root/.cache/jittor/default/g++/jit_utils_core.cpython-37m-x86_64-linux-gnu.so
#3  <signal handler called>
#4  0x00007f847fb5c7d8 in ?? () from /usr/local/cuda-10.1/lib64/libcudart.so
#5  0x00007f847fb62b01 in ?? () from /usr/local/cuda-10.1/lib64/libcudart.so
#6  0x00007f847fb5598e in ?? () from /usr/local/cuda-10.1/lib64/libcudart.so
#7  0x00007f847fb56006 in ?? () from /usr/local/cuda-10.1/lib64/libcudart.so
#8  0x00007f8481d7eff8 in __run_exit_handlers (status=1, listp=0x7f84821095f8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
#9  0x00007f8481d7f045 in __GI_exit (status=<optimized out>) at exit.c:104
Undefined command: "py-bt".  Try "help".
Segfault, exit
Segmentation fault (core dumped)

Could you give some hints to solve this issue?

Thanks~

Data preprocessing

I'm trying to use your script datagen_maps.py to preprocess some meshes in order to feed them to SubDivNet.
The meshes are obtained with marching cubes and I tried different resolutions to get meshes with different number of vertices/faces.
The preprocessing fails in the decimate() function here, without any meaningful error (at least that I can understand).

Do you have any suggestion? Is there any special requirement for the meshes in order to be able to preprocess them?

Thanks in advance!

如何制作数据集

@lzhengning 作者您好!感谢你的开源这么优秀的工作,我已经跑通了您的项目,效果很好。现在需要制作我自己的数据集来进行训练,请问怎么在mesh上画标签并导出json,就像您给的数据里的json那样?

Question about data preprocessing

Hi, a few questions regarding preprocessing for segmentation:

  1. How do you get sub_labels? Do you project the faces onto raw data? Is there any manual work involved in this process?
  2. When you reported your accuracies, whose labels did you use as the ground truth? The labels in the remeshed data or the raw data?

Thanks.

cannot reproduce results on Manifold40

Hi, I'm trying to reproduce your results on Manifold40.

I downloaded the dataset with the command sh scripts/manifold40/get_data.sh, which downloads the file Manifold40-MAPS-96-3.zip. I noticed in your instructions that it is possible to download a different version of Manifold40 "before remeshing". Which is the correct version to use for evaluation?

I noticed that the version in Manifold40-MAPS-96-3.zip contains approximatively 10 times the number of shapes contained in the original ModelNet40, why is that?

I run the command sh scripts/manifold40/get_pretrained.sh to obtain the checkpoint for the model and then I run the command sh scripts/manifold40/test.sh to perform evaluation. The evaluation runs fine but I get a very low accuracy. Do you have any idea of what I could have missed?

Thanks in advance,
Luca.

关于数据集训练的一些问题

@lzhengning 您好!

感谢您能够开源这么优秀的项目!

目前我在尝试使用自己的数据集进行训练,但是现在遇到一些问题:
1、数据集预处理部分,那个json文件中的参数我没搞明白,我看过了您在#9 中的回答,那个sub_labels和raw_to_sub的数据是如何获取的,trimesh.proximity.closest_point中的输入是一个mesh数据和一个points,这个points应该选择哪些点的坐标?mesh的顶点吗?
2、在打标签时,应该在原始数据上进行还是在进行remesh后的mesh中进行?
3、我目前需要训练的mesh数据每个都包含了10w个左右的三角面片,请问还需要运行MAPS算法吗?如果需要,是否应该先对mesh进行简化后再运行该算法?

期待您的回答,谢谢!

Where is datagen_maps.py

Hi,
I am really impressed by your work. I want to test it on my own dataset where I did not found
datagen_maps.py.

Could you please provide it? Thank you so much!

Failed downloading dataset

Hi author, Thanks for you execellent work! I was trying to run your codes but failed to download the data, it seems the cloud storage is no longer available, could you please check it?

Questions about your results?

The results of PD-MeshNet in your paper are very different from the results in the original paper. I also notice your answer to question 15. But the metric of PD-MeshNet is on the primal nodes (on faces), which means that the metric is strict. Therefore, I'm curious about the reason. Thanks! Have a nice day!

Could you please provide datasets with subdivision connectivity

I found the datasets download via "sh scripts/<DATASET_NAME>/get_data.sh" are original datasets without the subdivision connectivity. Moreover, it is very hard to remesh them by datagen_maps.py for the remeshing is always interrupted by some problems in the program, especially for the Manifold40.

Therefore, could you please provide the remeshed datasets with subdivision connectivity? Thank you very much!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.