事情的起因是这样,训练了一个模型发现Loss一直下不去,看了loss曲线以为收敛了。结果在测试数据上一塌糊涂,再跑去训练集上跑测试,结果当然比测试的好,但是很明显看出来没有训练好,因为有太过的FP。
耐心的翻了一下原始paper,发现用的learningrate 不一样,原因是原始paper是没有用Pretrain模型,而自己用了vgg pretrain 模型。paper:learning rate = 1e-3.自己是learning rate = 1e-4
一开始觉得没有错呀,如果从随机开始训练是需要一个大一些的learning rate, 如果只是finetune是需要一个小一些的learning rate,让模型更新的步子迈的小一些。看来这个不是问题的根本。然后看到自己写的那tf.train.exponential_decay。 这个是一个调节Leaning rate的一个函数
learning_rate = tf.train.exponential_decay(FLAGS.learning_rate, global_step, decay_steps=