Open DefTruth opened 3 years ago
感谢这么细致的分析,这里的确是我们之前做早期CurricularFace实验的一个bug,当时BasicBlockIR中res_layer只有两个BN,我们放出来的CurricularFace的ckpt也是这个版本的,后来我们做cifp实验时发现了与arcface论文中的IRblock对比少了这个BN,所以加上了
感谢这么细致的分析,这里的确是我们之前做早期CurricularFace实验的一个bug,当时BasicBlockIR中res_layer只有两个BN,我们放出来的CurricularFace的ckpt也是这个版本的,后来我们做cifp实验时发现了与arcface论文中的IRblock对比少了这个BN,所以加上了
哦哦,那就明白了,谢谢回复~
你们有试过加载cifp152的模型吗,我现在测试152的模型发现相同人和不同人的相似度都是0.99左右,我用同样的代码测试cifp101的模型就没问题。
对于CurricularFace的pretrained,原来的BasicBlockIR我无法加载成功,似乎是有一个算子错位了。我修改后加载成功了。
加载成功的log:
而在修改之前会出现以下错误:
从这段log看,似乎是由于一个算子错位引起的,它尝试将一个卷积Conv的权重拷贝到BatchNorm上。我修改过后可以成功加载pth,并转换成onnx。我想这应该不影响使用。 以下是我完整的测试代码:
以上是我在加载基于IR_101的CurricularFace遇到的问题。但除此外,cifp中提供的模型是基于IR_34的,奇怪的是,IR_34必须在我修改前的BasicBlockIR才能加载成功。即CurricularFace中基于IR_101的pretrained与cifp中基于IR_34的pretrained,应该是使用两个不同版本的BasicBlockIR来训练的,他们并不能共用同一个BasicBlockIR模块。cifp中基于IR_34的pretrained中的BasicBlockIR需要长这样子: