Skip to content

Commit 193c33a

Browse files
committed
update tta
Signed-off-by: Wenqi Li <[email protected]>
1 parent b2dc1c9 commit 193c33a

File tree

1 file changed

+11
-24
lines changed

1 file changed

+11
-24
lines changed

modules/inverse_transforms_and_test_time_augmentations.ipynb

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
"name": "stdout",
7575
"output_type": "stream",
7676
"text": [
77-
"MONAI version: 0.9.1rc2+2.gc0268266.dirty\n",
77+
"MONAI version: 0.9.1rc2+2.gc0268266\n",
7878
"Numpy version: 1.23.0\n",
7979
"Pytorch version: 1.12.0+cu102\n",
8080
"MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n",
@@ -224,7 +224,7 @@
224224
"name": "stderr",
225225
"output_type": "stream",
226226
"text": [
227-
"100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 484/484 [01:49<00:00, 4.43it/s]\n"
227+
"100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 484/484 [01:50<00:00, 4.40it/s]\n"
228228
]
229229
}
230230
],
@@ -342,8 +342,8 @@
342342
"name": "stderr",
343343
"output_type": "stream",
344344
"text": [
345-
"Loading dataset: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████| 387/387 [00:04<00:00, 81.26it/s]\n",
346-
"Loading dataset: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████| 97/97 [00:01<00:00, 81.85it/s]\n"
345+
"Loading dataset: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████| 387/387 [00:04<00:00, 84.29it/s]\n",
346+
"Loading dataset: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████| 97/97 [00:01<00:00, 84.79it/s]\n"
347347
]
348348
}
349349
],
@@ -668,24 +668,13 @@
668668
"outputs": [
669669
{
670670
"ename": "TypeError",
671-
"evalue": "object of type 'NoneType' has no len()",
671+
"evalue": "list indices must be integers or slices, not str",
672672
"output_type": "error",
673673
"traceback": [
674674
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
675675
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
676-
"Input \u001b[0;32mIn [16]\u001b[0m, in \u001b[0;36m<cell line: 10>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 9\u001b[0m segs_dict \u001b[38;5;241m=\u001b[39m {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlabel\u001b[39m\u001b[38;5;124m\"\u001b[39m: batch_infer}\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m allow_missing_keys_mode(val_transforms):\n\u001b[0;32m---> 11\u001b[0m fwd_bck_batch_labels \u001b[38;5;241m=\u001b[39m \u001b[43mbatch_inverter\u001b[49m\u001b[43m(\u001b[49m\u001b[43msegs_dict\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 12\u001b[0m \u001b[38;5;28mprint\u001b[39m(fwd_bck_batch_labels[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlabel\u001b[39m\u001b[38;5;124m'\u001b[39m])\n",
677-
"File \u001b[0;32m~/Documents/MONAI/monai/transforms/inverse_batch_transform.py:102\u001b[0m, in \u001b[0;36mBatchInverseTransform.__call__\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 98\u001b[0m inv_loader \u001b[38;5;241m=\u001b[39m DataLoader(\n\u001b[1;32m 99\u001b[0m inv_ds, batch_size\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbatch_size, num_workers\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnum_workers, collate_fn\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcollate_fn\n\u001b[1;32m 100\u001b[0m )\n\u001b[1;32m 101\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfirst\u001b[49m\u001b[43m(\u001b[49m\u001b[43minv_loader\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m re:\n\u001b[1;32m 104\u001b[0m re_str \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mstr\u001b[39m(re)\n",
678-
"File \u001b[0;32m~/Documents/MONAI/monai/utils/misc.py:82\u001b[0m, in \u001b[0;36mfirst\u001b[0;34m(iterable, default)\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mfirst\u001b[39m(iterable, default\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 79\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 80\u001b[0m \u001b[38;5;124;03m Returns the first item in the given iterable or `default` if empty, meaningful mostly with 'for' expressions.\u001b[39;00m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m---> 82\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m iterable:\n\u001b[1;32m 83\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m i\n\u001b[1;32m 84\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m default\n",
679-
"File \u001b[0;32m~/anaconda3/envs/py38/lib/python3.8/site-packages/torch/utils/data/dataloader.py:652\u001b[0m, in \u001b[0;36m_BaseDataLoaderIter.__next__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 649\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_sampler_iter \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 650\u001b[0m \u001b[38;5;66;03m# TODO(https://github.com/pytorch/pytorch/issues/76750)\u001b[39;00m\n\u001b[1;32m 651\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_reset() \u001b[38;5;66;03m# type: ignore[call-arg]\u001b[39;00m\n\u001b[0;32m--> 652\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_next_data\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 653\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_num_yielded \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 654\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_dataset_kind \u001b[38;5;241m==\u001b[39m _DatasetKind\u001b[38;5;241m.\u001b[39mIterable \u001b[38;5;129;01mand\u001b[39;00m \\\n\u001b[1;32m 655\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_IterableDataset_len_called \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \\\n\u001b[1;32m 656\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_num_yielded \u001b[38;5;241m>\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_IterableDataset_len_called:\n",
680-
"File \u001b[0;32m~/anaconda3/envs/py38/lib/python3.8/site-packages/torch/utils/data/dataloader.py:692\u001b[0m, in \u001b[0;36m_SingleProcessDataLoaderIter._next_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 690\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_next_data\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 691\u001b[0m index \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_next_index() \u001b[38;5;66;03m# may raise StopIteration\u001b[39;00m\n\u001b[0;32m--> 692\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_dataset_fetcher\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfetch\u001b[49m\u001b[43m(\u001b[49m\u001b[43mindex\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# may raise StopIteration\u001b[39;00m\n\u001b[1;32m 693\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_pin_memory:\n\u001b[1;32m 694\u001b[0m data \u001b[38;5;241m=\u001b[39m _utils\u001b[38;5;241m.\u001b[39mpin_memory\u001b[38;5;241m.\u001b[39mpin_memory(data, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_pin_memory_device)\n",
681-
"File \u001b[0;32m~/anaconda3/envs/py38/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py:49\u001b[0m, in \u001b[0;36m_MapDatasetFetcher.fetch\u001b[0;34m(self, possibly_batched_index)\u001b[0m\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mfetch\u001b[39m(\u001b[38;5;28mself\u001b[39m, possibly_batched_index):\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mauto_collation:\n\u001b[0;32m---> 49\u001b[0m data \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdataset[idx] \u001b[38;5;28;01mfor\u001b[39;00m idx \u001b[38;5;129;01min\u001b[39;00m possibly_batched_index]\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 51\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdataset[possibly_batched_index]\n",
682-
"File \u001b[0;32m~/anaconda3/envs/py38/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py:49\u001b[0m, in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mfetch\u001b[39m(\u001b[38;5;28mself\u001b[39m, possibly_batched_index):\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mauto_collation:\n\u001b[0;32m---> 49\u001b[0m data \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdataset\u001b[49m\u001b[43m[\u001b[49m\u001b[43midx\u001b[49m\u001b[43m]\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m idx \u001b[38;5;129;01min\u001b[39;00m possibly_batched_index]\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 51\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdataset[possibly_batched_index]\n",
683-
"File \u001b[0;32m~/Documents/MONAI/monai/transforms/inverse_batch_transform.py:39\u001b[0m, in \u001b[0;36m_BatchInverseDataset.__getitem__\u001b[0;34m(self, index)\u001b[0m\n\u001b[1;32m 37\u001b[0m \u001b[38;5;66;03m# If pad collation was used, then we need to undo this first\u001b[39;00m\n\u001b[1;32m 38\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpad_collation_used:\n\u001b[0;32m---> 39\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[43mPadListDataCollate\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minverse\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minvertible_transform, InvertibleTransform):\n\u001b[1;32m 42\u001b[0m warnings\u001b[38;5;241m.\u001b[39mwarn(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtransform is not invertible, can\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mt invert transform for the input data.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
684-
"File \u001b[0;32m~/Documents/MONAI/monai/transforms/croppad/batch.py:133\u001b[0m, in \u001b[0;36mPadListDataCollate.inverse\u001b[0;34m(data)\u001b[0m\n\u001b[1;32m 131\u001b[0m cropping \u001b[38;5;241m=\u001b[39m CenterSpatialCrop(xform\u001b[38;5;241m.\u001b[39mget(TraceKeys\u001b[38;5;241m.\u001b[39mORIG_SIZE, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 132\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m cropping\u001b[38;5;241m.\u001b[39mtrace_transform(\u001b[38;5;28;01mFalse\u001b[39;00m):\n\u001b[0;32m--> 133\u001b[0m d[key] \u001b[38;5;241m=\u001b[39m \u001b[43mcropping\u001b[49m\u001b[43m(\u001b[49m\u001b[43md\u001b[49m\u001b[43m[\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# fallback to image size\u001b[39;00m\n\u001b[1;32m 134\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m d\n",
685-
"File \u001b[0;32m~/Documents/MONAI/monai/transforms/croppad/array.py:525\u001b[0m, in \u001b[0;36mCenterSpatialCrop.__call__\u001b[0;34m(self, img)\u001b[0m\n\u001b[1;32m 519\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__call__\u001b[39m(\u001b[38;5;28mself\u001b[39m, img: torch\u001b[38;5;241m.\u001b[39mTensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m torch\u001b[38;5;241m.\u001b[39mTensor: \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 520\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 521\u001b[0m \u001b[38;5;124;03m Apply the transform to `img`, assuming `img` is channel-first and\u001b[39;00m\n\u001b[1;32m 522\u001b[0m \u001b[38;5;124;03m slicing doesn't apply to the channel dim.\u001b[39;00m\n\u001b[1;32m 523\u001b[0m \n\u001b[1;32m 524\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 525\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mimg\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mimg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mslices\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcompute_slices\u001b[49m\u001b[43m(\u001b[49m\u001b[43mimg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshape\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n",
686-
"File \u001b[0;32m~/Documents/MONAI/monai/transforms/croppad/array.py:428\u001b[0m, in \u001b[0;36mCrop.__call__\u001b[0;34m(self, img, slices)\u001b[0m\n\u001b[1;32m 426\u001b[0m img_t \u001b[38;5;241m=\u001b[39m img_t[slices] \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 427\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m get_track_meta():\n\u001b[0;32m--> 428\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate_meta\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtensor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mimg_t\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mslices\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mslices\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 429\u001b[0m cropped_from_start \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39masarray([s\u001b[38;5;241m.\u001b[39mindices(o)[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m s, o \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(slices[\u001b[38;5;241m1\u001b[39m:], orig_size)])\n\u001b[1;32m 430\u001b[0m cropped_from_end \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39masarray(orig_size) \u001b[38;5;241m-\u001b[39m img_t\u001b[38;5;241m.\u001b[39mshape[\u001b[38;5;241m1\u001b[39m:] \u001b[38;5;241m-\u001b[39m cropped_from_start\n",
687-
"File \u001b[0;32m~/Documents/MONAI/monai/transforms/croppad/array.py:436\u001b[0m, in \u001b[0;36mCrop.update_meta\u001b[0;34m(self, tensor, slices)\u001b[0m\n\u001b[1;32m 435\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mupdate_meta\u001b[39m(\u001b[38;5;28mself\u001b[39m, tensor: MetaTensor, slices: Tuple[\u001b[38;5;28mslice\u001b[39m, \u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m]):\n\u001b[0;32m--> 436\u001b[0m spatial_rank \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m(\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtensor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43maffine\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m1\u001b[39m, \u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 437\u001b[0m to_shift \u001b[38;5;241m=\u001b[39m [s\u001b[38;5;241m.\u001b[39mstart \u001b[38;5;28;01mif\u001b[39;00m s\u001b[38;5;241m.\u001b[39mstart \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;241m0\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m s \u001b[38;5;129;01min\u001b[39;00m ensure_tuple(slices)[\u001b[38;5;241m1\u001b[39m:]]\n\u001b[1;32m 438\u001b[0m mat \u001b[38;5;241m=\u001b[39m create_translate(spatial_rank, to_shift)\n",
688-
"\u001b[0;31mTypeError\u001b[0m: object of type 'NoneType' has no len()"
676+
"Input \u001b[0;32mIn [16]\u001b[0m, in \u001b[0;36m<cell line: 11>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m allow_missing_keys_mode(val_transforms):\n\u001b[1;32m 10\u001b[0m fwd_bck_batch_labels \u001b[38;5;241m=\u001b[39m batch_inverter(segs_dict)\n\u001b[0;32m---> 11\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[43mfwd_bck_batch_labels\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mlabel\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m)\n",
677+
"\u001b[0;31mTypeError\u001b[0m: list indices must be integers or slices, not str"
689678
]
690679
}
691680
],
@@ -695,13 +684,11 @@
695684
"batch_val = first(val_loader)\n",
696685
"batch_infer = sliding_window_inference(\n",
697686
" batch_val[\"image\"].to(device), (96, 96), 4, model)\n",
698-
"batch_infer = infer_seg(batch_val[\"image\"].to(device), model).detach().cpu()\n",
699687
"batch_infer.applied_operations = batch_val[\"label\"].applied_operations\n",
700688
"segs_dict = {\"label\": batch_infer}\n",
701-
"# batch_inverter = BatchInverseTransform(val_transforms, val_loader)\n",
702-
"# with allow_missing_keys_mode(val_transforms):\n",
703-
"# fwd_bck_batch_labels = batch_inverter(segs_dict)\n",
704-
"# print(fwd_bck_batch_labels['label'])"
689+
"batch_inverter = BatchInverseTransform(val_transforms, val_loader)\n",
690+
"with allow_missing_keys_mode(val_transforms):\n",
691+
" fwd_bck_batch_labels = batch_inverter(segs_dict)"
705692
]
706693
},
707694
{
@@ -754,7 +741,7 @@
754741
" val_transforms,\n",
755742
" batch_size=5,\n",
756743
" num_workers=0,\n",
757-
" inferrer_fn=partial(infer_seg, model=model), # fn to infer segmentation\n",
744+
" inferrer_fn=model,\n",
758745
" device=device\n",
759746
")\n",
760747
"\n",

0 commit comments

Comments
 (0)