XuyangBai / D3Feat

[TensorFlow] Official implementation of CVPR'20 oral paper - D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features https://arxiv.org/abs/2003.03164
MIT License
259 stars 38 forks source link

segmentation fault during training 3D match #2

Closed tangbohu closed 4 years ago

tangbohu commented 4 years ago

hello! Thanks for your sharing.

The code seems raise an error during runing the following code when I attempt to train on 3D Match. train_data = train_data.map(map_func=map_func, num_parallel_calls=self.num_threads)

Looking forward to your kind reply!

XuyangBai commented 4 years ago

Hi, @tangbohu Could you paste the error information here?

tangbohu commented 4 years ago

Hi, @tangbohu Could you paste the error information here?

Hi, @XuyangBai Thanks for your kind reply!

The error information is as follow:

Dataset Preparation


Preparing ply files Num_train 3680

Preparing ply files Num_val 1238 Initiating input pipelines self.batch_limit: 32235.291046036124 WARNING: Logging before flag parsing goes to stderr. W0419 10:41:07.728522 139672721119040 deprecation.py:323] From /home/user/.local/lib/python3.6/site-packages/tensorflow/python/data/ops/dataset_ops.py:494: py_func (from tensorflow.python.ops.script_ops) is deprecated and will be removed in a future version. Instructions for updating: tf.py_func is deprecated in TF V2. Instead, there are two options available in V2.

W0419 10:41:07.835422 139672721119040 deprecation.py:506] From /media/user/400a44dc-53f0-42c3-b7af-9a9931e73ec0/OriginWorkSpace/D3Feat/datasets/common.py:1308: calling reduce_min_v1 (from tensorflow.python.ops.math_ops) with keep_dims is deprecated and will be removed in a future version. Instructions for updating: keep_dims is deprecated, use keepdims instead Segmentation fault (core dumped)

And I have debugged the code, and found that the code dumped at line 600 of the file dataset/common.py, namely the code "train_data = train_data.map(map_func=map_func, num_parallel_calls=self.num_threads)".

Thanks!

XuyangBai commented 4 years ago

Hi @tangbohu I think you are using tensorflow2.0 or newer version? But there might be segmentation fault when using cpp custom op in tf.data.Dataset.map in tensorflow2.0, see this issue. Maybe you can try tensorflow1.12.0 instead or try g++-4.8 to build the custom ops (I am not sure this can work or not). And my code is heavily built on KPConv, and the author of KPConv might not test their code on tf 2.0.

tangbohu commented 4 years ago

Hi @tangbohu I think you are using tensorflow2.0 or newer version? But there might be segmentation fault when using cpp custom op in tf.data.Dataset.map in tensorflow2.0, see this issue. Maybe you can try tensorflow1.12.0 instead or try g++-4.8 to build the custom ops (I am not sure this can work or not). And my code is heavily built on KPConv, and the author of KPConv might not test their code on tf 2.0.

Thanks! It is caused by my upgrading of tensorflow from 1.12 to 1.14. The problem has been solved.

zhouhao957 commented 4 years ago

@tangbohu hello I also have an error in this code train_data = train_data.map(map_func=map_func, num_parallel_calls=self.num_threads)

error: Process finished with exit code 139 (interrupted by signal 11: SIGSEGV) Are you like that? How did you solve it