Skip to content

Commit 5655849

Browse files
Auto3DSeg CI Test Errors Fix (#961)
Signed-off-by: Mingxin Zheng <18563433+mingxin-zheng@users.noreply.github.com> Fixes #952 . ### Description 1. fix notebook work_dir sharing causing CI fails ### Checks <!--- Put an `x` in all the boxes that apply, and remove the not applicable items --> - [ ] Notebook runs automatically `./runner [-p <regex_pattern>]` Signed-off-by: Mingxin Zheng <18563433+mingxin-zheng@users.noreply.github.com> Signed-off-by: Mingxin Zheng <mingxinz@nvidia.com>
1 parent db8d2aa commit 5655849

File tree

7 files changed

+395
-393
lines changed

7 files changed

+395
-393
lines changed

auto3dseg/notebooks/auto3dseg_autorunner_ref_api.ipynb

Lines changed: 61 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -78,28 +78,35 @@
7878
},
7979
{
8080
"cell_type": "code",
81-
"execution_count": 3,
81+
"execution_count": 4,
8282
"metadata": {},
8383
"outputs": [
84+
{
85+
"name": "stderr",
86+
"output_type": "stream",
87+
"text": [
88+
"Task09_Spleen.tar: 1.50GB [00:43, 36.7MB/s] \n"
89+
]
90+
},
8491
{
8592
"name": "stdout",
8693
"output_type": "stream",
8794
"text": [
88-
"2022-09-21 03:23:09,534 - INFO - Expected md5 is None, skip md5 check for file Task05_Prostate.tar.\n",
89-
"2022-09-21 03:23:09,535 - INFO - File exists: Task05_Prostate.tar, skipped downloading.\n",
90-
"2022-09-21 03:23:09,536 - INFO - Non-empty folder exists in Task05_Prostate, skipped extracting.\n"
95+
"2022-09-29 03:49:02,357 - INFO - Downloaded: Task09_Spleen.tar\n",
96+
"2022-09-29 03:49:02,359 - INFO - Expected md5 is None, skip md5 check for file Task09_Spleen.tar.\n",
97+
"2022-09-29 03:49:02,359 - INFO - Writing into directory: ./.\n"
9198
]
9299
}
93100
],
94101
"source": [
95102
"root = \"./\"\n",
96-
"work_dir = os.path.join(root, 'auto3dseg_work_dir')\n",
103+
"work_dir = os.path.join(root, 'ref_api_work_dir')\n",
97104
"if not os.path.isdir(work_dir):\n",
98105
" os.makedirs(work_dir)\n",
99106
"\n",
100-
"msd_task = \"Task05_Prostate\"\n",
107+
"msd_task = \"Task09_Spleen\"\n",
101108
"dataroot = os.path.join(root, msd_task)\n",
102-
"datalist_file = \"../tasks/msd/Task05_Prostate/msd_task05_prostate_folds.json\"\n",
109+
"datalist_file = os.path.join(\"..\", \"tasks\", \"msd\", msd_task, \"msd_\" + msd_task.lower() + \"_folds.json\")\n",
103110
"\n",
104111
"resource = \"https://msd-for-monai.s3-us-west-2.amazonaws.com/\" + msd_task + \".tar\"\n",
105112
"compressed_file = os.path.join(root, msd_task + \".tar\")\n",
@@ -116,16 +123,16 @@
116123
},
117124
{
118125
"cell_type": "code",
119-
"execution_count": 4,
126+
"execution_count": 5,
120127
"metadata": {},
121128
"outputs": [],
122129
"source": [
123130
"data_src_cfg = {\n",
124-
" \"name\": \"Task05_Prostate\",\n",
125-
" \"task\": \"segmentation\",\n",
126-
" \"modality\": \"MRI\",\n",
127-
" \"datalist\": datalist_file,\n",
128-
" \"dataroot\": dataroot,\n",
131+
" \"name\": msd_task, # optional\n",
132+
" \"task\": \"segmentation\", # optional\n",
133+
" \"modality\": \"MRI\", # required\n",
134+
" \"datalist\": datalist_file, # required\n",
135+
" \"dataroot\": dataroot, # required\n",
129136
"}\n",
130137
"input = os.path.join(work_dir, 'input.yaml')\n",
131138
"ConfigParser.export_config_file(data_src_cfg, input)"
@@ -152,21 +159,28 @@
152159
},
153160
{
154161
"cell_type": "code",
155-
"execution_count": 6,
162+
"execution_count": 5,
156163
"metadata": {},
157164
"outputs": [
158165
{
159166
"name": "stderr",
160167
"output_type": "stream",
161168
"text": [
162-
"100%|██████████| 30/30 [00:04<00:00, 6.51it/s]\n"
169+
"100%|██████████| 40/40 [01:34<00:00, 2.37s/it]"
163170
]
164171
},
165172
{
166173
"name": "stdout",
167174
"output_type": "stream",
168175
"text": [
169-
"2022-09-21 03:23:29,492 - WARNING - Data is not completely uniform. MONAI transforms may provide unexpected result\n"
176+
"2022-09-29 01:43:36,891 - WARNING - Data is not completely uniform. MONAI transforms may provide unexpected result\n"
177+
]
178+
},
179+
{
180+
"name": "stderr",
181+
"output_type": "stream",
182+
"text": [
183+
"\n"
170184
]
171185
}
172186
],
@@ -183,7 +197,7 @@
183197
"Besides the Python API call, user can also use command line interface (CLI) provided by the user's OS. One example is the following bash commands:\n",
184198
"\n",
185199
"```bash\n",
186-
"python -m monai.apps.auto3dseg DataAnalyzer get_all_case_stats --datalist=\"../tasks/msd/Task05_Prostate/msd_task05_prostate_folds.json\" --dataroot=\"./Task05_Prostate\" --output_path=\"./auto3dseg_work_dir/data_stats.yaml\"\n",
200+
"python -m monai.apps.auto3dseg DataAnalyzer get_all_case_stats --datalist=\"../tasks/msd/Task09_Spleen/msd_task09_spleen_folds.json\" --dataroot=\"./Task09_Spleen\" --output_path=\"./ref_api_work_dir/data_stats.yaml\"\n",
187201
"```"
188202
]
189203
},
@@ -202,23 +216,23 @@
202216
},
203217
{
204218
"cell_type": "code",
205-
"execution_count": 7,
219+
"execution_count": 6,
206220
"metadata": {},
207221
"outputs": [
208222
{
209223
"name": "stderr",
210224
"output_type": "stream",
211225
"text": [
212-
"algo_templates.tar.gz: 100%|██████████| 280k/280k [00:01<00:00, 241kB/s] "
226+
"algo_templates.tar.gz: 100%|██████████| 280k/280k [00:00<00:00, 607kB/s] "
213227
]
214228
},
215229
{
216230
"name": "stdout",
217231
"output_type": "stream",
218232
"text": [
219-
"2022-09-21 03:23:38,373 - INFO - Downloaded: /tmp/tmp8t3vbaz0/algo_templates.tar.gz\n",
220-
"2022-09-21 03:23:38,375 - INFO - Expected md5 is None, skip md5 check for file /tmp/tmp8t3vbaz0/algo_templates.tar.gz.\n",
221-
"2022-09-21 03:23:38,377 - INFO - Writing into directory: ./auto3dseg_work_dir.\n"
233+
"2022-09-29 01:43:37,829 - INFO - Downloaded: /tmp/tmpodiia3qq/algo_templates.tar.gz\n",
234+
"2022-09-29 01:43:37,830 - INFO - Expected md5 is None, skip md5 check for file /tmp/tmpodiia3qq/algo_templates.tar.gz.\n",
235+
"2022-09-29 01:43:37,830 - INFO - Writing into directory: ./ref_api_work_dir.\n"
222236
]
223237
},
224238
{
@@ -232,26 +246,26 @@
232246
"name": "stdout",
233247
"output_type": "stream",
234248
"text": [
235-
"2022-09-21 03:23:38,856 - INFO - ./auto3dseg_work_dir/segresnet2d_0\n",
236-
"2022-09-21 03:23:39,401 - INFO - ./auto3dseg_work_dir/segresnet2d_1\n",
237-
"2022-09-21 03:23:39,823 - INFO - ./auto3dseg_work_dir/segresnet2d_2\n",
238-
"2022-09-21 03:23:40,353 - INFO - ./auto3dseg_work_dir/segresnet2d_3\n",
239-
"2022-09-21 03:23:40,776 - INFO - ./auto3dseg_work_dir/segresnet2d_4\n",
240-
"2022-09-21 03:23:41,363 - INFO - ./auto3dseg_work_dir/dints_0\n",
241-
"2022-09-21 03:23:41,846 - INFO - ./auto3dseg_work_dir/dints_1\n",
242-
"2022-09-21 03:23:42,431 - INFO - ./auto3dseg_work_dir/dints_2\n",
243-
"2022-09-21 03:23:42,914 - INFO - ./auto3dseg_work_dir/dints_3\n",
244-
"2022-09-21 03:23:43,453 - INFO - ./auto3dseg_work_dir/dints_4\n",
245-
"2022-09-21 03:23:43,868 - INFO - ./auto3dseg_work_dir/swinunetr_0\n",
246-
"2022-09-21 03:23:44,361 - INFO - ./auto3dseg_work_dir/swinunetr_1\n",
247-
"2022-09-21 03:23:44,779 - INFO - ./auto3dseg_work_dir/swinunetr_2\n",
248-
"2022-09-21 03:23:45,297 - INFO - ./auto3dseg_work_dir/swinunetr_3\n",
249-
"2022-09-21 03:23:45,711 - INFO - ./auto3dseg_work_dir/swinunetr_4\n",
250-
"2022-09-21 03:23:46,255 - INFO - ./auto3dseg_work_dir/segresnet_0\n",
251-
"2022-09-21 03:23:46,713 - INFO - ./auto3dseg_work_dir/segresnet_1\n",
252-
"2022-09-21 03:23:47,168 - INFO - ./auto3dseg_work_dir/segresnet_2\n",
253-
"2022-09-21 03:23:47,730 - INFO - ./auto3dseg_work_dir/segresnet_3\n",
254-
"2022-09-21 03:23:48,280 - INFO - ./auto3dseg_work_dir/segresnet_4\n"
249+
"2022-09-29 01:43:38,651 - INFO - ./ref_api_work_dir/segresnet2d_0\n",
250+
"2022-09-29 01:43:39,029 - INFO - ./ref_api_work_dir/segresnet2d_1\n",
251+
"2022-09-29 01:43:39,411 - INFO - ./ref_api_work_dir/segresnet2d_2\n",
252+
"2022-09-29 01:43:39,916 - INFO - ./ref_api_work_dir/segresnet2d_3\n",
253+
"2022-09-29 01:43:40,373 - INFO - ./ref_api_work_dir/segresnet2d_4\n",
254+
"2022-09-29 01:43:41,656 - INFO - ./ref_api_work_dir/dints_0\n",
255+
"2022-09-29 01:43:42,284 - INFO - ./ref_api_work_dir/dints_1\n",
256+
"2022-09-29 01:43:42,678 - INFO - ./ref_api_work_dir/dints_2\n",
257+
"2022-09-29 01:43:43,172 - INFO - ./ref_api_work_dir/dints_3\n",
258+
"2022-09-29 01:43:43,681 - INFO - ./ref_api_work_dir/dints_4\n",
259+
"2022-09-29 01:43:44,448 - INFO - ./ref_api_work_dir/swinunetr_0\n",
260+
"2022-09-29 01:43:44,807 - INFO - ./ref_api_work_dir/swinunetr_1\n",
261+
"2022-09-29 01:43:45,177 - INFO - ./ref_api_work_dir/swinunetr_2\n",
262+
"2022-09-29 01:43:45,687 - INFO - ./ref_api_work_dir/swinunetr_3\n",
263+
"2022-09-29 01:43:48,313 - INFO - ./ref_api_work_dir/swinunetr_4\n",
264+
"2022-09-29 01:43:48,983 - INFO - ./ref_api_work_dir/segresnet_0\n",
265+
"2022-09-29 01:43:49,597 - INFO - ./ref_api_work_dir/segresnet_1\n",
266+
"2022-09-29 01:43:50,008 - INFO - ./ref_api_work_dir/segresnet_2\n",
267+
"2022-09-29 01:43:50,393 - INFO - ./ref_api_work_dir/segresnet_3\n",
268+
"2022-09-29 01:43:51,990 - INFO - ./ref_api_work_dir/segresnet_4\n"
255269
]
256270
}
257271
],
@@ -290,7 +304,7 @@
290304
},
291305
{
292306
"cell_type": "code",
293-
"execution_count": 8,
307+
"execution_count": 7,
294308
"metadata": {},
295309
"outputs": [],
296310
"source": [
@@ -313,14 +327,14 @@
313327
},
314328
{
315329
"cell_type": "code",
316-
"execution_count": 9,
330+
"execution_count": 6,
317331
"metadata": {},
318332
"outputs": [
319333
{
320334
"name": "stdout",
321335
"output_type": "stream",
322336
"text": [
323-
"{'num_iterations': 12000, 'num_iterations_per_validation': 6000, 'num_images_per_batch': 2, 'num_epochs': 2000, 'num_warmup_iterations': 6000}\n"
337+
"{'num_iterations': 32000, 'num_iterations_per_validation': 16000, 'num_images_per_batch': 2, 'num_epochs': 2000, 'num_warmup_iterations': 16000}\n"
324338
]
325339
}
326340
],
@@ -371,7 +385,7 @@
371385
"source": [
372386
"history = import_bundle_algo_history(work_dir, only_trained=False)\n",
373387
"for task in history:\n",
374-
" for name, algo in task.items():\n",
388+
" for _, algo in task.items():\n",
375389
" algo.train(train_param) # can use default params by `algo.train()`\n",
376390
" acc = algo.get_score()\n",
377391
" algo_to_pickle(algo, template_path=algo.template_path, best_metrics=acc)"
@@ -461,7 +475,7 @@
461475
"name": "python",
462476
"nbconvert_exporter": "python",
463477
"pygments_lexer": "ipython3",
464-
"version": "3.8.13"
478+
"version": "3.8.12"
465479
},
466480
"vscode": {
467481
"interpreter": {

auto3dseg/notebooks/auto3dseg_hello_world.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@
115115
"metadata": {},
116116
"outputs": [],
117117
"source": [
118-
"work_dir = \"./auto3dseg_work_dir\"\n",
118+
"work_dir = \"./helloworld_work_dir\"\n",
119119
"if not os.path.isdir(work_dir):\n",
120120
" os.makedirs(work_dir)\n",
121121
"\n",
@@ -183,7 +183,7 @@
183183
"cell_type": "markdown",
184184
"metadata": {},
185185
"source": [
186-
"## 2. Test the Auto3Dsseg AutoRunner pipeline\n",
186+
"## 2. Test the Auto3DSeg AutoRunner pipeline\n",
187187
"\n",
188188
"AutoRunner provides an interface to run the Auot3Dseg pipeline. It will automatically configure four different neural networks and perform multi-fold training to achieve the state-of-the-art performance. The module is highly configurable, but only requires minimal user inputs. In this example, we want to complete the piepline in two minutes, so we need to have some customizations\n",
189189
"\n",

0 commit comments

Comments
 (0)