Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 塔茨,对吗?我这样说是因为在图中箭头似乎将dense1与lstm2@MarcoCerliani箭头显示了网络的原始意图,即利用lstm1输出作为lstm2的输入(以及输入2)。然而,对一个类似问题的回答(也与问题相关)表明,可以(或应该)通过设置LSTM的_Python_Tensorflow_Keras_Deep Learning_Lstm - Fatal编程技术网

Python 塔茨,对吗?我这样说是因为在图中箭头似乎将dense1与lstm2@MarcoCerliani箭头显示了网络的原始意图,即利用lstm1输出作为lstm2的输入(以及输入2)。然而,对一个类似问题的回答(也与问题相关)表明,可以(或应该)通过设置LSTM的

Python 塔茨,对吗?我这样说是因为在图中箭头似乎将dense1与lstm2@MarcoCerliani箭头显示了网络的原始意图,即利用lstm1输出作为lstm2的输入(以及输入2)。然而,对一个类似问题的回答(也与问题相关)表明,可以(或应该)通过设置LSTM的,python,tensorflow,keras,deep-learning,lstm,Python,Tensorflow,Keras,Deep Learning,Lstm,塔茨,对吗?我这样说是因为在图中箭头似乎将dense1与lstm2@MarcoCerliani箭头显示了网络的原始意图,即利用lstm1输出作为lstm2的输入(以及输入2)。然而,对一个类似问题的回答(也与问题相关)表明,可以(或应该)通过设置LSTM的初始状态来完成相同的操作。所以我的问题是,设置初始状态是否正确?它是否起作用,也就是说,我希望LSTM2受LSTM1的输出的影响。好的,如果您不想将LSTM1的输出与输入2连接起来(如您引用的解决方案中所述),那么共享状态就是您所需要的。否则,


塔茨,对吗?我这样说是因为在图中箭头似乎将dense1与lstm2@MarcoCerliani箭头显示了网络的原始意图,即利用lstm1输出作为lstm2的输入(以及输入2)。然而,对一个类似问题的回答(也与问题相关)表明,可以(或应该)通过设置LSTM的初始状态来完成相同的操作。所以我的问题是,设置初始状态是否正确?它是否起作用,也就是说,我希望LSTM2受LSTM1的输出的影响。好的,如果您不想将LSTM1的输出与输入2连接起来(如您引用的解决方案中所述),那么共享状态就是您所需要的。否则,如果只有一个输入(如编辑前所报告的),则可以堆叠两个lstm单元格,并在不同级别生成两个输出(我可以报告第二个场景的解决方案)与我尝试实施并描述过的“初始状态共享”方法相比,您能详细说明这种方法的优点和/或可能的缺点吗?我认为没有具体的优点。这两种解决方案都在input2和input1之间创建了依赖关系。我编辑了答案,试图让它更清楚一点。你不应该在代码中使用
return\u sequences
而不是
return\u state
?既然我们想把LSTM1的输出作为LSTM2的输入,那么最好使用一个致密层,但首先将其应用于LSTM1的最终输出,然后将其应用于LSTM1的所有输出,这些输出可以与输入2连接?是的,它应该是返回序列,对不起,我的错误。我认为最好直接使用LSTM1的输出(没有密集层),因为当你应用密集层时,你正在移除输入的“序列”性质,我认为这对LSTM2来说可能很有趣。但是,这取决于您的数据,因此,我建议您尝试这些不同的方法,并检查哪种方法更适合您的问题。与我尝试实施并描述的“初始状态共享”方法相比,您能否详细说明这种方法的优点和/或可能的缺点?我认为没有具体的优点。这两种解决方案都在input2和input1之间创建了依赖关系。我编辑了答案,试图让它更清楚一点。你不应该在代码中使用
return\u sequences
而不是
return\u state
?既然我们想把LSTM1的输出作为LSTM2的输入,那么最好使用一个致密层,但首先将其应用于LSTM1的最终输出,然后将其应用于LSTM1的所有输出,这些输出可以与输入2连接?是的,它应该是返回序列,对不起,我的错误。我认为最好直接使用LSTM1的输出(没有密集层),因为当你应用密集层时,你正在移除输入的“序列”性质,我认为这对LSTM2来说可能很有趣。但是,这取决于您的数据,因此我建议您尝试这些不同的方法,并检查哪种方法更适合您的问题。
# define model
inputs1 = Input(shape=(seq_len, in_features1))
inputs2 = Input(shape=(seq_len, in_features2))

lstm1 = LSTM(units, return_sequences=True)
lstm1_out = lstm1(inputs1)

lstm2_input = tf.keras.layers.concatenate([inputs2, lstm1_out])
lstm2 = LSTM(units)
lstm2_out = lstm2(lstm2_input)

dense1 = Dense(1)
dense1_out = dense1(lstm1_out)

dense2 = Dense(1)
dense2_out = dense2(lstm2_out)