second.pytorch 1.6&1.5.1配置实录

参考second1.6:traveller59/second.pytorch

参考second1.5.1:traveller59/second.pytorch/tree/v1.5.1

参考博客2:second.pytorch环境配置记录—Small_Munich

配置second有个大坑,导致按照CSDN上面的博客配置很难成功,就是second有两个版本和spconv两个版本分别对应。

second1.6环境:cuda 10.2/cudnn 8.0.4/pytorch 1.6.0/spconv1.2.1

安装相关依赖包:

conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch
conda install scikit-image scipy numba pillow matplotlib
pip install fire tensorboardX protobuf opencv-python

1.clone

git clone https://github.com/traveller59/second.pytorch.git
cd ./second.pytorch/second

#克隆时网不好的命令
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999 

其实网不好的话可以直接下载压缩包,注意将相对应的超链接的压缩包也下来放在对应的位置就好了,如果clone命令后面有recursive一般就有超链接。

2.安装spconv,只要环境对了,spconv很好装的,参考官网。重点说一下,网上下的(别人编译好的).whl文件,如果直接pip install安装的话,仍然会报错,需要将build文件夹和dist文件夹删除后,自己重新按步骤生成.whl文件,再安装才可以。

3.单独说一下cmake的安装,这个只要下对安装包也很简单的。

sudo apt-get install libboost-all-dev
# 参考链接安装cmake
# 以下命令安装spconv
python setup.py bdist_wheel 
cd ./dist
pip install 

4.设置环境变量。

#官网说second1.6可以不设置这个
export NUMBAPRO_CUDA_DRIVER=/usr/lib/x86_64-linux-gnu/libcuda.so
export NUMBAPRO_NVVM=/usr/local/cuda/nvvm/lib64/libnvvm.so
export NUMBAPRO_LIBDEVICE=/usr/local/cuda/nvvm/libdevice
#如果用的是1.6版本,添加下面这行,这个含义是让Python在这个路径下去找一些自己的写的import包
export PYTHONPATH=<path_to_second>/second.pytorch:$PYTHONPATH
#如果用的是1.5.1版本,添加下面这行
export PYTHONPATH=<path_to_second>/second.pytorch-1.5.1:$PYTHONPATH

5.准备数据集。

#官网是data_path要改成root_path
python create_data.py kitti_data_prep --root_path=KITTI_DATASET_ROOT

6.这个配置信息是我自己改了一点东西以作记录,你们按照官网来就好了。

python create_data.py kitti_data_prep --root_path=/home/gao/KITTI_DATASET_ROOT
# 安装必要的依赖
conda install seaborn psutil
# 训练
python ./pytorch/train.py train --config_path=./configs/pointpillars/modify/ped_cycle_11.03.config --model_dir=./model/20211103
# 验证
python ./pytorch/train.py evaluate --config_path=/configs/pointpillars/modify/ped_cycle_11.03.config --model_dir=./model/20211103 --measure_time=True --batch_size=1

7.可能会报一个错'numpy.float64' object cannot be interpreted as an integer,解决办法是让numpy版本≤17.0或者更改eval文件的704行,如下:

a, b, c = overlap_ranges[:, i, j]  # extracting the three numbers
min_overlaps[:, i, j] = np.linspace(a, b, int(c))  # casting to integer
# min_overlaps[:, i, j] = np.linspace(*overlap_ranges[:, i, j])

猜你喜欢

转载自blog.csdn.net/Jad_Goh/article/details/117400523