RaspberryPiに比較的新しいTensorFlowをインストールしてみる(Python2系、Python3系)
そろそろ、TensorFlow
を入れなきゃと思いインストールしてみたのですが、ネットを調べただけで、なにもしていなかったので年末だということもあり設定をしてみました。
比較的新しいバージョンのインストールエントリーがあったので以下2つを参考にさせてもらいました。基本的に1からビルドするとかなり時間がかかるのですが、これにより時間を大幅に短縮できたのでとても助かりました。ただ、この情報もそのままだとうまくいかない(インストールが失敗する)ので、失敗の状況も含めていろいろ調べて修正してみました。参考になればと思います。
個人的にはpython3にそろそろ移行していきたいところ(個人的な来年の目標はpython3系に移行することにしています) 手順のエントリーには、python2系、python3系の両方のやり方が書いてあったので、折角なので両方セットアップしてみます。
python2系(version2.7)の手順
TensorFlow
のインストール
python開発系のパッケージをインストールしていきます。インストールのログが長いのでコマンドとログを分けました。
【コマンド:失敗例】
$ sudo apt-get install libblas-dev liblapack-dev python-dev libatlas-base-dev gfortran python-setuptools $ sudo pip2 install http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/bazel-out/pi/tensorflow-1.3.0-cp27-none-any.whl
【ログ】
$ sudo apt-get install libblas-dev liblapack-dev python-dev libatlas-base-dev gfortran python-setuptools Reading package lists... Done Building dependency tree Reading state information... Done python-dev is already the newest version (2.7.13-2). python-dev set to manually installed. python-setuptools is already the newest version (33.1.1-1). python-setuptools set to manually installed. The following additional packages will be installed: gfortran-6 libatlas-dev libatlas3-base libgfortran-6-dev Suggested packages: gfortran-doc gfortran-6-doc libgfortran3-dbg libcoarrays-dev libblas-doc liblapack-doc liblapack-doc-man The following NEW packages will be installed: gfortran gfortran-6 libatlas-base-dev libatlas-dev libatlas3-base libblas-dev libgfortran-6-dev liblapack-dev 0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded. Need to get 11.7 MB of archives. After this operation, 56.2 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libgfortran-6-dev armhf 6.3.0-18+rpi1 [199 kB] Get:2 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf gfortran-6 armhf 6.3.0-18+rpi1 [5,422 kB] Get:3 http://mirrordirector.raspbian.org/raspbian stretch/main armhf gfortran armhf 4:6.3.0-4 [1,352 B] Get:4 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libatlas3-base armhf 3.10.3-1+rpi1 [1,920 kB] Get:5 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libblas-dev armhf 3.7.0-2 [114 kB] Get:6 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libatlas-dev armhf 3.10.3-1+rpi1 [65.9 kB] Get:7 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libatlas-base-dev armhf 3.10.3-1+rpi1 [2,528 kB] Get:8 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf liblapack-dev armhf 3.7.0-2 [1,483 kB] Fetched 11.7 MB in 8s (1,304 kB/s) Selecting previously unselected package libgfortran-6-dev:armhf. (Reading database ... 122979 files and directories currently installed.) Preparing to unpack .../0-libgfortran-6-dev_6.3.0-18+rpi1_armhf.deb ... Unpacking libgfortran-6-dev:armhf (6.3.0-18+rpi1) ... Selecting previously unselected package gfortran-6. Preparing to unpack .../1-gfortran-6_6.3.0-18+rpi1_armhf.deb ... Unpacking gfortran-6 (6.3.0-18+rpi1) ... Selecting previously unselected package gfortran. Preparing to unpack .../2-gfortran_4%3a6.3.0-4_armhf.deb ... Unpacking gfortran (4:6.3.0-4) ... Selecting previously unselected package libatlas3-base. Preparing to unpack .../3-libatlas3-base_3.10.3-1+rpi1_armhf.deb ... Unpacking libatlas3-base (3.10.3-1+rpi1) ... Selecting previously unselected package libblas-dev. Preparing to unpack .../4-libblas-dev_3.7.0-2_armhf.deb ... Unpacking libblas-dev (3.7.0-2) ... Selecting previously unselected package libatlas-dev. Preparing to unpack .../5-libatlas-dev_3.10.3-1+rpi1_armhf.deb ... Unpacking libatlas-dev (3.10.3-1+rpi1) ... Selecting previously unselected package libatlas-base-dev. Preparing to unpack .../6-libatlas-base-dev_3.10.3-1+rpi1_armhf.deb ... Unpacking libatlas-base-dev (3.10.3-1+rpi1) ... Selecting previously unselected package liblapack-dev. Preparing to unpack .../7-liblapack-dev_3.7.0-2_armhf.deb ... Unpacking liblapack-dev (3.7.0-2) ... Setting up libatlas3-base (3.10.3-1+rpi1) ... update-alternatives: using /usr/lib/atlas-base/atlas/libblas.so.3 to provide /usr/lib/libblas.so.3 (libblas.so.3) in auto mode update-alternatives: using /usr/lib/atlas-base/atlas/liblapack.so.3 to provide /usr/lib/liblapack.so.3 (liblapack.so.3) in auto mode Setting up libgfortran-6-dev:armhf (6.3.0-18+rpi1) ... Processing triggers for libc-bin (2.24-11+deb9u1) ... Processing triggers for man-db (2.7.6.1-2) ... Setting up gfortran-6 (6.3.0-18+rpi1) ... Setting up gfortran (4:6.3.0-4) ... update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f95 (f95) in auto mode update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f77 (f77) in auto mode Setting up libblas-dev (3.7.0-2) ... update-alternatives: using /usr/lib/libblas/libblas.so to provide /usr/lib/libblas.so (libblas.so) in auto mode Setting up libatlas-dev (3.10.3-1+rpi1) ... Setting up liblapack-dev (3.7.0-2) ... update-alternatives: using /usr/lib/lapack/liblapack.so to provide /usr/lib/liblapack.so (liblapack.so) in auto mode Setting up libatlas-base-dev (3.10.3-1+rpi1) ... update-alternatives: using /usr/lib/atlas-base/atlas/libblas.so to provide /usr/lib/libblas.so (libblas.so) in auto mode update-alternatives: using /usr/lib/atlas-base/atlas/liblapack.so to provide /usr/lib/liblapack.so (liblapack.so) in auto mode
コマンドの1行目の必須パッケージのインストールはうまく行ったのですが、tensorflowの本体のインストールでは失敗してしまいます。 ブラウザでwhlファイルがあるURLを確認するとファイルのアクセスができない状態のようです。nightlyビルドってこんなものなの?かな。
$ sudo pip2 install http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/bazel-out/pi/tensorflow-1.3.0-cp27-none-any.whl Collecting tensorflow==1.3.0 from http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/bazel-out/pi/tensorflow-1.3.0-cp27-none-any.whl Exception: Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 353, in run wb.build(autobuilding=True) File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 749, in build self.requirement_set.prepare_files(self.finder) File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files ignore_dependencies=self.ignore_dependencies)) File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 620, in _prepare_file session=self.session, hashes=hashes) File "/usr/lib/python2.7/dist-packages/pip/download.py", line 821, in unpack_url hashes=hashes File "/usr/lib/python2.7/dist-packages/pip/download.py", line 659, in unpack_http_url hashes) File "/usr/lib/python2.7/dist-packages/pip/download.py", line 855, in _download_http_url resp.raise_for_status() File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/models.py", line 893, in raise_for_status raise HTTPError(http_error_msg, response=self) HTTPError: 404 Client Error: Not Found for url: http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/bazel-out/pi/tensorflow-1.3.0-cp27-none-any.whl
いろいろと考えてnightlyビルドなのでもしかしたら新しいURLに格納されているのかなと思い、サイトを調べてみました。
このページから最新のRaspberryPi用のnightlyビルドが取得できそうです。現在はtensorflowのバージョンは1.4になっていますので参考にしたサイトより更に最新のものになります。(わーい)2017.12.30現在のビルドは#140なのでそれを使用してインストールを行っています。URLを変更して以下の様にします。
【インストールコマンド変更】
$ sudo pip2 install http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp27-none-any.whl
【ログ】
$ sudo pip2 install http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp27-none-any.whl Collecting tensorflow==1.4.0 from http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp27-none-any.whl Downloading http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp27-none-any.whl (56.3MB) 100% |????????????????????????????????| 56.3MB 10.9MB/s Collecting protobuf>=3.4.0 (from tensorflow==1.4.0) Downloading protobuf-3.5.1-py2.py3-none-any.whl (388kB) 100% |????????????????????????????????| 389kB 550kB/s Collecting absl-py>=0.1.6 (from tensorflow==1.4.0) Downloading absl-py-0.1.7.tar.gz (78kB) 100% |????????????????????????????????| 81kB 1.6MB/s Collecting tensorflow-tensorboard (from tensorflow==1.4.0) Downloading tensorflow_tensorboard-0.1.8-py2-none-any.whl (1.6MB) 100% |????????????????????????????????| 1.6MB 154kB/s Requirement already satisfied: six>=1.10.0 in /usr/lib/python2.7/dist-packages (from tensorflow==1.4.0) Requirement already satisfied: numpy>=1.12.1 in /usr/lib/python2.7/dist-packages (from tensorflow==1.4.0) Requirement already satisfied: enum34>=1.1.6 in /usr/lib/python2.7/dist-packages (from tensorflow==1.4.0) Collecting backports.weakref>=1.0rc1 (from tensorflow==1.4.0) Downloading backports.weakref-1.0.post1-py2.py3-none-any.whl Requirement already satisfied: wheel in /usr/lib/python2.7/dist-packages (from tensorflow==1.4.0) Collecting mock>=2.0.0 (from tensorflow==1.4.0) Downloading mock-2.0.0-py2.py3-none-any.whl (56kB) 100% |????????????????????????????????| 61kB 1.8MB/s Requirement already satisfied: setuptools in /usr/lib/python2.7/dist-packages (from protobuf>=3.4.0->tensorflow==1.4.0) Collecting markdown>=2.6.8 (from tensorflow-tensorboard->tensorflow==1.4.0) Downloading Markdown-2.6.10.zip (414kB) 100% |????????????????????????????????| 419kB 646kB/s Requirement already satisfied: werkzeug>=0.11.10 in /usr/lib/python2.7/dist-packages (from tensorflow-tensorboard->tensorflow==1.4.0) Collecting bleach==1.5.0 (from tensorflow-tensorboard->tensorflow==1.4.0) Downloading bleach-1.5.0-py2.py3-none-any.whl Collecting html5lib==0.9999999 (from tensorflow-tensorboard->tensorflow==1.4.0) Downloading html5lib-0.9999999.tar.gz (889kB) 100% |????????????????????????????????| 890kB 261kB/s Collecting funcsigs>=1; python_version < "3.3" (from mock>=2.0.0->tensorflow==1.4.0) Downloading funcsigs-1.0.2-py2.py3-none-any.whl Collecting pbr>=0.11 (from mock>=2.0.0->tensorflow==1.4.0) Downloading pbr-3.1.1-py2.py3-none-any.whl (99kB) 100% |????????????????????????????????| 102kB 954kB/s Building wheels for collected packages: absl-py, markdown, html5lib Running setup.py bdist_wheel for absl-py ... done Stored in directory: /root/.cache/pip/wheels/c4/71/71/7bd70f858f062d3f99990dcbc3f45b795bde057a42f971537f Running setup.py bdist_wheel for markdown ... done Stored in directory: /root/.cache/pip/wheels/1e/5a/55/a80b200d12e234d575ad68c1528593d1ce488720b65b24e48c Running setup.py bdist_wheel for html5lib ... done Stored in directory: /root/.cache/pip/wheels/6f/85/6c/56b8e1292c6214c4eb73b9dda50f53e8e977bf65989373c962 Successfully built absl-py markdown html5lib Installing collected packages: protobuf, absl-py, markdown, html5lib, bleach, tensorflow-tensorboard, backports.weakref, funcsigs, pbr, mock, tensorflow Successfully installed absl-py-0.1.7 backports.weakref-1.0.post1 bleach-1.5.0 funcsigs-1.0.2 html5lib-0.9999999 markdown-2.6.10 mock-2.0.0 pbr-3.1.1 protobuf-3.5.1 tensorflow-1.4.0 tensorflow-tensorboard-0.1.8
【コマンド:成功例】
$ sudo apt-get install libblas-dev liblapack-dev python-dev libatlas-base-dev gfortran python-setuptools $ sudo pip2 install http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp27-none-any.whl
一般のパッケージに比べれば少し時間はかかりますが、そんな大した時間ではありません。これでインストールが完了しましたので対話型インターフェースで実行を行ってみます。
【実行テスト】
$ 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 tensorflow as tf >>> hello = tf.constant('Hello, TensorFlow!') >>> sess = tf.Session() >>> print(sess.run(hello)) Hello, TensorFlow! >>> a = tf.constant(10) >>> b = tf.constant(32) >>> print(sess.run(a + b)) 42 >>>
TensorFlow
が無事にインストールされたようです。やりました!
Keras
もインストールする
Kerasは,Pythonで書かれた,TensorFlowまたはCNTK,Theano上で実行可能な高水準のニューラルネットワークライブラリです. Kerasは,迅速な実験を可能にすることに重点を置いて開発されました. アイデアから結果に到達するまでのリードタイムをできるだけ小さくすることが,良い研究をするための鍵になります.
Keras
のサイトは以下になります。
Keras
のインストールに関しては比較的簡単です。あとは依存系のライブラリモジュールもインストールしておきます。
【コマンド】
$ sudo apt-get install python-h5py $ sudo pip install keras
【ログ】
$ sudo apt-get install python-h5py Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libaec0 libhdf5-100 libsz2 Suggested packages: python-h5py-doc The following NEW packages will be installed: libaec0 libhdf5-100 libsz2 python-h5py 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. Need to get 1,790 kB of archives. After this operation, 7,210 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libaec0 armhf 0.3.2-1 [19.4 kB] Get:2 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libsz2 armhf 0.3.2-1 [5,836 B] Get:3 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf libhdf5-100 armhf 1.10.0-patch1+docs-3 [1,203 kB] Get:4 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf python-h5py armhf 2.7.0-1 [561 kB] Fetched 1,790 kB in 3s (480 kB/s) Selecting previously unselected package libaec0:armhf. (Reading database ... 123241 files and directories currently installed.) Preparing to unpack .../libaec0_0.3.2-1_armhf.deb ... Unpacking libaec0:armhf (0.3.2-1) ... Selecting previously unselected package libsz2:armhf. Preparing to unpack .../libsz2_0.3.2-1_armhf.deb ... Unpacking libsz2:armhf (0.3.2-1) ... Selecting previously unselected package libhdf5-100:armhf. Preparing to unpack .../libhdf5-100_1.10.0-patch1+docs-3_armhf.deb ... Unpacking libhdf5-100:armhf (1.10.0-patch1+docs-3) ... Selecting previously unselected package python-h5py. Preparing to unpack .../python-h5py_2.7.0-1_armhf.deb ... Unpacking python-h5py (2.7.0-1) ... Setting up libaec0:armhf (0.3.2-1) ... Processing triggers for libc-bin (2.24-11+deb9u1) ... Setting up libsz2:armhf (0.3.2-1) ... Setting up libhdf5-100:armhf (1.10.0-patch1+docs-3) ... Setting up python-h5py (2.7.0-1) ... Processing triggers for libc-bin (2.24-11+deb9u1) ... $ sudo pip install keras Collecting keras Using cached Keras-2.1.2-py2.py3-none-any.whl Collecting pyyaml (from keras) Requirement already satisfied: six>=1.9.0 in /usr/lib/python2.7/dist-packages (from keras) Collecting scipy>=0.14 (from keras) Using cached scipy-1.0.0.tar.gz Requirement already satisfied: numpy>=1.9.1 in /usr/lib/python2.7/dist-packages (from keras) Building wheels for collected packages: scipy Running setup.py bdist_wheel for scipy ... done Stored in directory: /root/.cache/pip/wheels/b9/3e/bd/e9f0e1707c4be2bb1f671fd4246028d5d2e10cd70740ffd801 Successfully built scipy Installing collected packages: pyyaml, scipy, keras Successfully installed keras-2.1.2 pyyaml-3.12 scipy-1.0.0
これでインストールできました。(2時間弱かかりました)
python3系(version3.4またはversion3.5)の手順
pip
はpip3
と明示する必要があります。
TensorFlow
のインストール
pythonの動作するバージョンに合わせる必要があります。 念のためRaspberryPiで動作するpython3系のバージョンを調べましょう。
比較的新しいRaspbianではPythonのバージョンは3.5.3のようです。
動作するpythonのバージョンがversion3.4の場合
すみませんが、こちらは動かせていませんが、whlファイルも存在するので多分うまく行きそうです。
【version3.4のコマンド】
$ sudo apt-get install libblas-dev liblapack-dev python-dev libatlas-base-dev gfortran python-setuptools $ sudo pip3 install http://ci.tensorflow.org/view/Nightly/job/nightly-pi-python3/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp34-none-any.whl
動作するpythonのバージョンがversion3.5の場合
作業自体は大きくは変化しないのですが、3.4用に作成されたwhlファイルを3.5用に名前だけ変更してインストールしています。そのため一度名前変更するためにcurl
でローカルにダウンロードしてからpip3
でインストールしています。また、python3用にパッケージ名も変更しています。(既にpython3-dev
とpython3-setuptools
インストールはされているので気にしなくてもいいかもしれません。)
【version3.5のコマンド】
$ sudo apt-get install libblas-dev liblapack-dev python3-dev libatlas-base-dev gfortran python3-setuptools $ curl -O http://ci.tensorflow.org/view/Nightly/job/nightly-pi-python3/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp34-none-any.whl $ mv tensorflow-1.4.0-cp34-none-any.whl tensorflow-1.4.0-cp35-none-any.whl $ sudo pip3 install tensorflow-1.4.0-cp35-none-any.whl
【ログ】
$ sudo apt-get install libblas-dev liblapack-dev python3-dev libatlas-base-dev gfortran python3-setuptools Reading package lists... Done Building dependency tree Reading state information... Done gfortran is already the newest version (4:6.3.0-4). libatlas-base-dev is already the newest version (3.10.3-1+rpi1). libblas-dev is already the newest version (3.7.0-2). liblapack-dev is already the newest version (3.7.0-2). python3-dev is already the newest version (3.5.3-1). python3-dev set to manually installed. python3-setuptools is already the newest version (33.1.1-1). python3-setuptools set to manually installed. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. $ curl -O http://ci.tensorflow.org/view/Nightly/job/nightly-pi-python3/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp34-none-any.whl % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 53.6M 100 53.6M 0 0 2912k 0 0:00:18 0:00:18 --:--:-- 2966k pi@raspberrypi:~/tensorflow $ mv tensorflow-1.4.0-cp34-none-any.whl tensorflow-1.4.0-cp35-none-any.whl pi@raspberrypi:~/tensorflow $ ls tensorflow-1.4.0-cp35-none-any.whl $ sudo pip3 install tensorflow-1.4.0-cp35-none-any.whl Processing ./tensorflow-1.4.0-cp35-none-any.whl Requirement already satisfied: numpy>=1.12.1 in /usr/lib/python3/dist-packages (from tensorflow==1.4.0) Collecting absl-py>=0.1.6 (from tensorflow==1.4.0) Downloading https://www.piwheels.hostedpi.com/simple/absl-py/absl_py-0.1.7-py3-none-any.whl (93kB) 100% |????????????????????????????????| 102kB 91kB/s Collecting protobuf>=3.4.0 (from tensorflow==1.4.0) Using cached protobuf-3.5.1-py2.py3-none-any.whl Requirement already satisfied: wheel>=0.26 in /usr/lib/python3/dist-packages (from tensorflow==1.4.0) Collecting tensorflow-tensorboard (from tensorflow==1.4.0) Downloading tensorflow_tensorboard-0.1.8-py3-none-any.whl (1.6MB) 100% |????????????????????????????????| 1.6MB 176kB/s Requirement already satisfied: six>=1.10.0 in /usr/lib/python3/dist-packages (from tensorflow==1.4.0) Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from protobuf>=3.4.0->tensorflow==1.4.0) Collecting bleach==1.5.0 (from tensorflow-tensorboard->tensorflow==1.4.0) Using cached bleach-1.5.0-py2.py3-none-any.whl Requirement already satisfied: werkzeug>=0.11.10 in /usr/lib/python3/dist-packages (from tensorflow-tensorboard->tensorflow==1.4.0) Collecting markdown>=2.6.8 (from tensorflow-tensorboard->tensorflow==1.4.0) Downloading https://www.piwheels.hostedpi.com/simple/markdown/Markdown-2.6.10-py3-none-any.whl (77kB) 100% |????????????????????????????????| 81kB 58kB/s Collecting html5lib==0.9999999 (from tensorflow-tensorboard->tensorflow==1.4.0) Downloading https://www.piwheels.hostedpi.com/simple/html5lib/html5lib-0.9999999-py3-none-any.whl (111kB) 100% |????????????????????????????????| 112kB 165kB/s Installing collected packages: absl-py, protobuf, html5lib, bleach, markdown, tensorflow-tensorboard, tensorflow Successfully installed absl-py-0.1.7 bleach-1.5.0 html5lib-0.9999999 markdown-2.6.10 protobuf-3.5.1 tensorflow-1.4.0 tensorflow-tensorboard-0.1.8
無事にインストールが終了した様です。では、こちらも対話型インターフェースでテストしてみます。 importしてみると…
$ 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 tensorflow as tf /usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: compiletime version 3.4 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.5 return f(*args, **kwds) /usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: builtins.type size changed, may indicate binary incompatibility. Expected 432, got 412 return f(*args, **kwds) >>>
げーッまたしてもエラーが発生しました。
ぐぐってみたら以下のエントリーが。
どうもこの問題は既知の問題のようです。インストールするときにもファイル名をpython3.5に合わせるために修正したことも関係しているのでしょう。一番最初リンクしたサイトにも以下の記述がありました。
If you’re running Python 3.5, you can use the same wheel but with a slight change to the file name, since that encodes the version. You will see a couple of warnings every time you import tensorflow, but it should work correctly.
but it should work correctly.
の記載があるので今後のバージョンアップに期待したいところです。では、テストを続けてみます。
$ 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 tensorflow as tf /usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: compiletime version 3.4 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.5 return f(*args, **kwds) /usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: builtins.type size changed, may indicate binary incompatibility. Expected 432, got 412 return f(*args, **kwds) >>> hello = tf.constant('Hello, TensorFlow!') >>> sess = tf.Session() >>> print(sess.run(hello)) b'Hello, TensorFlow!' >>> a = tf.constant(10) >>> b = tf.constant(32) >>> print(sess.run(a + b)) 42 >>>
いろいろメッセージは出ますが、動作には問題ないようです。ビルドさせられるのは厳しかったのでかなり助かった気分です。
Keras
もインストールする
【コマンド】
$ sudo apt-get install python3-h5py $ sudo pip3 install keras
【ログ】
$ sudo apt-get install python3-h5py Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: python-h5py-doc The following NEW packages will be installed: python3-h5py 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 558 kB of archives. After this operation, 2,647 kB of additional disk space will be used. Get:1 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian stretch/main armhf python3-h5py armhf 2.7.0-1 [558 kB] Fetched 558 kB in 1s (396 kB/s) Selecting previously unselected package python3-h5py. (Reading database ... 123353 files and directories currently installed.) Preparing to unpack .../python3-h5py_2.7.0-1_armhf.deb ... Unpacking python3-h5py (2.7.0-1) ... Setting up python3-h5py (2.7.0-1) ... $ sudo pip3 install keras Collecting keras Using cached Keras-2.1.2-py2.py3-none-any.whl Collecting pyyaml (from keras) Downloading https://www.piwheels.hostedpi.com/simple/pyyaml/PyYAML-3.12-cp35-cp35m-linux_armv7l.whl (43kB) 100% |????????????????????????????????| 51kB 47kB/s Requirement already satisfied: six>=1.9.0 in /usr/lib/python3/dist-packages (from keras) Collecting scipy>=0.14 (from keras) Downloading https://www.piwheels.hostedpi.com/simple/scipy/scipy-1.0.0-cp35-cp35m-linux_armv7l.whl (35.1MB) 100% |????????????????????????????????| 35.1MB 8.4kB/s Requirement already satisfied: numpy>=1.9.1 in /usr/lib/python3/dist-packages (from keras) Installing collected packages: pyyaml, scipy, keras Successfully installed keras-2.1.2 pyyaml-3.12 scipy-1.0.0
こちらも無事にインストールができました。2系のインストールが終わっていたからかもしれませんが、すぐに完了しました。
おわりに
一応これでpython2系でもpython3系でもTensorFlow1.4のインストールができました。 あとは使うだけなんですよ。使うだけ…