CircleLoss
CircleLoss copied to clipboard
我使用了该loss,但在行人reid任务上,最终的性能很难达到作者公布的结果,请问作者有复现出这个结果吗?
并没有在re-id上测试过,你与采用相同的设定与代码的其他loss比较过吗?复现结果需要考虑很多细节
对比过triplet+softmax,在相同设定的情况下,circle loss不如前者。 @TinyZeaMays
如果用了softmax的话,是否有对embedding进行归一化?不好意思,没有进行过re-id相关研究
hi, @TinyZeaMays @qiguming 可以给我看下你们的loss下降情况吗?mnist是可以的,但我在人脸数据集上测试了一下,发现loss下降很慢,而且从测试结果来看pair_acc=0.5,网络没有收敛。
我利用“circle_loss.py”也是训练人脸,loss都没有收敛,一直处于震荡,请问这是什么原因?
没有测试过人脸的情况,我猜测问题出在类别数比较多,因此随机batch内正样本对比较少,在实际使用时,可能不能采用随机的sampler构造batch,并未在论文中阅读到batch size与batch设计的tricks
hi, @TinyZeaMays @qiguming 可以给我看下你们的loss下降情况吗?mnist是可以的,但我在人脸数据集上测试了一下,发现loss下降很慢,而且从测试结果来看pair_acc=0.5,网络没有收敛。
![]()
![]()
上图分别是circle loss和学习率和rank1精度(超低),我是在reid上的结果。
在声纹识别的分类训练任务上,我用的是我自己实现的circle loss, gamma=64, m=0.3, 之前的训练收敛速度不是很理想,但是使用cos annealing lr schedule以及balanced data sampler似乎可以加快收敛。目前结果还未出来,完成实验我来贴一下结果
在声纹识别的分类训练任务上,我用的是我自己实现的circle loss, gamma=64, m=0.3, 之前的训练收敛速度不是很理想,但是使用cos annealing lr schedule以及balanced data sampler似乎可以加快收敛。目前结果还未出来,完成实验我来贴一下结果
您好,您现在有结果了吗?我也是声纹识别的任务,也发现我的模型很快就不收敛了,并且结果也很差,我感觉这里的min-batch的设置也很重要,我目前batch_size=32*8=256
我利用“circle_loss.py”也是训练人脸,loss都没有收敛,一直处于震荡,请问这是什么原因?
文章中的人脸实验都是用class-level label的。这个“circle_loss.py”实现的是pair-wise label版本
是的,人脸识别和reid都是基于class-level label,可以看看这个tensorflow的实现https://github.com/zhen8838/Circle-Loss/blob/master/circle_loss.py
我尝试用自己的数据基于res34训练,并且将类别减小到10,acc依然很低
facedataset:10001id,50Wimgs,bs512
class-level label https://github.com/anorthman/CircleLoss
Hi, everyone, I have reproduced circle loss in Market1501, please refer https://github.com/JDAI-CV/fast-reid/issues/41
@L1aoXingyu Hi,我用了你实现的circle loss代码,在Cityflow数据集上暴打Arcface 2%-3%,感谢大神!不过感觉好像和原作者说的还是不太一样,譬如market1501上也复现不了
@Xiangyu-CAS 你需要按照我的训练配置才可以复现 market1501 结果,这个loss对 batch 很敏感
@L1aoXingyu 我觉得84%这个结果也不能叫复现吧,直接用softmax都能训到84% mAP,更何况freeze feature这个本身就会带来提升...这个形式的loss包括arcface在market上都是崩的,不知道为什么
paper 里面不是 84.9 吗,我跑出来 84.6 我觉得已经在误差范围内了。
记混了...我之前看sun yifan一直在一个群里发86.4%的结果....那确实算是复现了
把 size 改成 384x128,mAP 能跑到 86.4 左右
我用P=16, N=4,m=0.35,s=64,resnet+circle loss在market1501上能跑到86.1%了,256*128分辨率下,我在cityflow上用的也是这组参数,所以感觉circle loss适合cls比较少的情况?
是的,我也做了实验,batch 里面 id 少一些会好,每个 id 的图片多一些会好,我猜测是每个 id 图片多了可以尽可能多地覆盖所有的 camera,让类内更 compact,另外就是 id 多了可能不太好优化
您好,我问下您在
loss = self.soft_plus(torch.logsumexp(logit_n, dim=0) + torch.logsumexp(logit_p, dim=0))
这一行代码写的loss函数,是不是和原文函数不太一样啊?

原文中log中还要再加上1吖?是我理解错了么 @TinyZeaMays
您好,我问下您在
loss = self.soft_plus(torch.logsumexp(logit_n, dim=0) + torch.logsumexp(logit_p, dim=0))
这一行代码写的loss函数,是不是和原文函数不太一样啊?
![]()
原文中log中还要再加上1吖?是我理解错了么 @TinyZeaMays
nn.SoftPlus() = log(1 + e ^ x)
您好,我问下您在
loss = self.soft_plus(torch.logsumexp(logit_n, dim=0) + torch.logsumexp(logit_p, dim=0))
这一行代码写的loss函数,是不是和原文函数不太一样啊?原文中log中还要再加上1吖?是我理解错了么 @TinyZeaMays
e的0次方等于1,自己看看代码。
好的,感谢🙇
人脸识别可以参考我的实现,欢迎大家指正: https://github.com/xialuxi/CircleLoss_Face/blob/master/CircleLoss.py
在声纹识别的分类训练任务上,我用的是我自己实现的circle loss, gamma=64, m=0.3, 之前的训练收敛速度不是很理想,但是使用cos annealing lr schedule以及balanced data sampler似乎可以加快收敛。目前结果还未出来,完成实验我来贴一下结果
您好!您现在的结果怎么样?有效果么?