时间有些晚了,选一个词来描述今年的话,现实魔幻主义,孤魂野鬼又一年。现实比魔幻还要魔幻,魔幻比现实还要现实。
半监督浅显入门
本文字数: 2.5k 阅读时长 ≈ 2 分钟
寒假开始前还是把在学校里遗留的工作先搞完,所接项目的目标是实现半监督语义分割。既然是半监督,就先来看一下半监督的经典论文,我选了经典的、结构相似的三篇论文。
第一篇是:NIPS 2017 的 Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results,因为我发现伪标签相关的论文或多或少有它的影子。
第二篇是:ICCV 2021 的 End-to-End Semi-Supervised Object Detection with Soft Teacher,微软出品的半监督目标检测,质量上还是比较让人相信的,且语义分割也可以借鉴目标检测的东西。
第三篇是:ECCV 2021 的 Semi-supervised Semantic Segmentation via Strong-weak Dual-branch Network,因为搜半监督语义分割,最新的进展论文就是它了。
文章最后有代码实现。才发现好久没更新博客了。
CV 领域的自监督
本文字数: 3.7k 阅读时长 ≈ 3 分钟
还是要认真的学习一会儿,降低多巴胺的分泌。在使用 triplet loss 学表示的时候,出现了模型坍塌的情况,也就是说,模型对任何输入的输出都是一样的,损失恒定的现象。在网上搜了一些解决方案后,需要用户去花精力构造正负样本,我不喜欢这样的东西,所以开始看了自监督的论文,毕竟都是学表示。也发现自监督会在一段时间内成为未来的视觉领域的主流,正好我做的东西和自监督也算相关,做一个论文整理。包括了 MoCo,SimCLR,SimSiam 和 Barlow Twins。
模型崩塌,也就是模型为了偷懒,无论什么图片都会输出同样表示,这样结果 loss 很小,然后却没学到任何东西。
工程开发经验总结三,以 sspaddmm 为例,再来谈一谈并行加速
本文字数: 6k 阅读时长 ≈ 5 分钟
今天来写什么呢?准备整理一些多线程的东西,虽然多线程相对很熟悉了,可每次工程中都会有新的收获。这次不谈多线程的理论问题,毕竟计算机专业都懂多线程的理论并写过相关程序,也了解其使用的背景。之前使用多线程的时候,总是看一看加速比和结果是否准确就完了,那么这次以多线程使用者和多线程设计者的角度出发,来谈一谈如何更好的使用和设计多线程。
工程开发经验总结二,如果我是甲方,该如何外包?
本文字数: 2.5k 阅读时长 ≈ 2 分钟
本来是想直接写下的,半路除了点问题,写一篇中吧。具体出了什么意外呢?当然是自己不太熟悉的 git
操作,实在是缺乏和别人一起开发项目的经验。后来又陆续有一些其他的收获,一并整理。
工程开发经验总结一,如何参与开发?
本文字数: 3k 阅读时长 ≈ 3 分钟
拖更了两个月,不知道是最近无事发生还是之前太能写了,这期间发生了很多事,现实与虚幻并存,度过目前的难关以后再慢慢吐槽吧。决定更新一篇工程开发经验的文章,无技术细节。
亿点点项目总结。大概是第一次接这么正规的项目,从代码要求、提交规范、开发流程、开发需求、测试流程到文档撰写,虽然其中有不尽人意的地方,但也算正规。按时间流程说吧。
C++ 中的智能指针
本文字数: 4k 阅读时长 ≈ 4 分钟
承接移动语义,来更新智能指针,上文说到 unique_ptr
也会用到移动语义的东西。由于 C++ 语言没有自动内存回收机制,程序员每次 new
出来的内存都要手动 delete
,一旦忘记 delete
或者程序过早退出而没有 delete
,导致内存泄漏总是不好的。内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存,从而造成了内存的浪费。
所以,能不能有一种东西的存在,使用 new
创建对象后,对象作用域消失时,能不能自动析构并调用 delete
?手动管理过程繁琐且容易出错,那么尝试通过智能指针来实现这一管理过程。