半监督学习:mean teacher
第三个算法mean teacher,此算法是对Π model的升级。
第二个算法Temporal Ensembling for Semi-Supervised Learning,它提出了一个Π model以及Temporal ensembling的方法。
入坑半监督学习苦于找不到好的学习资料,不过就在昨天我发现了一个宝藏repo,那就是谷歌research的fixmatch仓库,是一套半监督算法的框架,包含数十种半监督算法,简直是入坑半监督学习的最佳教程😆
话不多说,先来看第一个算法pseudo label,发表与2013年。
最近想搞半监督的东西,但是我发现一个人的精力着实不够,而且这个tensorflow也让我很难受,莫名其妙只要一用jit就core dump,不用jit训练又慢,显存又狂吃,再这样下去准备转mxnet了😤。然后今天把之前本来想做没做完的东西做做完,就是各种iou的tensorflow实现,顺便为自己做一个总结。
最近看insightface深受启发,他的人脸识别在训练时可以训练softmax的,还可以训练triplet loss的,并且在验证时是对图像pair进行验证的。这几天弄论文顺便先给tf里面的模型写个骨架出来。这里的主要难点在于如何用tf.keras自带Model类实现训练和测试时不同的行为,今天尝试了一下,做个总结。
本次主要总结一下retinaface和Ultra-Light-Fast-Generic-Face-Detector-1MB。
实际上retinaface和Ultra-Light-Fast-Generic-Face-Detector-1MB的思路都是基于SSD的,本来我做yolo之后准备学习一下SSD的,做完这两个模型也算是学习到了。由于我目前不开源基于tensorflow的训练代码,下面的代码大家仅供参考~
在yolo中计算了单层的anchor与全局的gt间的iou score,但是我需要在其中过滤出单层的anchor对应单层的gt的iou score。目前有单一层的gt的loc_mask,以及全局的gt的glob_mask,其中loc_mask中有效区域是glob_mask的子集,因此需要找到loc_mask在glob_mask的对应索引。
用了挺久的tensorflow,目前也尝试了一些别的框架,感觉最让我难受的一点就是没法很方便的按索引赋值。
原因主要有: 1.
tensorflow的索引方式与numpy不同,写起来别扭。
2. 必须要变量类型才可以进行赋值。
我写完这篇文章后找到对普通tensor的赋值方式了
这次就来说下一些数组操作在tensorflow里面的写法。