2017-01-30 2 views
1

私は私のコードでこれを行うことにより、500のバッチサイズを指定します。ケラス:指定されたバッチサイズと一致するバッチサイズが観測されないのはなぜですか?

model.fit(x_train, y_train, validation_data=(x_test, y_test), nb_epoch=100, batch_size=500, verbose=1) 

私は、コードを実行すると、最初のバッチサイズは500で、バッチサイズは、その後5000、より大きいのようなもので、なぜんこれが起こる?

バッチサイズが大きいと思われる理由は、モデルが行500から行6000(5500行)になるようですからです。

Epoch 100/100 
    500/31016 [..............................] - ETA: 0s - loss: 0.1659 - acc: 0.7900 
6000/31016 [====>.........................] - ETA: 0s - loss: 0.1679 - acc: 0.7865 
11500/31016 [==========>...................] - ETA: 0s - loss: 0.1688 - acc: 0.7850 
17000/31016 [===============>..............] - ETA: 0s - loss: 0.1692 - acc: 0.7842 
23000/31016 [=====================>........] - ETA: 0s - loss: 0.1694 - acc: 0.7839 
29000/31016 [===========================>..] - ETA: 0s - loss: 0.1693 - acc: 0.7841 
31016/31016 [==============================] - 0s - loss: 0.1693 - acc: 0.7841 - val_loss: nan - val_acc: 0.6799 
+0

あなたのネットワークは、進行状況バーのリフレッシュ期間あたり〜5000回の学習で学習しているようです。しかし、 'model.fit'の内部構造を知らなくても言いにくいです。 – sunside

+0

私の答えは間違っていますか?それを読んだことはありますか? –

答えて

1

これは本当に興味深い問題です。プログレスバーを表示するコードの一部はprogbarと呼ばれ、hereと定義されています。それはパラメータとしてデフォルトの0.01秒に設定されている最小の視覚的進行の更新間隔を受け取ります。このデフォルト値は、fitの計算中にプログレスバーを印刷する際にも使用されます。これは恐らくこの奇妙な動作の背後にある理由です。

+0

これは完全に説明しています、ありがとう! – user1367204

+0

あなたは答えを受け入れるかもしれません:) –

関連する問題