今天,同门突然指出了我在去年10月做一项代码测试工作时犯的错误。
当时,我的任务是测试某论文中新发布的图像配准算法在我们的航拍图像配准任务上的效果,以便决定是否在其上进行改进。
我按照readme文件中的指引下载了预训练权重,并按照项目代码中给出的测试代码在我们的数据上面完成了测试工作。当时在讨论班展示效果时,大家一致认为这种算法在我们的数据集上效果很好,因此后续应该按照这个预训练权重,在我们的数据集上面进行了微调。后面训练与微调的任务就交给了我同门,我没有再参与这个工作。
但是,可能是由于在一些数据上的测试效果有悖于推断,当同门复盘代码时,发现了他们一直使用的预训练权重其实不是这个新算法的权重,而是这个算法的上一个版本的权重,也就是说,他们一直在错误的权重上进行训练和微调。而犯错的原因,应该始于我当时下载的预训练权重就是老版本而非新版。
我思考了出现这个错误的原因,下面按照优先程度列出,以警醒自己,防止再犯:
1.没有认真阅读readme文件。我下载的错误权重是来源于老版算法的readme文件,而新算法的readme文件中列出了其新训练的权重,我并没有看到。
2.当时对阅读github项目的经验还很欠缺,而这个旧版本权重恰好还跑通了,这应该也是我一直没意识到自己错了的原因。
3.这个错误的权重在数据测试时效果却比较好,这导致没有人去怀疑权重用错了。
4.自己做事太不上心,如果仔细一点,也许能发现这个错误。
希望这次犯错没有给别人带来太大的困扰,我也将以此为鉴,在后续的工作中多一份细致,并且努力提高自己的代码能力,在面对这样的问题时不要再一脸茫然。