Raspberry Pi で Keras を使用した Theano 質問する

Raspberry Pi で Keras を使用した Theano 質問する

Raspberry Pi 3 (B) で Keras を使用して Theano を実行しようとしていますが、成功していません。Ubuntu MATE と Raspbian をオペレーティング システムとして試しましたが、成功しませんでした。Theano と Keras をインストールするために、次の手順を実行しました。

  1. miniconda (armv7 ディストリビューション) をインストールする
  2. Theanoの依存関係をすべてインストールします(ここ)をConda経由で(可能であればpipapt-get
  3. Theanoをインストールする
  4. 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 を使用してソースからビルドしてみてください。

おすすめ記事