首页 > 解决方案 > 出现错误:AttributeError: 'Node' object has no attribute 'output_masks' at flatten layer 用于展平嵌入输出

问题描述

在 keras 中运行 LSTM 和嵌入层

当我们运行 flatten keras 代码时,问题正在发生。

import tensorflow as tf
from tensorflow.keras.layers import Dense,concatenate,Activation,Dropout,Input,LSTM,Embedding
from tensorflow.keras.models import Model
from tensorflow.keras.models import Sequential

tf.keras.backend.clear_session()

input_layer1 = Input(shape=(48432,), dtype='int32', name='input_layer1')
embed_text = Embedding(48432, 100, weights=[embedding_matrix], input_length=1300, trainable=False) 
(input_layer1)
#embed = tf.reshape(embed_text(5,48432,100))
text_LSTM = LSTM(32,input_shape=(48432,100),return_sequences=True)(embed_text)
flatten_layer1 = Flatten()(text_LSTM)

#school state Input layer
input_layer2 = Input(shape=(50000,), dtype='int32', name='input_layer2')
embed_school_state = Embedding(30000, 100, input_length=1, trainable=True)(input_layer2)
flatten_layer1 = Flatten()(embed_school_state)

下面是错误信息

*AttributeError Traceback(最近一次调用)* in * 20 input_layer2 = Input(shape=(50000,), dtype='int32', name='input_layer2') * 21 embed_school_state = Embedding(30000, 100, input_length=1, *trainable=True)(input_layer2) *---> 22 flatten_layer1 = Flatten()(embed_school_state)

*\Anaconda3\lib\site-packages\keras\engine\base_layer.py in call (self, *inputs, **kwargs) * 474 # 处理掩码传播。*--> 475 previous_mask = _collect_previous_mask(inputs) * 476 user_kwargs = kwargs.copy() * 477 如果不是 is_all_none(previous_mask):

*~\Anaconda3\lib\site-packages\keras\engine\base_layer.py in *_collect_previous_mask(input_tensors) * 1439 inbound_layer, node_index, tensor_index = x._keras_history * 1440 node = inbound_layer._inbound_nodes[node_index] *-> 1441 mask = node.output_masks[tensor_index] * 1442 mask.append(mask) **AttributeError: 'Node' object has no attribute 'output_masks' **

标签: pythonkerasdeep-learning

解决方案


推荐阅读