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的更多相关文章

  1. 在Jetson TX2上安装OpenCV(3.4.0)

    参考文章:How to Install OpenCV (3.4.0) on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下面的描述 在我们使用python3进行编程时 ...

  2. 在Jetson TX2上显示摄像头视频并使用python进行caffe推理

    参考文章:How to Capture Camera Video and Do Caffe Inferencing with Python on Jetson TX2 与参考文章大部分都是相似的,如果 ...

  3. 在Jetson TX2上捕获、显示摄像头视频

    参考文章:How to Capture and Display Camera Video with Python on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下 ...

  4. 【记录】在MAC上安装caffe

    ---恢复内容开始--- 最近尝试在MAC(OS X 10.11 El Capitan)上安装Caffe 以及Python接口遇到了一些问题但是官方安装教程上并没有提出这些问题的解决办法搜索了很久(主 ...

  5. Jetson TX2上的demo(原创)

    Jetson TX2上的demo 一.快速傅里叶-海动图 sample The CUDA samples directory is copied to the home directory on th ...

  6. Caffe初学者第一部:Ubuntu14.04上安装caffe(CPU)+Python的详细过程 (亲测成功, 20180524更新)

    前言: 最近在学习深度学习,最先要解决的当然是开源框架的环境安装了.之前一直在学习谷歌的Tensorflow开源框架,最近实验中需要跟别人的算法比较,下载的别人的代码很多都是Caffe的,所以想着搭建 ...

  7. 服务器上安装caffe的过程记录

    1. 前言 因为新的实验室东西都是新的,所以在服务器上要自己重新配置CAFFE 这里假设所有依赖包学长们都安装好了,我是没有sudo权限的 服务器的配置: CUDA 8.0 Ubuntu 16.04 ...

  8. Ubuntu 14.04上安装caffe

    本来实在windows 10上尝试安装caffe,装了一天没装上,放弃; 改在windows上装ubuntu的双系统,装了一个下午,不小心windows的系统盘被锁死了,也不会unlock?只好含泪卸 ...

  9. 在windows10上安装caffe和tensorflow

    最近在Windows10上安装了caffe和tensorflow,折腾了好久.在此记录一下. 安装caffe的过程已在另一篇博客中进行了记录,在此不再赘述.而tensorflow也是非常简单的,也不再 ...

随机推荐

  1. 学习《深入应用c++11》1

    C++11 让程序更简洁.更优雅 可调用对象 是一个函数指针 是一个具有operator()成员函数的类对象(仿函数) 是一个可被装换为函数指针的类对象 是一个类的成员(函数)指针 void func ...

  2. Visual C++ 6.0踩坑记录---在Win10下安装Visual C++ 6.0安装成功后点击“打开”按钮闪退问题

    前言: 为了更好的学习C及C++,前段时间下载了Microsoft Visual C++ 6.0(以下简称VC6),原因是VC6具有查看反汇编代码.监视内存.寄存器等功能,并且因为本人正在学习滴水逆向 ...

  3. AJ学IOS(20)UI之UIPickerView_点菜系统

    AJ分享,必须精品 先看效果图 ## UIPickerView控件 UIPickerView用处: 用来展示很多行(row) 很多列(component )的数据,多用于电子商务的点菜,城市选择等等. ...

  4. matlab操作Excel数据

    sheet是Excel的表格,xIRange是表格的列的范围 指定xlRange,例如使用语法'C1:C2',其中C1和C2是定义要读取的区百域的两个度相对的角. 例如,'D2:H4'表示工作表上的两 ...

  5. Jmeter命令行执行并生成HTML报告

    前提:准备好jmeter脚本,找到jmeter配置文件查看生成的日志格式是否为csv,如果不是请改为csv 注意:使用命令执行jmeter脚本必须使用jmeter 3.0及以上版本1.使用命令行执行脚 ...

  6. HashMap之KeySet分析

    本篇涵盖 1.HashMap并不是用keySet来存储key的原因及证明 2.keySet方法返回后的remove.add操作原理 一.方法作用 概括一下 1.keySet方法返回map中包含的键的集 ...

  7. yzmsb_test.py

    识别诺诺金服页面的验证码,并自动登录到后台. #导包 from selenium import webdriver from PIL import Image, ImageDraw from time ...

  8. test_HTMLTestRunnerCN.py

    代码如下: from calculator import Count import unittest import HTMLTestRunnerCN #测试两个整数相加 class TestAdd(u ...

  9. SpringBoot全局异常处理与定制404页面

    一.错误处理原理分析 使用SpringBoot创建的web项目中,当我们请求的页面不存在(http状态码为404),或者器发生异常(http状态码一般为500)时,SpringBoot就会给我们返回错 ...

  10. js中string转map的方法

    例如: var r = "{'msg':'你好'}" ; var map = eval("("+r+")"); //r为String类型的数 ...