从 Keras.layers.core 在创建模型时使用 theano 作为后端导入 Dense

Posted

技术标签:

【中文标题】从 Keras.layers.core 在创建模型时使用 theano 作为后端导入 Dense【英文标题】:from Keras.layers.core import Dense using theano as backend when creating a model 【发布时间】:2020-05-08 10:01:44 【问题描述】:

我已经从 keras.layers.core 导入了 Dense ,当我创建一个新模型时

model = Sequential()
model.add(Dense(12, input_shape=(len(train_x[0]),), activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(6, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(len(train_y[0]), activation='softmax'))

那么有错误

AttributeError:('The following error happened while compiling the node', 
DotModulo(A, s, m, A2, s2, m2), '\n', 
"module 'numpy.core.multiarray' has no attribute '_get_ndarray_c_version'")

我不明白为什么?

【问题讨论】:

【参考方案1】:

您的theano 版本对于您拥有的numpy 版本来说太旧了,所以您会收到这些错误,但解决方法很简单,您应该升级到theano >= 1.0.4(至少版本1.0.4)应该可以解决问题,如here所述。

另外请注意,Theano 并没有真正被开发出来,所以这样的问题将变得更加普遍,您应该考虑迁移到另一个后端。

【讨论】:

谢谢,我在新环境下安装了keras,不用theano,避免矛盾

以上是关于从 Keras.layers.core 在创建模型时使用 theano 作为后端导入 Dense的主要内容,如果未能解决你的问题,请参考以下文章

Keras网络层之常用层Core

在 Keras Lambda 层中调整输入图像的大小

深度学习Keras框架笔记之Activation类使用

keras Lambda 层

深度学习Keras框架笔记之TimeDistributedDense类

在 Laravel 中从数据库创建模型