以下是代码
model = Sequential()
model.add(LSTM(256, input_shape=(None, 1), return_sequences=True))
model.add(LSTM(256, input_shape=(None, 1), return_sequences=True))
model.add(Dense(1))
这是lstm(256) + lstm(256)代码
model = Sequential()
model.add(LSTM(512, input_shape=(None, 1), return_sequences=True))
model.add(Dense(1))
这是lstm(512)代码
那么,lstm(256) + lstm(256)和lstm(512)有什么区别呢?
它是不是只是平行的,最后,它的意思是一样的?
或者,这两者之间的区别是什么?
发布于 2019-07-29 08:56:01
您正在演示的两个架构并不相同。
第一个模型有两个LSTM层,它们彼此堆叠在一起。第一个LSTM层接受单个输入参数并输出256个参数,第二个LSTM层具有256个输入参数,并且它返回与其输出相同的参数数量,因此最后一层的输入具有256个参数的宽度。
第二个模型有一个LSTM层,它接受一个输入参数并输出512个参数,这些参数作为最后一层的输入(而不是第一个模型中的256个)。
堆叠LSTM层使模型更深,并潜在地允许每个级别的隐藏状态在不同的时间尺度上操作。
如果您想了解有关堆叠LSTM层的更多信息,您将发现以下指向Jason Brownlee的帖子的链接非常有用:
发布于 2019-07-29 08:55:54
不,在第一种情况下,第一层的每个单元都与第二层的适当单元相互作用,而不是平行的。在第二种情况下,它只是LSTM的一层,以通常的方式工作。我希望这张图片能帮助你看清不同之处。
https://stackoverflow.com/questions/57248847
复制相似问题