$ ./JetPack-L4T-3.0-linux-x64.run
$ sudo dpkg -i libcudnn6_6.0.20-1+cuda8.0_amd64.deb
$ sudo dpkg -i libcudnn6-dev_6.0.20-1+cuda8.0_amd64.deb
$ sudo apt-get install --no-install-recommends build-essential cmake git gfortran libatlas-base-dev libboost-filesystem-dev libboost-python-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libhdf5-serial-dev libleveldb-dev liblmdb-dev libprotobuf-dev libsnappy-dev protobuf-compiler python-all-dev python-dev python-h5py python-matplotlib python-numpy python-opencv python-pil python-pip python-protobuf python-scipy python-skimage python-sklearn python-setuptools
$ sudo pip install --upgrade pip
$ git clone -b caffe-0.15 http://github.com/NVIDIA/caffe
$ cd caffe
$ sudo pip install -r python/requirements.txt
$ mkdir build
$ cd build
$ cmake ../ -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF
$ make --jobs=4
$ make pycaffe
$ sudo apt-get install --no-install-recommends graphviz python-dev python-flask python-flaskext.wtf python-gevent python-h5py python-numpy python-pil python-pip python-protobuf python-scipy python-tk
$ git clone http://github.com/nvidia/DIGITS
$ cd DIGITS
$ sudo pip install -r requirements.txt
安装完以后,运行 ./digits-devserver就可以打开DIGITS, 但是, 什么都不会发生, 我还以为会自动打开网页啥的, 这只是打开服务器, 要在浏览器中输入网址:http://localhost:5000/ 自己手动打开.
$ sudo apt-get install git cmake
$ git clone http://github.com/dusty-nv/jetson-inference
$ cd jetson-inference
$ mkdir build
$ cd build
$ cmake ..
$ make
$ cd jetson-inference/build/aarch64/bin
> ./imagenet-console orange_0.jpg output_0.jpg
验证集与测试集的区别?
验证集是在训练时使用, 用来调节网络中的超参数. 测试集不参与训练, 在整个网络训练完成后来测试训练结果的性能.
导入数据集时, 图像的尺寸是可以改的, 用640480的图片做过训练,把尺寸改成640480, 是可以用的.
训练的过程中需要看mAP是否在增加, 如果一直是0, 那肯定是有问题的, 应该停掉训练排查问题
- **遇到的坑: 在自己构建数据集训练前, 一定要确认一下数据标注没问题, **不然就白训练了. 训练一次少说也要半天, 这个确认还是很有必要.
- 训练过程中是可以用中间结果去测试单张图片(不能测试多张,因为测试多张需要用GPU, 而训练过程中GPU资源被占用掉了), 在前期经常输入一些图像看测试结果, 这个步骤很重要, 能够在早期发现训练任务是不是有问题,从而避免了花了几天时间训练完发现输入错了的尴尬, 如果用train的图像取做test都啥都检测不出来, 说明肯定是训练任务有问题, 比如label错了什么的.
- 一般趋势是: 模型在刚开始是误检比较多, 随着epoch增加, 误检越来越少, bbox越来越准
当DIGITS训练好模型后, 用DIGITS测试过模型没问题后, 可以把模型放到tx2上使用了,步骤如下:
./detectnet-console dog_0.jpg output_0.jpg
--prototxt=<你的模型目录>/deploy.prototxt
--model=<你的模型目录>/snapshot_iter_38600.caffemodel
--input_blob=data \
--output_cvg=coverage
--output_bbox=bboxes
./detectnet-camera
--prototxt=<你的模型目录>/deploy.prototxt
--model=<你的模型目录>/snapshot_iter_38600.caffemodel
操作环境: Host PC x86_64平台, Ubuntu14.04, GPU: Geforce GTX 1050, cuda8.0.
默认已经装好了NVIDIA驱动和CUDA, 可参见之前的主机部署.
进入官网https://developer.nvidia.com/tensorrt, 点击download下载, 需要注册用户并登录才能下载. 登录后, 就会看到下载连接和安装提示, 选择Debian安装, 提示如下.
![](./Screenshot from 2017-09-20 11:38:32.png)
根据操作系统14.04和CUDA版本8.0选择第二个package. 然后根据提示安装即可.
git clone https://github.com/dusty-nv/jetson-inference.git
# sudo rm /usr/lib/aarch64-linux-gnu/libGL.so
# sudo ln -s /usr/lib/aarch64-linux-gnu/tegra/libGL.so /usr/lib/aarch64-linux-gnu/libGL.so
或者可以干脆不运行这个脚本, 这个脚本主要是apt-get安装依赖库和wget下载网络模型. 自己apt-get安装,自己下模型也是一样的.
set(
CUDA_NVCC_FLAGS
${CUDA_NVCC_FLAGS};
-O3
-gencode arch=compute_53,code=sm_53
-gencode arch=compute_62,code=sm_62
-gencode arch=compute_61,code=sm_61 #这是我增加的行
)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};--disable-warnings;--ptxas-options=-v;-use_fast_math;-lineinfo;-std=c++11)
作者:不掉发码农
链接:https://www.jianshu.com/p/59fe26073a41
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。