ValueError: имя input_2 используется в модели 2 раза. Все имена слоев должны быть уникальными. Ошибка в keras с моделью seq2seq

Пишу чат-бот на питоне с помощью библиотеки Keras и модели Seq2Seq. Сначала я обучаю модель, а затем сохраняю ее в файл .h5 и загружаю из этого файла, чтобы использовать обученную модель. Однако, когда я пытаюсь загрузить свою модель из файла .h5, я получаю сообщение об ошибке: ValueError: Имя input_2 используется в модели 2 раза. Все имена слоев должны быть уникальными. для справки код, который я использую для загрузки модели (с training_model.h5 в качестве файла сохранения)

latent_dim = 256
decoder_inputs = training_model.input[1] 
decoder_state_input_hidden = Input(shape=(latent_dim,))
decoder_state_input_cell = Input(shape=(latent_dim,))
decoder_states_inputs = [decoder_state_input_hidden, decoder_state_input_cell]
decoder_lstm = training_model.layers[3]
decoder_outputs, state_hidden, state_cell = decoder_lstm(decoder_inputs, initial_state=decoder_states_inputs)
decoder_states = [state_hidden, state_cell]
decoder_dense = training_model.layers[4]
decoder_outputs = decoder_dense(decoder_outputs)
decoder_model = Model([decoder_inputs] + decoder_states_inputs, [decoder_outputs] + decoder_states)

мне не кажется, что имена слоев повторяются. Может кто-нибудь, пожалуйста, помогите мне понять, в чем проблема.

трассировки стека:

Traceback (most recent call last):
  File "chatbot.py", line 169, in <module>
    decoder_model = Model([decoder_inputs] + decoder_states_inputs, [decoder_outputs] + decoder_states)
  File "C:\_MyPrograms\anaconda\envs\Alicia\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "C:\_MyPrograms\anaconda\envs\Alicia\lib\site-packages\keras\engine\network.py", line 94, in __init__
    self._init_graph_network(*args, **kwargs)
  File "C:\_MyPrograms\anaconda\envs\Alicia\lib\site-packages\keras\engine\network.py", line 241, in _init_graph_network
    self.inputs, self.outputs)
  File "C:\_MyPrograms\anaconda\envs\Alicia\lib\site-packages\keras\engine\network.py", line 1523, in _map_graph_network
    ' times in the model. '
ValueError: The name "input_2" is used 2 times in the model. All layer names should be unique.

Заранее спасибо.


person Akshat Kumar    schedule 22.06.2020    source источник
comment
Обратитесь к этому: github.com/keras-team/keras/issues/9064   -  person Shivam Bharadwaj    schedule 22.06.2020


Ответы (1)


Попробуй это :

decoder_model = Model(inputs=[decoder_inputs].append(decoder_states_inputs), outputs=[decoder_outputs].append(decoder_states))
person Shivam Bharadwaj    schedule 22.06.2020
comment
Спасибо за ответ. Когда я использую это, я получаю другую ошибку ``` ValueError: входные тензоры в модель должны исходить от keras.layers.Input. Получено: нет (отсутствуют метаданные предыдущего слоя).``` - person Akshat Kumar; 22.06.2020
comment
Здесь то же самое, только ошибка после использования версии добавления отличается: AttributeError: объект «NoneType» не имеет атрибута «op» - person user2194898; 12.08.2020