记录一下吧:
首先说一下搭建成功的环境:
Ubuntu 18.04
Pytorch 1.3.0
python 3.6.9
numpy 1.17.4
numba 0.44…1
llvmlite 0.29.0
Cmake 3.13.2
CUDA: 10.0
cuDNN:7.5
安装步骤:
在给Xavier刷完机之后,首先是安装Cmake,要进行源安装,然后运行./boostrad那个,然后sudo make && make install。
需要将你的cmake路径添加到环境变量中去
export PATH=$PATH:/your_camke_path/
Pytorch和Torchvision,但是torch貌似需要numpy。
这里先做的是按准个pip,我使用的是pip3,因为我的python是3.6.9。
然后我们就可以pip3来安装各种东西了,但是大家注意,有很多东西pip3安装不了,那我们就可以用apt-get 来安装,在使用PIP的时候我们可以制定pip的源:
如下:
阿里源
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
豆瓣
pip install -r requirements.txt -i https://pypi.douban.com/simple/
清华大学
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
需要pip安装的东西:
在安装numba前要安装一些依赖:
sudo apt-get install llvm-7
查看llvm的路径(执行下面命令后会在终端显示llvm的安装路径):
which llvm-config-7
执行以下命令:
export LLVM_CONFIG=/usr/bin/llvm-config-7
pip3 install llvmlite==0.29.0
pip3 install numba==0.44.1
到此,如果安装没问题的话,在python环境下看能否import numba成功,可以的话说明已经安装成功,接下来在.bashrc下面添加导出路径。
export NUMBAPRO_CUDA_DRIVER=/usr/lib/aarch64-linux-gnu/libcuda.so # (set your Xavier cuda lib path)
export NUMBAPRO_NVVM=/usr/local/cuda/nvvm/lib64/libnvvm.so # set your libnvvm path
export NUMBAPRO_LIBDEVICE=/usr/local/cuda/nvvm/libdevice
sudo apt-get install libboost-all-dev
pip3 install scikit-image scipy numba pillow==6.2.2 matplotlib fire tensorboardX protobuf -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install numpy==1.17.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install seaborn -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install psutil -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install flask flask_cors -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pyqtgraph -i https://pypi.tuna.tsinghua.edu.cn/simple
easy_install pyopengl -i https://pypi.tuna.tsinghua.edu.cn/simple
注意如果pip安装不上就用apt-get,比如安装scipy:
sudo apt-get install python3-scipy python3-matplotlib python3-pandas
Xavier 安装pytotrch刚开始不太容易,因为没有直接安装的脚本,幸好有这个Xavier Pytorch 安装whl
按照里面的安装就可以,然后就可以按抓给你对应的torchvision版本。
import torch
print(torch.__version__)
在这部分花的时间也不少,因为编译不过。
这里使用的是Spconv 1.1
git clone https://github.com/traveller59/spconv --recursive
大家要检查一下,third-party里面的pybind11 是否下载完整,否则容易出错。
编译完成后会在dist文件夹下有 spconv 1.1的whl 文件,然后 pip3 install 安装就可以。
安装过后,将添加second.pytorch环境变量
sudo gedit ~/.bashrc
export PYTHONPATH=$PYTHONPATH:/your_second.pytorch_path/
下载KITTI数据按照格式储存
└── KITTI_DATASET_ROOT
├── training <-- 7481 train data
| ├── image_2 <-- for visualization
| ├── calib
| ├── label_2
| ├── velodyne
| └── velodyne_reduced <-- empty directory
└── testing <-- 7580 test data
├── image_2 <-- for visualization
├── calib
├── velodyne
└── velodyne_reduced <-- empty directory
python3 create_data.py kitti_data_prep --root_path=data/KITTI_DATASET_ROOT
(这里的我是将KITTI_DATASET_ROOT文件夹放在second.pytorch/second的data下)
修改配置参数
train_input_reader: {
...
database_sampler {
database_info_path: "/path/to/dataset_dbinfos_train.pkl"
...
}
dataset: {
dataset_class_name: "DATASET_NAME"
kitti_info_path: "/path/to/dataset_infos_train.pkl"
kitti_root_path: "DATASET_ROOT"
}
}
...
eval_input_reader: {
...
dataset: {
dataset_class_name: "DATASET_NAME"
kitti_info_path: "/path/to/dataset_infos_val.pkl"
kitti_root_path: "DATASET_ROOT"
}
}
这里的class_name 不用变,下面的两个路径写成绝对路径。
运行训练命令:
python3 ./pytorch/train.py train --config_path=./configs/car.fhd.config --model_dir=/path/to/model_dir
运行评估命令:
python3 ./pytorch/train.py evaluate --config_path=./configs/car.fhd.config --model_dir=./config/car_lite --measure_time=True --batch_size=1
出现的问题:
1.No module named ‘second’
但是亲测在程序中增加:
import sys
sys.path.append(r"/media/buaa/MyPassport/Deeplidar/second.pytorch")
更加靠谱,增加的是second.pytorch的绝对路径。
2.在编译spconv有时会出现CMAKE_CUDA_COMPILER could be found
这个办法可能不是很好,有个在文件里面增加命令语句的,那个亲测有效。
set(CMAKE_CUDA_COMPILER “/usr/local/cuda/bin/nvcc”)
增加
至可视化,看下面的链接吧,有效。
参考链接:
1.NVIDIA_Jetson_Xavier安装second.pytorch环境
2.second.pytorch环境配置记录
3.second.pytorch环境配置及训练运行折腾史–可视化
4.使用卷积神经网络进行激光雷达点云目标检测——SECOND