lzhengning / subdivnet Goto Github PK
View Code? Open in Web Editor NEWSubdivision-based Mesh Convolutional Networks.
License: MIT License
Subdivision-based Mesh Convolutional Networks.
License: MIT License
Does SubdivNet have any restrictions on the number of vertices or faces?
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.
Hi, I'm wondering will you release the code for shape correspondence tasks with labelled datasets?
你好 我在进行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,期待您的答复。
Where can I find the raw mesh for SHREC11-split10/SHREC11-split16 dataset? Are those mesh files without -xxx in name the raw ones?
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`
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:
with 842 faces, not 500, so I remeshed it in meshlab to make the code works.
How do you render the meshes in your paper? Blender or other ways?
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.
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!
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.
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?
使用了cubes
、manifold40
、shrec11-split10
、shrec11-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
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
SubdivNet/subdivnet/mesh_tensor.py
Line 210 in aeb0dbc
Thanks for your updating.
But I found out that L210 may also need int64.
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:
(after applying datagen_maps.py on it )
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
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
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!
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!
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:
Thank you!
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
”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!
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~
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那样?
Thank you for your work.
I want to ask if you have implemented the SubdivNet with pytorch ? Thanks again.
Hi, a few questions regarding preprocessing for segmentation:
Thanks.
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进行简化后再运行该算法?
期待您的回答,谢谢!
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!
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?
如题
I can not download dataset for segmentation. And 'raw' folder and .eseg files are missed. Can you check the problem?
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!
https://github.com/lzhengning/SubdivNet/blob/master/subdivnet/mesh_tensor.py
114行,
self._cache['FAFP'], self._cache['FAFS'] = self.compute_face_adjacency_reordered()
FAFS应该是FAFN吧。
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!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.