我正在尝试使用非时间相关变量的并行输入构建LSTM模型。这些变量中的一些本质上是分类的,我想创建它们通过嵌入层,然后稍后再与LSTM联接。
请在下面查看我正在尝试的代码,但出现错误“ TypeError:无法散列的类型:'list'“
以下是我到目前为止编写的代码。
model = Model(inputs=[cat_els, ts_inputs], outputs=out_class)
我的cat_els定义为(3个张量的列表):
[<tf.Tensor 'flatten_10/Reshape:0' shape=(?, ?) dtype=float32>,
<tf.Tensor 'flatten_11/Reshape:0' shape=(?, ?) dtype=float32>,
<tf.Tensor 'flatten_12/Reshape:0' shape=(?, ?) dtype=float32>]
ts_inputs定义为:
<tf.Tensor 'input_3:0' shape=(?, 6, 17) dtype=float32>
错误回溯
File "<ipython-input-48-601f97a5b348>", line 31, in <module>
model = Model(inputs=[cat_els, ts_inputs], outputs=out_class)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
return func(*args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\network.py", line 93, in __init__
self._init_graph_network(*args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\network.py", line 147, in _init_graph_network
if len(set(self.inputs)) != len(self.inputs):
TypeError: unhashable type: 'list'
任何人都可以告诉我我在这里做错了什么吗
答案 0 :(得分:0)
Keras不支持输入本身就是输入层列表,输入列表需要包含输入层,您可以通过串联输入来实现:
model = Model(inputs=cat_els + [ts_inputs], outputs=out_class)
然后该模型将具有4个输入层。