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