Raspberry Pi 3 (B) で Keras を使用して Theano を実行しようとしていますが、成功していません。Ubuntu MATE と Raspbian をオペレーティング システムとして試しましたが、成功しませんでした。Theano と Keras をインストールするために、次の手順を実行しました。
- miniconda (armv7 ディストリビューション) をインストールする
- Theanoの依存関係をすべてインストールします(ここ)をConda経由で(可能であれば
pip
)apt-get
- Theanoをインストールする
- Kerasをインストールする
前述の手順は問題なく動作します。次のステップでは、すでに構築されたモデルをロードする小さなテストスクリプト(test.py)を作成しました。
from keras.models import load_model
model = load_model('model.hdf5')
モデルをロードしているときに、次のエラーが発生します
Segmentation fault (core dumped)
それから私はSOのこの回答に従って、問題をさらに調査しようとしました(Python セグメンテーション違反の原因は何ですか?):
gdb python
> run test.py
これを実行すると次のようになります:
Program received SIGSEV, Segmentation fault.
0x76fd9822 in ?? () from /lib/ld-linux-armhf.so.3
次のステップでは、gdb シェルで実行しました。
> backtrace
そして
#0 0x76fd9822 in ?? () from /lib/ld-linux-armhf.so.3
#1 0x76fd983a in ?? () from /lib/ld-linux-armhf.so.3
これ以上は分かりませんが、この問題を解決して keras + theano を Raspberry Pi で実行する方法を教えてもらえませんか。
(代替案としてTensorFlowも試しましたが、同じ問題が発生しました)
どうもありがとう。
編集
私はさらに調査をしました。TensorFlowでKerasを実行する問題は少し変わったようです。gdbを再度実行しましたが、今度はnumpy、特にlibopenblas.so.0でエラーが発生します。
Program received signal SIGSEV, Segmentation fault.
0x75ead7cc in inner_thread()
from /home/<path>/numpy/core/../../../../libopenblas.so.0
これは役に立ちますか?
編集2
Miniconda を使用せずにすべてをインストールしましたが、Keras は TensorFlow で動作するようになりました (ただし、Theano ではまだ動作しません)。
ベストアンサー1
Python のバージョンを提供していただければ助かります。Python3.7 を使用している場合は、Python3.6 に戻してみてください。Keras はまだ開発に追いついておらず、Python3.7 で Keras を使用して TensorFlow をインストールすると多くの問題が発生します。ここでバージョンに重点を置いているのは、最近 conda を使用してインストールしたときに同じ問題に直面し、問題が Python のバージョンにあることに気付いたからです。
しかし、PI で tensorflow を動作させるのにも問題がありました。しかし、miniconda ではなく ubuntu の pip を使用して直接インストールしたところ、動作しました。Google Tensorflow チーム自身が推奨している最善の方法は、このリンクの指示に従って、実際にソースから tensorflow をビルドすることです。https://www.tensorflow.org/install/source_rpi
したがって、可能であれば Python のバージョンを 3.6 以下にダウングレードし、pip を使用してインストールするか、python3.6 または 3.7 を使用してソースからビルドしてみてください。