Detectron: لماذا استخدام الانتروبيا السيني بدلاً من softmax في RPN؟

تم إنشاؤها على ٢ مايو ٢٠١٨  ·  3تعليقات  ·  مصدر: facebookresearch/Detectron

أهلا،

في لعبة rcnn الأسرع الأصلية ، استخدمت خسارة softmax عند تدريب rpn. (https://github.com/rbgirshick/py-faster-rcnn/blob/master/models/pascal_voc/VGG16/faster_rcnn_alt_opt/stage1_rpn_train.pt#L447)

في FPN ، يمكنك استخدام الانتروبيا السيني المتقاطعة لقياس خسارة rpn.
(https://github.com/facebookresearch/Detectron/blob/master/lib/modeling/FPN.py#L459)

في تجربتي ، وجدت أن استدعاء RPN انخفض حوالي 4 نقاط عند استخدام الانتروبيا السيني.

إذن ، لماذا استخدام الانتروبيا السيني في FPN؟ هل سبق لك أن حاولت خسارة softmax؟

شكرا!

التعليق الأكثر فائدة

يعد استخدام softmax للتصنيف الثنائي عبارة عن معاملات مفرطة ويجب ألا يكون ضروريًا. عند النقل من py-الأسرع-rcnn إلى المستكشف ، جربت كلاً من softmax و sigmoid لـ RPN وحصلت على استدعاء RPN مماثل. لم أعود إلى استخدام softmax لـ RPN مع FPN.

ال 3 كومينتر

يعد استخدام softmax للتصنيف الثنائي عبارة عن معاملات مفرطة ويجب ألا يكون ضروريًا. عند النقل من py-الأسرع-rcnn إلى المستكشف ، جربت كلاً من softmax و sigmoid لـ RPN وحصلت على استدعاء RPN مماثل. لم أعود إلى استخدام softmax لـ RPN مع FPN.

rbgirshick هل من الممكن دعم Softmax في "rpn_heads.py"؟

حاولت لكني لم أنجح. السبب هو أنه عندما يكون شكل rpn_cls_logits هو (1 ، 30 ، H ، W) بدلاً من (1 ، 15 ، H ، W) ، لا يمكن تطبيق عملية "SpatialNarrowAs" على "rpn_labels_int32_wide" نظرًا لأن عمقها ليس كذلك نفس rpn_cls_logits.

لقد وجدت نفس المشكلة هنا ، ومن الرائع أن أراك تطرحها. أعتقد أنني سأحاول كلتا وظيفتي الخسارة للتحقق من أيهما أفضل.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات