Слияние в Keras, ошибка типа: объект модуля не вызывается? - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь объединить все входные данные, но по какой-то причине я всегда получаю эту ошибку: Ошибка типа: объект модуля не вызывается, не могли бы вы помочь мне исправить это?Я попытался заменить слияние на Keras.layers.concatenate, но это не сработало.

def stack_latent_layers(n):
        #Stack n bidi LSTMs
        return lambda x: stack(x, [lambda : Bidirectional(LSTM(hidden_units,
                                                                  return_sequences = True))] * n )

def predict_classes():
        #Predict to the number of classes
        #Named arguments are passed to the keras function
        return lambda x: stack(x,
                                    [lambda : TimeDistributed(Dense(output_dim = num_of_classes(),
                                                                    activation = "softmax"))] +
                                    [lambda : TimeDistributed(Dense(hidden_units,
                                                                    activation='relu'))] * 3)

word_embedding_layer = emb.get_keras_embedding(
                                                    trainable = True,
                                                    input_length = sent_maxlen,   name='word_embedding_layer') 


pos_embedding_layer = Embedding(output_dim = pos_tag_embedding_size,
                         input_dim = len(SPACY_POS_TAGS),
                         input_length = sent_maxlen,
                         name='pos_embedding_layer')

latent_layers = stack_latent_layers(num_of_latent_layers)

dropout = Dropout(0.1) 

predict_layer = predict_classes()


## --------> 8] Prepare input features, and indicate how to embed them
inputs_and_embeddings = [(Input(shape = (sent_maxlen,),
                                        dtype="int32",
                                        name = "word_inputs"),
                                  word_embedding_layer),
                                 (Input(shape = (sent_maxlen,),
                                        dtype="int32",
                                        name = "predicate_inputs"),
                                  word_embedding_layer),
                                 (Input(shape = (sent_maxlen,),
                                        dtype="int32",
                                        name = "postags_inputs"),
                                  pos_embedding_layer),
        ]
print('inputs_and_embeddings',inputs_and_embeddings)

## --------> 9] Concat all inputs and run on deep network
output = predict_layer(dropout(latent_layers(merge([embed(inp)
                                                    for inp, embed in inputs_and_embeddings],
                                                           mode = "concat",
                                                           concat_axis = -1
                                                                     ))))

1 Ответ

0 голосов
/ 08 февраля 2019

заменено слияние с keras.layers.concatenate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...