低下になり、私は私のトレーニングセットの精度(98%)で良い結果を持っていますが、設定の精度をテストすること(82%程度)低いまま。私は過大な問題に直面しています。 私はドロップアウト機能(ニューロンの50%を維持する)を実装して解決しようとしましたが、この解決策はトレーニングの精度を80%に低下させることが判明しました!私はCNNにもっと多くのニューロンを持たなければならないということですか? この問題を防ぐにはどうすればよいですか?私はここにTensorflowライブラリを使用していますトレーニング精度が画像分類のための畳み込みニューラルネットワークを実装
は、トレーニングループのコードの一部である:あなたの試験精度を型学習と同じマークの周りにもある場合
for epoch in range(22000):
permutation=np.random.permutation(19600)
permutation=permutation[0:200]
batch=[train_set[permutation],train_label[permutation]]
summary,model,cost=sess.run([merged,train_step,cross_entropy],feed_dict={X:batch[0],Yreal:batch[1],drop_value:0.5}) #training with 50% of the neurons
train_writer.add_summary(summary,epoch)
print(cost)
if epoch%500==0:
print(epoch)
summary=sess.run(merged,feed_dict={X:test_set[0:300],Yreal:test_label[0:300],drop_value:1}) #evaluating testing set accuracy using 100% of the neurons
test_writer.add_summary(summary,epoch)
あなたのトレーニングの精度が減少するために* *はずのドロップアウト種類ではないですか?結局のところ、ドロップアウトとは、小さくて強力でないネットワークを使ってトレーニングをしているということです。何が問題なのですか? –
実際にあなたが正しいです、私はこのように考えていませんでした。しかし、テストの精度を上げたい場合は、トレーニングの精度を高く保つ必要があります。良いトレーニングの精度と素敵な一般化のバランスをとる方法はありますか?私の最初のアイデアは、強力なネットワークを鍛えることです。私はここで試してフィードバックします。 –