UpCoder

Results 27 comments of UpCoder

应该是通过指定 pretrained_model_path 来加载预训练模型,类似backbone啥的

百度网盘:链接: https://pan.baidu.com/s/1WHjCbqVoTc6aYzTcCF_X2w 密码: njuu

您好,我仅说说我自己的观点。 我个人认为因为center loss的降低是比较容易的,假设最极端的情况下,也就是无监督,我们不优化softmax loss。在这种情况下,center loss很容易变成0。这是为什么呢? 因为center loss只是计算的学习的特征与中心之间的差距,而且学习得到的特征和center features都是在反向传播中不断更新的。所以,我们只需要让学习得到的特征和center features一致,也就是说不管输入是什么,输出都是一样的。那么对应的center loss就一定是0。对于我们的网络来说,要实现上述功能很简单,甚至一层就可以实现。但明显上述网路的输出是错误的,并不能实现我们的分类功能。 当有softmax loss的时候,因为我们是寻找局部最优点,也许center loss对应的局部最优点很容易找到,但是那个点并不是softmax loss的最优点,所以一开始找到了center loss的局部最优点,但是在后续训练的过程中,会不断的寻找整体的局部最优点,在center loss对应的局部最优点和softmax loss所对应的局部最优点之间寻找一个平衡。 至于l2 loss应该是和center loss一样的道理。 上面的只是我个人的想法,并没有严密的数学逻辑推导证明,如果您有什么更好的解释方法,也希望咱们可以多多沟通交流!

我感觉lambda是一个hyper-parameter,应该是要通过实验结果来调整的,一般的话,就10-1~10-4试吧。不过实验结果给我的感觉是不同大小的lambda对分类的准确率是没有提升的。lambda越大的话,最后收敛的就越慢,当然不同类别的center features之间的距离也会变大。

centers_update_op是否有更新?是在mnist数据集上做的吗?

我也有这个问题,不过这个错误基本上只在刚开始的时候出现过几次,等训练的差不多了基本不会报这个错了。这个错误并不影响整个的训练过程(不影响反向传播)。