【发布时间】:2017-03-12 01:32:27
【问题描述】:
我试图让 Theano 在 Raspberry Pi 3 (B) 上与 Keras 一起运行,但没有成功。我尝试将 Ubuntu MATE 和 Raspbian 作为操作系统,但没有成功。为了安装 Theano 和 Keras,我采取了以下步骤:
- 安装 miniconda(armv7 发行版)
- 通过 Conda(如果可能)、
pip和apt-get安装所有 Theano 依赖项(如图所示 here) - 安装 Theano
- 安装 Keras
上述步骤没有任何问题。在下一步中,我构建了一个小测试脚本 (test.py),它通过
加载已构建的模型from keras.models import load_model
model = load_model('model.hdf5')
加载模型时出现以下错误
Segmentation fault (core dumped)
然后我尝试按照 SO (What causes a Python segmentation fault?) 上的这个答案进一步调查这个问题:
gdb python
> run test.py
当我运行它时,我得到:
Program received SIGSEV, Segmentation fault.
0x76fd9822 in ?? () from /lib/ld-linux-armhf.so.3
下一步我在 gdb shell 中运行:
> 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 作为替代方案,但遇到了同样的问题)
非常感谢。
编辑
我做了更多的调查。如果我run Keras with 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 一起使用)。
【问题讨论】:
-
您是否尝试过仅在 TF/Theano 中训练简单模型?至少这可以缩小问题原因。
-
你可以试试 tensorflow 的调试版本吗?
bazel build -c dbg构建它。 -
你现在有成功吗?我也在考虑在 Rasperry PI 上运行 Keras(可能使用 TF)。我没有尝试过,我只是在收集一般信息。到现在还能用吗?
-
如果您不使用 Miniconda(或者至少我无法让 Miniconda 与 Keras/TF 一起使用),它会起作用。我认为只要你不想在 Pi 上开发任何东西而是运行一个应用程序(对我来说就是这种情况),不使用 Miniconda 是完全可以的。我还没有尝试使用 Theano 修复安装,也许它现在可以工作了。
-
这个问题有答案吗?
标签: python raspberry-pi keras theano