注:系统为ubuntu24.04
注:此为我本人的复现流程及遇到的问题,新手小白一枚,本文档目的是自我存档。如还有问题,欢迎指出。
源代码:https://github.com/ma-xu/pointMLP-pytorch.git
源代码READMER如下:
1. 下载代码
打开终端,输入git clone https://github.com/ma-xu/pointMLP-pytorch.git,等待即可
下载完成后,进入该文件目录,终端中输入cd pointMLP-pytorch;或者在主文件夹中找到下载的pointMLP-pytorch,点击进入后,右击选择“在终端中打开”。
2. 创建虚拟环境
使用第二种方法创建:在终端中输入
conda create -n pointmlp python=3.7 -y
conda activate pointmlp
3. 配置环境
注意:
conda install pytorch==1.10.1 torchvision==0.11.2 cudatoolkit=10.2 -c pytorch -y
README中的这条代码需要替换与你本机CUDA版本相同的pytorch,不然的话,安装pip install pointnet2_ops_lib/.时,会一直报错。
安装包:
pip install cycler einops h5py pyyaml==5.4.1 scikit-learn==0.24.2 scipy tqdm matplotlib==3.4.2
这些包直接pip一般都没有问题,如出现问题,请更新pip版本,使用命令
pip install --upgrade pip
安装 pointnet2_ops_lib:
输入命令:
pip install pointnet2_ops_lib/.
可能报错:ERROR: Failed building wheel for pointnet2-ops
情况一:CUDA版本不适配
再次强调虚拟环境的CUDA版本必须要和本级的CUDA版本一样!!!
注意:虚拟环境中python版本为3.7,本机中的的CDUA不要安装的版本号太新,太新的话,在此虚拟环境中无法安装。
举例:以我的电脑为例
在终端中输入: nvcc -V ,得到如下:
看到第五行:Cuda compilation tools, release 11.3, V11.3.58,得到本机CUDA版本为CUDA11.3
然后,进入pytorch官网:Start Locally | PyTorch
找到与你本机相同的CDUA版本安装Previous PyTorch Versions | PyTorch,我这里是CUDA11.3
我输入指令:
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
然后,再次安装
pip install pointnet2_ops_lib/.
情况二:gcc版本不适配
如果检查好版本,虚拟环境与本机中的CUDA版本确实一致,pip install pointnet2_ops_lib/.还是报错,需要检查gcc版本,版本太高时需要降低。
检查gcc版本:输入
gcc --version
得到:
gcc版本太高,需降低,输入:
sudo apt-get install gcc-10 g++-10
降低后应用,输入:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10
最后,再次安装包 pip install pointnet2_ops_lib/.成功。
至此,所有环境配置完成,开始训练。
可能训练报错:
CUBLAS_STATUS_INVALID_VALUE when calling `cublasSgemmStridedBatched( handle, opa, opb, m, n, k, &alpha, a, lda, stridea, b, ldb, strideb, &beta, c, ldc, stridec, num_batches)`
解决方法:在此终端中输入:
unset LD_LIBRARY_PATH
再次输入训练命令即可。