Теано с Keras на малине Pi

Я пытаюсь заставить Theano бежать с Keras на малине Pi 3 (B) без успеха. Я пробовал Ubuntu MATE и Raspbian в качестве операционных систем без успеха. Чтобы установить Theano и Keras, я сделал следующие шаги:

  • Установить miniconda (распространение armv7)
  • Установите все зависимости Anano (как показано здесь) через Conda (если возможно), pip и apt-get
  • Установить Theano
  • Установить Keras

Вышеупомянутые шаги работают без каких-либо проблем. На следующем шаге я построил небольшой тест script (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 для запуска на малиновом Pi.

(Я также попробовал TensorFlow в качестве альтернативы, но получаю ту же проблему)

Большое спасибо.


ИЗМЕНИТЬ

Я провел еще несколько исследований. Если я запустит Keras с TensorFlow, проблема, похоже, немного изменится. Я снова запускал 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 еще не приступил к разработке, и существует множество проблем при установке tenorflow с keras на python3.7. Я делаю акцент на версии здесь, потому что я недавно столкнулся с той же проблемой установки с использованием conda, и я понял, что проблема была в версии Python.

Но у меня также были проблемы с получением доступа к приложению tenorflow. Но я использовал прямую установку, используя pip из Ubuntu, а не Miniconda, и это сработало. Лучше всего, как упоминает сама команда Google Tensorflow, на самом деле построить тензорный поток из источника, следуя инструкциям по этой ссылке. https://www.tensorflow.org/install/source_rpi

Поэтому попробуйте понизить версию python до 3.6 или ниже, если вы можете, и попробуйте установить ее с помощью pip или собрать из исходного кода с использованием python3.6 или 3.7.

Ответ 2

В настоящее время решение заключается в том, чтобы избежать установки miniconda при установке.

Чтобы дополнительно диагностировать, было бы полезно, чтобы ld-linux-armhf.so.3 и libopenblas.so.0 имели -g символы отладки.