Keras LSTM形状不包含序列长度

时间:2018-12-13 17:56:22

标签: python keras neural-network lstm

我运行了以下代码

from keras import layers

input_shape = (1000, 10)
x = layers.Input(shape=input_shape)
print(x.shape)

lstm1 = layers.LSTM(input_shape=input_shape, units=50, return_sequences=True)
y = lstm1(x)
print(y.shape)

得到

(?, 1000, 10)
(?, ?, 50)

为什么y的最后一个维度之前的第一个是??为什么不是1000?具有return_sequences=True的LSTM层不应该重复相同数量的输出吗?

1 个答案:

答案 0 :(得分:1)

它确实会重复,但是Keras和Tensorflow的通信方式是我们无需担心的事情,除非您对某事进行了非常深入的研究。

您始终可以调用keras.backend.int_shape(y)来查看Keras认为的形状。
您也可以调用model.summary()来查看形状。

请注意,.shape是Tensorflow属性,而不是Keras属性。

尽管在那里看到?,但实际上是1000。