tensorflow模型訓練Tips:訓練測試loss對比和過擬合的關系


今天訓練keras時,發現在某些參數下,訓練過程中的loss和acc在開始就很差(loss很大,acc很小,大概0.1左右)然后就穩定不變了,經過思考發現可能是步長設置的太大了,於是改變步長,小於默認值0.001,定為0.0005。效果顯著提升。代碼:

model = tf.keras.models.Sequential([
#     tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(128,activation='relu',input_shape=(784,)), tf.keras.layers.Dense(64,activation='relu'), tf.keras.layers.Dense(10,activation=tf.nn.softmax), ]) model.compile(optimizer=tf.train.AdamOptimizer(learning_rate=0.0005),loss='sparse_categorical_crossentropy',metrics=['accuracy']) train_images_array = train_images.as_matrix() train_labels_array = train_labels.as_matrix() model.fit(train_images_array,train_labels_array,batch_size=64,epochs=100)

 

  • train loss 不斷下降,test loss不斷下降,說明網絡仍在學習;
  • train loss 不斷下降,test loss趨於不變,說明網絡過擬合;
  • train loss 趨於不變,test loss不斷下降,說明數據集100%有問題;
  • train loss 趨於不變,test loss趨於不變,說明學習遇到瓶頸,需要減小學習率或批量數目;
  • train loss 不斷上升,test loss不斷上升,說明網絡結構設計不當,訓練超參數設置不當,數據集經過清洗等問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM