Repository navigation
Chore/repo cleanup - #94
Merged
Merged
Conversation
…estore Shape-based label restore decided foreground per label, so voxels where two labels meet could fall back to background on the resampled axis. Foreground now comes from the signed depth of all labels together and the per-label depth only picks the label. Binary masks are bit-identical to before, so the VS deployment output does not change. Also in vision_core, vision_data, vision_plot and vision_inference: - repr/print of MedImage and MedMask no longer raises - MedImageDataLoaders.from_df passes batch_tfms on and applies path/folder as a file name prefix like fastai - inference entry points cast the input to float32, as in training - inference() can save predictions for a list of files or without fn - show_med_img accepts numpy arrays - the duplicated restore code of inference/inference_from_config is one helper; dead affine fallbacks and local imports removed - vision_all re-exports all of vision_plot - docstrings, page descriptions, hidden test cells
…g axis GpuPatchAugmentation built the affine_grid theta in (x, y, z) = (W, H, D) order from (D, H, W) vectors, so per-axis degrees and translation acted on the reversed array axis, and scales were inverted (0.5 enlarged content). Index i now acts on array axis i and scales follow TorchIO's meaning. Noise std is drawn per sample from (0, std) like TorchIO, and a blur sigma of 0 leaves the sample unchanged instead of producing NaN. BREAKING CHANGE: GPU augmentation with per-axis degrees, translation or scales behaves differently, so retraining with the same config (e.g. the VS config degrees=(5, 5, 30)) sees the intended policy, not the old one. Already trained models are unaffected. Also: corrected list of GPU vs CPU differences, documented accepted config forms and PadOrCrop mask_name, OneOf accepts fastMONAI wrappers, removed the unused normalization registry alias and FocalLoss import, loss docstrings, hidden test cells.
…masks AccumulatedDice took an argmax over channels, so a one-channel sigmoid model always scored 0. One channel now means sigmoid >= 0.5, and any other channel count that does not match n_classes raises. calculate_all_metrics raises on masks that are not binary instead of returning wrong numbers. preprocess_dataset now validates its own cache when inputs are symlinks whose names differ from their targets, and a metadata cache hit returns the caller's path. BREAKING CHANGE: removed the deprecated calculate_haus and MedDataset.calculate_target_size, and the always-True `binary` parameter of calculate_all_metrics and evaluate_segmentations. Also: https IXI URLs, simpler nodule dataframe builder, docstrings, page descriptions, dropped a citation that argues against grid-based metrics.
MedDataBlock on a dataframe with 'image'/'label' columns has no image-path column for split logging, so ModelTrackingCallback raised in before_fit and left the MLflow run active. The split identity now falls back to the column get_x reads. Runs the callback starts are ended (as FAILED on errors), also when auto_start=False finds no active run; a user's own run is never ended. Also: - log_metrics skips NaN and inf; MLflow stores inf as max float - a binary patch contract must use the same threshold for patch inference and output decoding (checked when created, float32-tolerant) - the MLflow UI runs with this Python's mlflow, keeps ownership of a server it started and shows the server's stderr when it fails to start - docstrings, section headings, hidden test cells, dead code removed BREAKING CHANGE: removed start_ui(auto_open=...) and MLflowUIManager.check_mlflow_installed.
sampler_type='weighted' was accepted and documented but always raised NotImplementedError. PatchConfig now rejects it up front. MedPatchDataLoaders built directly from two loaders report apply_reorder, target_spacing and patch_config from the train loader's config, so MLflow logs the right values. Also removed dead code (an unreachable affine guard, an unused attribute and loop variable), moved imports to the top and updated docstrings and hidden test cells. Prediction file names, return types and the private methods used by the VS PACS engine are unchanged. BREAKING CHANGE: sampler_type='weighted' now raises ValueError.
- the README/index logo pointed at a URL that returns 404 - nbdev turns the whole title cell into front matter, so intro text in 12a, 12b, 12c, 11f and 11d never rendered; it now has its own cell - 11b passed splitter= to from_df, which ignored it and split randomly; it now uses valid_col - stale prose in 11b, 11c, 11d and 12c, a dead link, typos, references to the removed research/vs_seg folder, and the GPU augmentation note in 12a - CITATION.cff author name fields, CONTRIBUTING install command and commit convention
pandas needs xlrd>=2.0.1 for read_excel, which the IXI helpers use. tabulate is not imported anywhere, and the PyPI quarto package is a thin wrapper whose script shadows the real quarto CLI (it broke nbdev_readme locally); nbdev installs the CLI itself. The allowed metadata settings were parsed as a key literally named "True", so leaving them empty keeps nbdev_clean behaviour the same. Also a real package description.
push and pull_request both fired for every commit on a PR branch. Pushes now trigger CI only on main. pytest comes from the dev extras the nbdev-ci step installs, so the separate install is gone.
The IXI test image exception was root-anchored and never matched nbs/images/. MLflow database backups and the local todo.html were not ignored, so `git add -A` could have committed them. Removed duplicate rules, and tracked research/.gitignore, whose rule keeps scripts in presentation build folders out of git.
… docs - spine/inference_script.py used an undefined name for the save path - spine notebook 00 used an inplace fillna that does nothing in pandas 3 - the VS deployment README test command skipped 24 of 75 tests - the PACS guide named the old vs-seg image and listed outdated files - broken links and Colab badges, a dead Hugging Face Space claim, stale version notes, a hard-coded home path, and the misspelled contributor surname in the VS label docs (the released v1 zip keeps the old spelling) - removed unused aliases and re-exports in the VS workflow package Nothing that ships in the VS PACS container changed.
Minor bump because this release removes public API and changes what GPU patch augmentation does with per-axis degrees, translation and scales.
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.
No description provided.