RNN从何处获取批量大小?

时间:2018-10-23 09:46:25

标签: python tensorflow machine-learning neural-network keras

我正在按以下方法训练RNN:

def create_rnn_model(stateful,length):
    model = Sequential()
    model.add(SimpleRNN(20,return_sequences=False,stateful=stateful,batch_input_shape=(1,length,1)))
    adam = optimizers.Adam(lr=0.001)
    model.add(Dense(1))
    model.compile(loss='mean_absolute_error', optimizer=adam, metrics=[root_mean_squared_error])
    print(model.summary())
    return model

model_info = model_rnn_stateful.fit(x=x_train, y=y_train, validation_data=(x_test, y_test), batch_size=1, epochs=10,verbose=1)

并根据

进行预测
predicted_rnn_stateful = model_rnn_stateful.predict(x_test)

但是当我预测它会引发错误

  

ValueError:在有状态网络中,您应仅传递带有   可以除以批次大小的样本数。发现:200   样品。批量大小:32。

我没有指定32的位置。我不知道它是从哪里来的。我的批处理大小只有1。希望得到任何帮助。

编辑  我的脚本/ IDE中没有断点。谢谢

1 个答案:

答案 0 :(得分:1)

来自Keras documentation

  
      
  • 批处理大小:整数或无。每个梯度更新的样本数。如果未指定,batch_size将默认为32。
  •   

1可能是batch_size的值不正确,然后采用默认值32。请尝试使用2或20作为batch_size