ubuntu22.04复现graspnet保姆级教程
1. 配置环境
1.1 确定环境
-
Ubuntu22.04
-
显卡驱动:Driver Version:470.239.06
-
CUDA版本(作者使用的是10.0.221)
-
根据CUDA版本确定cudnn()版本
-
根据CUDA和cudnn版本下载对应的pytorch版本
-
python==3.7.16(必须大于等于3.6)
-
pytorch==1.7.0(需求文档里的pytorch是1.6.0版本,两个版本都可以使用,这里我用的1.7.0)
-
GPU名称:NVIDIA GeForce MX150
-
当前显卡的CUDA算力:61
1.2 配置环境
-
查看显卡以及驱动命令(470版本的驱动十分稳定,适配性高;该命令显示的CUDA版本是该电脑所能运行的CUDA最高的版本,所以在下载CUDA时,要选择版本号低于这个的版本)
nvidia-smi
![](https://img2024.cnblogs.com/blog/2583568/202404/2583568-20240410144227267-741621170.png) ![](https://img2024.cnblogs.com/blog/2583568/202404/2583568-20240410144254431-1006900440.png)
2.去官方网站下载对应版本的CUDA/CUDNN
https://developer.nvidia.com/cuda-toolkit-archive
https://developer.nvidia.cn/rdp/cudnn-archive
https://pytorch.org/
不会下载可以参考文章:
https://blog.csdn.net/qq_42194665/article/details/130028584 https://blog.csdn.net/Trisyp/article/details/131332354?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171272946616800178535496%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171272946616800178535496&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-131332354-null-null.142^v100^pc_search_result_base3&utm_term=ubuntu20.04%E6%80%8E%E4%B9%88%E4%B8%8B%E8%BD%BDcuda&spm=1018.2226.3001.4187 后面这篇适合小白观看
-
创建conda环境然后下载pytorch(注意创建之后要进入环境之后再下载pytorch)
这是为了避免之前的pytorch版本的影响
conda create --name dieu python=3.7.16 source activate dieu # dieu 就是环境的name
-
全部下载完成后可以用以下python代码检验:
1 import torch 2 print("是否可用:", torch.cuda.is_available()) # 查看GPU是否可用 3 print("GPU数量:", torch.cuda.device_count()) # 查看GPU数量 4 print("torch方法查看CUDA版本:", torch.version.cuda) # torch方法查看CUDA版本 5 print("GPU索引号:", torch.cuda.current_device()) # 查看GPU索引号 6 print("GPU名称:", torch.cuda.get_device_name(0)) # 根据索引号得到GPU名称 7 print('CUDA版本:',torch.version.cuda) 8 print('Pytorch版本:',torch.__version__) 9 print('显卡是否可用:','可用' if(torch.cuda.is_available()) else '不可用') 10 print('显卡数量:',torch.cuda.device_count()) 11 # print('是否支持BF16数字格式:','支持' if (torch.cuda.is_bf16_supported()) else '不支持') 12 print('当前显卡型号:',torch.cuda.get_device_name()) 13 print('当前显卡的CUDA算力:',torch.cuda.get_device_capability()) 14 print('当前显卡的总显存:',torch.cuda.get_device_properties(0).total_memory/1024/1024/1024,'GB') 15 print('是否支持TensorCore:','支持' if (torch.cuda.get_device_properties(0).major >= 7) else '不支持') 16 print('当前显卡的显存使用率:',torch.cuda.memory_allocated(0)/torch.cuda.get_device_properties(0).total_memory*100,'%')
2. 下载graspnet
2.1安装graspnet文件
git clone https://github.com/graspnet/graspnet-baseline.git cd graspnet-baseline pip install -r requirements.txt
2.2编译安装point2
cd pointnet2 python setup.py install
2.3编译安装knn
cd .. cd pointnet2 python setup.py install
2.4安装graspnetAPI
git clone https://github.com/graspnet/graspnetAPI.git 将下载好的graspnetAPI文件移动到graspnet-baseline的目录下 cd graspnetAPI pip install .
2.5手动构建文档
cd docs pip install -r requirements.txt bash build_doc.sh
3. 下载label和weight
3.1 下载
[tolerance.tar] https://pan.baidu.com/s/1HN29P-csHavJF-R_wec6SQ?_at_=1712722990153
3.2 将tolerance.tar移动到dataset目录下面
cd dataset tar -xvf tolerance.tar
3.3 下载预训练权重
checkpoint-rs.tar和checkpoint-kn.tar是分别使用 RealSense 数据和 Kinect 数据进行训练
两个预权重只需要导入一个就可以(建议导入checkpoint-rs.tar,一定要记得自己的下载位置)
[checkpoint-rs.tar] https://pan.baidu.com/s/1Eme60l39tTZrilF0I86R5A
[checkpoint-kn.tar] https://pan.baidu.com/s/1QpYzzyID-aG5CgHjPFNB9g
4. 复现demo
4.1 编辑配置
-
使用pycharm打开graspnet-baseline文件,配置解释器,选择conda的虚拟环境(使用conda来管理python包是一个很好的选择,创建虚拟环境可以避免包的版本问题引发的报错)
不会可以参考: https://blog.csdn.net/weixin_43486940/article/details/123229290
-
打开demo.py,在pycharm右上方的位置,展开,选择编辑配置
-
在形参那里输入预训练权重形参,注意后面的路径要修改为自己存储文件的位置
--checkpoint_path logs/log_kn/checkpoint.tar 如果不会配置路径的话,直接将checkpoint-rs.tar放置在graspnet-baseline目录下面,然后在形式参数那里输入: --checkpoint_path ./checkpoint-rs.tar
-
执行demo.py
参考资料:
python人工智能 scikit-learn线性回归: 用 scikit-learn 实现一个 线性回归 任务,代码方案分享1(图文详解) - 无名阁无名阁
python人工智能 scikit-learn逻辑回归: 用 scikit-learn 实现一个 线性回归 任务,代码方案分享1(图文详解) - 无名阁无名阁
python人工智能 scikit-learn随机森林: 用 scikit-learn 实现一个 随机森林 任务,代码方案分享1(图文详解) - 无名阁无名阁
python人工智能 XGBoost回归: 用 XGBoost 实现一个 回归 任务,代码方案分享1(图文详解) - 无名阁无名阁
python人工智能 XGBoost分类: 用 XGBoost 实现一个 分类 任务,代码方案分享1(图文详解) - 无名阁无名阁