“ValueError:name“input_2”在模型中使用了2次。所有层名称都应该是唯一的。”使用seq2seq模型的keras中的错误

2024-05-08 19:01:59 发布

您现在位置:Python中文网/ 问答频道 /正文

在Keras库和Seq2Seq模型的帮助下,我正在用python编写一个聊天机器人。我首先训练模型,然后将其保存到一个.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.

提前谢谢


Tags: 文件inpy模型inputmodellinetraining