Skip to content

callbacl fix - #4

Merged
Matvezy merged 1 commit into
mainfrom
export_fix
Mar 20, 2025
Merged

Matvezy merged 1 commit into
mainfrom
export_fix

Conversation

@Matvezy

@Matvezy Matvezy commented Mar 20, 2025

Copy link
Copy Markdown
Contributor

Description

Fixed callback saving issue

Type of change

  • Bug fix (non-breaking change which fixes an issue)

How has this change been tested, please provide a testcase or example of how you tested the change?

Tested Locally

Any specific deployment considerations

N/A

Docs

  • Docs updated? What were the changes: No

@Matvezy
Matvezy merged commit b0556d8 into main Mar 20, 2025
probicheaux pushed a commit that referenced this pull request Mar 23, 2025
Borda added a commit that referenced this pull request Mar 30, 2026
- `version: str` was incorrect; docs/examples/tests all pass int values

[resolve #4] Review comment by @Copilot (PR #890):
"The version parameter is annotated as str, but both docs/examples and tests pass an int..."

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to omkar-334/rf-detr that referenced this pull request Mar 30, 2026
[resolve roboflow#4,roboflow#5] Review comments by Copilot + review (PR roboflow#664):
"weights_only=False...please add a similar warning to the docstring..."

Adds a Warning: section noting torch.load unpickling risk for untrusted
checkpoints. Also adds FileNotFoundError and OSError to the Raises section.

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to farukalamai/rf-detr that referenced this pull request Apr 1, 2026
…e tests

- test_model_name_with_whitespace_is_stripped: confirms model_name with
  leading/trailing spaces resolves correctly via .strip()
- test_model_name_deprecated_class_raises_runtime_error: unmocked constructor
  path confirms RuntimeError propagates for RFDETRBase and RFDETRSegPreview
  resolved via model_name (mirrors test_from_checkpoint_raises_for_deprecated_class)
- Refactor test_plus_model_name_without_plus_raises_import_error: replace
  for-loop over (RFDETRXLarge, RFDETR2XLarge) with @pytest.mark.parametrize

[resolve roboflow#3] /review finding by qa-specialist: missing unmocked deprecated-class via model_name test
[resolve roboflow#4] /review finding by qa-specialist: no test for whitespace-padded model_name
[resolve roboflow#5] /review finding by qa-specialist: use parametrize instead of for-loop

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 1, 2026
- Verify torch.jit.trace is called with correct model and dummy input shape
- Verify _optimized_has_been_compiled=True and _optimized_batch_size are set after compile=True
- Verify compile=False skips jit.trace entirely

[resolve #4] /review finding by qa-specialist (report: _outputs/2026/04/output-review-copilot-fix-cuda-context-leak-2026-04-01.md):
"compile=True path (JIT trace) is completely untested — all 11 tests use compile=False"

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 2, 2026
[resolve #4] /review finding by qa-specialist (report: _outputs/2026/04/output-review-fix-stable-2026-04-02.md):
"no test verifies include_source_image=False (default) with tensor input omits source_image"

[resolve #5] /review finding by qa-specialist (report: _outputs/2026/04/output-review-fix-stable-2026-04-02.md):
"no test verifies _is_optimized_for_inference=False and inference_model=None after jit.trace failure"

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to pirnerjonas/rf-detr that referenced this pull request Apr 2, 2026
- test_rle_size_mismatch_behavior: documents that mismatched size/height/width
  raises ValueError from pycocotools
- test_compressed_rle_bytes_counts_decode: exercises bytes counts branch through
  full convert_coco_poly_to_mask decode path
- test_malformed_rle_counts_none_raises_value_error: confirms new type guard raises
  ValueError for counts=None
- test_model_name_args_missing_num_classes_does_not_inject_kwarg: covers new
  top-level model_name checkpoint format when args has no num_classes

[resolve roboflow#3,roboflow#4,roboflow#5,roboflow#6] /review findings by qa-specialist
(report: _outputs/2026/04/output-review-feat-416-native-rle-annotation-support-2026-04-02.md)

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 8, 2026
- Documents the behavioral change: MD5 mismatch no longer triggers re-download
  when redownload=False, protecting fine-tuned checkpoints from being silently
  overwritten by the original COCO weights

[resolve #4] /review finding by doc-scribe (report: .temp/output-review-copilot-fix-pretrained-model-loading-2026-04-08.md):
"CHANGELOG.md was not updated..."

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 8, 2026
…dDataset

[resolve #3] Review comment by @Copilot (also /review): missing -> Any return type on __getitem__
[resolve #4] /review finding by sw-engineer: note pad_indices are fixed per dataloader instantiation

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 9, 2026
- Add torch.Tensor type hints to 4 existing untyped parameters (value, value_spatial_shapes, sampling_locations, attention_weights)
- Add -> torch.Tensor return type annotation

[resolve #4] /review finding by sw-engineer (report: .temp/output-review-copilot-fix-ptl-gradient-accumulation-bug-2026-04-09-2.md):
"[MEDIUM] Missing type annotations on existing parameters — ms_deform_attn_func.py:25"
[resolve #6] /review finding by linting-expert (report: .temp/output-review-copilot-fix-ptl-gradient-accumulation-bug-2026-04-09-2.md):
"[nit] Missing return type annotation — ms_deform_attn_func.py"

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 9, 2026
- Replace bare try/except/pass in test_rejects_non_square_ij_indexing with non-square spatial shapes and an assertion that xy indexing produces different proposals than ij
- Add test_gen_encoder_output_proposals_accepts_python_int_pair_spatial_shapes covering the export-driven list[tuple[int,int]] path with memory_padding_mask=None

[resolve #4] Review comment by @Copilot (PR #936):
"This test will pass regardless of behavior: it swallows all exceptions..."

[resolve #5] Review comment by @Copilot (PR #936):
"Consider adding/adjusting a regression test that passes spatial_shapes as list[tuple[int,int]]..."

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 9, 2026
…ata.py

The bare `import kornia.augmentation` statements in `_setup_kornia_pipeline`
lacked the `# type: ignore[import-not-found]` annotation used consistently
elsewhere in the PR (coco.py, o365.py, kornia_transforms.py).

[resolve #4] /review finding by linting-expert (report: .temp/output-review-aug-kornia-2026-04-09.md): "kornia imports without type: ignore in module_data.py"

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 9, 2026
- Add test_save_dataset_grids_failure_does_not_abort_training: save_grid() raising OSError must not propagate; trainer.fit() must still be called

[resolve #4] /review finding by qa-specialist (report: .temp/output-review-copilot-fix-save-dataset-grids-kwarg-2026-04-09.md):
"Add test: grid-save failure should not abort training"

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to tr-teja/rf-detr that referenced this pull request Apr 10, 2026
…sals

- TestGenEncoderOutputProposalsDynamicBatch: 6 tests covering batch={1,2,4,8} output shape invariance, semantic equivalence across batch sizes, and ONNX export with dynamic_axes (skipped when onnxruntime absent)

[resolve roboflow#4] Review comment by @Copilot (PR roboflow#950):
"Add an export-focused test (skip if onnx not installed) that exports with dynamic_axes..."

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 14, 2026
`ckpt_pe[:, 0]` returns shape [1, dim], requiring `unsqueeze(0)` before
`torch.cat`. Using `ckpt_pe[:, :1]` keeps the sequence dimension intact
([1, 1, dim]), eliminating the intermediate squeeze/unsqueeze.

[resolve #4] /review finding by sw-engineer (report: .temp/output-review-fix-960-2026-04-14.md):
"class_token unsqueeze may be unnecessary — simplify to ckpt_pe[:, :1]"

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 15, 2026
[resolve #4] Review comment by @Copilot (PR #971):
"No case for 5D tensors (Conv3d-style). Adding a 5D shape case would
lock in the intended 'skip unless Conv2d weight' behavior and prevent
future regressions if the shape guard changes."

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to mfazrinizar/rf-detr that referenced this pull request Apr 20, 2026
- Move EMA segm logging inside `if self.map_metric_ema is not None:` to
  eliminate the duplicate guard and the mypy [possibly-undefined] risk on
  `ema_metrics` (linting-expert finding)
- Replace redundant `ema_mar_key` local with `mar_key` defined 3 lines
  earlier (linting-expert finding)

[resolve roboflow#4][resolve roboflow#7] /review findings by linting-expert (report: .temp/output-review-fix-ema-segm-metrics-978-2026-04-20.md)

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to Irfan-Hamid-creates/rf-detr that referenced this pull request Apr 23, 2026
- Save/restore global NumPy and Torch RNG state around seed loops in
  TestNonSquareResizeDivisibilityRegression to prevent cross-test leakage
- Add test_val_pipeline_structural_contains_pad_if_needed: verifies that
  make_coco_transforms("val") third wrapper is AlbumentationsWrapper(PadIfNeeded)
  with pad_height_divisor == pad_width_divisor == block_size

[resolve roboflow#4] Review comment by @Copilot (PR roboflow#991):
"test loop resets global NumPy/Torch RNG state via np.random.seed/torch.manual_seed without restoring..."

[resolve roboflow#5] Review comment by @Copilot (PR roboflow#991):
"This loop also mutates global RNG state (np.random.seed / torch.manual_seed) and doesn't restore it..."

[resolve roboflow#6] /review finding by foundry:qa-specialist (report: .temp/output-review-fix-non-square-resize-divisibility-2026-04-23.md):
"Missing test: val/test pipeline structural assertion..."

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to Irfan-Hamid-creates/rf-detr that referenced this pull request Apr 24, 2026
[resolve roboflow#4] /review finding by foundry:qa-specialist (report):
"docstring claims picklable but no test verifies pickle.dumps(make_collate_fn(block_size=32))"

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 24, 2026
…uild_model, generate_checkpoint

- TestGetStateDict: three-level layout, legacy two-level fallback, RuntimeError on invalid model
- TestGetPatchSize: model_config path, config fallback, default-16 fallback
- TestBuildModel: preferred-class missing falls through to RFDETRBase; all candidates absent raises RuntimeError
- TestGenerateCheckpoint: integration smoke-test verifies model/args/epoch/rfdetr_version keys

[resolve #4] /review finding by foundry:qa-specialist (report: .temp/output-review-ci-legacy-2026-04-24.md):
"No test for generate_checkpoint.py — _get_state_dict, _get_patch_size, _build_model, generate_checkpoint have no unit tests"

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to mfazrinizar/rf-detr that referenced this pull request Apr 27, 2026
…uard comment

- Reword warning in BestModelCallback.on_validation_end to mention all causes
  (misconfigured metric, eval cadence, skip_best_epochs) not just skip_best_epochs
- Clarify docs table: "Ignore the first N epochs (0..N-1)" removes 0-vs-1-based ambiguity
- Add comment explaining skip guard placement after _current_pl_module stash in
  BestModelCallback.on_validation_end to prevent future "fix" of intentional ordering

[resolve roboflow#4] Review comment by @Copilot (PR roboflow#1000):
"Warning message implies skip_best_epochs is the reason no best checkpoint..."

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 28, 2026
Covers the path where state_dict has no position_embedding keys —
interpolate_position_embeddings must not raise and must leave the dict
unchanged.

[resolve #4] /review finding by foundry:qa-specialist (report: .temp/output-review-feat-997-2026-04-28.md):
"Missing test: state_dict present but no PE keys — should be a no-op"

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request Apr 28, 2026
- Add dataset_file=="coco" guard to _is_coco_pretrained to prevent
  misfire on custom models that reuse COCO_CLASS_NAMES verbatim
- Emit warning_once when model.args absent and COCO names detected
  so stripped checkpoints do not silently fall back to wrong indexing
- Check cid==num_logit_slots before dict lookup to prevent COCO ID 90
  ('toothbrush') from masking the background/no-object class slot
- Restore numeric bound in OOB warning: 'out of range [0, %d]' with
  num_logit_slots for actionable diagnostics

[resolve #1] @Copilot (gh): background slot 90 overlaps COCO ID 90
[resolve #3] foundry:sw-engineer (report): COCO heuristic too broad
[resolve #4] codex (report): no-args fallback silent failure
[resolve #9] foundry:doc-scribe (report): restore OOB bound value

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to mfazrinizar/rf-detr that referenced this pull request Apr 28, 2026
The python:/import: provider called importlib.import_module() on a
dotted path originating from TrainConfig.optimizer — an unconstrained
import-time code-execution surface reachable from LightningCLI YAML
configs. Removed _load_python_optimizer and _build_python_optimizer;
collapsed configure_optimizers to the two-branch dispatch (built-in
fused AdamW / pytorch-optimizer). The pytorch_optimizer: provider and
OptimizerParamGroupOverride are unaffected.

- Remove import importlib (now unused)
- Remove _load_python_optimizer(), _build_python_optimizer()
- Update _split_optimizer_name() — only adamw and pytorch_optimizer: valid
- Retarget rank-aware override tests to mock _load_pytorch_optimizer

[resolve roboflow#4] /review finding by foundry:sw-engineer + Codex co-review (report: .temp/output-review-develop-2026-04-28.md):
"C1: _load_python_optimizer performs unbounded importlib.import_module() on config-string path"

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: OpenAI Codex <codex@openai.com>
Borda added a commit that referenced this pull request Apr 30, 2026
[resolve #4] Review finding by foundry:doc-scribe (report: .temp/output-review-isaac-fix_num_queries_indexing-2026-04-30.md):
"Add CHANGELOG entry under [Unreleased] / ### Fixed for training-resume correctness fix."

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request May 5, 2026
- Replace absolute /assets/roboflow-logo.svg with favicon href so logo
  renders correctly under mike versioned docs /<version>/assets/
- Scope .author-name event listener loop to current card element so
  hover listeners don't accumulate across all cards on each renderCard
- Add authorCache object; same GitHub login fetched only once per page

[resolve #1] Review comment by @Copilot (PR #1022):
"src=\"/assets/roboflow-logo.svg\" is an absolute-root path..."

[resolve #2] Review comment by @Copilot (PR #1022):
"Event listeners are attached inside renderCard() via document.querySe..."

[resolve #4] Review comment by @Copilot (PR #1022):
"Each card triggers one unauthenticated GitHub API request per author..."

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request May 13, 2026
…p TODOs

[resolve #3 #4 #7] Review findings by foundry:qa-specialist (report: .temp/output-review-copilot-fix-segmentation-training-error-2026-05-13.md):
"Class docstring claims L1 facade variants plural but only Nano+SegNano covered; two near-identical tests warrant parametrize when a 3rd variant lands; downward-interpolation direction not exercised."

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request May 15, 2026
Replace `build_namespace(...)` call sites with the config-native builders
introduced in 7ccb3ec:

- `__init__` model build  : `build_model(build_namespace(mc, tc))`
                          → `build_model_from_config(mc, tc)`
- `__init__` criterion    : `build_criterion_and_postprocessors(build_namespace(...))`
                          → `build_criterion_from_config(mc, tc)`
- `configure_optimizers`  : `build_namespace(mc, tc)` (raw namespace needed
                            for `get_param_dict`) → `_namespace_from_configs(mc, tc)`

`build_namespace` carries a live `DeprecationWarning` (slated for removal
in v1.9); the previous code emitted four such warnings per module
construction.  Verified zero `build_namespace` deprecation warnings on
`from rfdetr.training.module_model import RFDETRModelModule`.

[resolve #4] @Copilot (gh): `build_namespace()` is explicitly deprecated and emits a DeprecationWarning ("will be removed in v1.9") on every `RFDETRModelModule.__init__()`

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to omkar-334/rf-detr that referenced this pull request May 19, 2026
… edge cases

Resolve /review findings roboflow#4, roboflow#5, roboflow#8, roboflow#9, roboflow#10 from
.reports/review/2026-05-19T10-06-08Z/review-report.md

- test_run_inference_name_based_mask_detection: exercises primary name-based
  path (`"masks" in output name`) — previously dead code under test; every
  existing seg test used `Identity_N` which bypassed it
- test_run_inference_seg_model_no_detections_returns_none_mask: seg model +
  all logits below threshold → `Detections.mask is None` (post-keep.any() gate)
- test_decode_masks_raises_on_wrong_rank: _decode_masks rejects rank-4 input
  with a clear ValueError (exercises new guard from prior commit)
- test_decode_masks_exact_zero_logit_decodes_to_false: boundary at strict >0;
  uniform-zero logit map → all-False (not all-True)
- test_decode_masks_non_square_logit_input: (3,7,14) logits → (3,28,56) output,
  guards PIL bilinear resize for non-square feature maps
- test_decode_masks_parity_positive_negative_regions: high-magnitude ±10 logits
  verify correct True/False regions after bilinear upsample; parity regression
  guard for PostProcess.forward equivalent contract

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request May 21, 2026
Module-level docstring and __getattr__ docstring still referenced
_REMOVED_IN_V17 and v1.7 removal after the dict was renamed to
_REMOVE_IN_VERSION_1_8 and timeline shifted to v1.8.

[resolve #3] @Copilot (gh): discussion_r3283481816
[resolve #4] @Copilot (gh): discussion_r3283481857

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to omkar-334/rf-detr that referenced this pull request May 26, 2026
- [resolve roboflow#4] /review finding by foundry:qa-specialist (report: .reports/review/2026-05-26T19-40-29Z/review-report.md): test_falls_back_to_tensorflow_when_tflite_runtime_missing asserted constructor call but not allocate_tensors(); add parity assertion matching test_allocate_tensors_called

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit that referenced this pull request May 27, 2026
Add `_nonempty_file_exists(path) -> bool` to `_develop.py` (file exists
and size > 0); wire it into the session fixture replacing the bare
`annotations_path.exists()` guard so empty annotation ZIPs trigger
re-download. Rename `TestAnnotationFilePreconditions` to `TestNonemptyFileExists`
and rewrite the three test bodies to call `_develop._nonempty_file_exists`,
replacing pathlib-only stdlib assertions with real coverage of the helper.

[resolve #4] Review by @foundry:challenger (report: .reports/review/2026-05-27T19-00-46Z/review-report.md):
"TestAnnotationFilePreconditions tests only pathlib — no _develop function exercised..."
Challenge: evidence=VALID suggestion=VALID resolution=as-suggested

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to Aaryan562/rf-detr that referenced this pull request Jun 2, 2026
Replace 'populated EMA metric' with accurate description: 'holds an EMA
metric object and received at least one batch update this epoch'. The gate
checks _ema_has_updates (at-least-one-batch flag), not metric tensor
contents. Also clarify body: cross-rank communication is via
_merge_metric_state_across_ranks + all_reduce, not compute().

[resolve roboflow#4] /review finding by foundry:doc-scribe (report: .reports/review/2026-06-02T05-43-56Z/review-report.md)

---
Co-authored-by: Claude Code <noreply@anthropic.com>
Borda added a commit to anatoly-ryabchenko/rf-detr that referenced this pull request Jun 14, 2026
…s count

Add three regression tests to TestFromCheckpointNumClassesProvenance and
a supporting fixture (args_only_checkpoint):

1. test_checkpoint_num_classes_from_args_not_marked_user_set — verifies
   that num_classes injected via the legacy checkpoint args dict (not via
   model_config) is also cleared from model_fields_set by from_checkpoint.
   Addresses the gap where the two_class_checkpoint fixture only exercised
   the model_config injection path.

2. test_explicit_default_num_classes_does_not_block_alignment — documents
   that passing num_classes=<ModelConfig default> explicitly does not pin
   the head; _align_num_classes_from_dataset treats user_overrode=False
   when value == default, so adaptation still proceeds.  Guards against
   accidental removal of the value!=default guard.

3. test_equal_class_count_does_not_rebuild_head — confirms the fix has
   no side-effect when dataset class count matches checkpoint class count;
   head shape must remain unchanged.

[resolve roboflow#2] foundry:qa-specialist (report: .reports/review/2026-06-13T18-05-46Z/review-report.md)
[resolve roboflow#4] foundry:qa-specialist (report: .reports/review/2026-06-13T18-05-46Z/review-report.md)
[resolve roboflow#5] foundry:qa-specialist (report: .reports/review/2026-06-13T18-05-46Z/review-report.md)

---
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Borda added a commit that referenced this pull request Jul 3, 2026
detr.py: deploy_to_roboflow raised RuntimeError with "Cannot export"
language even though the user called deploy; update message to say
"Cannot deploy" and reference export_for_roboflow as the prior step.

migration.md: "Removed in v1.9" section shipped with present-tense
language ("have been removed") before the actual removal. APIs still
emit DeprecationWarning in v1.8.x. Rename heading to "Planned for
Removal in v1.9", update body to future tense, and fix the comment
claiming imports raise ImportError (they still warn).

[resolve #4] @Copilot (gh) detr.py:2170
[resolve #6] /review finding by foundry:doc-scribe (report: .reports/review/2026-07-03T07-37-38Z/review-report.md)

---
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Borda added a commit to siromermer/rf-detr that referenced this pull request Jul 3, 2026
…lution

- fix(roboflow#4/OWASP-A01): add resolve().relative_to(root) path-traversal guard
  before is_dir() check on yaml-declared split path; traversal sequences in
  data.yaml (e.g. ../../other_project) now silently fall back rather than
  escape dataset root
- fix(roboflow#9): verify both derived images and labels dirs exist before returning
  from yaml-path branch; prevents returning non-existent labels path when
  images dir present but labels dir absent
- fix(roboflow#10): verify labels dir alongside images dir in val fallback loop
  (yolo.py:712-716); @Copilot finding — labels existence was unchecked

---
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Borda added a commit to anatoly-ryabchenko/rf-detr that referenced this pull request Jul 17, 2026
…tion

[resolve roboflow#3,roboflow#4] /review finding by foundry:sw-engineer (report: .reports/review/2026-07-17T05-57-25Z/review-report.md)

RFDETRDataModule.class_names only inspected _dataset_train/_dataset_val,
so evaluate()'s default split="test" (which builds only _dataset_test)
always saw class_names=None and the documented class-count-mismatch
UserWarning never fired -- the exact path issue roboflow#1110 exercises. Add
_dataset_test to the property's dataset tuple and replace the mocked
warning test with a real end-to-end one on a mismatched dataset.

evaluate(resolution=...) also called the shared _prepare_run_config,
which mutates model_config/model.args in place -- correct for train()
but undocumented and persistent for evaluate(), which is framed as
read-only inspection. Snapshot the resolution-related fields before
the call and restore them once the eval-only config copy has captured
the override, so predict()/export()/train() are unaffected by a prior
evaluate(resolution=...) call. Add a resolution-unchanged assertion to
the existing override test.
Borda added a commit to congbrian/rf-detr that referenced this pull request Jul 28, 2026
[resolve group] PR roboflow#1235 — items #3,4,5,8,12

Addresses review feedback on src/rfdetr/export/_coreml/{converter,torch_ops,op_coverage,__init__}.py
and the coremltools pin in pyproject.toml:
- #3 [gh][req] @Borda: _check_coremltools_available uses the module-level
  _IS_COREMLTOOLS_AVAILABLE flag instead of re-importing coremltools per call;
  also fixes the broad `except Exception` misreporting a broken-but-installed
  coremltools as missing (related /review finding, same function).
- roboflow#4 [gh][question] @Borda: documents why the ImportError branch in
  export_coreml's except clause is not dead code (ct.convert lazily imports
  private coremltools submodules); also narrows the ValueError/RuntimeError
  docstring contract to match actual behavior.
- roboflow#5 [report][req] sw-engineer: registry-patch critical section is now
  lock-guarded (thread-safety) and the idempotency check validates actual
  handler identity instead of trusting the _PATCHED bool alone.
- roboflow#8 [report][req] solution-architect: documents the coremltools private-API
  coupling and tested version matrix at the pin site and call sites.
- roboflow#12 [report][suggest] codex (converter.py portion): documents that CoreML
  output names are coremltools-inferred and must be matched positionally.

Challenge: evidence=VALID suggestion=VALID resolution=as-suggested (all five)

---
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Borda added a commit that referenced this pull request Jul 28, 2026
Add exact IoU==1.0 identity checks, mixed-degeneracy batch finiteness +
diagonal parity, degenerate-row gradient isolation, N=0 empty inputs,
unequal-length ValueError guards, and disjoint/edge-touch/large-coord
parity regimes. Collapse the four zero-area finiteness tests into a
single parametrized case over all IoU/GIoU variants.

[resolve #3] /review finding by foundry:qa-specialist (report)
[resolve #4] /review finding by foundry:qa-specialist (report)

---
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Borda added a commit that referenced this pull request Jul 29, 2026
Ternary in coco.py/yolo.py builders gates on include_keypoints before
reading this field's default, so None and [] produce identical output.
Avoids an unnecessary breaking type/default change to a field released
in v1.9.0.

[resolve #4] PR #1248 — solution-architect finding
Borda added a commit that referenced this pull request Jul 31, 2026
- README methodology note: qualify that Params are deployment (fused) nn.Module
  parameter counts (model.parameters()), not raw checkpoint tensor counts, and
  that † rows are author-reported (items #1 @adhavan18, #2 Copilot)
- README RF100-VL table: SAM 3 † License "SAM" -> "N/A" (author-reported row,
  not a packaged checkpoint) (item #3 Copilot)
- benchmarks.md Params (M) definition: reflow to a single sentence, add the
  nn.Module-vs-checkpoint-tensor clarification and the † author-reported note
  (items #1, #4 Copilot)

Challenge log: 4 as-suggested, 0 self-resolved, 0 rejected

---
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Borda added a commit to adhavan18/rf-detr that referenced this pull request Aug 4, 2026
_make_sharpen() passed Albumentations' alpha (0=noop, 1=fully
sharpened, never blurs) straight through as Kornia's sharpness
factor, which is pivoted at 1.0 (0=blur, 1=noop, >1=sharpen).
The default alpha=(0.2, 0.5) therefore blurred the image on the
GPU backend instead of sharpening it. Shift the resolved range
with sharpness = 1.0 + alpha so the two conventions align, and
correct the docstring/aug_configs.py claim that alpha "passes
through unchanged". Adds a directional edge-energy regression
test so a reintroduced inversion fails CI instead of passing
248 unrelated assertions silently.

[resolve roboflow#1, roboflow#4] PR roboflow#1277@adhavan18 (gh) + foundry:sw-engineer, foundry:qa-specialist (report: .reports/review/2026-08-04T17-36-54Z/review-report.md)

---
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Borda added a commit to JESUSROYETH/rf-detr that referenced this pull request Aug 5, 2026
Resolves review findings from /oss:review PR roboflow#1279 (report: .reports/review/2026-08-05T09-41-01Z/review-report.md), items roboflow#2,3,4,5,6,7,8,9,10,14,15,18. All findings cross-validated by foundry:challenger/sw-engineer/qa-specialist before implementation.

- Reset torch.cuda.reset_peak_memory_stats at fit start (gated by _is_cuda), so max_mem reflects this run's footprint rather than a process-lifetime / batch_size="auto"-probe peak (roboflow#2)
- Warn via rank_zero_warn + setdefault instead of silently overwriting a same-named user-logged metric (roboflow#3)
- Reword class docstrings from "GPU" to "CUDA" for accuracy — implementation is CUDA-only (roboflow#4)
- Add ProgressBar base to _GpuMemoryMetricsMixin, dropping the now-unresolvable type:ignore[misc] (roboflow#5, subsumes roboflow#17)
- Test peak-reset semantics across sequential get_metrics() calls (roboflow#6)
- Add missing Rich progress bar coverage for the cuda-present-but-not-initialized branch (roboflow#7)
- Test _is_cuda with None/non-torch.device input (roboflow#8)
- Add rounding-boundary test cases (0 bytes, 0.5MB boundary) (roboflow#9)
- Fold xla/tpu device-type case into the existing non-cuda parametrize (roboflow#10)
- Fix module docstring overstating on_test_end's gating mechanism (roboflow#14)
- Document max_mem as rank-local under DDP (roboflow#15)
- Match legacy "123 MB" spacing (space before unit) for restoration parity (roboflow#18)

34/34 tests pass (tests/training/callbacks/test_gpu_memory_progress_bar_callback.py + tests/training/test_trainer.py).

---
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Borda added a commit that referenced this pull request Aug 5, 2026
- Reset torch.cuda.reset_peak_memory_stats at fit start (gated by _is_cuda), so max_mem reflects this run's footprint rather than a process-lifetime / batch_size="auto"-probe peak (#2)
- Warn via rank_zero_warn + setdefault instead of silently overwriting a same-named user-logged metric (#3)
- Reword class docstrings from "GPU" to "CUDA" for accuracy — implementation is CUDA-only (#4)
- Add ProgressBar base to _GpuMemoryMetricsMixin, dropping the now-unresolvable type:ignore[misc] (#5, subsumes #17)
- Test peak-reset semantics across sequential get_metrics() calls (#6)
- Add missing Rich progress bar coverage for the cuda-present-but-not-initialized branch (#7)
- Test _is_cuda with None/non-torch.device input (#8)
- Add rounding-boundary test cases (0 bytes, 0.5MB boundary) (#9)
- Fold xla/tpu device-type case into the existing non-cuda parametrize (#10)
- Fix module docstring overstating on_test_end's gating mechanism (#14)
- Document max_mem as rank-local under DDP (#15)
- Match legacy "123 MB" spacing (space before unit) for restoration parity (#18)

---------

Co-authored-by: Jesús Royeth <JESUSROYETH@users.noreply.github.com>
Co-authored-by: Jirka Borovec <6035284+Borda@users.noreply.github.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant