2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

nvcaffeをJetpack4.3 on Jetson Nanoにインストールする

Last updated at Posted at 2020-03-12

はじめに

この記事では、nvcaffeをJetpack4.3にインストールする手順を紹介します。

手順

  1. OpenCV3のインストール
  2. 前提パッケージのインストール
  3. nvcaffeビルド
  4. pycaffeビルド
  5. 動作確認

1. OpenCV3をインストール

Jetpack4.3にはOpenCV 4.1.1がインストールされていますが、このままだとnvcaffeのビルドで失敗してしまうため、OpenCV 3.4.6をインストールします。

Jetson NanoへのOpenCV 3.4.6のインストールについては、以下の記事が大変素晴らしいので、その手順に従ってインストールします。

JetPack-4.3 for Jetson Nano
https://jkjung-avt.github.io/jetpack-4.3/

最初に以下のリポジトリのスクリプトをJetson上に取得します。
https://github.com/jkjung-avt/jetson_nano

次にに以下の記事の「 1. Basic set-up」まで実行します。
https://jkjung-avt.github.io/jetpack-4.3/

次に以下の手順に従って「OpenCV 3.4.6」をインストールします。基本的にはスクリプトを実行するだけです。ビルドには2時間ぐらいかかります。
https://jkjung-avt.github.io/opencv-on-nano/

2. 前提パッケージのインストール

前提のパッケージをインストールします。

$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev  libhdf5-dev protobuf-compiler
$ sudo apt-get install --no-install-recommends libboost-all-dev
$ sudo apt-get install libopenblas-dev 
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev 
$ sudo apt-get install libturbojpeg libturbojpeg-dev
$ sudo ln -s /usr/lib/aarch64-linux-gnu/libturbojpeg.so.0.1.0 /usr/lib/aarch64-linux-gnu/libturbojpeg.so

3. nvcaffeをビルド

nvcaffeのソースを取得し、Makefile.configを書き換えてビルドします。

$ cd ~
$ git clone https://github.com/NVIDIA/caffe.git
$ cd ~/caffe/
$ git checkout v0.17.2 
$ cp Makefile.config.example Makefile.config
$ vi Makefile.config
$ make -j 4 all

Makefile.configの変更箇所は以下です。

以下のコメントを外す。

Makefile.config
USE_CUDNN := 1
PENCV_VERSION := 3
WITH_PYTHON_LAYER := 1

CUDA_ARCHは以下のように修正します。もともとあったものはコメントアウトしておきます。

Makefile.config
CUDA_ARCH := -gencode arch=compute_53,code=sm_53 \
             -gencode arch=compute_53,code=compute_53

python2.7をコメントアウトして、python3のコメントを外します。その際、バージョンを3.5から3.6に変更します。

Makefile.config
# PYTHON_INCLUDE := /usr/include/python2.7 \
#		/usr/lib/python2.7/dist-packages/numpy/core/include

# Uncomment to use Python 3 (default is Python 2)
PYTHON_LIBRARIES := boost_python3 python3.6m
PYTHON_INCLUDE := /usr/include/python3.6m \
                /usr/lib/python3.6/dist-packages/numpy/core/include

LIBRARY_DIRSに/usr/lib/x86_64-linux-gnuを追加します。

Makefile.config
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/aarch64-linux-gnu/hdf5/serial

4. pycaffeをビルド

pycaffeも使いたいので、ビルドします。
scipyのインストールでハマりました。

$ sudo apt-get install gcc gfortran python-dev libopenblas-dev liblapack-dev libfreetype6-dev cython
$ sudo pip3 install pybind11
$ sudo pip3 install scipy
$ 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
$ pkgs=`sed 's/[>=<].*$//' ~/caffe/python/requirements.txt`
$ for pkg in $pkgs; do sudo pip3 install $pkg; done
$ cd ~/caffe
$ make pycaffe

.bashrcに以下を追加します。

export PYTHONPATH=/home/nvidia/caffe/python

5. 動作確認

以下のコマンドで動作確認します。

nvidia@nvidia-desktop:~/caffe$ source ~/.bashrc
nvidia@nvidia-desktop:~/caffe$ python3
Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import caffe
>>> quit()
nvidia@nvidia-desktop:~/caffe$ ./build/tools/caffe time --gpu 0 --model ./models/bvlc_alexnet/deploy.prototxt
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0310 23:21:23.578208 28238 parallel.cpp:44] P2PManager::Init @ nvidia-desktop
I0310 23:21:23.578884 28238 caffe.cpp:709] This is NVCaffe 0.17.2 started at Tue 
・・・
省略
・・・
I0310 23:21:51.296883 28238 caffe.cpp:665] Average Backward pass: 110.804 ms.
I0310 23:21:51.296905 28238 caffe.cpp:667] Average Forward-Backward: 212.82 ms.
I0310 23:21:51.296928 28238 caffe.cpp:669] Total Time: 10641 ms.
I0310 23:21:51.296952 28238 caffe.cpp:670] *** Benchmark ends ***
nvidia@nvidia-desktop:~/caffe$ 

参考にさせて頂いた情報

以下のサイトの情報を参考にさせて頂きました。
特に最初の記事に書いてある必要なもの↓に大変共感しました。(Scipyのインストールでかなりハマったので)

SciPy(依存パッケージ)のインストール失敗やエラーが出てもあきらめない強い気持ち

[やってみた] Jetson Nano でDeepComposerのWorkshop Lab2(GANカスタムモデルの学習&推論)をやってみた。#AIM223 #reinvent 2019
https://dev.classmethod.jp/cloud/aws/jetson-nano-deepcomposer-workshop-lab2/

nvcaffe install jetsontx2
https://github.com/atinfinity/lab/wiki/nvcaffe-install-jetsontx2

How to Install Caffe and PyCaffe on Jetson TX2
https://jkjung-avt.github.io/caffe-on-tx2/

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?