|
1 | 1 | {
|
2 | 2 | "cells": [
|
| 3 | + { |
| 4 | + "cell_type": "markdown", |
| 5 | + "metadata": {}, |
| 6 | + "source": [ |
| 7 | + "Copyright (c) MONAI Consortium \n", |
| 8 | + "Licensed under the Apache License, Version 2.0 (the \"License\"); \n", |
| 9 | + "you may not use this file except in compliance with the License. \n", |
| 10 | + "You may obtain a copy of the License at \n", |
| 11 | + " http://www.apache.org/licenses/LICENSE-2.0 \n", |
| 12 | + "Unless required by applicable law or agreed to in writing, software \n", |
| 13 | + "distributed under the License is distributed on an \"AS IS\" BASIS, \n", |
| 14 | + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. \n", |
| 15 | + "See the License for the specific language governing permissions and \n", |
| 16 | + "limitations under the License." |
| 17 | + ] |
| 18 | + }, |
3 | 19 | {
|
4 | 20 | "cell_type": "markdown",
|
5 | 21 | "metadata": {},
|
|
18 | 34 | },
|
19 | 35 | {
|
20 | 36 | "cell_type": "code",
|
21 |
| - "execution_count": 1, |
22 |
| - "metadata": {}, |
| 37 | + "execution_count": null, |
| 38 | + "metadata": { |
| 39 | + "scrolled": true |
| 40 | + }, |
23 | 41 | "outputs": [],
|
24 | 42 | "source": [
|
25 | 43 | "!python -c \"import monai\" || pip install -q \"monai-weekly[pillow, tqdm]\"\n",
|
|
44 | 62 | "name": "stdout",
|
45 | 63 | "output_type": "stream",
|
46 | 64 | "text": [
|
47 |
| - "MONAI version: 0.4.0+119.g9898a89\n", |
48 |
| - "Numpy version: 1.19.2\n", |
49 |
| - "Pytorch version: 1.7.1\n", |
50 |
| - "MONAI flags: HAS_EXT = False, USE_COMPILED = False\n", |
51 |
| - "MONAI rev id: 9898a89d24364a9be3525d066a7492adf00b9e6b\n", |
| 65 | + "MONAI version: 1.1.0+11.g7de6c336.dirty\n", |
| 66 | + "Numpy version: 1.22.2\n", |
| 67 | + "Pytorch version: 1.13.0+cu117\n", |
| 68 | + "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n", |
| 69 | + "MONAI rev id: 7de6c33656a99087ca3b89a817b0879cf093febc\n", |
| 70 | + "MONAI __file__: /workspace/Code/MONAI/monai/__init__.py\n", |
52 | 71 | "\n",
|
53 | 72 | "Optional dependencies:\n",
|
54 |
| - "Pytorch Ignite version: 0.4.2\n", |
55 |
| - "Nibabel version: 3.2.1\n", |
56 |
| - "scikit-image version: 0.18.1\n", |
57 |
| - "Pillow version: 8.1.0\n", |
58 |
| - "Tensorboard version: 2.4.1\n", |
59 |
| - "gdown version: 3.12.2\n", |
60 |
| - "TorchVision version: 0.8.2\n", |
61 |
| - "ITK version: 5.1.2\n", |
62 |
| - "tqdm version: 4.56.0\n", |
63 |
| - "lmdb version: 1.0.0\n", |
64 |
| - "psutil version: 5.8.0\n", |
| 73 | + "Pytorch Ignite version: 0.4.10\n", |
| 74 | + "Nibabel version: 4.0.2\n", |
| 75 | + "scikit-image version: 0.19.3\n", |
| 76 | + "Pillow version: 9.0.1\n", |
| 77 | + "Tensorboard version: 2.11.0\n", |
| 78 | + "gdown version: 4.6.0\n", |
| 79 | + "TorchVision version: 0.14.0+cu117\n", |
| 80 | + "tqdm version: 4.64.1\n", |
| 81 | + "lmdb version: 1.3.0\n", |
| 82 | + "psutil version: 5.9.2\n", |
| 83 | + "pandas version: 1.1.5\n", |
| 84 | + "einops version: 0.6.0\n", |
| 85 | + "transformers version: 4.21.3\n", |
| 86 | + "mlflow version: 2.0.1\n", |
| 87 | + "pynrrd version: 1.0.0\n", |
65 | 88 | "\n",
|
66 | 89 | "For details about installing the optional dependencies, please visit:\n",
|
67 | 90 | " https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies\n",
|
|
70 | 93 | }
|
71 | 94 | ],
|
72 | 95 | "source": [
|
73 |
| - "# Copyright 2020 MONAI Consortium\n", |
74 |
| - "# Licensed under the Apache License, Version 2.0 (the \"License\");\n", |
75 |
| - "# you may not use this file except in compliance with the License.\n", |
76 |
| - "# You may obtain a copy of the License at\n", |
77 |
| - "# http://www.apache.org/licenses/LICENSE-2.0\n", |
78 |
| - "# Unless required by applicable law or agreed to in writing, software\n", |
79 |
| - "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", |
80 |
| - "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", |
81 |
| - "# See the License for the specific language governing permissions and\n", |
82 |
| - "# limitations under the License.\n", |
83 |
| - "\n", |
84 | 96 | "import os\n",
|
85 | 97 | "import shutil\n",
|
86 | 98 | "import tempfile\n",
|
|
96 | 108 | "from monai.networks.nets import DenseNet121\n",
|
97 | 109 | "from monai.engines import SupervisedTrainer\n",
|
98 | 110 | "from monai.transforms import (\n",
|
99 |
| - " AddChannel,\n", |
| 111 | + " EnsureChannelFirst,\n", |
100 | 112 | " Compose,\n",
|
101 | 113 | " LoadImage,\n",
|
102 | 114 | " RandFlip,\n",
|
|
112 | 124 | "print_config()"
|
113 | 125 | ]
|
114 | 126 | },
|
| 127 | + { |
| 128 | + "cell_type": "markdown", |
| 129 | + "metadata": {}, |
| 130 | + "source": [ |
| 131 | + "## Setup data directory\n", |
| 132 | + "You can specify a directory with the MONAI_DATA_DIRECTORY environment variable.\n", |
| 133 | + "This allows you to save results and reuse downloads.\n", |
| 134 | + "If not specified a temporary directory will be used." |
| 135 | + ] |
| 136 | + }, |
| 137 | + { |
| 138 | + "cell_type": "code", |
| 139 | + "execution_count": 2, |
| 140 | + "metadata": {}, |
| 141 | + "outputs": [ |
| 142 | + { |
| 143 | + "name": "stdout", |
| 144 | + "output_type": "stream", |
| 145 | + "text": [ |
| 146 | + "/workspace/Data\n" |
| 147 | + ] |
| 148 | + } |
| 149 | + ], |
| 150 | + "source": [ |
| 151 | + "directory = os.environ.get(\"MONAI_DATA_DIRECTORY\")\n", |
| 152 | + "root_dir = tempfile.mkdtemp() if directory is None else directory\n", |
| 153 | + "print(root_dir)" |
| 154 | + ] |
| 155 | + }, |
115 | 156 | {
|
116 | 157 | "cell_type": "markdown",
|
117 | 158 | "metadata": {},
|
|
130 | 171 | },
|
131 | 172 | {
|
132 | 173 | "cell_type": "code",
|
133 |
| - "execution_count": 2, |
| 174 | + "execution_count": 3, |
134 | 175 | "metadata": {
|
135 | 176 | "tags": []
|
136 | 177 | },
|
137 |
| - "outputs": [ |
138 |
| - { |
139 |
| - "name": "stderr", |
140 |
| - "output_type": "stream", |
141 |
| - "text": [ |
142 |
| - "MedNIST.tar.gz: 0.00B [00:00, ?B/s]" |
143 |
| - ] |
144 |
| - }, |
145 |
| - { |
146 |
| - "name": "stdout", |
147 |
| - "output_type": "stream", |
148 |
| - "text": [ |
149 |
| - "/tmp/tmpxxp5z205\n" |
150 |
| - ] |
151 |
| - }, |
152 |
| - { |
153 |
| - "name": "stderr", |
154 |
| - "output_type": "stream", |
155 |
| - "text": [ |
156 |
| - "MedNIST.tar.gz: 59.0MB [00:04, 15.4MB/s] \n" |
157 |
| - ] |
158 |
| - }, |
159 |
| - { |
160 |
| - "name": "stdout", |
161 |
| - "output_type": "stream", |
162 |
| - "text": [ |
163 |
| - "\n", |
164 |
| - "downloaded file: /tmp/tmpxxp5z205/MedNIST.tar.gz.\n", |
165 |
| - "Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", |
166 |
| - "Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n" |
167 |
| - ] |
168 |
| - } |
169 |
| - ], |
| 178 | + "outputs": [], |
170 | 179 | "source": [
|
171 |
| - "directory = os.environ.get(\"MONAI_DATA_DIRECTORY\")\n", |
172 |
| - "root_dir = tempfile.mkdtemp() if directory is None else directory\n", |
173 |
| - "print(root_dir)\n", |
174 |
| - "\n", |
175 | 180 | "resource = \"https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/MedNIST.tar.gz\"\n",
|
176 | 181 | "md5 = \"0bc7306e7427e00ad1c5526a6677552d\"\n",
|
177 | 182 | "\n",
|
|
183 | 188 | },
|
184 | 189 | {
|
185 | 190 | "cell_type": "code",
|
186 |
| - "execution_count": 3, |
| 191 | + "execution_count": 4, |
187 | 192 | "metadata": {},
|
188 | 193 | "outputs": [
|
189 | 194 | {
|
|
224 | 229 | },
|
225 | 230 | {
|
226 | 231 | "cell_type": "code",
|
227 |
| - "execution_count": 4, |
| 232 | + "execution_count": 5, |
228 | 233 | "metadata": {},
|
229 | 234 | "outputs": [],
|
230 | 235 | "source": [
|
231 | 236 | "train_transforms = Compose(\n",
|
232 | 237 | " [\n",
|
233 | 238 | " LoadImage(image_only=True),\n",
|
234 |
| - " AddChannel(),\n", |
| 239 | + " EnsureChannelFirst(),\n", |
235 | 240 | " ScaleIntensity(),\n",
|
236 | 241 | " RandRotate(range_x=np.pi / 12, prob=0.5, keep_size=True),\n",
|
237 | 242 | " RandFlip(spatial_axis=0, prob=0.5),\n",
|
|
243 | 248 | },
|
244 | 249 | {
|
245 | 250 | "cell_type": "code",
|
246 |
| - "execution_count": 5, |
| 251 | + "execution_count": 6, |
247 | 252 | "metadata": {},
|
248 | 253 | "outputs": [],
|
249 | 254 | "source": [
|
|
267 | 272 | },
|
268 | 273 | {
|
269 | 274 | "cell_type": "code",
|
270 |
| - "execution_count": 6, |
271 |
| - "metadata": {}, |
| 275 | + "execution_count": 7, |
| 276 | + "metadata": { |
| 277 | + "scrolled": true |
| 278 | + }, |
272 | 279 | "outputs": [],
|
273 | 280 | "source": [
|
274 | 281 | "device = torch.device(\"cuda:0\")\n",
|
|
280 | 287 | },
|
281 | 288 | {
|
282 | 289 | "cell_type": "code",
|
283 |
| - "execution_count": 7, |
284 |
| - "metadata": {}, |
| 290 | + "execution_count": 8, |
| 291 | + "metadata": { |
| 292 | + "scrolled": false |
| 293 | + }, |
285 | 294 | "outputs": [
|
286 | 295 | {
|
287 | 296 | "name": "stdout",
|
288 | 297 | "output_type": "stream",
|
289 | 298 | "text": [
|
290 |
| - "Epoch 1/5 Loss: 0.231450617313385\n", |
291 |
| - "Epoch 2/5 Loss: 0.07256477326154709\n", |
292 |
| - "Epoch 3/5 Loss: 0.04309789836406708\n", |
293 |
| - "Epoch 4/5 Loss: 0.04549304023385048\n", |
294 |
| - "Epoch 5/5 Loss: 0.025731785222887993\n" |
| 299 | + "2023-01-13 07:55:59,514 - Engine run resuming from iteration 0, epoch 0 until 5 epochs\n", |
| 300 | + "Epoch 1/5 Loss: 0.19491052627563477\n", |
| 301 | + "2023-01-13 07:56:20,118 - Epoch[1] Complete. Time taken: 00:00:20.343\n", |
| 302 | + "Epoch 2/5 Loss: 0.11047982424497604\n", |
| 303 | + "2023-01-13 07:56:39,910 - Epoch[2] Complete. Time taken: 00:00:19.792\n", |
| 304 | + "Epoch 3/5 Loss: 0.023833362385630608\n", |
| 305 | + "2023-01-13 07:56:59,798 - Epoch[3] Complete. Time taken: 00:00:19.887\n", |
| 306 | + "Epoch 4/5 Loss: 0.02349323034286499\n", |
| 307 | + "2023-01-13 07:57:19,839 - Epoch[4] Complete. Time taken: 00:00:20.041\n", |
| 308 | + "Epoch 5/5 Loss: 0.01211395114660263\n", |
| 309 | + "2023-01-13 07:57:39,858 - Epoch[5] Complete. Time taken: 00:00:20.018\n", |
| 310 | + "2023-01-13 07:57:39,859 - Engine run complete. Time taken: 00:01:40.344\n" |
295 | 311 | ]
|
296 | 312 | }
|
297 | 313 | ],
|
|
608 | 624 | "!docker image ls"
|
609 | 625 | ]
|
610 | 626 | },
|
| 627 | + { |
| 628 | + "cell_type": "markdown", |
| 629 | + "metadata": {}, |
| 630 | + "source": [ |
| 631 | + "## Cleanup data directory\n", |
| 632 | + "Remove directory if a temporary was used." |
| 633 | + ] |
| 634 | + }, |
611 | 635 | {
|
612 | 636 | "cell_type": "code",
|
613 | 637 | "execution_count": null,
|
|
635 | 659 | "name": "python",
|
636 | 660 | "nbconvert_exporter": "python",
|
637 | 661 | "pygments_lexer": "ipython3",
|
638 |
| - "version": "3.7.10" |
| 662 | + "version": "3.8.13" |
639 | 663 | }
|
640 | 664 | },
|
641 | 665 | "nbformat": 4,
|
|
0 commit comments