Проблема при создании терассов для модели Keras Model Input должна исходить из `keras.layers.Input`? - PullRequest
0 голосов
/ 11 февраля 2019

по какой-то причине я пытаюсь создать модель Keras, но она не работает.Я получаю эту ошибку ValueError: Входные тензоры для модели должны исходить из keras.layers.Input.Получено: (отсутствует метаданные предыдущего слоя).[Ошибка при создании последней строки модели]

Я попытался разделить входы, но это не сработало, пожалуйста, помогите?Вот фрагмент моего кода

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


pos_embedding_layer = Embedding(output_dim = 5,
                         input_dim = 56,
                         input_length = 20,
                         name='pos_embedding_layer')





 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),
            ]




## --------> 9] Concat all inputs and run on deep network
        ## Concat all inputs and run on deep network

outputI = predict_layer(dropout(latent_layers(keras.layers.concatenate([embed(inp)
                                                            for inp, embed in inputs_and_embeddings],
                                                       axis = -1))))


## --------> 10]Build model 
model = Model( map(itemgetter(0), inputs_and_embeddings),[outputI])

1 Ответ

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

Модель принимает только Input с.Вы не можете передавать вложения на входы модели.

  inputs = [Input(sent_maxlen,), dtype='int32', name='word_inputs'),
            Input(sent_maxlen,), dtype='int32', name='predicate_inputs')
            Input(sent_maxlen,), dtype='int32', name='postags_inputs')]

  embeddings = [word_embedding_layer(inputs[0]), 
                word_embedding_layer(inputs[1]),
                pos_embedding_layer(inputs[2])]

Звучит так:

outputI = predict_layer(dropout(latent_layers(keras.layers.concatenate(embeddings))))


## --------> 10]Build model 
model = Model(inputs, outputI)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...