HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2018/08/10

Raspberry Piで Caffe2 Deep Learning Frameworkをソースコードからビルドする方法 Raspberry Piで Caffe2 Deep Learning Frameworkをソースコードからビルドする方法

(ラズパイで Caffe 2 Deep Learning Frameworkをソースコードから自己ビルドする方法)

Tags: [Raspberry Pi], [電子工作], [ディープラーニング]





● Raspberry Piで Google DeepDreamを動かしてキモイ絵を量産する方法

 DeepDreamを動かすには Caffeと言う Deep Learning Frameworkを使用します。

 Raspberry Piで Google DeepDreamを動かして一時期流行したキモイ絵を量産します。

DeepDream - Wikipedia

 DeepDreamで生成した画像の例(Wikipediaより引用)
・DeepDream
DeepDream




● Raspberry Piで Caffe Deep Learning Frameworkで DeepDreamする方法

2018/08/04
【ビルド版】Raspberry Piで DeepDreamを動かしてキモイ絵をモリモリ量産 Caffe Deep Learning Framework
【ビルド版】Raspberry Piで DeepDreamを動かしてキモイ絵をモリモリ量産 Caffe Deep Learning Framework

  ラズパイで Caffe Deep Learning Frameworkをビルドして Deep Dreamを動かしてキモイ絵を生成する

2018/08/04
【インストール版】Raspberry Piで DeepDreamを動かしてキモイ絵をモリモリ量産 Caffe Deep Learning
【インストール版】Raspberry Piで DeepDreamを動かしてキモイ絵をモリモリ量産 Caffe Deep Learning

  ラズパイで Caffe Deep Learning Frameworkをインストールして Deep Dreamを動かしてキモイ絵を生成する

2018/08/06
Orange Pi PC 2の 64bitのチカラで DeepDreamしてキモイ絵を高速でモリモリ量産してみるテスト
Orange Pi PC 2の 64bitのチカラで DeepDreamしてキモイ絵を高速でモリモリ量産してみるテスト

  OrangePi PC2に Caffe Deep Learning Frameworkをビルドして Deep Dreamを動かしてキモイ絵を生成する


●今回動かした Raspberry Pi Raspbian OSのバージョン

 RASPBIAN STRETCH WITH DESKTOP
 Version:June 2018
 Release date: 2018-06-27
 Kernel version: 4.14
pi@raspberrypi:~/pytorch $ uname -a
Linux raspberrypi 4.14.50-v7+ #1122 SMP Tue Jun 19 12:26:26 BST 2018 armv7l GNU/Linux


● Raspberry Piで Caffe2 Deep Learning Frameworkを Gitソースリストからビルドする。

Caffe2 is a lightweight, modular, and scalable deep learning framework. https://caffe2.ai

Caffeの作者 Yangqing Jia氏
 元となった Caffeの作者で Facebookに入り、後継の Caffe2を作った。(ざっくりな経緯解説。時系列は未確認)

 元となった Caffeは バークレー大学の研究室が作成しましたが、Caffe2は Facebookと NVIDIAが協力して作成しています。

BVLC/caffe
 Caffe: a fast open framework for deep learning. http://caffe.berkeleyvision.org/
 BVLC = Berkeley Vision and Learning Center(カリフォルニア大学バークレー校)

 また、Caffe2と PyTorchは協力関係に有るとの事。
Caffe2 and PyTorch join forces to create a Research + Production

Comparison of deep learning software

 Raspberry Piでのビルド方法は Caffe2公式ページに記載が有ります。
Caffe2 Install - Raspbian - Build From Source

# お決まりの sudo apt-get updateで最新状態に更新する
sudo apt-get update

# Caffe2のビルドに必要な cmakeをインストールする
sudo apt-get -y install cmake

cd
git clone --recursive https://github.com/pytorch/pytorch.git

# ディレクトリを移動する
cd pytorch
git submodule update --init

# apt-get install時の Do you want to continue? [Y/n]を確認しない様にする
sed -i '18s/sudo apt-get install \\/sudo apt-get -y install \\/' ./scripts/build_raspbian.sh

# 2コアから 1コアでビルドする様に変更する
# しかし、ビルド時間を考えると 1コアに変更しない方が良い
# (2コアでのビルドが不安定な場合に 1コアに変更します)
# sed -i '44s/make -j 2/make/' ./scripts/build_raspbian.sh
# ビルド時間 1コアの場合、184分
# ビルド時間 2コアの場合、108分

# 変更を確認する
tail ./scripts/build_raspbian.sh

# ビルドを開始する(ビルドに掛かる時間も計測する)
date >BUILD_START
time ./scripts/build_raspbian.sh
date >BUILD_END
cat BUILD_START
cat BUILD_END

●デフォルトのビルドスクリプトでは 2コアを使用してビルドしている

 build_raspbian.sh
scripts/build_raspbian.sh

 デフォルトの build_raspbian.shのビルドスクリプトでは下記の様にメモリとのトレードオフで 2コアを使用してビルドしています。
 しかし、2コアのビルドでもビルドに失敗する事が有ったので 1コアでビルドするのが安心です。
build_raspbian.sh

# Note: while Raspberry pi has 4 cores, running too many builds in parallel may
# cause out of memory errors so we will simply run -j 2 only.
make -j 2 || exit 1

make -j 2 || exit 1
 を
make || exit 1
 に書き換えると 2コアビルドから 1コアビルドになります。
 ※ 2コアでビルドすると 184分から 108分に 1時間以上ビルド時間が短縮できる。


●ビルド時間

 1コアの場合、184分(build_raspbian.sh内の apt-get installの時間を含まず)
real    184m44.974s
user    179m49.205s
sys     4m28.352s
Sat 11 Aug 19:49:10 UTC 2018
Sat 11 Aug 22:53:55 UTC 2018

 2コアの場合、108分(build_raspbian.sh内の apt-get installの時間を含まず)
real    108m36.507s
user    207m53.549s
sys     5m21.912s
Sat 11 Aug 23:30:05 UTC 2018
Sun 12 Aug 01:18:42 UTC 2018


●ビルドにはメモリを沢山使うので不要なサービス等を停止して使えるメインメモリを増やす


2018/08/14
Raspberry Piでメモリを馬鹿食いするアプリ用に不要なサービスを停止してフリーメモリを増やす方法
Raspberry Piでメモリを馬鹿食いするアプリ用に不要なサービスを停止してフリーメモリを増やす方法

  ラズパイでメモリを沢山使用するビルドやアプリ用に不要なサービス等を停止して使えるメインメモリを増やす


● ./scripts/build_raspbian.shで Caffe2のビルドができた

 とりあえず ./scripts/build_raspbian.shで Caffe2のビルドができたっぽいけど使い方が全くわからん。
pi@raspberrypi:~/pytorch $ find ./ -name libcaffe2.so
./build/lib/libcaffe2.so

pi@raspberrypi:~/pytorch $ pwd
/home/pi/pytorch

export LD_LIBRARY_PATH=/home/pi/pytorch/build/lib:$LD_LIBRARY_PATH

pi@raspberrypi:~/pytorch $ ls -l build/bin
total 7024
-rwxr-xr-x 1 pi pi  123532 Aug 11 22:50 caffe2_benchmark
-rwxr-xr-x 1 pi pi  272988 Aug 11 22:52 convert_caffe_image_db
-rwxr-xr-x 1 pi pi   20460 Aug 11 22:52 convert_db
-rwxr-xr-x 1 pi pi  272552 Aug 11 22:51 convert_encoded_to_raw_leveldb
-rwxr-xr-x 1 pi pi   40592 Aug 11 22:51 db_throughput
-rwxr-xr-x 1 pi pi   19684 Aug 11 19:49 js_embed
-rwxr-xr-x 1 pi pi  277608 Aug 11 22:51 make_cifar_db
-rwxr-xr-x 1 pi pi  294120 Aug 11 22:51 make_image_db
-rwxr-xr-x 1 pi pi  282224 Aug 11 22:52 make_mnist_db
-rwxr-xr-x 1 pi pi   30208 Aug 11 22:53 predictor_verifier
-rwxr-xr-x 1 pi pi 1430688 Aug 11 22:52 print_registered_core_operators
-rwxr-xr-x 1 pi pi 3943632 Aug 11 20:17 protoc
-rwxr-xr-x 1 pi pi   27916 Aug 11 22:53 run_plan
-rwxr-xr-x 1 pi pi   75676 Aug 11 22:53 speed_benchmark
-rwxr-xr-x 1 pi pi   31912 Aug 11 22:53 split_db
-rwxr-xr-x 1 pi pi   25396 Aug 11 22:51 tutorial_blob

pi@raspberrypi:~/pytorch $ ./build/bin/caffe2_benchmark
./build/bin/caffe2_benchmark: error while loading shared libraries: libcaffe2.so: cannot open shared object file: No such file or directory

export LD_LIBRARY_PATH=/home/pi/pytorch/build/lib:$LD_LIBRARY_PATH

pi@raspberrypi:~/pytorch $ ./build/bin/caffe2_benchmark
terminate called after throwing an instance of 'at::Error'
  what():  [enforce fail at proto_utils.cc:188] fd != -1. -1 vs -1. File not found:
*** Aborted at 1534029170 (unix time) try "date -d @1534029170" if you are using GNU date ***
PC: @ 0x760f545c gsignal
*** SIGABRT (@0x5d3e) received by PID 23870 (TID 0x6fd0c000) from PID 23870; stack trace: ***
    @ 0x760f66c0 (unknown)
    @ 0x760f545c gsignal
    @ 0x762aa008 __gnu_cxx::__verbose_terminate_handler()
Aborted

pi@raspberrypi:~/pytorch $ date -d @1534029170
Sat 11 Aug 23:12:50 UTC 2018

pi@raspberrypi:~/pytorch $ ./build/bin/caffe2_benchmark
terminate called after throwing an instance of 'at::Error'
  what():  [enforce fail at proto_utils.cc:188] fd != -1. -1 vs -1. File not found:
*** Aborted at 1534029359 (unix time) try "date -d @1534029359" if you are using GNU date ***
PC: @ 0x7614745c gsignal
*** SIGABRT (@0x5d50) received by PID 23888 (TID 0x6fd5e000) from PID 23888; stack trace: ***
    @ 0x761486c0 (unknown)
    @ 0x7614745c gsignal
    @ 0x762fc008 __gnu_cxx::__verbose_terminate_handler()
Aborted


● PyTorchは?

PyTorch
 Tensors and Dynamic neural networks in Python with strong GPU acceleration.

pi@raspberrypi:~/pytorch $ python
Python 2.7.13 (default, Nov 24 2017, 17:33:09)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "torch/__init__.py", line 16, in <module>
    from .version import __version__
ImportError: No module named version
>>> quit()

pi@raspberrypi:~/pytorch $ python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170124] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/pi/pytorch/torch/__init__.py", line 16, in <module>
    from .version import __version__
ImportError: No module named 'torch.version'
>>> quit()

# Install PyTorch
python setup.py install

# RuntimeError: Missing build dependency: Unable to `import typing`.
# Please install it via `conda install typing` or `pip install typing`
pip install typing
# Successfully installed typing-3.6.4

# Install PyTorch
python setup.py install
# 時間が掛かる




Tags: [Raspberry Pi], [電子工作], [ディープラーニング]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM
NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM

  Jetson Nanoで TensorFlow PyTorch Caffe/Caffe2 Keras MXNet等を GPUパワーで超高速で動かす!

Raspberry Piでメモリを馬鹿食いするアプリ用に不要なサービスを停止してフリーメモリを増やす方法
Raspberry Piでメモリを馬鹿食いするアプリ用に不要なサービスを停止してフリーメモリを増やす方法

  ラズパイでメモリを沢山使用するビルドやアプリ用に不要なサービス等を停止して使えるメインメモリを増やす

【成功版】最新版の Darknetに digitalbrain79版の Darknet with NNPACKの NNPACK処理を適用する
【成功版】最新版の Darknetに digitalbrain79版の Darknet with NNPACKの NNPACK処理を適用する

  ラズパイで NNPACK対応の最新版の Darknetを動かして超高速で物体検出や DeepDreamの悪夢を見る

【成功版】Raspberry Piで NNPACK対応版の Darknet Neural Network Frameworkをビルドする方法
【成功版】Raspberry Piで NNPACK対応版の Darknet Neural Network Frameworkをビルドする方法

  ラズパイに Darknet NNPACK darknet-nnpackをソースからビルドして物体検出を行なう方法

【成功版】Raspberry Piで Darknet Neural Network Frameworkをビルドする方法
【成功版】Raspberry Piで Darknet Neural Network Frameworkをビルドする方法

  ラズパイに Darknet Neural Network Frameworkを入れて物体検出や悪夢のグロ画像を生成する

【成功版】Raspberry Piに TensorFlow Deep Learning Frameworkをインストールする方法
【成功版】Raspberry Piに TensorFlow Deep Learning Frameworkをインストールする方法

  ラズパイに TensorFlow Deep Learning Frameworkを入れて Google DeepDreamで悪夢を見る方法

Raspberry Piで TensorFlow Deep Learning Frameworkを自己ビルドする方法
Raspberry Piで TensorFlow Deep Learning Frameworkを自己ビルドする方法

  ラズパイで TensorFlow Deep Learning Frameworkを自己ビルドする方法

Raspberry Piで Caffe Deep Learning Frameworkで物体認識を行なってみるテスト
Raspberry Piで Caffe Deep Learning Frameworkで物体認識を行なってみるテスト

  ラズパイで Caffe Deep Learning Frameworkを動かして物体認識を行なってみる

【ビルド版】Raspberry Piで DeepDreamを動かしてキモイ絵をモリモリ量産 Caffe Deep Learning Framework
【ビルド版】Raspberry Piで DeepDreamを動かしてキモイ絵をモリモリ量産 Caffe Deep Learning Framework

  ラズパイで Caffe Deep Learning Frameworkをビルドして Deep Dreamを動かしてキモイ絵を生成する

【インストール版】Raspberry Piで DeepDreamを動かしてキモイ絵をモリモリ量産 Caffe Deep Learning
【インストール版】Raspberry Piで DeepDreamを動かしてキモイ絵をモリモリ量産 Caffe Deep Learning

  ラズパイで Caffe Deep Learning Frameworkをインストールして Deep Dreamを動かしてキモイ絵を生成する

Orange Pi PC 2の 64bitのチカラで DeepDreamしてキモイ絵を高速でモリモリ量産してみるテスト
Orange Pi PC 2の 64bitのチカラで DeepDreamしてキモイ絵を高速でモリモリ量産してみるテスト

  OrangePi PC2に Caffe Deep Learning Frameworkをビルドして Deep Dreamを動かしてキモイ絵を生成する

Raspberry Piに Jupyter Notebookをインストールして拡張子 ipynb形式の IPythonを動かす
Raspberry Piに Jupyter Notebookをインストールして拡張子 ipynb形式の IPythonを動かす

  ラズパイに IPython Notebookをインストールして Google DeepDream dream.ipynbを動かす

Raspberry Piで Deep Learningフレームワーク Chainerをインストールしてみる
Raspberry Piで Deep Learningフレームワーク Chainerをインストールしてみる

  ラズパイに Deep Learningのフレームワーク Chainerを入れてみた

Raspberry Piで DeepBeliefSDKをビルドして画像認識フレームワークを動かす方法
Raspberry Piで DeepBeliefSDKをビルドして画像認識フレームワークを動かす方法

  ラズパイに DeepBeliefSDKを入れて画像の物体認識を行なう

Raspberry Piで Microsoftの ELLをビルドする方法
Raspberry Piで Microsoftの ELLをビルドする方法

  ラズパイで Microsoftの ELL Embedded Learning Libraryをビルドしてみるテスト、ビルドするだけ

Raspberry Piで MXNet port of SSD Single Shot MultiBoxを動かして画像の物体検出をする方法
Raspberry Piで MXNet port of SSD Single Shot MultiBoxを動かして画像の物体検出をする方法

  ラズパイで MXNet port of SSD Single Shot MultiBox Object Detectorで物体検出を行なってみる

Raspberry Piで Apache MXNet Incubatingをビルドする方法
Raspberry Piで Apache MXNet Incubatingをビルドする方法

  ラズパイで Apache MXNet Incubatingをビルドしてみるテスト、ビルドするだけ

Raspberry Piで OpenCVの Haar Cascade Object Detectionでリアルタイムにカメラ映像の顔検出を行なってみる
Raspberry Piで OpenCVの Haar Cascade Object Detectionでリアルタイムにカメラ映像の顔検出を行なってみる

  ラズパイで OpenCVの Haar Cascade Object Detection Face & Eyeでリアルタイムでカメラ映像の顔検出をする方法

Raspberry Piで NNPACKをビルドする方法
Raspberry Piで NNPACKをビルドする方法

  ラズパイで NNPACKをビルドしてみるテスト、ビルドするだけ

Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ

  ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2018 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_build_caffe2_deep_learning_framework/