在Jetson TX2上安装caffe和PyCaffe
caffe是Nvidia TensorRT最支持的深度学习框架,因此在Jetson TX2上安装caffe很有必要。顺便说一句,下面的安装是支持python3的。
先决条件
在Jetson TX2上完成JetPack-3.1的安装。
构建并安装OpenCV-3.4.0,并确保其在python3下正常工作。参考:在Jetson TX2上安装OpenCV(3.4.0)
安装步骤
安装依赖项
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev \
libhdf5-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install libatlas-base-dev libopenblas-dev
接下来,需要从github上获取caffe的源代码。配置Jetson TX2,实际上从Makefile.config.example中修改了以下内容
设置 USE_CUDNN := 1
设置 OPENCV_VERSION := 3
在 CUDA_ARCH 中添加 compute_62(for TX2) 和 compute_53(for TX1)
用 python3.5 代替python2.7
在 PYTHON_LIBRARIES 中用 boost_python-py35 代替 boost_python3
在 PYTHON_INCLUDE 中用 /usr/local/lib/python3.5/dist-packages/numpy/core/include 代替
/usr/lib/python3.5/dist-packages/numpy/core/include
设置 WITH_PYTHON_LAYER := 1
在 INCLUDE_DIRS 添加 /usr/include/hdf5/serial
在 LIBRARY_DIRS 添加 /usr/lib/aarch64-linux-gnu /usr/lib/aarch64-linux-gnu/hdf5/serial
结果生成的Makefile.config,可以从这里下载
cd ~
git clone https://github.com/BVLC/caffe
cd caffe
cp Makefile.config.example Makefile.config
将下载好的Makefile.config拷贝到caffe文件夹下。/home/nvidia/caffe 是我的caffe所在目录
cp ~/Download/Makefile.config /home/nvidia/caffe
为hdf5创建链接
find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \;
cd /usr/lib/aarch64-linux-gnu
sudo ln -s libhdf5_serial.so.10.1. libhdf5.so
sudo ln -s libhdf5_serial_hl.so.10.0. libhdf5_hl.so
cd /home/nvidia/caffe // caffe所在目录
make all -j4 //j4代表计算机cpu有4个核,因此可以多线程一起make,这样make的速度会快很多。TX2是4核的,我们就不要学别人用什么j8,j16了,乖乖地敲j4
make test -j4
make runtest -j4
剩下的步骤是为了python3准备的。注意,我必须从源代码中安装 leveldb-0.20 才能使其正常工作
为python3手动构建并安装 leveldb-0.20,因为默认版本0.194无法在Jetson TX2上编译
mkdir -p ~/src
cd ~/src
wget https://pypi.python.org/packages/03/98/1521e7274cfbcc678e9640e242a62cbcd18743f9c5761179da165c940eac/leveldb-0.20.tar.gz
tar xzvf leveldb-0.20.tar.gz
cd leveldb-0.20
python3 setup.py build
sudo python3 setup.py install
接下来需要安装 ~/caffe/python/requirements.txt 里面的一些工具包
pkgs=`sed 's/[>=<].*$//' ~/caffe/python/requirements.txt`
for pkg in $pkgs; do sudo pip3 install $pkg; done
### build pycaffe
cd ~/caffe
make pycaffe
make distribute
在 ~/.bashrc 中添加下列行
export PYTHONPATH=/home/nvidia/caffe/python:$PYTHONPATH
验证安装是否成功
python3
>>> import numpy as np
>>> import caffe
此外,我还对caffe在Jetson TX2上的性能进行了基准测试。使用nvpmodel和~/ Jetson -clock .sh将Jetson TX2设置为最大性能模式。连接
cd ~/caffe
./build/tools/caffe time --gpu --model ./models/bvlc_alexnet/deploy.prototxt

参考文章:How to Install Caffe and PyCaffe on Jetson TX2
参考文章:初学JetsonTX2之安装CAFFE
在Jetson TX2上安装caffe和PyCaffe的更多相关文章
- 在Jetson TX2上安装OpenCV(3.4.0)
参考文章:How to Install OpenCV (3.4.0) on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下面的描述 在我们使用python3进行编程时 ...
- 在Jetson TX2上显示摄像头视频并使用python进行caffe推理
参考文章:How to Capture Camera Video and Do Caffe Inferencing with Python on Jetson TX2 与参考文章大部分都是相似的,如果 ...
- 在Jetson TX2上捕获、显示摄像头视频
参考文章:How to Capture and Display Camera Video with Python on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下 ...
- 【记录】在MAC上安装caffe
---恢复内容开始--- 最近尝试在MAC(OS X 10.11 El Capitan)上安装Caffe 以及Python接口遇到了一些问题但是官方安装教程上并没有提出这些问题的解决办法搜索了很久(主 ...
- Jetson TX2上的demo(原创)
Jetson TX2上的demo 一.快速傅里叶-海动图 sample The CUDA samples directory is copied to the home directory on th ...
- Caffe初学者第一部:Ubuntu14.04上安装caffe(CPU)+Python的详细过程 (亲测成功, 20180524更新)
前言: 最近在学习深度学习,最先要解决的当然是开源框架的环境安装了.之前一直在学习谷歌的Tensorflow开源框架,最近实验中需要跟别人的算法比较,下载的别人的代码很多都是Caffe的,所以想着搭建 ...
- 服务器上安装caffe的过程记录
1. 前言 因为新的实验室东西都是新的,所以在服务器上要自己重新配置CAFFE 这里假设所有依赖包学长们都安装好了,我是没有sudo权限的 服务器的配置: CUDA 8.0 Ubuntu 16.04 ...
- Ubuntu 14.04上安装caffe
本来实在windows 10上尝试安装caffe,装了一天没装上,放弃; 改在windows上装ubuntu的双系统,装了一个下午,不小心windows的系统盘被锁死了,也不会unlock?只好含泪卸 ...
- 在windows10上安装caffe和tensorflow
最近在Windows10上安装了caffe和tensorflow,折腾了好久.在此记录一下. 安装caffe的过程已在另一篇博客中进行了记录,在此不再赘述.而tensorflow也是非常简单的,也不再 ...
随机推荐
- 30.6 HashMap的使用
/* * * 使用HashMap存储数据并遍历(字符串作为key) * *使用HashMap存储数据并遍历(自定义对象作为key) */ 字符串做key和Map的使用一样,重点介绍自定义对象作为key ...
- 30 HashSet
/* * 使用HashSet存储字符串并遍历 * * Set的特点: * 无序(存储和读取的顺序可能不一样) * 不允许重复 * 没有整数索引 于List正好相反 */ public class Ha ...
- 广告行业中那些趣事系列9:一网打尽Youtube深度学习推荐系统
最新最全的文章请关注我的微信公众号:数据拾光者. 摘要:本篇主要分析Youtube深度学习推荐系统,借鉴模型框架以及工程中优秀的解决方案从而应用于实际项目.首先讲了下用户.广告主和抖音这一类视频平台三 ...
- 游戏开服 报一些 ip 设置 数据格式的异常,但断点明明都是数字 没问题的
游戏服开始起服,结果报乱七八招的错误,先 ccs 那 ip 有问题,我给直接注释掉了:然后又 报 KeyValueDictCache 中 ips 设置有问题,都是报格式错误,结果我断点明明都是数字结 ...
- iOS 头条一面 面试题
1.如何高效的切圆角? 切圆角共有以下三种方案: cornerRadius + masksToBounds:适用于单个视图或视图不在列表上且量级较小的情况,会导致离屏渲染. CAShapeLayer+ ...
- day02,静态库和动态库
一.首先我们来看一下什么是静态库和动态库,在这之前我们来看一下编译成可执行文件的过程: 1.静态库(.a..lib):就是在使用的时候会把代码复制到文件中: 它的优点:独立,在链接后不需要静态库源文件 ...
- Extjs入门——环境配置
Extjs框架作为一个07年就上线的框架,虽然与现在的框架对比,显得十分臃肿.但是在针对企业内部引用系统上,它依旧能发挥出不错的效果.现在我接触到了Extjs,所以我准备写一个入门框架,简单的介绍Ex ...
- Personal Photo Experience Proposal
Background: Our smart phones are the most widely-used cameras now, more and more photo ...
- E - Roaming Atcoder
题解:https://blog.csdn.net/qq_40655981/article/details/104459253 题目大意:n个房间,,每个房间都有一个人,一共k天,在一天,一个人可以到任 ...
- 一个好的olap框架
一.何为一个好的olap框架? 框架大概分为两种: (1)底层技术框架,专注于抽象底层技术,如网络通信netty.中间件kafka等 (2)开发人员框架,专注于提高开发效率,如spring的面向切面和 ...