我的x_train形状是 (798,3),y_train输入形状是 (798, 1)。我正在创建这样的 RNN
def create_rnn_model():
model = Sequential()
model.add(SimpleRNN(20,return_sequences=False,stateful=stateful,activation='relu',batch_input_shape=(1,3,1)))
model.add(Activation('relu'))
adam = optimizers.Adam(lr=0.001)
model.compile(loss='mean_squared_error', optimizer=adam, metrics=[root_mean_squared_error])
return model
但这会返回错误
ValueError:检查输入时出错:预期 simple_rnn_1_input 有 3 个维度,但得到了形状为 (798, 3) 的数组
我的批量大小 =1,我的时间步长是 3 和dat_dim=1。那我在哪里做错了?任何帮助表示赞赏。
编辑
我将 x_train 更改为 shape (798,3,1) 并将 y_train shape 更改为 (798,) 并运行模型,但它引发了错误
ValueError: Error when checking target: expected activation_1 to have shape (20,) but got array with shape (1,)
但我可以用 1 个单元运行模型。如何指定模型以 20 个单位而不是一个单位运行。