Python theano未定义符号:_ZdlPvm错误

Python theano undefined symbol: _ZdlPvm error

我正在尝试执行这段代码:

import matplotlib.pyplot as plt
import numpy as np
from keras.models import Sequential
from keras.layers import Dense

x = np.linspace(-3, 3, 1000).reshape(-1, 1)

def f(x):    
    return 2 * x + 5

f = np.vectorize(f)
y = f(x)    

def baseline_model():
    model = Sequential()
    model.add(Dense(1, input_dim=1, activation='linear'))
    model.compile(loss='mean_squared_error', optimizer='sgd')
    return model

model = baseline_model()
model.fit(x, y, nb_epoch=100, verbose = 0)

但是在最后一行它抛出了这个错误:ImportError: /home/puck/.theano/compiledir_Linux-4.4--MANJARO-x86_64-with-glibc2.2.5--3.6.0-64/tmpgk36rmkt/mf0c860ada3decf909d2c7248bdfcff39.so: undefined symbol: _ZdlPvm

Here 是完整的追溯。 这是我第一次接触 keras 和 theano,所以我不知道该怎么做。

关于软件版本的一些信息:

Linux 4.4.52-1-MANJARO
GCC 6.3.1
Anaconda 4.3.0
Python 3.6.0 
IPython 5.1.0
Theano 0.8.2
Keras 1.2.2

因为你已经在你的机器上安装了预构建的 theano 包,所以它期望机器中有某些 gcc 和依赖库来进行调用。 github link 中提供的解决方案对您仍然有效,但是因为您没有构建代码,所以该解决方案对您不起作用,因为 theano 仍在访问预安装的库。

以下是您可以尝试的方法:

  • 您必须拥有与 theano 不兼容的 gcc 和 g++ 更高版本,因此通过使用 OS 命令卸载它们来删除 gcc 和 g++
  • 删除 theano 包
  • 将 gcc 和 g++ 安装到 4.9 版本,因为这是大多数命令版本
  • 重新安装 theano > $ pip3 install theano --user

我相信这可以帮助你让你的 theano 正常工作。

为了解决问题,我安装了 gcc 4.9.3 并在 ~/.theanorc 中添加了这些行:

[global]
cxx = /usr/bin/g++-4.9.3