رفعِ چند باگِ واقعی و پاکسازیِ کد، بههمراهِ تستِ رگرسیون#18087
Open
Milomilo777 wants to merge 1 commit into
Open
رفعِ چند باگِ واقعی و پاکسازیِ کد، بههمراهِ تستِ رگرسیون#18087Milomilo777 wants to merge 1 commit into
Milomilo777 wants to merge 1 commit into
Conversation
|
Thanks for your contribution! |
- ppocr/data/lmdb_dataset.py: split "except IOError or len(word) > max_len" (the `or` made the length check dead) into a real except + length guard - ppocr/modeling/backbones/rec_pphgnetv2.py: stop a duplicate import from shadowing the custom NPU AdaptiveAvgPool2D class - ppocr/postprocess/vqa_token_ser_layoutlm_postprocess.py: forward `batch` positionally to avoid TypeError when *args is non-empty - ppocr/losses/distillation_loss.py: remove duplicate DistillationKLDivLoss and DistillationDKDLoss class definitions (dead, shadowed code) - benchmark/PaddleOCR_DBNet: fix NameErrors (model_zoo, precision, model_dir, logger, xmin/ymin, num_overlaps_gt, evaluator name), a missing `raise`, a %-format placeholder mismatch, and missing argparse arguments - remove duplicate imports and an unused `global` in several modules - tests: add a paddle-free regression test for the LMDB SR max-length guard Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1e57fc3 to
3b32e6c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
خلاصه
رفعِ چند باگِ واقعیِ شناساییشده با تحلیلِ ایستا در ماژولهای گوناگون، بههمراه پاکسازیِ کدِ مرده/تکراری. همهی تغییرها کوچک، هدفمند و حافظِ رفتارِ درستِ موجودند.
رفعِ باگها (نقصهای واقعی)
۱) شرطِ شکستهی مدیریتِ استثنا در مجموعهدادهی ابرتفکیکپذیری
بهسببِ کوتاهمداریِ عملگرِ منطقیِ «یا»، شرطِ گرفتنِ استثنا فقط به یک استثنا تقلیل مییافت و بررسیِ طولِ کلمه بهکلی مرده بود؛ کلماتِ بلندتر از حدِ مجاز هرگز ردّ نمیشدند. اکنون گرفتنِ استثنا و بررسیِ طول از هم جدا شدهاند.
۲) پنهانشدنِ کلاسِ سفارشی در شبکهی پشتیِ PP-HGNetV2
یک واردسازیِ تکراری، کلاسِ سفارشیِ مخصوصِ سختافزارِ NPU را پنهان میکرد و نسخهی استاندارد را جایگزینش مینمود. تنها نامِ متناقض از واردسازیِ تکراری حذف شد تا کلاسِ سفارشی دوباره بهکار رود.
۳) انتقالِ نادرستِ آرگومان هنگامِ فراخوانیِ کلاسِ والد در پسپردازشِ SER
بازکردنِ آرگومانهای موضعی پس از آرگومانِ کلیدی، در صورتِ وجودِ آرگومانِ اضافی خطای زماناجرا تولید میکرد. آرگومان بهصورتِ موضعی منتقل شد.
۴) تعریفِ تکراریِ کلاسهای زیان در دیستیلیشن
دو کلاس عیناً دوبار تعریف شده بودند (تعریفِ دوم، اولی را پنهان میکرد). نسخههای تکراری حذف شدند (۲۱۶ خط کدِ مرده).
۵) باگهای زیرپروژهی بنچمارکِ DBNet
این مسیر خارج از پوششِ لینتِ CI است و باگها نهفته مانده بودند: نامهای تعریفنشده، عدمتطابقِ نگهدارندههای قالبِ رشته، استثنای پرتابنشده، نامِ کلاسِ اشتباه (کپیوپیست)، آرگومانهای گمشدهی خطفرمان، و فراخوانیِ رابطِ ناسازگار (PyTorch بهجای Paddle).
پاکسازی (کدِ مرده/تکراری)
حذفِ واردسازیهای تکراری و یک اعلانِ سراسریِ بلااستفاده؛ بدونِ تغییرِ رفتار.
تست و اعتبارسنجی
یک تستِ رگرسیونِ بدونِ وابستگی به فریمورکِ سنگین برای باگِ شماره ۱ افزوده شد (با همان الگوی ماژولهای جایگزینِ موجود در مخزن). این تست روی کدِ پیش از اصلاح شکست میخورد و پس از اصلاح پاس میشود.
بررسیهای زیر بهصورتِ محلی و مطابقِ پیکربندیِ CI بدونِ خطا گذشتند: