首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BiLSTM + Conv1D模式有什么问题?拼接错误

问BiLSTM + Conv1D模式有什么问题?拼接错误
EN

Stack Overflow用户
提问于 2020-04-04 16:12:02
回答 1查看 75关注 0票数 0

以下是我的模型代码:

代码语言:javascript
复制
self.model = Sequential()
if use_pretrained_embedd:
    self.model.add(Embedding(input_dim = self.vocab_size,output_dim = embedding_size,input_length = self.max_len,weights = [self.embedding_matrix],trainable = False))
else:
    self.model.add(Embedding(input_dim = self.vocab_size,output_dim = embedding_size,input_length = self.max_len))
self.model.add(SpatialDropout1D(0.35))
self.model.add(Bidirectional(LSTM(128, return_sequences=True, dropout = 0.15, recurrent_dropout = 0.15)))
self.model.add(Conv1D(filters=64, kernel_size=3, padding='valid', kernel_initializer='glorot_uniform'))
self.model.add(GlobalAveragePooling1D())
X = GlobalAveragePooling1D()
Y = GlobalMaxPooling1D()
self.model.add(concatenate([X,Y],axis=-1))
self.model.add(Dense(len(self.labels),activation = 'sigmoid'))
self.model.compile(optimizer = 'adam',loss = 'binary_crossentropy',metrics = ['accuracy'])
self.model.summary()

它显示了这个错误:

代码语言:javascript
复制
ValueError: Layer concatenate_1 was called with an input that isn't a symbolic tensor. Received type: <class 'keras.layers.pooling.GlobalAveragePooling1D'>. Full input: [<keras.layers.pooling.GlobalAveragePooling1D object at 0x7f1c89520f90>, <keras.layers.pooling.GlobalMaxPooling1D object at 0x7f1c8955b9d0>]. All inputs to the layer should be tensors.

我觉得concatenate出了点问题,你能帮帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-04 16:43:38

您在拼接层中忘记了一个括号..

代码语言:javascript
复制
    self.model.add(concatenate([X,Y])

必须是:

代码语言:javascript
复制
    self.model.add(concatenate([X,Y]))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61025371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档