- 这一部分主要与课内课程设计(大作业)、校内科研项目(如srp等)有关。
- 概述
- 神经网络与深度学习是一门比较有意思的课程,马千里老师在华工也是评价很高的老师,课程内容丰富,作业难度适中,比较适合初学者入门。大作业的内容是完成一个看图完成Latex公式识别的项目,OCR相关,因为助教和老师已经提供了baseline,所以难度的下限很低,如果肯花费多一些时间,用一个月好好打磨,增加修改好好包装以下作为自己以后招聘/研究生面试时的亮点也是足够的。
- 具体过程
- 作业分为两个level的目标:目标一是实现纯数字、字母加符号的latex公式识别;目标二是实现带有中文的latex公式识别。实际上baseline在目标一上已经取得了非常不错的效果,要想在同学们中间打到sota,还得看目标二的实现。目标二实际上是一个超级大字典的OCR问题。其中部分中文字符出现的很少,导致样本很稀疏,如何预处理图片,如何设计样本,如何设计网络结构,如何设计损失函数,如何设计后处理,其实都是需要考虑的问题。当然做一个懒人,在baseline的基础上换换随机种子调调参,取得的效果也完全足够交差了。
- 自由分组,以俺的建议是找到最终目标接近、水平也差不太多的同学来一起组队。我是和cy同学一起组队的,前面的baseline都是他完成的,还有padding的那一部分工作,我负责的只有一点点算法上的优化,实现了一个长句惩罚的任务,非常惭愧。(苯人和bw还分别尝试实现简单的beam search,最后也没有完成)。
- 总结
- 作业难度适中,适合初学者入门,但是要想在同学们中间打出sota,还是需要花费一些时间和精力,毕竟华工的同学们都很优秀,要想脱颖而出,还是需要付出更多的努力。我很佩服的几位同学(包括俺滴一个舍友)使用swin-tranformer,在目标一(还是目标二)上取得了sota的效果,很厉害,令我印象深刻。代码仓库我也宣传一下:https://github.com/Fangziyang0910/Swin-Transformer-Chinese-LaTex-OCR.git
- 概述
- 软工课设选题的内容很丰富,不要期待老师/企业有任何的指导,万物均需自己动手丰衣足食。
- 具体过程
- 软工课设选题的内容主要是软件设计,包括需求分析、设计、编码、测试、文档等。苯人的选题是家庭安全监控系统,可见苯人GitHub仓库,彼处内容已经非常详尽。
- 总结
- 学会和队友交流合作,安排好工作进度,及时沟通问题,及时调整计划,这是最关键的要点。作为组长的话,要提前安排好时间和任务量,苯人的倾向是前轻中重后检查,留够半个月的时间慢慢写文档和安排PPT与展示。我们组总体任务都比较轻松,任务量曲线比较平滑,感谢我的队友及时参加敏捷组会,在编码方面也付出了很多努力。
- 概述
- srp是华工特色的一种半科研/项目半学习性质的活动。以一个老师为中心,集合本二/本三为主的一小组学生一起完成小项目。有的组很水,不用干活就能混创新分;有的组则需要认真学习努力工作,但是收获的可能除了创新分之外还有不错的科研产出,以及最重要的,做项目/科研的经验。
- 概述而言,我的srp经历并不算非常顺利。前期以摸鱼划水为主,不过似乎老师并没有意识到我们是一批草台班子的情况,在中期安排了很多组会(几乎一周一次),要求每周都要有一些论文的复现和成果产出,到了大后期的时候,那时还是小菜鸡的我一方面要应付课业和比赛,另一面被沟槽的软著项目追着跑,加上作为负责人的我管理不善,导致作为组内成员的我被工作负载拉满了,非常难受。即使忙到了最后,就成果而言,其实也不怎么出彩,仅仅是一篇不算很有创意的软著罢了。
- 具体过程
- 我们的srp是2023年三月开始,到2024年三月结束,满打满算一年的时间,大致可以分为前期(前半年),中期(9月到12月),后期(1月到3月)三个阶段。
- 就前期而言,我们的工作简直可以说是轻松加愉快,老师发给了我们一篇survey(没错,就是那种比较空泛的综述),要我们完成研读即可。于是完全没有科研经验的我真的傻傻呼呼地把综述当作英语阅读给读了一遍,几乎是一点扩展材料也没有找,导致我到后面其实对于迁移学习也还是没有一个特别明晰的了解。不知道我的队友会不会也是这样(大概)?用半年时间读一篇综述,而且是用高中读英语阅读的模式,当然是轻松加愉快了。前期的愉快也让我一度以为srp就是这样,水水就完成了。
- 当然就其他一部分组而言,srp确实还就是水水就完成的事,这个东西的难度的极差非常大,有的组是真的能学到东西的,有的组则是水水混个创新分的。我们组刚刚难得地好取到了中庸,学到了一点点东西但是不是特别多,水水创新分但是过程又不是太容易。
- 到了中期,事情开始变得有点子不对劲了。那会正值我赶OS、NN&DL等大作业的时候,我们开启了一周一组会的阶段。每一次组会都要带来新的具体的进展,而老师对我们的水平还没有特别多的了解,还在想着我们能不能根据手上的东西投出一个好论文之类的,每次给我们安排的任务跨越性还比较大,不是特别简单就是特别难,或者和之前的工作方向有较大的差别,至少我是有点不知所措,疲于奔命的感觉。
- 到了后期时间不够了,项目进展又非常慢,没奈何组里确定了发软著的目标,实现一个前后端的检测系统程序。那会完全没摸过Vue的我差不多是靠着ChatGPT和GitHub上别人的模板硬着头皮写。后端的搭建也是如此,Flask用别人的初版代码,然后自己一点点根据要求来改,模型代码也要好好地读不然后端接口写不出来。到后面二月中再集会时,老师要求大改前端页面,又来了一次大返工,最后勉强赶上了截止日期,在二月末(大概?)完成了程序和文档工作。
- 总结
- srp不同的组的区别比较大,有点组是偏向干活学东西的,有的组是偏向水一水混日子的。选择时要擦亮眼睛,从自己的需要出发完成选择。
- 有时候困难比较能磨练人,苯人要不是受了这一次srp的活,可能项目能力在很长一段时间里也就那样了,但是有了这一次的经历,对于我后来完成软件工程课程设计的队伍管理和具体技术实现都有很大的帮助。