前言
参考文章:Baseline model for "GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping" (CVPR 2020).[paper] [dataset] [API] [doc]
代码仓库:https://github.com/graspnet/graspnet-baseline
一、确定配置
Ubuntu18.04
CUDA版本(作者使用的是10.2)
根据CUDA版本确定cudnn()版本
根据CUDA和cudnn版本下载对应的pytorch版本
python==3.7(必须大于等于3.6)
pytorch==1.6.0(需求文档里的pytorch是1.6.0版本,这里作者和需求文档保持一致)
显卡:NVIDIA 2080
二、基础配置环境
1.首先使用
nvidia-smi
查看当前电脑所能运行的CUDA最高的版本,在下载CUDA时,要选择版本号低于这个的版本
2080显卡最高支持的CUDA版本为11.6,这里本人选择的CUDA版本为10.2
CUDA下载地址:https://developer.nvidia.com/cuda-toolkit-archive
cudnn下载地址:https://developer.nvidia.cn/rdp/cudnn-archive
如何下载CUDA可以参考这篇文章:环境配置之CUDA与pytorch版本问题以及多CUDA版本安装及切换
pytorch下载地址:https://pytorch.org/get-started/previous-versions/
2.创建conda环境然后下载pytorch(注意创建之后要进入环境之后再下载pytorch)
conda create --name py37 python=3.7
source activate py37 # py37 就是环境的name
3.下载pytorch==1.6.0 对应 #CUDA 10.2
pip install torch==1.6.0 torchvision==0.7.0
三、graspnet环境配置
3.1 安装graspnet文件
git clone https://github.com/graspnet/graspnet-baseline.git
cd graspnet-baseline
pip install -r requirements.txt
3.2 编译安装pointnet2
cd pointnet2python setup.py install
这一步可能会报错:
“subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1”
解决方法:
将setup.py中的
“cmdclass={'build_ext': BuildExtension}”
这一行改为
“cmdclass={'build_ext': BuildExtension.with_options(use_ninja=False)}”
pytorch默认使用ninjia作为backend,这里把它禁用掉就好了;
参考文章:出现错误“subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1”解决方法
3.3 编译安装knn
cd ..
cd knn
python setup.py install
3.4 安装graspnetAPI
git clone https://github.com/graspnet/graspnetAPI.git
将下载好的graspnetAPI文件移动到graspnet-baseline的目录下
cd ..
cd graspnetAPI
pip install .
3.5 手动构建文档
cd docs
pip install -r requirements.txt
bash build_doc.sh
这里可能会报错1:
latexmk -pdf -dvi- -ps- 'graspnetapi.tex'
make: latexmk: Command not found
Makefile:29: recipe for target 'graspnetapi.pdf failed
make: *** [graspnetapi.pd] Error 127
解决方法:
sudo apt-get install latexmk
报错2:
OSError: libc++.so.1: cannot open shared object file: No such file or directory
解决方法:
sudo apt-get update sudo apt-get install libc++1 export LD_LIBRARY_PATH=/usr/lib/x86_64-1inux-gnu:$LD_LIBRARY_PATH
四、下载label和weight
从 Google Drive/Baidu Pan 下载
下载到graspnet-baseline目录下:
mv tolerance.tar dataset/
cd dataset
tar -xvf tolerance.tar
预训练权重可以从以下位置下载:
checkpoint-rs.tar
[谷歌云端硬盘] [百度盘]checkpoint-kn.tar
[谷歌云端硬盘] [百度盘]
checkpoint-rs.tar
和checkpoint-kn.tar
是分别使用 RealSense 数据和 Kinect 数据进行训练。
在graspnet-baseline目录下,新建目录/logs/log_kn,将权重移动到这个目录下
mkdir -p ./logs/log_kn
mv ./checkpoint-rs.tar ./logs/log_kn/checkpoint.tar
运行代码
sh command_demo.sh
大功告成
配置过程中遇到的其他错误:
1.问题:
解决方法:
这是因为command_demo.sh中权重的文件名是checkpoint.tar
因此上面我们下载完权重,放到/logs/log_kn时,检查一下权重文件名,将名字重命名为checkpoint.tar就可以了。
2.问题:
ImportError: cannot import name 'NDArray' from 'numpy.typing'
解决方法:更新numpy版本
pip uninstall numpy pip install numpy
3.问题:
ModuleNotFoundError:No module named 'plyfile'
解决方法:
pip install plyfile
4.问题:
cannot import name ‘environmentfilter‘ from ‘jinja2‘
解决办法:降低jinja2版本
pip install jinja2==3.0
参考:cannot import name ‘environmentfilter‘ from ‘jinja2‘ 问题解决办法
5.问题:
解决方法:
sudo apt install doxygen-latex
6.问题:
解决方法:
sudo apt-get install sphinx-doc export PATH=$PATH:/path/to/sphinx source ~/.bashrc
7.问题:The command could not be located because '/usr/bin' is not included in the PATH environment variable.
解决方法:也可以用gedit ~/.bashrc 添加环境变量,在~/.bashrc的最后添加以下内容然后保存,效果一样。
nano ~/.bashrc
在文件末尾添加下面这行代码:
export PATH=/usr/bin:$PATH
保存并关闭文件,按Ctr+X保存文件,它将要求更改文件,按y并按Enter
让更改生效
source ~/.bashrc
参考:The command could not be located because '/bin' is not included in the PATH environment variable.
8.问题:sudo: command not found
解决方法:
9.问题:error: [Errno 2] No such file or directory: 'which': 'which'
解决方法:
pip install sh
10.问题:
解决方法:
sudo apt-get install latexmk
11.【Bug解决】nvcc fatal : Unsupported gpu architecture ‘compute_86‘
解决参考:【Bug解决】nvcc fatal : Unsupported gpu architecture ‘compute_86‘
12.ImportError: libtorch cuda cu.so: cannot open shared object file: Nosuch file or directory
参考:ImportError: libtorch cuda cu.so: cannot open shared object file: Nosuch file or directory
13.问题:“no kernel image is available“
参考:“no kernel image is available“
14.问题:CommandNotFoundError: Your shell has not been properly configured
参考:Ubuntu 使用 conda activate 虚拟环境是报错:CommandNotFoundError: Your shell has not been properly configured t
15.问题:FileNotFoundError: [Errno 2] No such file or directory: ‘:/usr/local/cuda-11.8/bin/nvcc‘
参考:(已解决)FileNotFoundError: [Errno 2] No such file or directory: ‘:/usr/local/cuda-11.8/bin/nvcc‘
16.问题:报错: make: pdflatex: Command not found
解决方案:
sudo apt install doxygen-latex
参考:报错: make: pdflatex: Command not found
17.from torch._six import container_abcs ImportError: cannot import name ‘container_abcs‘
参考:from torch._six import container_abcs ImportError: cannot import name ‘container_abcs‘
参考的文章:
1.ubuntu18.04复现yolo v8环境配置之CUDA与pytorch版本问题以及多CUDA版本安装及切换
2.【GraspNet复现】
3.graspnet-baseline 复现问题总结
4.graspnet复现保姆级教程
5.复现运行GraspNet中的demo.py
6.复现GraspNet遇到的问题-解决方法!
7.ubuntu配置多版本cuda+cudnn环境,及版本切换方法
8.Ubuntu20.04下GraspNet复现流程
9.graspnet+Astra2相机实现部署
10.复现graspnet并使用自己的数据实现(pycharm)
11.Ubuntu安装Pycharm并配置Python解释器
12.ROS1的一键安装(全)