Owen-Liuyuxuan / visualDet3D

Official Repo for Ground-aware Monocular 3D Object Detection for Autonomous Driving / YOLOStereo3D: A Step Back to 2D for Efficient Stereo 3D Detection
https://owen-liuyuxuan.github.io/papers_reading_sharing.github.io/3dDetection/GroundAwareConvultion/
Apache License 2.0
362 stars 77 forks source link

ImportError: cannot import name 'deform_conv_ext' from 'visualDet3D.networks.lib.ops.dcn' (/home/cv1/visualDet3D/visualDet3D/networks/lib/ops/dcn/__init__.py) #11

Closed sjg02122 closed 3 years ago

sjg02122 commented 3 years ago

Hi, I just get some error when I ran mono3d.

In this step,

Compute image database and anchors mean/std

You can run ./launcher/det_precompute.sh without arguments to see helper documents

./launcher/det_precompute.sh config/$CONFIG_FILE.py train ./launcher/det_precompute.sh config/$CONFIG_FILE.py test # only for upload testing

I got a message that :

Traceback (most recent call last): File "scripts/imdb_precompute_3d.py", line 11, in from visualDet3D.networks.heads.anchors import Anchors File "/home/cv1/visualDet3D/visualDet3D/networks/init.py", line 1, in from .pipelines import * File "/home/cv1/visualDet3D/visualDet3D/networks/pipelines/init.py", line 3, in from .evaluators import evaluate_kitti_obj File "/home/cv1/visualDet3D/visualDet3D/networks/pipelines/evaluators.py", line 16, in from visualDet3D.data.kitti.utils import write_result_to_file File "/home/cv1/visualDet3D/visualDet3D/data/init.py", line 1, in from .kitti.dataset import mono_dataset, depth_mono_dataset File "/home/cv1/visualDet3D/visualDet3D/data/kitti/init.py", line 1, in from .dataset import KittiMonoDataset, KittiMonoTestDataset File "/home/cv1/visualDet3D/visualDet3D/data/kitti/dataset/init.py", line 4, in from .KM3D_dataset import KittiRTM3DDataset File "/home/cv1/visualDet3D/visualDet3D/data/kitti/dataset/KM3D_dataset.py", line 19, in from visualDet3D.networks.utils.rtm3d_utils import gen_hm_radius, project_to_image, gaussian_radius File "/home/cv1/visualDet3D/visualDet3D/networks/utils/rtm3d_utils.py", line 6, in from visualDet3D.networks.lib.ops.iou3d.iou3d import boxes_iou3d_gpu File "/home/cv1/visualDet3D/visualDet3D/networks/lib/ops/init.py", line 1, in from .dcn.deform_conv import ModulatedDeformConvPack, DeformConvPack File "/home/cv1/visualDet3D/visualDet3D/networks/lib/ops/dcn/deform_conv.py", line 50, in from . import deform_conv_ext

ImportError: cannot import name 'deform_conv_ext' from 'visualDet3D.networks.lib.ops.dcn' (/home/cv1/visualDet3D/visualDet3D/networks/lib/ops/dcn/init.py)

So, How can I fix that error?

Owen-Liuyuxuan commented 3 years ago

I assume you have compile/make the operations?

Could you provide the ubuntu/python/cuda/torch version so that I could reproduce your error?

sjg02122 commented 3 years ago

My version torch : 1.8.1 python : 3.8 ubuntu : 18.04 cuda : 11.2

Thanks

Owen-Liuyuxuan commented 3 years ago

My version torch : 1.8.1 python : 3.8 ubuntu : 18.04 cuda : 11.2

Thanks

This setting has been verified to work fine.

From the error message, it actually means that the binary file is not found.

Could you find the compiled binary file? Any error in make.sh?

sjg02122 commented 3 years ago

~/visualDet3D/visualDet3D/networks/lib/ops/dcn ~/visualDet3D running build_ext building '..deform_conv_ext' extension Emitting ninja build file /home/cv1/visualDet3D/visualDet3D/networks/lib/ops/dcn/build/temp.linux-x86_64-3.8/build.ninja... Compiling objects... Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N) [1/1] /usr/local/cuda/bin/nvcc --generate-dependencies-with-compile --dependency-output /home/cv1/visualDet3D/visualDet3D/networks/lib/ops/dcn/build/temp.linux-x86_64-3.8/src/cuda/deform_conv_cuda_kernel.o.d -DWITH_CUDA -I/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/include -I/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/include/TH -I/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/cv1/anaconda3/envs/yolostereo/include/python3.8 -c -c /home/cv1/visualDet3D/visualDet3D/networks/lib/ops/dcn/src/cuda/deform_conv_cuda_kernel.cu -o /home/cv1/visualDet3D/visualDet3D/networks/lib/ops/dcn/build/temp.linux-x86_64-3.8/src/cuda/deform_conv_cuda_kernel.o -DCUDA_NO_HALF_OPERATORS -DCUDA_NO_HALF_CONVERSIONS -DCUDA_NO_BFLOAT16_CONVERSIONS -DCUDA_NO_HALF2_OPERATORS --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -DCUDA_NO_HALF_OPERATORS -DCUDA_NO_HALF_CONVERSIONS -DCUDA_NO_HALF2_OPERATORS -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=deform_conv_ext -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=compute_75 -gencode=arch=compute_75,code=sm_75 -std=c++14 FAILED: /home/cv1/visualDet3D/visualDet3D/networks/lib/ops/dcn/build/temp.linux-x86_64-3.8/src/cuda/deform_conv_cuda_kernel.o /usr/local/cuda/bin/nvcc --generate-dependencies-with-compile --dependency-output /home/cv1/visualDet3D/visualDet3D/networks/lib/ops/dcn/build/temp.linux-x86_64-3.8/src/cuda/deform_conv_cuda_kernel.o.d -DWITH_CUDA -I/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/include -I/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/include/TH -I/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/cv1/anaconda3/envs/yolostereo/include/python3.8 -c -c /home/cv1/visualDet3D/visualDet3D/networks/lib/ops/dcn/src/cuda/deform_conv_cuda_kernel.cu -o /home/cv1/visualDet3D/visualDet3D/networks/lib/ops/dcn/build/temp.linux-x86_64-3.8/src/cuda/deform_conv_cuda_kernel.o -DCUDA_NO_HALF_OPERATORS -DCUDA_NO_HALF_CONVERSIONS -DCUDA_NO_BFLOAT16_CONVERSIONS -DCUDA_NO_HALF2_OPERATORS --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -DCUDA_NO_HALF_OPERATORS -DCUDA_NO_HALF_CONVERSIONS -DCUDA_NO_HALF2_OPERATORS -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=deform_conv_ext -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=compute_75 -gencode=arch=compute_75,code=sm_75 -std=c++14 /bin/sh: 1: /usr/local/cuda/bin/nvcc: not found ninja: build stopped: subcommand failed. Traceback (most recent call last): File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1667, in _run_ninja_build subprocess.run( File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/subprocess.py", line 516, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "setup.py", line 172, in setup( File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/setuptools/init.py", line 153, in setup return distutils.core.setup(**attrs) File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/distutils/core.py", line 148, in setup dist.run_commands() File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/distutils/dist.py", line 966, in run_commands self.run_command(cmd) File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/distutils/dist.py", line 985, in run_command cmd_obj.run() File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 79, in run _build_ext.run(self) File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run _build_ext.build_ext.run(self) File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/distutils/command/build_ext.py", line 340, in run self.build_extensions() File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 708, in build_extensions build_ext.build_extensions(self) File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/Cython/Distutils/old_build_ext.py", line 195, in build_extensions _build_ext.build_ext.build_extensions(self) File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/distutils/command/build_ext.py", line 449, in build_extensions self._build_extensions_serial() File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/distutils/command/build_ext.py", line 474, in _build_extensions_serial self.build_extension(ext) File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 196, in build_extension _build_ext.build_extension(self, ext) File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/distutils/command/build_ext.py", line 528, in build_extension objects = self.compiler.compile(sources, File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 529, in unix_wrap_ninja_compile _write_ninja_file_and_compile_objects( File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1354, in _write_ninja_file_and_compile_objects _run_ninja_build( File "/home/cv1/anaconda3/envs/yolostereo/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1683, in _run_ninja_build raise RuntimeError(message) from e RuntimeError: Error compiling objects for extension

I expect it to be cuda's problem.

Owen-Liuyuxuan commented 3 years ago

So it is clear that 'nvcc not found' is the key problem. You may need to make sure you can directly run 'nvcc' in a terminal.

If you are using a docker, make sure you are using a 'dev' base container from nvidia

sjg02122 commented 3 years ago

I finally fixed both the bugs for nvcc and nvidia-smi. And it works well now. :) Thank you very much for your kind reply.