2017-08-29 10 views
0

私は最高精度でモデルを保存したい、訓練する各ステップの後で検証の各ステップでバッチデータを取得する必要があり、訓練データセットは期限のために再利用されるが、train_batch_sizeの場合はvalidation_batch_sizeに等しい場合、検証データセットも再利用されますか?検証データセットがトレーニングデータセットよりもはるかに少ないためです。私はどうすればいいのですか?検証セットを問題なく再利用することを意味しますか?あるいは私は別々のサイズを設定しました。validation_batch_sizeはCNNトレーニングでtrain_batch_sizeと等しいですか?

MAX_EPOCH = 10 
for epoch in range(MAX_EPOCH): 
    # training 
    train_step = int(80000/TRAIN_BATCH_SIZE) 
    train_loss, train_acc = 0, 0 
    for step in range(epoch * train_step, (epoch + 1) * train_step): 
     x_train, y_train = sess.run([x_train_batch, y_train_batch]) 
     train_summary, _, err, ac = sess.run([merged, train_op, loss, acc], 
              feed_dict={x: x_train, y_: y_train, 
                 mode: learn.ModeKeys.TRAIN, 
                 global_step: step}) 
     train_loss += err 
     train_acc += ac 
     if (step + 1) % 100 == 0: 
      train_writer.add_summary(train_summary, step) 
    print("Epoch %d,train loss= %.2f,train accuracy=%.2f%%" % (
     epoch, (train_loss/train_step), (train_acc/train_step * 100.0))) 

    # validation 
    val_step = int(20000/VAL_BATCH_SIZE) 
    val_loss, val_acc = 0, 0 
    for step in range(epoch * val_step, (epoch + 1) * val_step): 
     x_val, y_val = sess.run([x_val_batch, y_val_batch]) 
     val_summary, err, ac = sess.run([merged, loss, acc], 
             feed_dict={x: x_val, y_: y_val, mode: learn.ModeKeys.EVAL, 
                global_step: step}) 
     val_loss += err 
     val_acc += ac 
     if (step + 1) % 100 == 0: 
      valid_writer.add_summary(val_summary, step) 
    print(
     "Epoch %d,validation loss= %.2f,validation accuracy=%.2f%%" % (
      epoch, (val_loss/val_step), (val_acc/val_step * 100.0))) 

答えて

0

評価中に異なるバッチサイズを使用することは可能です。

つまり、モデルを評価するたびに同じ検証セットを使用する必要があります。それ以外の場合は、評価した例が本来の評価よりも本質的に容易/難しいため、結果は増減する可能性があります。

+0

私はちょうどいくつかのコードを追加するあなたの意味に応じて、私の質問を変更し、上記のコードは正しいですか?各エポックには、検証のために20000個の検証セットサンプルの反復処理が完了し、最終的にモデルの最も正確なエポックを保存しますか?そして、別の質問で私はすべてのコードを見せてくれたかもしれません(https://stackoverflow.com/questions/45953858/how-to-adjust-parameters-when-the-cnn-model-is-over -フィッティング)。 – Gary

関連する問題