算是比较失败的一次赛后总结
赛事介绍
比赛内容:SAR目标检测,可以参考之前SAR100k的博客,大概做这样一件事情。我也看了十来二十篇文章。浮现的代码也有数个。但是并没能起到什么作用···
具体是什么情况呢···原先只是想着借着比赛为由整出一篇论文的,但是吧···几乎一直是在复现他人做的各种内容,看的论文也很杂,也没想清楚应该怎么做。 但是确实是挺想去看看的。但是事后事情的发展多少有点出乎意料了。
出发之前
其实出发之前10天左右有确定下大概的比赛时间,但是我们没有特别注意。而且当时我并没有过分关注比赛信息。直到大约只有一周的时候我才注意到一些关键信息:
- 比赛全程(可能)没有网络
- 比赛场地不能带手机和电脑
- 比赛的资料只进不出 拷贝方式是光驱
- 电脑上的环境只包含vscode 可能没有cuda torch等
这三个规则对我可以说是闻所未闻,但是考虑到是涉密比赛,又显得很合理。但是无疑对我有着极大的限制作用:
- 没有网络,不能带手机电脑,遇到bug只能手撕代码,不能查资料。这意味着几乎没有容错性,只要出bug就修个大半天就可以放弃了
- 资料只进不出,所以相应的安装包环境只能用光驱拷贝,而且环境不能当场下意味着只能打包为docker,但是当时我还不会
- 数据集格式未知,可能要针对算法转换为相应的格式
应对措施
针对以上三个问题我也做了相应的准备:
- copy相关各种教程到txt,然后拷贝到光驱里。
- 学了打包docker 但是太大了 当时老师给的光驱只有4个多G,且数量有限,得分开光驱存而且还要合理分配空间。在总容量不过20g的情况下,我还下了一个nvidia的显卡驱动。两个环境加一起就10g+了。
- 叫三个被老师拉来的本科生写了写数据集转换的脚本 我自己也写好了相应的脚本 (并没有)
因此,自认为做好充足准备的我觉得拿个成绩至少不成问题,乘上了前往北京的飞机
比赛途中
回过头来看,其实还是自身实力不足,太依赖gpt了,导致我现在的纯手撕代码能力相较于两年前似乎还下降了..话说回来我也不知道为什么要我带上三个大三的本科生打这种比赛,不如我自己去摇人。三个人几乎什么都不会,我几乎全程一个人做每一项工作。而问题也是多到数不胜数。当然在一些策略安排上也出了非常多的问题。
首先,数据集格式是xml格式的。当时的我还没处理过几次xml文件,因此写的脚本针对性太强(至于本科生写的都不能用,他们连python都没学,我也不能要求太多。。),且它标注的方式似乎有点不一样。我所需要的是转txt后再转yolo。现在回头看看其实我应该能猜到的。自己标注的这类型的数据集源一般都是xml的,我是当时使用过的都是别人合成修改过的数据集,因此没有意识到这一点。针对数据集的格式转换上就花费了不少的时间——问题1
其次,在战略上:官方是允许查资料的,不过要在楼外才能用电脑。我当时想着报错的都是小问题,应该自己改改就能解决··· 结果改到后面还是不得不下去找资料——问题2
意外情况:赛程只有两天的上午+下午。而光驱拷贝资料的速度是慢的离谱,加上电脑本身的一些问题几乎就把第一个上午占满了。我没想到我们后续的光驱拷贝过去都用不了,赛方的ubuntu系统识别不了我的光驱盘。在反复耗了2h才找到解决方案——先拷贝到双系统的windows共享文件夹,再重进入到ubuntu里。但是这无疑又耗时增加了数倍调试时间——问题3
毫无疑问,在前期对这些东西的准备上太差了,导致试错成本过高,甚至没到训练的步骤,在前期配置上就已经彻头彻尾的输了。
至于其他的本科生,我也不能求全责备(他们至少还是起到了陪伴的作用),归根结底还是自己实力不够,怪不得别人。
弃赛
到第二天上午,我依然没能开始训练,卡在各种各样的地方,且已经疲惫的不行了。在下午前往赛场的路上,我甚至开始畏惧,逃避了。在赛场门前徘徊了很久很久。 我在想一个说服自己去的理由,想能不能坚持到最后的理由。但是做不到,我觉得光是在里面坐着都觉得丢脸,什么都做不到。加上那三人也不想,不如出去溜达溜达。
散步
我都不敢把这段称为旅游,因为从始至终都抱着忐忑不安的心,或者说还没缓过来。在清北附近,但是忘记找之前在北大读博后的学姐打个招呼了,有点笨。脑子里不知道想啥呢。
总结
时至如今,我依然没想明白能输成这样的根本原因在哪,虽然实力上确实存在不足,但是不至于。我只能归结于我遗漏了某一个关键点,且到最后也没能发现。
用比赛后回来发的朋友圈总结吧,总之是相当失败的一次经历,除了自身的实力问题,没有遇到什么其他的指的学习的地方。可能只是前者占比过大,后续的许多小问题也被忽视了。