Граф коммитов

332 Коммитов

Автор SHA1 Сообщение Дата
Shruthi42 f715cbd819
Github action to check changelog should return non-zero exit status on failure (#418)
Script changed to return an exit status of 1 when the check fails.
2021-03-15 15:32:29 +00:00
Anton Schwaighofer 88188c29ad
Upgrade to Pytorch 1.8 (#411)
Updated also `pytorch-lightning` to 1.1.8, and the AzureML libraries to 1.23
2021-03-15 13:33:25 +00:00
Anton Schwaighofer 1e6389d9f8
Add a Github action to check changelog (#416)
Check if CHANGELOG.md has been modified and contains the PR number
2021-03-12 19:20:46 +05:30
Anton Schwaighofer b24d2fed6e
Fix bug in the SynchronizeWithADO workflow (#415) 2021-03-12 16:57:51 +05:30
Anton Schwaighofer c83a938126
Synchronize Issues with Azure DevOps (#414) 2021-03-11 09:53:28 +00:00
Jonathan Tripp 439ec0ff40
Additional parameter for the zip file name when scoring (#407)
Added parameter result_zip_dicom_name for the zip file name when scoring and using dicom.
2021-02-26 09:23:36 +00:00
Jacopo Teneggi a3f7963c73
Replace binary_cross_entropy with binary_cross_entropy_with_logits (#402)
Existing metrics for binary classification models use binary cross entropy, computed off the posteriors. That is not safe to cast to 16bit precision. This PR enables that. Metrics can now computed either off the logits or off posteriors.
2021-02-24 13:33:56 +00:00
Javier bbc1d67e58
Change inference to take DICOM input and produce DICOM-RT output for segmentation models (#366)
Add use-dicom command line option to inference. If set then scoring expects input to be a zip of a DICOM series and the output will be a zip of a DICOM-RT file.
2021-02-22 11:13:30 +00:00
Anton Schwaighofer 7def8a1076
Fix issues with GPU utilization logging (#400)
- Fix a problem with the GPU utilization metrics not being correctly visible in AzureML
- Log GPU utilization as a table, so that we don't have too many metrics
2021-02-18 17:29:09 +00:00
Anton Schwaighofer cc96b620c1
docu update (#399)
Closes #397
2021-02-15 16:37:29 +05:30
Anton Schwaighofer eb5f931f20
Fix error messages in test coverage reporting (#394)
- Coverage reporting complains that it does not like the HTML output folder.
- Exclude the Tests* folders from the report, so that the overall coverage figures make more sense
2021-02-10 14:29:20 +00:00
Anton Schwaighofer 7ef6ff9ecc
Improve documentation for dataset upload (#392) 2021-02-09 17:02:15 +05:30
Anton Schwaighofer b40d6d13c0
Enable multi-node training (#385)
- Enable training on multiple machines in AzureML
- Exclude private settings files from AzureML snapshot
2021-02-08 14:21:50 +00:00
Clemens Siebler 5d5e55e314
Documentation updates (#368)
Co-authored-by: Javier <jaalvare@microsoft.com>
Co-authored-by: Anton Schwaighofer <antonsc@microsoft.com>
2021-02-03 09:03:19 +00:00
Shruthi42 b415367431
Preserve image aspect ratio for images in classification report (#379)
Preserve the original aspect ratio for images displayed in the classification report.
2021-02-02 16:56:13 +00:00
Anton Schwaighofer 312afc3bf3
renaming master -> main (#384)
Updates to match the new default branch name "main".
2021-02-02 15:48:21 +00:00
Javier 733019f8af
Create codeql-analysis.yml (#383)
* Create codeql-analysis.yml

* Update codeql-analysis.yml

* Update codeql-analysis.yml
2021-02-02 13:52:16 +00:00
Anton Schwaighofer 0d152956de
Update for release (#380) 2021-01-29 12:12:52 +00:00
Shruthi42 24585c7240
Remove sub-fold documentation (#369)
Remove old documentation about sub-fold cross validation, which is no longer supported.
2021-01-29 12:08:31 +05:30
Anton Schwaighofer bc90c65f0a
Migrate to Pytorch Lightning (#323)
This PR swaps out all of the previously hand-written training routines, and switches them to PyTorch Lightning.
2021-01-28 15:25:53 +00:00
Daniel Coelho de Castro b320649e22
Implement grouped dataset splits and cross-validation (#363)
* Fix vacuous test for at-least-one in dataset split

The expression 'all([len(x[mode]) >= 1] for mode in x.keys())' will always evaluate to True, because 'bool([False]) == True'.

* Fix post-init validation of pairwise split intersections

Previously, it erroneously checked for empty three-way intersection of train,
test, and val, whereas the correct check is for pairwise intersections:
train-test, train-val, and test-val.

* Add group_column and validation logic

* Add method to split dataset by arbitrary key column

* Delegate DatasetSplits.from_subject_ids to _from_split_keys

* Add DatasetSplits.from_groups convenience method

* Add grouping logic to DatasetSplits.from_proportions

* Implement grouped k-fold cross-validation

This employs scikit-learn's GroupKFold class.

* Add tests for grouped splits and grouped k-fold crossval

* Update changelog

* Fix mypy warnings

* Document that restricted and by-institution splits don't support grouping

* Add validation of groups in test data

* Move itertools.combinations import to top of file

* Add grouped splits usage instructions to changelog

* Move itertools.combinations import to top of test file
2021-01-22 16:56:55 +00:00
Shruthi42 db4d261c7a
Update notebook formats to 4.5 (#367)
With the accepted JEP to add cell IDs to the notebook format, notebooks now have a unique cell ID associated with each cell.

Fixes #365
2021-01-20 09:34:15 +00:00
Javier 7e8a354bbf
Remove model configurations dependency on Tests. This was breaking inference. (#361)
* Fix docs for HellowWorld

* Fix docs for HellowWorld

* Add more details

* Move test paths to common

* Fix path
2021-01-15 17:25:57 +00:00
Javier 0c424abdd6
Fix docs for HelloWorld (#360)
* Fix docs for HellowWorld

* Fix docs for HellowWorld

* Add more details
2021-01-15 13:11:23 +00:00
Shruthi42 787c6d8a80
Use mypy_runner with PyCharm (#358)
Update mypy_runner.py so that it can be used as a PyCharm external tool.
2021-01-13 10:49:06 +00:00
Shruthi42 be9323adbe
Remove sub fold cross validation (#357)
Removes the ability to perform sub-fold cross validation. Removes parameters `number_of_cross_validation_splits_per_fold` 
and `cross_validation_sub_fold_split_index` from ScalarModelBase.
2021-01-12 23:04:44 +05:30
Anton Schwaighofer 3fa74c2a2c
Remove pre-processing of source version message (#356)
Pre-processing of source code message causes problems when those contains shell special characters. Remove and rely on git package to pick those up
2021-01-11 15:50:26 +00:00
Jonathan Tripp c54a7281f9
Check more locations for dataset file and fail if comparison files mi… (#348)
Check more locations for dataset file and fail if model comparison requested but comparison files missing.
2021-01-07 11:02:55 +00:00
Shruthi42 0e16a6517b
Print image type (TP, FP, TN, FN) for every image in classification report (#325) 2021-01-07 15:33:18 +05:30
Shruthi42 d0ecbb1e68
Pin PyJWT package (#347) 2021-01-04 11:24:23 +00:00
Jonathan Tripp 70f7861997
Add in unit tests and prototype for new config classes (#336)
* Renamed HeadAndNeckBase to HeadAndNeckPaper, and ProstateBase to ProstatePaper;
* Added new extensions of SegmentationModelBases HeadAndNeckBase and ProstateBase;
* Delete unused ProstatePaperBase.py;
* Added validation for SliceExclusionRule and SummedProbabilityRule.
2020-12-11 17:00:07 +00:00
Javier e965ad892e
Add publication (#334)
* Add publication

* Update README.md
2020-12-07 16:09:20 +00:00
Anton Schwaighofer 1a7b64f6c3
Remove more dead arguments (#333) 2020-12-04 11:31:37 +00:00
Javier a2c27e19d7
Remove blobxfer (#330)
* Remove blobxfer

* Update CHANGELOG.md

* Remove configs that are not required

* Remove from environment.yml

* Fix numba issue

* Improve CHANGELOG.md

* Fix tests

* Remove configs that are not required
2020-12-03 10:44:05 +00:00
Anton Schwaighofer 014c74e34f
Fix ensemble checkpoint download (#326)
* test

* fix test

* download fix

* create separate model folder

* fixing tests

* making HD check better

* Tests

* inverted logic

* registering on parent run

* docu
2020-11-25 16:25:02 +01:00
Ivan Tarapov c434d31293
Broken formatting (#319)
Fixing broken formatting of a code snippet

Co-authored-by: Javier <jaalvare@microsoft.com>
2020-11-17 14:59:09 +00:00
Anton Schwaighofer 94f675d3ab
Fix for HelloWorld example on fresh checkout (#320) 2020-11-17 08:42:42 +01:00
Anton Schwaighofer 1e86bfd008
Ensure that PR builds fail on any job errors, fix component governance (#317)
- The "TrainViaSubmodule" step presently only fails if the last python call fails. Fix that.
- Component Governance was accidentally disabled in #290
2020-11-16 16:27:10 +00:00
Anton Schwaighofer cd4458e15c
Ensure that models are registered with consistent file structure (#276)
- Make file structure consistent across normal training and training when InnerEye is a submodule
- Add test coverage for the file structure of registered models
- Add documentation around how the model structure looks like
- If multiple Conda files are used in an InnerEye run, they are merged into one environment file for deployment. The complicated merge inside of `run_scoring` could be deprecated in principle, but leaving it there if we need for legacy models.
- Add test coverage for `submit_for_inference`: Previous test was using a hardcoded legacy model, meaning that any changes to model structure could have broken the script
- The test for `submit_for_inference` is no longer submitted from the big AzureML run, shortening the runtime of that part of the PR build. Instead, it is triggered after the `TrainViaSubmodule` part of the build. The corresponding AzureML experiment is no longer `model_inference`, but the same experiment as all other AzureML runs.
- The test for `submit_for_inference` was previously running on the expensive `training-nd24` cluster, now on the cheaper `nc12`.
- `submit_for_inference` now correctly uses the `score.py` file that is inside of the model, rather than copying it from the repository root.
2020-11-16 10:05:32 +00:00
Anton Schwaighofer 5163969fa5
Document how we do releases (#315)
- Introducing a Changelog file
- Describe how we release
2020-11-13 14:03:51 +00:00
Shruthi42 363bac97d5
Update testing.md (#313) 2020-11-06 14:06:31 +01:00
Anton Schwaighofer 42b06890ec
Update WSL documentation (#309) 2020-11-05 12:52:47 +00:00
Ozan Oktay 72165644dd
Update Cross Entropy Loss for Reduced Memory Usage (#307) 2020-11-03 19:59:16 +00:00
Shruthi42 3c04bfdcb4
Remove unnecessary notices in THIRDPARTYNOTICES.md 2020-11-03 15:37:43 +00:00
Shruthi42 22da1928b8
Load model weights from URL or local checkpoint (#282)
- Adds a parameter `weights_url` to DeepLearningConfig to download model weights from a URL.
- Adds a parameter `local_weights_path` to DeepLearningConfig to initialize model weights from a local checkpoint. This can also be used to perform inference on a checkpoint from a local training run.
- Refactors all checkpoint logic, including recovering from run_recovery into a class CheckpointHandler
- Adds a parameter `epochs_to_test` to DeepLearningConfig which can be used to specify a list of epochs to test in a training/inference run.
-  Deprecates DeepLearningConfig parameters `test_diff_epochs`, `test_step_epochs` and `test_start_epoch`.

Closes #178 
Closes #297
2020-11-03 20:17:35 +05:30
Anton Schwaighofer e7a88877c5
Switch more code to using Path (#305)
- Rename the `TestOutputDirectories` class because it is picked up by pytest as something it expects to contain tests
- Switch fields to using `Path`, rather than `str`
2020-11-02 19:49:13 +00:00
Anton Schwaighofer d4b9720c81
Upgrade AzureML SDK, check framework versions (#304)
Ensure that AzureML SDK is recent enough to recognize our PyTorch version.
2020-10-30 15:13:59 +00:00
Anton Schwaighofer 9a0680e354
Include a Pycharm config file (#302)
- Updated the WSL documentation to fix Ubuntu 20.04
- Simplified environment setup
2020-10-28 20:22:22 +00:00
Javier a68b151242
Add numpy and hdf5 support to segmentation models (#294)
* Add npy support to segmentation models

* convert test to compressed numpy

* Add hdf5

* Fix mypy

* Fix mypy

* Fix mypy

* Fix mypy

* Add test for hdf5

* Fix new format

* Fix flake8

* Fix mypy and tests

* Fix tests

* End to end test for hdf5

* Fix tests

* Fix tests

* Fix tests

* Fix flake8

* Fix test

* Fix test

* Remove intorstring

* Fix mypy

* Fix mypy

* Fix test

* Fix test in windows

* Fix flake8

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* Add more tests

* Add more docs
2020-10-28 16:27:20 +00:00
Anton Schwaighofer 163ea0ab53
Make AzureML datastore name configurable (#300) 2020-10-27 14:32:51 +00:00