2017-09-14 14 views
2

私はKerasを使い始めました。私が働いているサンプルは、モデルを持っており、次のスニペットは、Keras model.fitの出力をどのように解釈するのですか?

from sklearn.preprocessing import LabelBinarizer 
label_binarizer = LabelBinarizer() 
y_one_hot = label_binarizer.fit_transform(y_train) 

model.compile('adam', 'categorical_crossentropy', ['accuracy']) 
history = model.fit(X_normalized, y_one_hot, nb_epoch=3, validation_split=0.2) 

は、私は次の応答を得るモデルを実行するために使用されます。

Using TensorFlow backend. Train on 80 samples, validate on 20 samples Epoch 1/3 

32/80 [===========>..................] - ETA: 0s - loss: 1.5831 - acc: 
0.4062 80/80 [==============================] - 0s - loss: 1.3927 - acc: 
0.4500 - val_loss: 0.7802 - val_acc: 0.8500 Epoch 2/3 

32/80 [===========>..................] - ETA: 0s - loss: 0.9300 - acc: 
0.7500 80/80 [==============================] - 0s - loss: 0.8490 - acc: 
0.8000 - val_loss: 0.5772 - val_acc: 0.8500 Epoch 3/3 

32/80 [===========>..................] - ETA: 0s - loss: 0.6397 - acc: 
0.8750 64/80 [=======================>......] - ETA: 0s - loss: 0.6867 - acc: 
0.7969 80/80 [==============================] - 0s - loss: 0.6638 - acc: 
0.8000 - val_loss: 0.4294 - val_acc: 0.8500 

documentationが言うにそのフィット戻り

履歴インスタンス。その履歴属性には、トレーニング中に収集されたすべての情報 が含まれています。

誰でも履歴インスタンスの解釈方法を知っていますか?

たとえば、32/80は何を意味しますか?私は80がサンプルの数であると仮定しますが、32は何ですか? ETA:0秒?

答えて

1

32は、お客様のバッチサイズです。 32をデフォルト値にしておきたい場合は、フィット関数で変更することができます。

最初のバッチが訓練された後、Kerasは1エポックの訓練期間(ETA:到着予定時刻)を見積もります。これは、すべてのサンプルで1回の訓練と同等です。

トレーニングサンプルと検証サンプルの損失(予測と真のラベルの違い)とメトリック(あなたの場合は精度)が得られます。

+0

あなたは何をしますか:0.4062 80/80も意味しますか? acc =精度? 80/80 80のうち正しいものは?それはacc = 1.0を意味しないでしょうか?出力の意味への参照リンクはどこにありますか? – SeanJ

+0

「80/80」は、「合計80サンプルから80サンプル」を訓練したことを意味します。したがって、最初に表示されるエントリは「32/80」です。「32サンプルのうち32サンプル」となります。精度は、この時点でのネットワークが予測する値と、ラベルの形式で指定した実際の値から計算されます。 – petezurich

+0

出力の意味に関するあなたの質問はより広い質問のようなものです。私は、[this one](http://course.fast.ai/)という基本を教える多くのコースの1つを調べることをお勧めします。ジェレミー・ハワードからは非常にアクセス可能です。 – petezurich

関連する問題