Raspberry piにTensorFlowをインストールしたときのメモです。
ハードウェア
Raspberry pi 4 4GB
環境確認
pi@raspberrypi:~/work $ python3 -V Python 3.7.3 pi@raspberrypi:~/work $ pip3 -V pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7) |
インストール
pi@raspberrypi:~/work $ sudo apt install libatlas-base-dev pi@raspberrypi:~/work $ pip3 install tensorflow Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Collecting tensorflow Downloading https://www.piwheels.org/simple/tensorflow/tensorflow-1.14.0-cp37-none-linux_armv7l.whl (79.6MB) 55% |█████████████████▉ | 44.3MB 4.6MB/s eta 0:00:08 THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them. tensorflow from https://www.piwheels.org/simple/tensorflow/tensorflow-1.14.0-cp37-none-linux_armv7l.whl#sha256=d4b1c2eda7a46e00e5091c077958c1bc116fc2be6c5ecb870a613edac2a95e74: Expected sha256 d4b1c2eda7a46e00e5091c077958c1bc116fc2be6c5ecb870a613edac2a95e74 Got 23acc899ae0ac258d239c8a100c884763bbdbb613b6ddb516c2305f0a7c78924 |
ダウンロードエラーでインストールできなかったので、直接ダウンロードしてインストールしました。
pi@raspberrypi:~/work $ wget https://www.piwheels.org/simple/tensorflow/tensorflow-1.14.0-cp37-none-linux_armv7l.whl pi@raspberrypi:~/work $ pip3 install tensorflow-1.14.0-cp37-none-linux_armv7l.whl |
動作チェック
下記のtest.pyファイルを作成します。
import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello)) |
実行します。
pi@raspberrypi:~/work $ python3 test.py 2020-01-10 10:15:57.796165: E tensorflow/core/platform/hadoop/hadoop_file_system.cc:132] HadoopFileSystem load error: libhdfs.so: cannot open shared object file: No such file or directory WARNING:tensorflow:From test.py:3: The name tf.Session is deprecated. Please use tf.compat.v1.Session instead. B’Hello, TensorFlow!’ |
エラーメッセージは表示されるが動作はしているようです。エラーメッセージを表示させないようにするにはhadoopをインストールする必要があるらしいことがわかりました。
画像の判定(サンプルプログラム)
classify_image.pyを
https://github.com/tensorflow/models/blob/master/tutorials/image/imagenet/classify_image.py
からダウンロードします。実行すると次のようになります。
pi@raspberrypi:~/work $ python3 classify_image.py 2> /dev/null giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107) indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779) lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296) custard apple (score = 0.00147) earthstar (score = 0.00117) |
つぎに動物(ここでは猫)の写っている画像を用意して実行します。
pi@raspberrypi:~/work $ python3 classify_image.py --image_file neko.jpg 2> /dev/null tabby, tabby cat (score = 0.48554) tiger cat (score = 0.19503) Egyptian cat (score = 0.10221) lynx, catamount (score = 0.03373) French bulldog (score = 0.00182) |
動作しているようです。
参考
※コメント投稿者のブログIDはブログ作成者のみに通知されます