Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
401 commits
Select commit Hold shift + click to select a range
a182da6
1947 Enhance load decathlon datalist API (#1948)
Nic-Ma Apr 5, 2021
fbce3c2
Add progress bar to LesionFROC (#1951)
bhashemian Apr 5, 2021
501026b
pipeline for releasing the docker images (#1953)
wyli Apr 6, 2021
81cfbf0
remove unused RandomizableTransform (#1952)
wyli Apr 6, 2021
5c411d1
1956 - docker image building pipelines (#1957)
wyli Apr 7, 2021
0813ae5
1955 style issue (#1958)
wyli Apr 7, 2021
d6ed956
Update garbage collection assertion (#1959)
bhashemian Apr 7, 2021
7581255
Working ParameterScheduler (#1949)
danieltudosiu Apr 7, 2021
baca6e0
[DLMED] remove warning (#1962)
Nic-Ma Apr 7, 2021
99bca69
1916 Add support for custom events in workflows (#1961)
Nic-Ma Apr 7, 2021
8cbd59a
1965 - register_backward_hook (#1966)
wyli Apr 7, 2021
d56c002
1968 Enhance meta data doc-string in SegmentationSaver (#1969)
Nic-Ma Apr 8, 2021
e7a7422
Adding EfficientNetsB0-B7 support (#1938)
masadcv Apr 9, 2021
e9ac80c
1866 Add TransformInverter handler (#1970)
Nic-Ma Apr 9, 2021
3a7cd46
1889 - changelog for v0.5.0 (#1923)
wyli Apr 9, 2021
d178706
1977 Support different inverse interpolation mode (#1978)
Nic-Ma Apr 9, 2021
d4093c7
Update technical highlights for v0.5 (#1981)
Nic-Ma Apr 9, 2021
5f69a60
1973 - docstring update convs example (#1980)
wyli Apr 10, 2021
a625d38
test runner (#1986)
kate-sann5100 Apr 10, 2021
5eed058
1987 Add support for a list of Tensor in metrics handlers (#1988)
Nic-Ma Apr 10, 2021
f5d5737
add timeout (#1989)
wyli Apr 11, 2021
c3dbb8a
fixes ci error handling (#1990)
wyli Apr 11, 2021
b4d8780
1889 update preview version number (#1991)
wyli Apr 12, 2021
d1f4e6f
fix comprehension error (#1995)
rijobro Apr 12, 2021
b3eb73a
TTA progress bar, use torch for mode, add label meta_data (#1992)
rijobro Apr 12, 2021
d72f61e
include meta when inverting (#1997)
wyli Apr 13, 2021
3383380
Update transform inverter for postfix (#1999)
Nic-Ma Apr 13, 2021
2707407
update (#2000)
wyli Apr 13, 2021
583e35b
Add more test for nearest interpolation in TransformInverter (#2001)
Nic-Ma Apr 13, 2021
2c6d688
2003 - adds a what's new page (#2005)
wyli Apr 14, 2021
2d8595d
1985 Add SaliencyInferer (#2006)
Nic-Ma Apr 14, 2021
5f47407
2007 Enhance the unit tests of MapLabelValue transform (#2008)
Nic-Ma Apr 14, 2021
88806e1
2011 Add warning for resample in SegnmentationSaver (#2013)
Nic-Ma Apr 15, 2021
357e6d4
Plot engine fix (#2015)
ericspod Apr 16, 2021
9f4da6a
allow slicing with SpatialCrop(d) (#1954)
rijobro Apr 16, 2021
abcca9b
raising error tolerance to prevent rare failure (#2025)
charliebudd Apr 16, 2021
9f409c1
fixes tutorial issue 183 (#2031)
wyli Apr 19, 2021
1ddf4af
2032 add alias for DenseNets (#2037)
Nic-Ma Apr 19, 2021
a7a9430
[DLMED] enhance error message (#2038)
Nic-Ma Apr 19, 2021
170fc91
2032 Add more alias for other networks (#2040)
Nic-Ma Apr 19, 2021
abad841
RandTorchVision (#2048)
bhashemian Apr 20, 2021
fc1546a
[DLMED] add post_func arg (#2049)
Nic-Ma Apr 20, 2021
de677ca
update docstring example (#2055)
wyli Apr 20, 2021
14976b5
fixes tutorial issue 184 (#2053)
wyli Apr 20, 2021
8057ae8
Update cucim to 0.19.0 (#2057)
bhashemian Apr 20, 2021
13bf996
2044 Add check for label data type (#2060)
Nic-Ma Apr 21, 2021
51ecc48
[DLMED] enhance metrics (#2061)
Nic-Ma Apr 21, 2021
ac47032
2045 2058 Add support `device` arg in TransformInverter (#2062)
Nic-Ma Apr 21, 2021
5cbcaf6
fixes tutorial 190 (#2063)
wyli Apr 21, 2021
4a0aae8
fix duplication of key_transforms in RandSpatialCropSamplesd (#2010)
rijobro Apr 21, 2021
898d073
2018 Save inverted meta dict into state.batch (#2065)
Nic-Ma Apr 22, 2021
7379ab8
Add pointers to issues for community contributors (#2071)
thewtex Apr 22, 2021
e0035b1
Start with a welcoming statement in the contributing docs (#2072)
thewtex Apr 22, 2021
fea9307
Remove transpose from the tissue masks (#2074)
bhashemian Apr 23, 2021
f843d66
2051 Add support to K divisible crop in CropForeground (#2064)
Nic-Ma Apr 23, 2021
f45108b
RandTorchVisionD update (#2076)
wyli Apr 23, 2021
36d855c
enhance persistent dataset tempfile (#2086)
wyli Apr 25, 2021
dde1100
update box_start/end for deepgrow (#2088)
rijobro Apr 26, 2021
8f2856d
2092 Enhance NIfTI writer logging (#2093)
Nic-Ma Apr 27, 2021
5eb9198
[DLMED] add flag (#2094)
Nic-Ma Apr 27, 2021
9e1a7d4
2095 fix multi-gpu issue in ClassificationSaver (#2096)
Nic-Ma Apr 27, 2021
feb3a33
Add detach to the tensors in handlers (#2100)
Nic-Ma Apr 27, 2021
1f2247e
Adding error messaging for unsupported tensor shapes (#2089)
charliebudd Apr 27, 2021
4148833
Enhance smartcache doc-string and unit test (#2105)
Nic-Ma Apr 28, 2021
12f267c
2103 Add deepcopy to PosNegCrop transform (#2104)
Nic-Ma Apr 28, 2021
304d1a8
only pip install cucim if on linux (#2106)
rijobro Apr 28, 2021
8bb08a8
re-enable dev branch tests (#2107)
wyli Apr 28, 2021
35cd9df
2041 - update readme/index page (#2108)
wyli Apr 28, 2021
ca26e51
Rician Noise Transform (#2066)
lyndonboone Apr 29, 2021
299f2c2
[DLMED] improve doc-string of partition_dataset (#2109)
Nic-Ma Apr 29, 2021
06fd8fe
fix SegResNetVAE docstring to match args (#2113)
vanossj Apr 29, 2021
198cd2f
2111 - adds a `map_items` option to compose (#2112)
wyli Apr 30, 2021
a6ca680
adds basic py3.9 tests (#2114)
wyli Apr 30, 2021
d93df0e
create meta data key if necessary (#2119)
rijobro Apr 30, 2021
fd9081b
2118 speed up quick test (#2120)
wyli Apr 30, 2021
2db93d8
efficientnet mypy fix BlockArgs class and unittest (#2126)
masadcv May 1, 2021
45c6cf6
2122 - fixes subprocess transforms (#2128)
wyli May 3, 2021
e6b7787
remove requirements workaround (#2134)
wyli May 4, 2021
7ef0142
Temporarily changing crf test to allow some errors (#2135)
charliebudd May 4, 2021
3affd03
remove default cache_dir None (#2137)
wyli May 4, 2021
9536821
Fix 2132 - CuPy <> NumPy conversion (#2133)
bhashemian May 4, 2021
41e62e5
Transposed (#2144)
rijobro May 5, 2021
9c62769
Pytype fix (#2153)
rijobro May 6, 2021
e816d18
skip RandAffine if possible (#2151)
rijobro May 6, 2021
c16c629
2146 Enhance PersistentDataset with `shutil.move` (#2147)
Nic-Ma May 7, 2021
2a4c9e5
Revert "Pytype fix (#2153)" (#2157)
wyli May 7, 2021
bf5a7e9
2150 2152 Enhance metrics summary report (#2156)
Nic-Ma May 7, 2021
4259151
fix cachedataset w persistent workers problem by deep copying (#2121)
rijobro May 7, 2021
e977596
Adding Regression Evaluation Metrics (#2084)
masadcv May 8, 2021
68e2d78
2155 Enhance tests of UNet for user's case (#2160)
Nic-Ma May 10, 2021
3bd0245
2145 Extract invert logic from `TransformInverter` handler (#2165)
Nic-Ma May 10, 2021
eca3f19
delete set_visible_devices (#2168)
rijobro May 10, 2021
6af86bc
2169 Support more collate and list of data (#2170)
Nic-Ma May 11, 2021
3045ade
fix typo (#2176)
rijobro May 11, 2021
6b0df49
Add reference for surface distance metric (#2182)
yiheng-wang-nv May 12, 2021
89e3ff3
2177 Add max_roi_size to RandSpatialCrop (#2178)
Nic-Ma May 12, 2021
6c0d8d7
fix set visible devices (#2174)
rijobro May 12, 2021
4ef7d22
More efficient SmartCacheLoader (#2181)
cgrain May 12, 2021
a5cf253
2099 - enhances dataloader/randomizable docstrings (#2188)
wyli May 13, 2021
b94fe25
tested (#2192)
wyli May 13, 2021
e68af74
initial network consistency test (#2171)
rijobro May 14, 2021
29a0373
enhance norm and act layers (#2166)
yiheng-wang-nv May 14, 2021
05e1ec2
update msg (#2197)
wyli May 14, 2021
0e6f945
Added Gibbs transform (#2163)
yanielc May 14, 2021
95726b0
enhance get layers API (#2199)
wyli May 14, 2021
97de238
2180 Add RandScaleCrop transform (#2194)
Nic-Ma May 14, 2021
bbca50d
fixes logo link (#2202)
wyli May 14, 2021
96cb3cb
2097 CoordConv transform (#2162)
marksgraham May 15, 2021
ca0bda1
Add warnings for inf/nan surface distance (#2205)
yiheng-wang-nv May 17, 2021
ef66345
2198 Add CenterScaleCrop transform (#2207)
Nic-Ma May 17, 2021
fed0136
allow sequence for network consistency (#2209)
rijobro May 18, 2021
bb08ea4
2203 Add SaveClassifcation transform (#2204)
Nic-Ma May 18, 2021
e6258c9
2041 - fixing main/releasing branch CI/CD; update contributing.md (#2…
wyli May 19, 2021
1ee459b
2208 Add `meta_keys` arg to the components (#2214)
Nic-Ma May 19, 2021
26ee695
cleaning allocated memory (#2216)
charliebudd May 19, 2021
ba03150
array transforms inherit Transform (#2219)
wyli May 20, 2021
4c6af53
inverse adjust contrast (#2217)
rijobro May 20, 2021
25d4b5a
2026 Make all the data temporarily available for post transforms (#2222)
Nic-Ma May 21, 2021
ebfd550
improve error msg (#2229)
wyli May 21, 2021
2fb4b21
2172 caching grid for randaffine (#2228)
wyli May 21, 2021
a49a63c
1871 thread-safety for the cache-based datasets (#2227)
wyli May 21, 2021
33539db
fix type for margin argument in CropForegroundd (#2234)
ambroslins May 24, 2021
49f8ecd
1994 - adds pip install tests (#2233)
wyli May 24, 2021
fac9350
SaveImage print_log (#2237)
rijobro May 24, 2021
81994d2
2236 Fix the duplicated key issue in CopyItemsd transform (#2238)
Nic-Ma May 24, 2021
5d46589
fixes network docs (#2240)
wyli May 24, 2021
c3a5bdd
enhance downloading APIs (#2242)
wyli May 25, 2021
8516d6c
2223 Add PostProcessing handler (#2243)
Nic-Ma May 25, 2021
013186d
2221 Change InvertD and TransformInverter to in-place operation (#2235)
Nic-Ma May 25, 2021
fbfda15
Update type hints for act and norm (#2254)
yiheng-wang-nv May 26, 2021
3ff988f
Revert "inverse adjust contrast (#2217)" (#2259)
wyli May 26, 2021
e7da244
Adding error messaging for unsupported tensor shapes (#2089)
charliebudd Apr 27, 2021
21e279f
2103 Add deepcopy to PosNegCrop transform (#2104)
Nic-Ma Apr 28, 2021
f83dd94
only pip install cucim if on linux (#2106)
rijobro Apr 28, 2021
b1ff637
re-enable dev branch tests (#2107)
wyli Apr 28, 2021
acac3ea
2041 - update readme/index page (#2108)
wyli Apr 28, 2021
98cb0e3
2111 - adds a `map_items` option to compose (#2112)
wyli Apr 30, 2021
b1b5873
adds basic py3.9 tests (#2114)
wyli Apr 30, 2021
ae99818
create meta data key if necessary (#2119)
rijobro Apr 30, 2021
51c26f1
2118 speed up quick test (#2120)
wyli Apr 30, 2021
3a13741
efficientnet mypy fix BlockArgs class and unittest (#2126)
masadcv May 1, 2021
2b42329
remove requirements workaround (#2134)
wyli May 4, 2021
1269944
Temporarily changing crf test to allow some errors (#2135)
charliebudd May 4, 2021
d289987
skip RandAffine if possible (#2151)
rijobro May 6, 2021
f1dc957
2146 Enhance PersistentDataset with `shutil.move` (#2147)
Nic-Ma May 7, 2021
ee9b29f
fix cachedataset w persistent workers problem by deep copying (#2121)
rijobro May 7, 2021
ce278f1
fix set visible devices (#2174)
rijobro May 12, 2021
82936eb
More efficient SmartCacheLoader (#2181)
cgrain May 12, 2021
c2b364b
tested (#2192)
wyli May 13, 2021
381330c
fixes logo link (#2202)
wyli May 14, 2021
969bbb7
Add warnings for inf/nan surface distance (#2205)
yiheng-wang-nv May 17, 2021
7d36d8a
2041 - fixing main/releasing branch CI/CD; update contributing.md (#2…
wyli May 19, 2021
5bae730
cleaning allocated memory (#2216)
charliebudd May 19, 2021
4377c4e
improve error msg (#2229)
wyli May 21, 2021
bb88eb2
2172 caching grid for randaffine (#2228)
wyli May 21, 2021
d21038c
fix type for margin argument in CropForegroundd (#2234)
ambroslins May 24, 2021
985f3c9
1994 - adds pip install tests (#2233)
wyli May 24, 2021
84b41d9
SaveImage print_log (#2237)
rijobro May 24, 2021
405975c
2236 Fix the duplicated key issue in CopyItemsd transform (#2238)
Nic-Ma May 24, 2021
8255973
enhance downloading APIs (#2242)
wyli May 25, 2021
12bbe77
Bringing CRF implementation inline with literature (#2261)
charliebudd May 27, 2021
1ff89a8
CRF permissive testing due to non determanism (#2272)
charliebudd May 28, 2021
2b13246
move mednist to gdrive (#2276)
wyli May 28, 2021
2aec103
skip resampling for randaffine(d) if possible (#2264)
wyli May 28, 2021
70f9fd1
Enhance the doc-string of CacheDataset (#2279)
Nic-Ma May 29, 2021
7ee7989
Fixes cron tests (#2277)
wyli May 29, 2021
9638a56
move mednist to gdrive (#2276)
wyli May 28, 2021
385ce70
skip resampling for randaffine(d) if possible (#2264)
wyli May 28, 2021
2f60799
[WIP] ResNet (#2253)
Douwe-Spaanderman Jun 1, 2021
d78c669
updates changelog v0.5.3 (#2271)
wyli Jun 1, 2021
37545b4
Merge commit '385ce7059be16e8476d0c1b56fe251d8894241a5' into dev
wyli Jun 1, 2021
51e4790
Merge branch 'releasing/0.5.3' into dev
wyli Jun 1, 2021
168506f
2287 Enhance decollate to support list and Tensor (#2288)
Nic-Ma Jun 1, 2021
9af0e27
update contrib doc (#2293)
wyli Jun 2, 2021
e442051
update ci/cd to remove duplicated jobs (#2285)
wyli Jun 2, 2021
d4d1733
inverse one-to-many transforms (#2230)
rijobro Jun 2, 2021
63a3c78
[DLMED] move IterationEvents into workflow (#2299)
Nic-Ma Jun 3, 2021
4defcdf
Use reshape to replace view in loss function (#2298)
yiheng-wang-nv Jun 3, 2021
be87f31
[DLMED] update persistent dataset (#2307)
Nic-Ma Jun 4, 2021
c1e06f5
2056 additional deepgrow workflow events (#2305)
wyli Jun 4, 2021
2ff528e
2304 enhances image dataset to handle meta (#2308)
wyli Jun 5, 2021
316449b
fixes integration test (#2312)
wyli Jun 6, 2021
509c2c1
optional strict check (#2309)
wyli Jun 7, 2021
27e64e0
2316 Make saved affine match data content (#2322)
Nic-Ma Jun 7, 2021
a961918
Modify initialize function (#2324)
yiheng-wang-nv Jun 7, 2021
89ee6af
2316 Fix endian order issue of Nibabel reader (#2326)
Nic-Ma Jun 7, 2021
a5376df
2316 load image with big-endian header (#2325)
wyli Jun 7, 2021
c208780
2273 initial MMAR model download and extract (#2297)
wyli Jun 7, 2021
e0f250c
fix typo in crf args name (#2327)
masadcv Jun 7, 2021
1fa03c2
573 masked loss wrapper (#2313)
wyli Jun 7, 2021
369ab00
2330 Enhance all_gather APIs for regular PyTorch programs (#2331)
Nic-Ma Jun 8, 2021
a536462
2333 conditionally install pytype (#2334)
wyli Jun 8, 2021
6476cee
Fixes mypy issue (#2340)
wyli Jun 9, 2021
3de16a0
2342 Add size option for UpSample (#2344)
yiheng-wang-nv Jun 9, 2021
cbf2521
2345 no default mmar home for pytorch < 1.6 (#2346)
wyli Jun 9, 2021
8e56191
[WIP] Preserve ordering of input dict's keys in transforms (#2321)
eddyleelin Jun 9, 2021
5aceade
update install cmd (#2352)
wyli Jun 10, 2021
7975275
[DLMED] enhance docs (#2353)
Nic-Ma Jun 10, 2021
e6aa268
Deprecated decorators (#2338)
ericspod Jun 10, 2021
0b599ef
fixes #2355 (#2356)
wyli Jun 11, 2021
2e5c11e
[DLMED] enhance doc-string of Invertd (#2358)
Nic-Ma Jun 11, 2021
f968f4a
2239 adds a `runtests.sh` option to run distributed test cases (#2306)
wyli Jun 11, 2021
0c0d95d
561 497 Provide metrics base APIs (#2314)
Nic-Ma Jun 11, 2021
c1b5028
[DLMED] fix jupyter util issue (#2361)
Nic-Ma Jun 11, 2021
fe3521f
2362 skip MMAR downloading if the remote has http 500 (#2363)
wyli Jun 14, 2021
a9222d9
2360 Enhance the data type of GradCam (#2368)
Nic-Ma Jun 15, 2021
ddd0c75
2374 multiprocess for non-exist persistent cache dir (#2375)
wyli Jun 15, 2021
2e042fa
2372 Add from_engine to simplify the lambda in metrics (#2373)
Nic-Ma Jun 15, 2021
d1618c9
2376 torch 1.9 compatibility (#2377)
wyli Jun 16, 2021
b151b8e
2339 adds partial weight util (#2351)
wyli Jun 16, 2021
6e65fe6
2380 fix inverse bug of CenterScaleCropd transform (#2383)
Nic-Ma Jun 17, 2021
82fc4c1
Fix and enhance wrong doc-strings of all `batch_transform` and `outpu…
Nic-Ma Jun 17, 2021
4d9e8aa
[DLMED] drop inheritance for future inverse feature (#2385)
Nic-Ma Jun 17, 2021
0693729
2369 refactoring decollate (#2379)
wyli Jun 18, 2021
b2e7fd4
Update crop and pad doc-strings for the ROI size (#2389)
Nic-Ma Jun 18, 2021
2f1afa8
temp. skip pytype on macos (#2392)
wyli Jun 18, 2021
f3f9584
[DLMED] add missing arg detach (#2393)
Nic-Ma Jun 18, 2021
b829fe9
2390 Add docstring for not nans (#2395)
yiheng-wang-nv Jun 18, 2021
67e68f6
JIT compiled gaussian mixture model (GMM) (#1802)
charliebudd Jun 20, 2021
162b54a
fixes loader (#2398)
wyli Jun 21, 2021
b653799
fixes jit concurrent build (#2405)
wyli Jun 21, 2021
fb7d9f1
Add blossom pre-merge pipeline (21/June) (#2382)
madil90 Jun 21, 2021
8cda6c1
Add min tests cmd to runtests script (#2400)
Nic-Ma Jun 22, 2021
075bccd
2310 Add load_csv_datalist utility API (#2349)
Nic-Ma Jun 22, 2021
3f452c4
2418 Fix mypy errors caused by numpy(1.21.0) (#2419)
Nic-Ma Jun 22, 2021
0bd312a
fixes concurrency group (#2409)
wyli Jun 22, 2021
88fe0fc
Spike (Herringbone) artifact transform (#2337)
yanielc Jun 22, 2021
a0afa60
2420 Add image_only option to several spatial transforms (#2421)
Nic-Ma Jun 23, 2021
ea028f5
2415 - add json config model support for mmar loading (#2416)
wyli Jun 23, 2021
2464199
2422 Enhance the pixdim of spacing transform (#2423)
Nic-Ma Jun 23, 2021
855a025
Brain MMAR pretrained examples (#2406)
myron Jun 23, 2021
5ff1bba
add model desc for liver and pancreas seg (#2431)
dongyang0122 Jun 23, 2021
c20f70b
[DLMED] enhance docs (#2429)
Nic-Ma Jun 23, 2021
0662ed2
Fix permissions for blossom CI (#2438)
madil90 Jun 24, 2021
79b83d9
2407 Add support to set number classes for TorchVision models (#2408)
Nic-Ma Jun 24, 2021
38403bb
Add parameter unpacking for transforms (#2437)
Spenhouet Jun 24, 2021
05b2da6
[DLMED] enhance assert (#2444)
Nic-Ma Jun 25, 2021
eec33b6
2445 Fix inplace modification issue of SmartCacheDataset (#2446)
Nic-Ma Jun 25, 2021
43aba96
Add query to NGC to get matched model URL and version. (#2433)
IsaacYangSLA Jun 25, 2021
6401c5e
no need for default orig_size stored for invertible transforms (#2441)
rijobro Jun 25, 2021
079fcd4
add annotation for brain and spleen (#2448)
Can-Zhao Jun 25, 2021
eb29e99
Fix docstring error (#2461)
yiheng-wang-nv Jun 26, 2021
9f9b63a
2453 Enhance ToTensor transform to support data with no dim (#2454)
Nic-Ma Jun 26, 2021
1a707f0
add clara_train_covid19_3d_ct_classification and clara_train_covid19_…
holgerroth Jun 28, 2021
8d23912
2460 Add kwargs for np.pad API (#2465)
Nic-Ma Jun 28, 2021
7b08d40
update_model_desc_prostate_spleen (#2466)
ahatamiz Jun 28, 2021
91ea1b6
2399 update ignite to v0.4.5 (#2451)
Nic-Ma Jun 28, 2021
ad80597
2290 Add support to update data in Datasets (#2436)
Nic-Ma Jun 28, 2021
cdf05b0
update clara_pt_covid19_3d_ct_classification model description (#2472)
holgerroth Jun 28, 2021
0aa936f
Model Description in apps/mmars updated with NGC description for Deep…
finalelement Jun 28, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 3 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@ __pycache__/
docs/

.coverage
.coverage.*
.coverage/
coverage.xml
.readthedocs.yml
*.md
*.toml

!README.md
Expand Down
4 changes: 2 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ A few sentences describing the changes proposed in this pull request.
- [x] Non-breaking change (fix or new feature that would not break existing functionality).
- [ ] Breaking change (fix or new feature that would cause existing functionality to change).
- [ ] New tests added to cover the changes.
- [ ] Integration tests passed locally by running `./runtests.sh --codeformat --coverage`.
- [ ] Quick tests passed locally by running `./runtests.sh --quick`.
- [ ] Integration tests passed locally by running `./runtests.sh -f -u --net --coverage`.
- [ ] Quick tests passed locally by running `./runtests.sh --quick --unittests`.
- [ ] In-line docstrings updated.
- [ ] Documentation updated, tested `make html` command in the `docs/` folder.
105 changes: 105 additions & 0 deletions .github/workflows/blossom-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# A workflow to trigger ci on hybrid infra (github + self hosted runner)
name: Blossom-CI
on:
issue_comment:
types: [created]
workflow_dispatch:
inputs:
platform:
description: 'runs-on argument'
required: false
args:
description: 'argument'
required: false

concurrency:
# automatically cancel the previously triggered workflows when there's a newer version
group: blossom-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

permissions:
actions: write
checks: write
contents: write
issues: write
pull-requests: write
repository-projects: write
statuses: write

jobs:
Authorization:
name: Authorization
runs-on: blossom
outputs:
args: ${{ env.args }}

# This job only runs for pull request comments
if: |
contains( 'madil90,Nic-Ma,wyli', format('{0},', github.actor)) &&
github.event.comment.body == '/build'
steps:
- name: Check if comment is issued by authorized person
run: blossom-ci
env:
OPERATION: 'AUTH'
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO_KEY_DATA: ${{ secrets.BLOSSOM_KEY }}

Vulnerability-scan:
name: Vulnerability scan
needs: [Authorization]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
repository: ${{ fromJson(needs.Authorization.outputs.args).repo }}
ref: ${{ fromJson(needs.Authorization.outputs.args).ref }}
lfs: 'true'

# repo specific steps
#- name: Setup java
# uses: actions/setup-java@v1
# with:
# java-version: 1.8

# add blackduck properties https://synopsys.atlassian.net/wiki/spaces/INTDOCS/pages/631308372/Methods+for+Configuring+Analysis#Using-a-configuration-file
#- name: Setup blackduck properties
# run: |
# PROJECTS=$(mvn -am dependency:tree | grep maven-dependency-plugin | awk '{ out="com.nvidia:"$(NF-1);print out }' | grep rapids | xargs | sed -e 's/ /,/g')
# echo detect.maven.build.command="-pl=$PROJECTS -am" >> application.properties
# echo detect.maven.included.scopes=compile >> application.properties

- name: Run blossom action
uses: NVIDIA/blossom-action@main
env:
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO_KEY_DATA: ${{ secrets.BLOSSOM_KEY }}
with:
args1: ${{ fromJson(needs.Authorization.outputs.args).args1 }}
args2: ${{ fromJson(needs.Authorization.outputs.args).args2 }}
args3: ${{ fromJson(needs.Authorization.outputs.args).args3 }}

Job-trigger:
name: Start ci job
needs: [Vulnerability-scan]
runs-on: blossom
steps:
- name: Start ci job
run: blossom-ci
env:
OPERATION: 'START-CI-JOB'
CI_SERVER: ${{ secrets.CI_SERVER }}
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Post-processing:
name: Post processing
runs-on: blossom
if : github.event_name == 'workflow_dispatch'
steps:
- name: Start post processing
run: blossom-ci
env:
OPERATION: 'POST-PROCESSING'
CI_SERVER: ${{ secrets.CI_SERVER }}
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
20 changes: 0 additions & 20 deletions .github/workflows/cleanup.yml

This file was deleted.

156 changes: 141 additions & 15 deletions .github/workflows/cron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ name: crons
on:
schedule:
- cron: "0 2 * * *" # at 02:00 UTC
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
cron-gpu:
Expand All @@ -13,7 +15,7 @@ jobs:
runs-on: [self-hosted, linux, x64, common]
strategy:
matrix:
pytorch-version: [1.5.0, 1.5.1, 1.6.0, latest]
pytorch-version: [1.5.1, 1.6.0, 1.7.1, 1.8.1, latest]
steps:
- uses: actions/checkout@v2
- name: Install the dependencies
Expand All @@ -23,15 +25,14 @@ jobs:
python -m pip uninstall -y torch torchvision
if [ ${{ matrix.pytorch-version }} == "latest" ]; then
python -m pip install torch torchvision
elif [ ${{ matrix.pytorch-version }} == "1.5.0" ]; then
python -m pip install torch==1.5.0
python -m pip install torchvision==0.6.0
elif [ ${{ matrix.pytorch-version }} == "1.5.1" ]; then
python -m pip install torch==1.5.1
python -m pip install torchvision==0.6.1
python -m pip install torch==1.5.1 torchvision==0.6.1
elif [ ${{ matrix.pytorch-version }} == "1.6.0" ]; then
python -m pip install torch==1.6.0
python -m pip install torchvision==0.7.0
python -m pip install torch==1.6.0 torchvision==0.7.0
elif [ ${{ matrix.pytorch-version }} == "1.7.1" ]; then
python -m pip install torch==1.7.1 torchvision==0.8.2
elif [ ${{ matrix.pytorch-version }} == "1.8.1" ]; then
python -m pip install torch==1.8.1 torchvision==0.9.1
fi
python -m pip install -r requirements-dev.txt
python -m pip list
Expand All @@ -43,10 +44,14 @@ jobs:
nvidia-smi
export CUDA_VISIBLE_DEVICES=$(python -m tests.utils)
echo $CUDA_VISIBLE_DEVICES
trap 'if pgrep python; then pkill python; fi;' ERR
python -c $'import torch\na,b=torch.zeros(1,device="cuda:0"),torch.zeros(1,device="cuda:1");\nwhile True:print(a,b)' > /dev/null &
python -c "import torch; print(torch.__version__); print('{} of GPUs available'.format(torch.cuda.device_count()))"
python -c 'import torch; print(torch.rand(5,3, device=torch.device("cuda:0")))'
BUILD_MONAI=1 ./runtests.sh --coverage
python -c 'import torch; print(torch.rand(5, 3, device=torch.device("cuda:0")))'
BUILD_MONAI=1 ./runtests.sh --coverage --unittests # unit tests with coverage report
BUILD_MONAI=1 ./runtests.sh --coverage --net # integration tests with coverage report
coverage xml
if pgrep python; then pkill python; fi
- name: Upload coverage
uses: codecov/codecov-action@v1
with:
Expand All @@ -55,13 +60,20 @@ jobs:

cron-pt-image:
if: github.repository == 'Project-MONAI/MONAI'
strategy:
matrix:
container: ["pytorch:21.02", "pytorch:21.04"] # 21.02 for backward comp.
container:
image: nvcr.io/nvidia/pytorch:20.12-py3 # testing with the latest pytorch base image
image: nvcr.io/nvidia/${{ matrix.container }}-py3 # testing with the latest pytorch base image
options: "--gpus all"
runs-on: [self-hosted, linux, x64, common]
steps:
- uses: actions/checkout@v2
- name: Install the dependencies
- name: Install APT dependencies
run: |
apt-get update
DEBIAN_FRONTEND="noninteractive" apt-get install -y libopenslide0
- name: Install Python dependencies
run: |
which python
python -m pip install --upgrade pip wheel
Expand All @@ -75,16 +87,89 @@ jobs:
nvidia-smi
export CUDA_VISIBLE_DEVICES=$(python -m tests.utils)
echo $CUDA_VISIBLE_DEVICES
trap 'if pgrep python; then pkill python; fi;' ERR
python -c $'import torch\na,b=torch.zeros(1,device="cuda:0"),torch.zeros(1,device="cuda:1");\nwhile True:print(a,b)' > /dev/null &
python -c "import torch; print(torch.__version__); print('{} of GPUs available'.format(torch.cuda.device_count()))"
python -c 'import torch; print(torch.rand(5,3, device=torch.device("cuda:0")))'
BUILD_MONAI=1 ./runtests.sh --coverage
python -c 'import torch; print(torch.rand(5, 3, device=torch.device("cuda:0")))'
BUILD_MONAI=1 ./runtests.sh --coverage --unittests # unit tests with coverage report
BUILD_MONAI=1 ./runtests.sh --coverage --net # integration tests with coverage report
coverage xml
if pgrep python; then pkill python; fi
- name: Upload coverage
uses: codecov/codecov-action@v1
with:
fail_ci_if_error: false
file: ./coverage.xml

cron-pip:
# pip install monai[all] and use it to run unit tests
if: github.repository == 'Project-MONAI/MONAI'
strategy:
matrix:
container: ["pytorch:21.02", "pytorch:21.04"] # 21.02 for backward comp.
container:
image: nvcr.io/nvidia/${{ matrix.container }}-py3 # testing with the latest pytorch base image
options: "--gpus all"
runs-on: [self-hosted, linux, x64, common]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install the dependencies
run: |
which python
python -m pip install --upgrade pip wheel twine
python -m pip list
- name: Run tests report coverage
run: |
pip uninstall monai
pip list | grep -iv monai
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
root_dir=$PWD
echo "$root_dir"
set -e

# build tar.gz and wheel
bash runtests.sh --clean # clear any existing dev temp files
python -m pip uninstall -y torch torchvision
python setup.py check -m -s
python setup.py sdist bdist_wheel
python -m twine check dist/*

# move packages to a temp dir
tmp_dir=$(mktemp -d)
cp dist/monai* "$tmp_dir"
rm -r build dist monai.egg-info
cd "$tmp_dir"
ls -al

# install from tar.gz
name=$(ls *.tar.gz | head -n1)
echo $name
python -m pip install $name[all]
python -c 'import monai; monai.config.print_config()' 2>&1 | grep -iv "unknown"
python -c 'import monai; print(monai.__file__)'

# run tests
cp $root_dir/requirements*.txt "$tmp_dir"
cp -r $root_dir/tests "$tmp_dir"
pwd
ls -al

export LAUNCH_DELAY=$[ $RANDOM % 16 * 60 ]
echo "Sleep $LAUNCH_DELAY"
sleep $LAUNCH_DELAY
nvidia-smi
export CUDA_VISIBLE_DEVICES=$(python -m tests.utils)
echo $CUDA_VISIBLE_DEVICES
trap 'if pgrep python; then pkill python; fi;' ERR
python -c $'import torch\na,b=torch.zeros(1,device="cuda:0"),torch.zeros(1,device="cuda:1");\nwhile True:print(a,b)' > /dev/null &
python -c "import torch; print(torch.__version__); print('{} of GPUs available'.format(torch.cuda.device_count()))"

python -m pip install -r requirements-dev.txt
PYTHONPATH="$tmp_dir":$PYTHONPATH BUILD_MONAI=1 python ./tests/runner.py -p 'test_((?!integration).)' # unit tests
if pgrep python; then pkill python; fi

cron-docker:
if: github.repository == 'Project-MONAI/MONAI'
container:
Expand All @@ -100,13 +185,54 @@ jobs:
nvidia-smi
export CUDA_VISIBLE_DEVICES=$(python -m tests.utils)
echo $CUDA_VISIBLE_DEVICES
trap 'if pgrep python; then pkill python; fi;' ERR
python -c $'import torch\na,b=torch.zeros(1,device="cuda:0"),torch.zeros(1,device="cuda:1");\nwhile True:print(a,b)' > /dev/null &
python -c "import torch; print(torch.__version__); print('{} of GPUs available'.format(torch.cuda.device_count()))"
python -c 'import torch; print(torch.rand(5,3, device=torch.device("cuda:0")))'
ngc --version
BUILD_MONAI=1 ./runtests.sh --coverage --pytype
BUILD_MONAI=1 ./runtests.sh --coverage --pytype --unittests # unit tests with pytype checks, coverage report
BUILD_MONAI=1 ./runtests.sh --coverage --net # integration tests with coverage report
coverage xml
if pgrep python; then pkill python; fi
- name: Upload coverage
uses: codecov/codecov-action@v1
with:
fail_ci_if_error: false
file: ./coverage.xml

cron-tutorial-notebooks:
if: github.repository == 'Project-MONAI/MONAI'
needs: cron-gpu # so that monai itself is verified first
container:
image: nvcr.io/nvidia/pytorch:21.04-py3 # testing with the latest pytorch base image
options: "--gpus all --ipc=host"
runs-on: [self-hosted, linux, x64, common]
steps:
- uses: actions/checkout@v2
- name: Install MONAI
id: monai-install
run: |
which python
python -m pip install --upgrade pip wheel
python -m pip install -r requirements-dev.txt
BUILD_MONAI=0 python setup.py develop # install monai
nvidia-smi
export CUDA_VISIBLE_DEVICES=$(python -m tests.utils)
echo $CUDA_VISIBLE_DEVICES
echo "::set-output name=devices::$CUDA_VISIBLE_DEVICES"
- name: Checkout tutorials and install their requirements
run: |
cd /opt
git clone --depth 1 --branch master --single-branch https://github.com/Project-MONAI/tutorials.git # latest commit of master branch
cd tutorials
python -m pip install -r requirements.txt
- name: Run tutorial notebooks
timeout-minutes: 150
run: |
export CUDA_VISIBLE_DEVICES=${{ steps.monai-install.outputs.devices }}
echo $CUDA_VISIBLE_DEVICES
trap 'if pgrep python; then pkill python; fi;' ERR
python -c $'import torch\na,b=torch.zeros(1,device="cuda:0"),torch.zeros(1,device="cuda:1");\nwhile True:print(a,b)' > /dev/null &
cd /opt/tutorials
$(pwd)/runner.sh
if pgrep python; then pkill python; fi
Loading