Теано с 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
символы отладки.