RNN层的输入将具有的形状
(num_timesteps,num_features),即每个样本都由
num_timesteps时间步组成,其中每个时间步都是长度的向量
num_features。此外,时间步长(即
num_timesteps)可以是可变的,也可以是未知的(即
None),但是特征的数量(即
num_features)应从一开始就固定并指定。因此,您需要更改输入层的形状以与RNN层保持一致。例如:
inputs = keras.Input(shape=(None, 3)) # variable number of timesteps each with length 3inputs = keras.Input(shape=(4, 3)) # 4 timesteps each with length 3inputs = keras.Input(shape=(4, None)) # this is WRONG! you can't do this. Number of features must be fixed
然后,您还需要更改输入数据的形状(即
data),以使其与您指定的输入形状一致(即其形状必须为
(num_samples, num_timesteps,num_features))。
附带说明,您可以通过
SimpleRNN直接使用RNN层来更简单地定义该层:
label = keras.layers.SimpleRNN(units=5, activation='softmax')(inputs)



