当前位置: 首页 > 知识库问答 >
问题:

Keras串联

盖博简
2023-03-14

我正在使用Keras,我有这个错误。我该如何解决它?

这是我的代码

cbow_words = Sequential()
cbow_words.add(Embedding(input_dim=V1, output_dim=dim, input_length=window_size*2 ,embeddings_constraint=non_neg()))#modifié
cbow_words.add(Lambda(lambda x: K.mean(x, axis=1), output_shape=(dim,)))
cbow_words.add(Dense(V1, activation='softmax'))

cbow_texts = Sequential()
cbow_texts.add(Embedding(input_dim=V2, output_dim=dim, input_length=1,embeddings_constraint=non_neg()))
cbow_texts.add(Lambda(lambda x: K.mean(x, axis=1), output_shape=(dim,)))
cbow_texts.add(Dense(V2, activation='softmax'))

cbow=Concatenate([cbow_words,cbow_texts])

cbow.compile(loss=loss, optimizer=optimizers.Adadelta(lr=lr, rho=0.95, epsilon=None, decay=0.0))

我得到了这个问题:

-------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-40-b94a3567fc00> in <module>()
     11 cbow=Concatenate([cbow_words,cbow_texts])
     12 
---> 13 cbow.compile(loss=loss, optimizer=optimizers.Adadelta(lr=lr, rho=0.95, epsilon=None, decay=0.0))

AttributeError: 'Concatenate' object has no attribute 'compile'

共有1个答案

邢法
2023-03-14

您将顺序模型与功能组件混合在一起<“代码>串联”(code>Concatenate)将张量作为输入,而不是顺序模型。

由于您有两个输入,我建议您使用函数式API,在您的情况下,它会产生一个大致如下所示的结构:

from keras.models import Model
from keras.layers import Input, Dense, concatenate

words_in = Input((10,))
words = Dense(10, activation='softmax')(words_in)

texts_in = Input((10,))
texts = Dense(10, activation='softmax')(texts_in)

concat = concatenate([words, texts])

cbow = Model(inputs=[words_in, texts_in], output=concat)

cbow.compile(loss="categorical_crossentropy", optimizer="adagrad")
 类似资料:
  • Keras is a deep learning library for Theano and Tensorflow. Allows for easy and fast prototyping (through user friendliness, modularity, and extensibility). Supports both convolutional networks and re

  • Keras是一个极简的、高度模块化的神经网络库,采用Python(Python 2.7-3.5.)开发,能够运行在TensorFlow和Theano任一平台,好项目旨在完成深度学习的快速开发。 特性: 可以快速简单的设计出原型(通过总模块化、极简性、和可扩展性) 同时支持卷积网络和循环网络,以及两者的组合 支持任意的连接方案(包括多输入和多输出) 支持GPU和CPU

  • Keras是紧凑,易于学习的高级Python库,运行在TensorFlow框架之上。它的重点是理解深度学习技术,例如为神经网络创建维护形状和数学细节概念的层。freamework的创建可以是以下两种类型 - 顺序API 功能API 在Keras中创建深度学习模型有以下 8 个步骤 - 加载数据 预处理加载的数据 模型的定义 编译模型 指定模型 评估模型 进行必要的预测 保存模型 下面将使用Jupy

  • 什么是“后端” Keras是一个模型级的库,提供了快速构建深度学习网络的模块。Keras并不处理如张量乘法、卷积等底层操作。这些操作依赖于某种特定的、优化良好的张量操作库。Keras依赖于处理张量的库就称为“后端引擎”。Keras提供了两种后端引擎Theano/Tensorflow,并将其函数统一封装,使得用户可以以同一个接口调用不同后端引擎的函数 Theano是一个开源的符号主义张量操作框架,由

  • 什么是“后端” Keras是一个模型级的库,提供了快速构建深度学习网络的模块。Keras并不处理如张量乘法、卷积等底层操作。这些操作依赖于某种特定的、优化良好的张量操作库。Keras依赖于处理张量的库就称为“后端引擎”。Keras提供了三种后端引擎Theano/Tensorflow/CNTK,并将其函数统一封装,使得用户可以以同一个接口调用不同后端引擎的函数 Theano是一个开源的符号主义张量操

  • 在模型中添加LSTM层之前,我不确定是否需要添加密集输入层。例如,使用以下模型: LSTM层是否为输入层,密集层是否为输出层(即无隐藏层)?或者Keras是否创建了一个输入层,这意味着LSTM层将是一个隐藏层?