我运行了以下代码
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层不应该重复相同数量的输出吗?
答案 0 :(得分:1)
它确实会重复,但是Keras和Tensorflow的通信方式是我们无需担心的事情,除非您对某事进行了非常深入的研究。
您始终可以调用keras.backend.int_shape(y)
来查看Keras认为的形状。
您也可以调用model.summary()
来查看形状。
请注意,.shape
是Tensorflow属性,而不是Keras属性。
尽管在那里看到?
,但实际上是1000。