graspnet復現保姆級教程

花痴dy發表於2024-04-10

ubuntu22.04復現graspnet保姆級教程

1. 配置環境

1.1 確定環境

  1. Ubuntu22.04

  2. 顯示卡驅動:Driver Version:470.239.06

  3. CUDA版本(作者使用的是10.0.221)

  4. 根據CUDA版本確定cudnn()版本

  5. 根據CUDA和cudnn版本下載對應的pytorch版本

  6. python==3.7.16(必須大於等於3.6)

  7. pytorch==1.7.0(需求文件裡的pytorch是1.6.0版本,兩個版本都可以使用,這裡我用的1.7.0)

  8. GPU名稱:NVIDIA GeForce MX150

  9. 當前顯示卡的CUDA算力:61

1.2 配置環境

  1. 檢視顯示卡以及驅動命令(470版本的驅動十分穩定,適配性高;該命令顯示的CUDA版本是該電腦所能執行的CUDA最高的版本,所以在下載CUDA時,要選擇版本號低於這個的版本)

nvidia-smi

image-20240410135303051

![](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
後面這篇適合小白觀看
  1. 建立conda環境然後下載pytorch(注意建立之後要進入環境之後再下載pytorch)

    這是為了避免之前的pytorch版本的影響

    conda create --name dieu python=3.7.16
    source activate dieu # dieu 就是環境的name

    3

  2. 全部下載完成後可以用以下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 下載

3.2 將tolerance.tar移動到dataset目錄下面

cd dataset

tar -xvf tolerance.tar

3.3 下載預訓練權重

checkpoint-rs.tar和checkpoint-kn.tar是分別使用 RealSense 資料和 Kinect 資料進行訓練

兩個預權重只需要匯入一個就可以(建議匯入checkpoint-rs.tar,一定要記得自己的下載位置)

4. 復現demo

4.1 編輯配置

  1. 使用pycharm開啟graspnet-baseline檔案,配置直譯器,選擇conda的虛擬環境(使用conda來管理python包是一個很好的選擇,建立虛擬環境可以避免包的版本問題引發的報錯)

    不會可以參考:
    https://blog.csdn.net/weixin_43486940/article/details/123229290
  2. 開啟demo.py,在pycharm右上方的位置,展開,選擇編輯配置

  3. 在形參那裡輸入預訓練權重形參,注意後面的路徑要修改為自己儲存檔案的位置

    --checkpoint_path logs/log_kn/checkpoint.tar
    如果不會配置路徑的話,直接將checkpoint-rs.tar放置在graspnet-baseline目錄下面,然後在形式引數那裡輸入:
    --checkpoint_path ./checkpoint-rs.tar
  4. 執行demo.py

參考文獻:

復現graspnet並使用自己的資料實現(pycharm)-CSDN部落格

GraspNet-baseline復現----Linux-Ubuntu_graspnet復現詳細步驟-CSDN部落格

作者郵箱:515648571@qq.com

相關文章