Python 覆盆子皮上的西亚诺干酪

Python 覆盆子皮上的西亚诺干酪,python,raspberry-pi,keras,theano,Python,Raspberry Pi,Keras,Theano,我试图让西亚诺和凯拉斯在覆盆子皮3(B)上跑步,但没有成功。我尝试将Ubuntu MATE和Raspbian作为操作系统,但没有成功。为了安装Theano和Keras,我采取了以下步骤: 安装miniconda(armv7分发版) 通过Conda(如有可能)、pip和apt get安装所有Theano依赖项(如图所示) 安装Theano 安装Keras 上述步骤没有任何问题。在下一步中,我构建了一个小测试脚本(test.py),它通过 from keras.models import load_

我试图让西亚诺和凯拉斯在覆盆子皮3(B)上跑步,但没有成功。我尝试将Ubuntu MATE和Raspbian作为操作系统,但没有成功。为了安装Theano和Keras,我采取了以下步骤:

  • 安装miniconda(armv7分发版)
  • 通过Conda(如有可能)、
    pip
    apt get安装所有Theano依赖项(如图所示)
  • 安装Theano
  • 安装Keras
  • 上述步骤没有任何问题。在下一步中,我构建了一个小测试脚本(test.py),它通过

    from keras.models import load_model
    model = load_model('model.hdf5')
    
    当加载模型时,我得到以下错误

    Segmentation fault (core dumped)
    
    然后,我尝试进一步调查这个问题,在SO()上遵循这个答案:

    当我运行此命令时,我得到:

    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作为替代方案,但得到了相同的问题)

    非常感谢


    编辑

    我做了更多的调查。如果我知道的话,这个问题似乎有点变化。我再次运行了gdb,但是错误现在发生在numpy中,尤其是在libopenblas.so.0中

    Program received signal SIGSEV, Segmentation fault.
    0x75ead7cc in inner_thread()
    from /home/<path>/numpy/core/../../../../libopenblas.so.0
    
    程序接收信号SIGSEV,分段故障。
    内螺纹中的0x75ead7cc()
    from/home//numpy/core/../../../../../../../libopenblas.so.0
    
    这有用吗


    编辑2


    我没有使用Miniconda就安装了所有东西,Keras现在可以使用TensorFlow(但还不能使用Theano)

    目前的解决方案是在安装时避免miniconda


    为了进一步诊断,ld linux armhf.so.3和libopenblas.so.0提供
    -g
    调试符号将非常有用。

    如果您提供了python版本,它将非常有用。如果您使用的是python3.7,请尝试恢复到python3.6,因为keras尚未跟上开发的步伐,并且在python3.7上安装tensorflow with keras存在很多问题。我在这里强调版本,因为我最近在使用conda安装时遇到了同样的问题,我意识到问题出在python版本上

    但我在让tensorflow处理PI时也遇到了问题。但我使用了ubuntu的pip直接安装,而不是miniconda,而且效果很好。Google Tensorflow团队自己提到的最好的方法是按照这个链接中的说明从源代码实际构建Tensorflow。


    因此,如果可以的话,尝试将python版本降级到3.6或更低版本,并尝试使用pip进行安装,或者使用python 3.6或3.7从源代码构建。

    我认为在Raspberry Pi上运行Keras和Tensorflow不是一个好主意,因为在我的大学机器上运行它们比Raspberry Pi强大得多,会给你带来很多麻烦。
    这些错误可能是由于内存不足造成的。我猜这是因为当我试图运行一些复杂的模型时,我在我的机器中遇到了这个问题。

    您是否尝试过单独在TF/Theano中训练简单的模型?至少这可以缩小问题的原因。您可以尝试使用tensorflow的调试版本吗
    bazel build-cdbg
    来构建它。到目前为止,您有成功的经验吗?我也在考虑用Rasperry PI来运行Keras(可能是TF)。我没有试过,我只是收集一般信息。到现在为止,它会工作吗?如果你不使用Miniconda,它会工作的(或者至少我没能设法让Miniconda与Keras/TF一起工作)。我认为只要你不想在Pi上开发任何东西,而是运行一个应用程序(对我来说就是这样),不使用Miniconda是完全可以的。我还没有尝试用Theano修复安装,也许它现在已经可以工作了。这个问题有答案吗?这并不能回答这个问题。一旦你有足够的钱,你将能够;相反
    Program received signal SIGSEV, Segmentation fault.
    0x75ead7cc in inner_thread()
    from /home/<path>/numpy/core/../../../../libopenblas.so.0