From 646f9822e50c8de47c22897ddcbfbdf7420178e5 Mon Sep 17 00:00:00 2001 From: M Q Date: Thu, 16 Nov 2023 09:51:27 -0800 Subject: [PATCH 1/4] Updated the code where a deprecated monai core function is used. Signed-off-by: M Q --- .../ai_unetr_seg_app/unetr_seg_operator.py | 4 +- .../mednist_classifier_monaideploy.py | 6 +- .../tutorials/02_mednist_app-prebuilt.ipynb | 598 ++++++++-------- notebooks/tutorials/02_mednist_app.ipynb | 665 ++++++++++-------- platforms/nuance_pin/app/inference.py | 3 +- 5 files changed, 691 insertions(+), 585 deletions(-) diff --git a/examples/apps/ai_unetr_seg_app/unetr_seg_operator.py b/examples/apps/ai_unetr_seg_app/unetr_seg_operator.py index d368459a..d48b68b1 100644 --- a/examples/apps/ai_unetr_seg_app/unetr_seg_operator.py +++ b/examples/apps/ai_unetr_seg_app/unetr_seg_operator.py @@ -18,10 +18,10 @@ from monai.deploy.operators.monai_seg_inference_operator import InMemImageReader, MonaiSegInferenceOperator from monai.transforms import ( Activationsd, - AddChanneld, AsDiscreted, Compose, CropForegroundd, + EnsureChannelFirstd, Invertd, LoadImaged, Orientationd, @@ -132,7 +132,7 @@ def pre_process(self, img_reader, out_dir: str = "./input_images") -> Compose: return Compose( [ LoadImaged(keys=my_key, reader=img_reader), - AddChanneld(keys=my_key), + EnsureChannelFirstd(keys=my_key), # The SaveImaged transform can be commented out to save a couple seconds. # Uncompress NIfTI file, nii, is used favoring speed over size, but can be changed to nii.gz SaveImaged( diff --git a/examples/apps/mednist_classifier_monaideploy/mednist_classifier_monaideploy.py b/examples/apps/mednist_classifier_monaideploy/mednist_classifier_monaideploy.py index 93eb3709..95d872e0 100644 --- a/examples/apps/mednist_classifier_monaideploy/mednist_classifier_monaideploy.py +++ b/examples/apps/mednist_classifier_monaideploy/mednist_classifier_monaideploy.py @@ -19,7 +19,7 @@ from monai.deploy.conditions import CountCondition from monai.deploy.core import AppContext, Application, ConditionType, Fragment, Image, Operator, OperatorSpec from monai.deploy.operators.dicom_text_sr_writer_operator import DICOMTextSRWriterOperator, EquipmentInfo, ModelInfo -from monai.transforms import AddChannel, Compose, EnsureType, ScaleIntensity +from monai.transforms import Compose, EnsureChannelFirst, EnsureType, ScaleIntensity MEDNIST_CLASSES = ["AbdomenCT", "BreastMRI", "CXR", "ChestCT", "Hand", "HeadCT"] @@ -170,7 +170,7 @@ def setup(self, spec: OperatorSpec): @property def transform(self): - return Compose([AddChannel(), ScaleIntensity(), EnsureType()]) + return Compose([EnsureChannelFirst(channel_dim="no_channel"), ScaleIntensity(), EnsureType()]) def compute(self, op_input, op_output, context): import json @@ -218,7 +218,7 @@ def compose(self): self, app_context=app_context, output_folder=app_output_path, model_path=model_path, name="classifier_op" ) - my_model_info = ModelInfo("MONAI WG Trainer", "MEDNIST Classifier", "0.1", "xyz") + my_model_info = ModelInfo("MONAI WG Trainer", "MEDNIST Classifier", "0.1", "1234") my_equipment = EquipmentInfo(manufacturer="MOANI Deploy App SDK", manufacturer_model="DICOM SR Writer") my_special_tags = {"SeriesDescription": "Not for clinical use. The result is for research use only."} dicom_sr_operator = DICOMTextSRWriterOperator( diff --git a/notebooks/tutorials/02_mednist_app-prebuilt.ipynb b/notebooks/tutorials/02_mednist_app-prebuilt.ipynb index 3647b777..3c3a1a7c 100644 --- a/notebooks/tutorials/02_mednist_app-prebuilt.ipynb +++ b/notebooks/tutorials/02_mednist_app-prebuilt.ipynb @@ -28,12 +28,12 @@ "output_type": "stream", "text": [ "Cloning into 'source'...\n", - "remote: Enumerating objects: 289, done.\u001b[K\n", - "remote: Counting objects: 100% (289/289), done.\u001b[K\n", - "remote: Compressing objects: 100% (255/255), done.\u001b[K\n", - "remote: Total 289 (delta 60), reused 126 (delta 20), pack-reused 0\u001b[K\n", - "Receiving objects: 100% (289/289), 1.22 MiB | 593.00 KiB/s, done.\n", - "Resolving deltas: 100% (60/60), done.\n" + "remote: Enumerating objects: 276, done.\u001b[K\n", + "remote: Counting objects: 100% (276/276), done.\u001b[K\n", + "remote: Compressing objects: 100% (223/223), done.\u001b[K\n", + "remote: Total 276 (delta 56), reused 143 (delta 31), pack-reused 0\u001b[K\n", + "Receiving objects: 100% (276/276), 1.41 MiB | 1.83 MiB/s, done.\n", + "Resolving deltas: 100% (56/56), done.\n" ] } ], @@ -45,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -70,42 +70,41 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: monai-deploy-app-sdk in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (0.5.1+16.g23189de)\n", + "Requirement already satisfied: monai-deploy-app-sdk in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (0.6.0)\n", "Requirement already satisfied: numpy>=1.21.6 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from monai-deploy-app-sdk) (1.24.4)\n", - "Requirement already satisfied: networkx>=2.4 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from monai-deploy-app-sdk) (3.1)\n", - "Requirement already satisfied: holoscan>=0.5.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from monai-deploy-app-sdk) (0.6.0)\n", + "Requirement already satisfied: holoscan~=0.6.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from monai-deploy-app-sdk) (0.6.0)\n", "Requirement already satisfied: colorama>=0.4.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from monai-deploy-app-sdk) (0.4.6)\n", - "Requirement already satisfied: typeguard>=3.0.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from monai-deploy-app-sdk) (4.1.2)\n", - "Requirement already satisfied: cloudpickle~=2.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan>=0.5.0->monai-deploy-app-sdk) (2.2.1)\n", - "Requirement already satisfied: python-on-whales~=0.60 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan>=0.5.0->monai-deploy-app-sdk) (0.64.2)\n", - "Requirement already satisfied: Jinja2~=3.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan>=0.5.0->monai-deploy-app-sdk) (3.1.2)\n", - "Requirement already satisfied: packaging~=23.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan>=0.5.0->monai-deploy-app-sdk) (23.1)\n", - "Requirement already satisfied: pyyaml~=6.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan>=0.5.0->monai-deploy-app-sdk) (6.0.1)\n", - "Requirement already satisfied: requests~=2.28 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan>=0.5.0->monai-deploy-app-sdk) (2.31.0)\n", - "Requirement already satisfied: pip>=20.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan>=0.5.0->monai-deploy-app-sdk) (23.2.1)\n", - "Requirement already satisfied: wheel-axle-runtime<1.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan>=0.5.0->monai-deploy-app-sdk) (0.0.4)\n", + "Requirement already satisfied: typeguard>=3.0.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from monai-deploy-app-sdk) (4.1.5)\n", + "Requirement already satisfied: cloudpickle~=2.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan~=0.6.0->monai-deploy-app-sdk) (2.2.1)\n", + "Requirement already satisfied: python-on-whales~=0.60 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan~=0.6.0->monai-deploy-app-sdk) (0.67.0)\n", + "Requirement already satisfied: Jinja2~=3.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan~=0.6.0->monai-deploy-app-sdk) (3.1.2)\n", + "Requirement already satisfied: packaging~=23.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan~=0.6.0->monai-deploy-app-sdk) (23.2)\n", + "Requirement already satisfied: pyyaml~=6.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan~=0.6.0->monai-deploy-app-sdk) (6.0.1)\n", + "Requirement already satisfied: requests~=2.28 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan~=0.6.0->monai-deploy-app-sdk) (2.31.0)\n", + "Requirement already satisfied: pip>=20.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan~=0.6.0->monai-deploy-app-sdk) (23.3.1)\n", + "Requirement already satisfied: wheel-axle-runtime<1.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from holoscan~=0.6.0->monai-deploy-app-sdk) (0.0.5)\n", "Requirement already satisfied: importlib-metadata>=3.6 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from typeguard>=3.0.0->monai-deploy-app-sdk) (6.8.0)\n", - "Requirement already satisfied: typing-extensions>=4.7.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from typeguard>=3.0.0->monai-deploy-app-sdk) (4.7.1)\n", - "Requirement already satisfied: zipp>=0.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from importlib-metadata>=3.6->typeguard>=3.0.0->monai-deploy-app-sdk) (3.16.2)\n", - "Requirement already satisfied: MarkupSafe>=2.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from Jinja2~=3.1->holoscan>=0.5.0->monai-deploy-app-sdk) (2.1.3)\n", - "Requirement already satisfied: pydantic!=2.0.*,<3,>=1.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from python-on-whales~=0.60->holoscan>=0.5.0->monai-deploy-app-sdk) (2.2.0)\n", - "Requirement already satisfied: tqdm in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from python-on-whales~=0.60->holoscan>=0.5.0->monai-deploy-app-sdk) (4.66.1)\n", - "Requirement already satisfied: typer>=0.4.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from python-on-whales~=0.60->holoscan>=0.5.0->monai-deploy-app-sdk) (0.9.0)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests~=2.28->holoscan>=0.5.0->monai-deploy-app-sdk) (3.2.0)\n", - "Requirement already satisfied: idna<4,>=2.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests~=2.28->holoscan>=0.5.0->monai-deploy-app-sdk) (3.4)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests~=2.28->holoscan>=0.5.0->monai-deploy-app-sdk) (2.0.4)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests~=2.28->holoscan>=0.5.0->monai-deploy-app-sdk) (2023.7.22)\n", - "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from wheel-axle-runtime<1.0->holoscan>=0.5.0->monai-deploy-app-sdk) (3.12.2)\n", - "Requirement already satisfied: annotated-types>=0.4.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from pydantic!=2.0.*,<3,>=1.5->python-on-whales~=0.60->holoscan>=0.5.0->monai-deploy-app-sdk) (0.5.0)\n", - "Requirement already satisfied: pydantic-core==2.6.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from pydantic!=2.0.*,<3,>=1.5->python-on-whales~=0.60->holoscan>=0.5.0->monai-deploy-app-sdk) (2.6.0)\n", - "Requirement already satisfied: click<9.0.0,>=7.1.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from typer>=0.4.1->python-on-whales~=0.60->holoscan>=0.5.0->monai-deploy-app-sdk) (8.1.7)\n" + "Requirement already satisfied: typing-extensions>=4.7.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from typeguard>=3.0.0->monai-deploy-app-sdk) (4.8.0)\n", + "Requirement already satisfied: zipp>=0.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from importlib-metadata>=3.6->typeguard>=3.0.0->monai-deploy-app-sdk) (3.17.0)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from Jinja2~=3.1->holoscan~=0.6.0->monai-deploy-app-sdk) (2.1.3)\n", + "Requirement already satisfied: pydantic!=2.0.*,<3,>=1.9 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from python-on-whales~=0.60->holoscan~=0.6.0->monai-deploy-app-sdk) (2.5.1)\n", + "Requirement already satisfied: tqdm in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from python-on-whales~=0.60->holoscan~=0.6.0->monai-deploy-app-sdk) (4.66.1)\n", + "Requirement already satisfied: typer>=0.4.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from python-on-whales~=0.60->holoscan~=0.6.0->monai-deploy-app-sdk) (0.9.0)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests~=2.28->holoscan~=0.6.0->monai-deploy-app-sdk) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests~=2.28->holoscan~=0.6.0->monai-deploy-app-sdk) (3.4)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests~=2.28->holoscan~=0.6.0->monai-deploy-app-sdk) (2.1.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests~=2.28->holoscan~=0.6.0->monai-deploy-app-sdk) (2023.7.22)\n", + "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from wheel-axle-runtime<1.0->holoscan~=0.6.0->monai-deploy-app-sdk) (3.13.1)\n", + "Requirement already satisfied: annotated-types>=0.4.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from pydantic!=2.0.*,<3,>=1.9->python-on-whales~=0.60->holoscan~=0.6.0->monai-deploy-app-sdk) (0.6.0)\n", + "Requirement already satisfied: pydantic-core==2.14.3 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from pydantic!=2.0.*,<3,>=1.9->python-on-whales~=0.60->holoscan~=0.6.0->monai-deploy-app-sdk) (2.14.3)\n", + "Requirement already satisfied: click<9.0.0,>=7.1.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from typer>=0.4.1->python-on-whales~=0.60->holoscan~=0.6.0->monai-deploy-app-sdk) (8.1.7)\n" ] } ], @@ -123,38 +122,36 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: monai in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (1.2.0)\n", - "Requirement already satisfied: Pillow in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (10.0.0)\n", - "Requirement already satisfied: torch>=1.9 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from monai) (2.0.1)\n", + "Requirement already satisfied: monai in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (1.3.0)\n", + "Requirement already satisfied: Pillow in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (10.0.1)\n", "Requirement already satisfied: numpy>=1.20 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from monai) (1.24.4)\n", - "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (3.12.2)\n", - "Requirement already satisfied: typing-extensions in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (4.7.1)\n", + "Requirement already satisfied: torch>=1.9 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from monai) (2.1.1)\n", + "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (3.13.1)\n", + "Requirement already satisfied: typing-extensions in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (4.8.0)\n", "Requirement already satisfied: sympy in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (1.12)\n", "Requirement already satisfied: networkx in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (3.1)\n", "Requirement already satisfied: jinja2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (3.1.2)\n", - "Requirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (11.7.99)\n", - "Requirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (11.7.99)\n", - "Requirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (11.7.101)\n", - "Requirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (8.5.0.96)\n", - "Requirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (11.10.3.66)\n", - "Requirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (10.9.0.58)\n", - "Requirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (10.2.10.91)\n", - "Requirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (11.4.0.1)\n", - "Requirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (11.7.4.91)\n", - "Requirement already satisfied: nvidia-nccl-cu11==2.14.3 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (2.14.3)\n", - "Requirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (11.7.91)\n", - "Requirement already satisfied: triton==2.0.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (2.0.0)\n", - "Requirement already satisfied: setuptools in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=1.9->monai) (68.1.2)\n", - "Requirement already satisfied: wheel in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=1.9->monai) (0.41.2)\n", - "Requirement already satisfied: cmake in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from triton==2.0.0->torch>=1.9->monai) (3.27.2)\n", - "Requirement already satisfied: lit in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from triton==2.0.0->torch>=1.9->monai) (16.0.6)\n", + "Requirement already satisfied: fsspec in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (2023.10.0)\n", + "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (12.1.105)\n", + "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (12.1.105)\n", + "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (12.1.105)\n", + "Requirement already satisfied: nvidia-cudnn-cu12==8.9.2.26 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (8.9.2.26)\n", + "Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (12.1.3.1)\n", + "Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (11.0.2.54)\n", + "Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (10.3.2.106)\n", + "Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (11.4.5.107)\n", + "Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (12.1.0.106)\n", + "Requirement already satisfied: nvidia-nccl-cu12==2.18.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (2.18.1)\n", + "Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (12.1.105)\n", + "Requirement already satisfied: triton==2.1.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from torch>=1.9->monai) (2.1.0)\n", + "Requirement already satisfied: nvidia-nvjitlink-cu12 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.9->monai) (12.3.101)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from jinja2->torch>=1.9->monai) (2.1.3)\n", "Requirement already satisfied: mpmath>=0.19 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from sympy->torch>=1.9->monai) (1.3.0)\n" ] @@ -176,7 +173,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -184,22 +181,22 @@ "output_type": "stream", "text": [ "Requirement already satisfied: gdown in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (4.7.1)\n", - "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from gdown) (3.12.2)\n", + "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from gdown) (3.13.1)\n", "Requirement already satisfied: requests[socks] in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from gdown) (2.31.0)\n", "Requirement already satisfied: six in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from gdown) (1.16.0)\n", "Requirement already satisfied: tqdm in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from gdown) (4.66.1)\n", "Requirement already satisfied: beautifulsoup4 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from gdown) (4.12.2)\n", - "Requirement already satisfied: soupsieve>1.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from beautifulsoup4->gdown) (2.4.1)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests[socks]->gdown) (3.2.0)\n", + "Requirement already satisfied: soupsieve>1.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from beautifulsoup4->gdown) (2.5)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests[socks]->gdown) (3.3.2)\n", "Requirement already satisfied: idna<4,>=2.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests[socks]->gdown) (3.4)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests[socks]->gdown) (2.0.4)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests[socks]->gdown) (2.1.0)\n", "Requirement already satisfied: certifi>=2017.4.17 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests[socks]->gdown) (2023.7.22)\n", "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages (from requests[socks]->gdown) (1.7.1)\n", "Downloading...\n", "From (uriginal): https://drive.google.com/uc?id=1yJ4P-xMNEfN6lIOq_u6x1eMAq1_MJu-E\n", - "From (redirected): https://drive.google.com/uc?id=1yJ4P-xMNEfN6lIOq_u6x1eMAq1_MJu-E&confirm=t&uuid=817bd6c8-6cd7-4015-8689-f48a9825afc9\n", + "From (redirected): https://drive.google.com/uc?id=1yJ4P-xMNEfN6lIOq_u6x1eMAq1_MJu-E&confirm=t&uuid=d9974e09-6ccd-4416-9f41-2c3702a3bea7\n", "To: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/mednist_classifier_data.zip\n", - "100%|██████████████████████████████████████| 28.6M/28.6M [00:00<00:00, 56.1MB/s]\n" + "100%|██████████████████████████████████████| 28.6M/28.6M [00:00<00:00, 64.3MB/s]\n" ] } ], @@ -211,7 +208,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -251,7 +248,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -287,21 +284,21 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2023-08-30 00:27:37,497] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy/mednist_classifier_monaideploy.py\n", - "[2023-08-30 00:27:37,497] [INFO] (packager.parameters) - Detected application type: Python File\n", - "[2023-08-30 00:27:37,498] [INFO] (packager) - Scanning for models in {models_path}...\n", - "[2023-08-30 00:27:37,498] [DEBUG] (packager) - Model model=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model added.\n", - "[2023-08-30 00:27:37,498] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy/app.yaml...\n", - "[2023-08-30 00:27:37,500] [INFO] (packager) - Generating app.json...\n", - "[2023-08-30 00:27:37,500] [INFO] (packager) - Generating pkg.json...\n", - "[2023-08-30 00:27:37,500] [DEBUG] (common) - \n", + "[2023-11-15 18:37:06,027] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy/mednist_classifier_monaideploy.py\n", + "[2023-11-15 18:37:06,027] [INFO] (packager.parameters) - Detected application type: Python File\n", + "[2023-11-15 18:37:06,027] [INFO] (packager) - Scanning for models in {models_path}...\n", + "[2023-11-15 18:37:06,027] [DEBUG] (packager) - Model model=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model added.\n", + "[2023-11-15 18:37:06,027] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy/app.yaml...\n", + "[2023-11-15 18:37:06,030] [INFO] (packager) - Generating app.json...\n", + "[2023-11-15 18:37:06,030] [INFO] (packager) - Generating pkg.json...\n", + "[2023-11-15 18:37:06,033] [DEBUG] (common) - \n", "=============== Begin app.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -336,7 +333,7 @@ "}\n", "================ End app.json ================\n", " \n", - "[2023-08-30 00:27:37,501] [DEBUG] (common) - \n", + "[2023-11-15 18:37:06,033] [DEBUG] (common) - \n", "=============== Begin pkg.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -355,7 +352,7 @@ "}\n", "================ End pkg.json ================\n", " \n", - "[2023-08-30 00:27:37,533] [DEBUG] (packager.builder) - \n", + "[2023-11-15 18:37:06,061] [DEBUG] (packager.builder) - \n", "========== Begin Dockerfile ==========\n", "\n", "\n", @@ -433,9 +430,8 @@ "RUN pip install holoscan==0.6.0\n", "\n", "\n", - "# Copy user-specified MONAI Deploy SDK file\n", - "COPY ./monai_deploy_app_sdk-0.5.1+22.g029f8bc.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+22.g029f8bc.dirty-py3-none-any.whl\n", - "RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+22.g029f8bc.dirty-py3-none-any.whl\n", + "# Install MONAI Deploy from PyPI org\n", + "RUN pip install monai-deploy-app-sdk==0.6.0\n", "\n", "\n", "\n", @@ -451,7 +447,7 @@ "ENTRYPOINT [\"/var/holoscan/tools\"]\n", "=========== End Dockerfile ===========\n", "\n", - "[2023-08-30 00:27:37,534] [INFO] (packager.builder) - \n", + "[2023-11-15 18:37:06,061] [INFO] (packager.builder) - \n", "===============================================================================\n", "Building image for: x64-workstation\n", " Architecture: linux/amd64\n", @@ -460,16 +456,18 @@ " Cache: Enabled\n", " Configuration: dgpu\n", " Holoiscan SDK Package: pypi.org\n", - " MONAI Deploy App SDK Package: /home/mqin/src/monai-deploy-app-sdk/dist/monai_deploy_app_sdk-0.5.1+22.g029f8bc.dirty-py3-none-any.whl\n", + " MONAI Deploy App SDK Package: pypi.org\n", " gRPC Health Probe: N/A\n", " SDK Version: 0.6.0\n", " SDK: monai-deploy\n", " Tag: mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", " \n", - "[2023-08-30 00:27:37,873] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", - "[2023-08-30 00:27:37,873] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", + "[2023-11-15 18:37:06,311] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", + "[2023-11-15 18:37:06,312] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", + "#0 building with \"holoscan_app_builder\" instance using docker-container driver\n", + "\n", "#1 [internal] load build definition from Dockerfile\n", - "#1 transferring dockerfile: 2.67kB done\n", + "#1 transferring dockerfile: 2.49kB done\n", "#1 DONE 0.1s\n", "\n", "#2 [internal] load .dockerignore\n", @@ -477,180 +475,175 @@ "#2 DONE 0.1s\n", "\n", "#3 [internal] load metadata for nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu\n", - "#3 DONE 0.7s\n", + "#3 DONE 0.4s\n", "\n", "#4 [internal] load build context\n", "#4 DONE 0.0s\n", "\n", - "#5 importing cache manifest from local:8636426000862419753\n", + "#5 importing cache manifest from local:12435489437730595250\n", "#5 DONE 0.0s\n", "\n", - "#6 importing cache manifest from nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu\n", - "#6 DONE 0.7s\n", + "#6 [ 1/21] FROM nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu@sha256:9653f80f241fd542f25afbcbcf7a0d02ed7e5941c79763e69def5b1e6d9fb7bc\n", + "#6 resolve nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu@sha256:9653f80f241fd542f25afbcbcf7a0d02ed7e5941c79763e69def5b1e6d9fb7bc 0.1s done\n", + "#6 DONE 0.1s\n", "\n", - "#7 [ 1/22] FROM nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu@sha256:9653f80f241fd542f25afbcbcf7a0d02ed7e5941c79763e69def5b1e6d9fb7bc\n", - "#7 resolve nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu@sha256:9653f80f241fd542f25afbcbcf7a0d02ed7e5941c79763e69def5b1e6d9fb7bc 0.1s done\n", - "#7 DONE 0.1s\n", + "#7 importing cache manifest from nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu\n", + "#7 DONE 0.7s\n", "\n", "#4 [internal] load build context\n", - "#4 transferring context: 28.74MB 0.2s done\n", + "#4 transferring context: 28.60MB 0.3s done\n", "#4 DONE 0.3s\n", "\n", - "#8 [19/22] COPY ./map/app.json /etc/holoscan/app.json\n", + "#8 [11/21] RUN chmod +x /var/holoscan/tools\n", "#8 CACHED\n", "\n", - "#9 [ 2/22] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", + "#9 [12/21] COPY ./pip/requirements.txt /tmp/requirements.txt\n", "#9 CACHED\n", "\n", - "#10 [15/22] RUN pip install holoscan==0.6.0\n", + "#10 [ 7/21] RUN chown -R holoscan /var/holoscan/input\n", "#10 CACHED\n", "\n", - "#11 [ 5/22] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", + "#11 [20/21] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", "#11 CACHED\n", "\n", - "#12 [ 9/22] WORKDIR /var/holoscan\n", + "#12 [ 2/21] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", "#12 CACHED\n", "\n", - "#13 [14/22] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", + "#13 [ 6/21] RUN chown -R holoscan /var/holoscan\n", "#13 CACHED\n", "\n", - "#14 [ 3/22] RUN apt-get update && apt-get install -y curl jq && rm -rf /var/lib/apt/lists/*\n", + "#14 [ 9/21] WORKDIR /var/holoscan\n", "#14 CACHED\n", "\n", - "#15 [12/22] COPY ./pip/requirements.txt /tmp/requirements.txt\n", + "#15 [ 8/21] RUN chown -R holoscan /var/holoscan/output\n", "#15 CACHED\n", "\n", - "#16 [16/22] COPY ./monai_deploy_app_sdk-0.5.1+22.g029f8bc.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+22.g029f8bc.dirty-py3-none-any.whl\n", + "#16 [10/21] COPY ./tools /var/holoscan/tools\n", "#16 CACHED\n", "\n", - "#17 [ 7/22] RUN chown -R holoscan /var/holoscan/input\n", + "#17 [ 5/21] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", "#17 CACHED\n", "\n", - "#18 [11/22] RUN chmod +x /var/holoscan/tools\n", + "#18 [17/21] COPY ./models /opt/holoscan/models\n", "#18 CACHED\n", "\n", - "#19 [18/22] COPY ./models /opt/holoscan/models\n", + "#19 [16/21] RUN pip install monai-deploy-app-sdk==0.6.0\n", "#19 CACHED\n", "\n", - "#20 [13/22] RUN pip install --upgrade pip\n", + "#20 [ 3/21] RUN apt-get update && apt-get install -y curl jq && rm -rf /var/lib/apt/lists/*\n", "#20 CACHED\n", "\n", - "#21 [ 6/22] RUN chown -R holoscan /var/holoscan\n", + "#21 [13/21] RUN pip install --upgrade pip\n", "#21 CACHED\n", "\n", - "#22 [ 4/22] RUN groupadd -g 1000 holoscan\n", + "#22 [14/21] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", "#22 CACHED\n", "\n", - "#23 [17/22] RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+22.g029f8bc.dirty-py3-none-any.whl\n", + "#23 [18/21] COPY ./map/app.json /etc/holoscan/app.json\n", "#23 CACHED\n", "\n", - "#24 [20/22] COPY ./app.config /var/holoscan/app.yaml\n", + "#24 [ 4/21] RUN groupadd -g 1000 holoscan\n", "#24 CACHED\n", "\n", - "#25 [21/22] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", + "#25 [15/21] RUN pip install holoscan==0.6.0\n", "#25 CACHED\n", "\n", - "#26 [ 8/22] RUN chown -R holoscan /var/holoscan/output\n", + "#26 [19/21] COPY ./app.config /var/holoscan/app.yaml\n", "#26 CACHED\n", "\n", - "#27 [10/22] COPY ./tools /var/holoscan/tools\n", + "#27 [21/21] COPY ./app /opt/holoscan/app\n", "#27 CACHED\n", "\n", - "#28 [22/22] COPY ./app /opt/holoscan/app\n", - "#28 CACHED\n", - "\n", - "#29 exporting to docker image format\n", - "#29 exporting layers done\n", - "#29 exporting manifest sha256:d3b7e9f7074b67ee41792399d3628933430a1008bb4b0ea55a4c5bbd6f55c0ff done\n", - "#29 exporting config sha256:5c18974168b1fe160a2b339079dc229ca5da7436a35b371fa7e84c98bbffc41f\n", - "#29 exporting config sha256:5c18974168b1fe160a2b339079dc229ca5da7436a35b371fa7e84c98bbffc41f done\n", - "#29 sending tarball\n", - "#29 ...\n", - "\n", - "#30 importing to docker\n", - "#30 DONE 0.5s\n", - "\n", - "#29 exporting to docker image format\n", - "#29 sending tarball 60.0s done\n", - "#29 DONE 60.1s\n", - "\n", - "#31 exporting content cache\n", - "#31 preparing build cache for export\n", - "#31 writing layer sha256:0709800848b4584780b40e7e81200689870e890c38b54e96b65cd0a3b1942f2d\n", - "#31 preparing build cache for export 0.5s done\n", - "#31 writing layer sha256:0709800848b4584780b40e7e81200689870e890c38b54e96b65cd0a3b1942f2d done\n", - "#31 writing layer sha256:0ce020987cfa5cd1654085af3bb40779634eb3d792c4a4d6059036463ae0040d done\n", - "#31 writing layer sha256:0d30a78cb8a1aa805a492552b4ca85bc45495e1124639d686d75536c6a92de72 done\n", - "#31 writing layer sha256:0dd1cff2f3adeba05c3efdf05c6f9ca4b0b2f59c95bb3f29d713b7b30615f1e5 done\n", - "#31 writing layer sha256:0f65089b284381bf795d15b1a186e2a8739ea957106fa526edef0d738e7cda70 done\n", - "#31 writing layer sha256:12a47450a9f9cc5d4edab65d0f600dbbe8b23a1663b0b3bb2c481d40e074b580 done\n", - "#31 writing layer sha256:18a470321fd8787a309fd093c140e1427c4b14f6d9d775054985aeae6510eb36 done\n", - "#31 writing layer sha256:19c20b65326c1511f8ab02f4a41453f8c0b6d9f2bdea8bb25038b628cef67ab9 done\n", - "#31 writing layer sha256:1de965777e2e37c7fabe00bdbf3d0203ca83ed30a71a5479c3113fe4fc48c4bb done\n", - "#31 writing layer sha256:22b384cd1e678fc56dc95c82f42e7a540d055418d0f1eef8d908c88305e23a88 done\n", - "#31 writing layer sha256:24b5aa2448e920814dd67d7d3c0169b2cdacb13c4048d74ded3b4317843b13ff done\n", - "#31 writing layer sha256:2d42104dbf0a7cc962b791f6ab4f45a803f8a36d296f996aca180cfb2f3e30d0 done\n", - "#31 writing layer sha256:2fa1ce4fa3fec6f9723380dc0536b7c361d874add0baaddc4bbf2accac82d2ff done\n", - "#31 writing layer sha256:38794be1b5dc99645feabf89b22cd34fb5bdffb5164ad920e7df94f353efe9c0 done\n", - "#31 writing layer sha256:38f963dc57c1e7b68a738fe39ed9f9345df7188111a047e2163a46648d7f1d88 done\n", - "#31 writing layer sha256:3e7e4c9bc2b136814c20c04feb4eea2b2ecf972e20182d88759931130cfb4181 done\n", - "#31 writing layer sha256:3fd77037ad585442cd82d64e337f49a38ddba50432b2a1e563a48401d25c79e6 done\n", - "#31 writing layer sha256:41814ed91034b30ac9c44dfc604a4bade6138005ccf682372c02e0bead66dbc0 done\n", - "#31 writing layer sha256:45893188359aca643d5918c9932da995364dc62013dfa40c075298b1baabece3 done\n", - "#31 writing layer sha256:49bc651b19d9e46715c15c41b7c0daa007e8e25f7d9518f04f0f06592799875a done\n", - "#31 writing layer sha256:4c12db5118d8a7d909e4926d69a2192d2b3cd8b110d49c7504a4f701258c1ccc done\n", - "#31 writing layer sha256:4cc43a803109d6e9d1fd35495cef9b1257035f5341a2db54f7a1940815b6cc65 done\n", - "#31 writing layer sha256:4d32b49e2995210e8937f0898327f196d3fcc52486f0be920e8b2d65f150a7ab done\n", - "#31 writing layer sha256:4d6fe980bad9cd7b2c85a478c8033cae3d098a81f7934322fb64658b0c8f9854 done\n", - "#31 writing layer sha256:4e78baa7922aa440fcba2b268af798b094fdb64e4450a916c15027abc06a1123 done\n", - "#31 writing layer sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 done\n", - "#31 writing layer sha256:5150182f1ff123399b300ca469e00f6c4d82e1b9b72652fb8ee7eab370245236 done\n", - "#31 writing layer sha256:595c38fa102c61c3dda19bdab70dcd26a0e50465b986d022a84fa69023a05d0f done\n", - "#31 writing layer sha256:59d451175f6950740e26d38c322da0ef67cb59da63181eb32996f752ba8a2f17 done\n", - "#31 writing layer sha256:5ad1f2004580e415b998124ea394e9d4072a35d70968118c779f307204d6bd17 done\n", - "#31 writing layer sha256:62598eafddf023e7f22643485f4321cbd51ff7eee743b970db12454fd3c8c675 done\n", - "#31 writing layer sha256:63d7e616a46987136f4cc9eba95db6f6327b4854cfe3c7e20fed6db0c966e380 done\n", - "#31 writing layer sha256:654056fd3057d315a0066ee5f4367ed8954486493fe95c0c171c27dff8ac0ffc done\n", - "#31 writing layer sha256:6939d591a6b09b14a437e5cd2d6082a52b6d76bec4f72d960440f097721da34f done\n", - "#31 writing layer sha256:698318e5a60e5e0d48c45bf992f205a9532da567fdfe94bd59be2e192975dd6f done\n", - "#31 writing layer sha256:6ddc1d0f91833b36aac1c6f0c8cea005c87d94bab132d46cc06d9b060a81cca3 done\n", - "#31 writing layer sha256:74ac1f5a47c0926bff1e997bb99985a09926f43bd0895cb27ceb5fa9e95f8720 done\n", - "#31 writing layer sha256:7577973918dd30e764733a352a93f418000bc3181163ca451b2307492c1a6ba9 done\n", - "#31 writing layer sha256:7f038e6d9e00dcbfc90c1c97d7bb11aca6cacd2aa279d9a732f08701dafb8e8c done\n", - "#31 writing layer sha256:81ab55ca8bce88347661e1c1e6d58975b998017ad2e91a1040bd3f5017741d2b done\n", - "#31 writing layer sha256:886c886d8a09d8befb92df75dd461d4f97b77d7cff4144c4223b0d2f6f2c17f2 done\n", - "#31 writing layer sha256:8a7451db9b4b817b3b33904abddb7041810a4ffe8ed4a034307d45d9ae9b3f2a done\n", - "#31 writing layer sha256:916f4054c6e7f10de4fd7c08ffc75fa23ebecca4eceb8183cb1023b33b1696c9 done\n", - "#31 writing layer sha256:9463aa3f56275af97693df69478a2dc1d171f4e763ca6f7b6f370a35e605c154 done\n", - "#31 writing layer sha256:955fd173ed884230c2eded4542d10a97384b408537be6bbb7c4ae09ccd6fb2d0 done\n", - "#31 writing layer sha256:9c42a4ee99755f441251e6043b2cbba16e49818a88775e7501ec17e379ce3cfd done\n", - "#31 writing layer sha256:9c63be0a86e3dc4168db3814bf464e40996afda0031649d9faa8ff7568c3154f done\n", - "#31 writing layer sha256:9e04bda98b05554953459b5edef7b2b14d32f1a00b979a23d04b6eb5c191e66b done\n", - "#31 writing layer sha256:a4a0c690bc7da07e592514dccaa26098a387e8457f69095e922b6d73f7852502 done\n", - "#31 writing layer sha256:a4aafbc094d78a85bef41036173eb816a53bcd3e2564594a32f542facdf2aba6 done\n", - "#31 writing layer sha256:ae36a4d38b76948e39a5957025c984a674d2de18ce162a8caaa536e6f06fccea done\n", - "#31 writing layer sha256:b2fa40114a4a0725c81b327df89c0c3ed5c05ca9aa7f1157394d5096cf5460ce done\n", - "#31 writing layer sha256:b48a5fafcaba74eb5d7e7665601509e2889285b50a04b5b639a23f8adc818157 done\n", - "#31 writing layer sha256:c86976a083599e36a6441f36f553627194d05ea82bb82a78682e718fe62fccf6 done\n", - "#31 writing layer sha256:cb506fbdedc817e3d074f609e2edbf9655aacd7784610a1bbac52f2d7be25438 done\n", - "#31 writing layer sha256:d0e403a8e125a305b51fe2bd601c34c0723817079bca25fcda7679c88d8bb5b4 done\n", - "#31 writing layer sha256:d2a6fe65a1f84edb65b63460a75d1cac1aa48b72789006881b0bcfd54cd01ffd done\n", - "#31 writing layer sha256:d8d16d6af76dc7c6b539422a25fdad5efb8ada5a8188069fcd9d113e3b783304 done\n", - "#31 writing layer sha256:ddc2ade4f6fe866696cb638c8a102cb644fa842c2ca578392802b3e0e5e3bcb7 done\n", - "#31 writing layer sha256:e2cfd7f6244d6f35befa6bda1caa65f1786cecf3f00ef99d7c9a90715ce6a03c done\n", - "#31 writing layer sha256:e94a4481e9334ff402bf90628594f64a426672debbdfb55f1290802e52013907 done\n", - "#31 writing layer sha256:eaf45e9f32d1f5a9983945a1a9f8dedbb475bc0f578337610e00b4dedec87c20 done\n", - "#31 writing layer sha256:eb411bef39c013c9853651e68f00965dbd826d829c4e478884a2886976e9c989 done\n", - "#31 writing layer sha256:edfe4a95eb6bd3142aeda941ab871ffcc8c19cf50c33561c210ba8ead2424759 done\n", - "#31 writing layer sha256:ef4466d6f927d29d404df9c5af3ef5733c86fa14e008762c90110b963978b1e7 done\n", - "#31 writing layer sha256:efeed9f42c39c54037a94758f3241cba081ba3b9757cd3bb02b68236e32407a8 done\n", - "#31 writing layer sha256:f346e3ecdf0bee048fa1e3baf1d3128ff0283b903f03e97524944949bd8882e5 done\n", - "#31 writing layer sha256:f3f9a00a1ce9aadda250aacb3e66a932676badc5d8519c41517fdf7ea14c13ed done\n", - "#31 writing layer sha256:fd849d9bd8889edd43ae38e9f21a912430c8526b2c18f3057a3b2cd74eb27b31 done\n", - "#31 writing config sha256:b6fc6225c36e7934983d6d120774b3ecf31f01c91c2fa044eb6e0e577ffe6d81 done\n", - "#31 writing manifest sha256:7ab07233db7c57bf72e36f09b58376a67abb90cfe635ad1703b75b4416f5b983 done\n", - "#31 DONE 0.5s\n", - "[2023-08-30 00:28:41,348] [INFO] (packager) - Build Summary:\n", + "#28 exporting to docker image format\n", + "#28 exporting layers done\n", + "#28 exporting manifest sha256:19203b8c5bb9a13da3c03963a62723b9f330ff4b2d37776a26d1316d03da1b0b done\n", + "#28 exporting config sha256:f980243cd5d80a64490eda352560b92681a08191a30d0a585cdbbf0c409e8abc done\n", + "#28 sending tarball\n", + "#28 ...\n", + "\n", + "#29 importing to docker\n", + "#29 DONE 0.9s\n", + "\n", + "#28 exporting to docker image format\n", + "#28 sending tarball 39.8s done\n", + "#28 DONE 39.8s\n", + "\n", + "#30 exporting content cache\n", + "#30 preparing build cache for export\n", + "#30 writing layer sha256:0709800848b4584780b40e7e81200689870e890c38b54e96b65cd0a3b1942f2d done\n", + "#30 writing layer sha256:0ce020987cfa5cd1654085af3bb40779634eb3d792c4a4d6059036463ae0040d done\n", + "#30 writing layer sha256:0f65089b284381bf795d15b1a186e2a8739ea957106fa526edef0d738e7cda70 done\n", + "#30 writing layer sha256:12a47450a9f9cc5d4edab65d0f600dbbe8b23a1663b0b3bb2c481d40e074b580 done\n", + "#30 writing layer sha256:19c20b65326c1511f8ab02f4a41453f8c0b6d9f2bdea8bb25038b628cef67ab9 done\n", + "#30 writing layer sha256:1de965777e2e37c7fabe00bdbf3d0203ca83ed30a71a5479c3113fe4fc48c4bb done\n", + "#30 writing layer sha256:22b384cd1e678fc56dc95c82f42e7a540d055418d0f1eef8d908c88305e23a88 done\n", + "#30 writing layer sha256:2369548ddf79fa9fd07c5f1c4b226da97c9cc7991c4b3bd57a97796c31ff0648 done\n", + "#30 writing layer sha256:24b5aa2448e920814dd67d7d3c0169b2cdacb13c4048d74ded3b4317843b13ff done\n", + "#30 writing layer sha256:2d42104dbf0a7cc962b791f6ab4f45a803f8a36d296f996aca180cfb2f3e30d0 done\n", + "#30 writing layer sha256:2fa1ce4fa3fec6f9723380dc0536b7c361d874add0baaddc4bbf2accac82d2ff done\n", + "#30 writing layer sha256:361eb07c24550c859aa0f62bebfcaabde6373eeee0c16ae66e7c7053bf1f1e42 done\n", + "#30 writing layer sha256:38794be1b5dc99645feabf89b22cd34fb5bdffb5164ad920e7df94f353efe9c0 done\n", + "#30 writing layer sha256:38f963dc57c1e7b68a738fe39ed9f9345df7188111a047e2163a46648d7f1d88 done\n", + "#30 writing layer sha256:3e7e4c9bc2b136814c20c04feb4eea2b2ecf972e20182d88759931130cfb4181 done\n", + "#30 writing layer sha256:3fd77037ad585442cd82d64e337f49a38ddba50432b2a1e563a48401d25c79e6 done\n", + "#30 writing layer sha256:41814ed91034b30ac9c44dfc604a4bade6138005ccf682372c02e0bead66dbc0\n", + "#30 preparing build cache for export 0.6s done\n", + "#30 writing layer sha256:41814ed91034b30ac9c44dfc604a4bade6138005ccf682372c02e0bead66dbc0 done\n", + "#30 writing layer sha256:45893188359aca643d5918c9932da995364dc62013dfa40c075298b1baabece3 done\n", + "#30 writing layer sha256:49bc651b19d9e46715c15c41b7c0daa007e8e25f7d9518f04f0f06592799875a done\n", + "#30 writing layer sha256:4c12db5118d8a7d909e4926d69a2192d2b3cd8b110d49c7504a4f701258c1ccc done\n", + "#30 writing layer sha256:4cc43a803109d6e9d1fd35495cef9b1257035f5341a2db54f7a1940815b6cc65 done\n", + "#30 writing layer sha256:4d32b49e2995210e8937f0898327f196d3fcc52486f0be920e8b2d65f150a7ab done\n", + "#30 writing layer sha256:4d6fe980bad9cd7b2c85a478c8033cae3d098a81f7934322fb64658b0c8f9854 done\n", + "#30 writing layer sha256:4e78baa7922aa440fcba2b268af798b094fdb64e4450a916c15027abc06a1123 done\n", + "#30 writing layer sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 done\n", + "#30 writing layer sha256:5150182f1ff123399b300ca469e00f6c4d82e1b9b72652fb8ee7eab370245236 done\n", + "#30 writing layer sha256:595c38fa102c61c3dda19bdab70dcd26a0e50465b986d022a84fa69023a05d0f done\n", + "#30 writing layer sha256:59d451175f6950740e26d38c322da0ef67cb59da63181eb32996f752ba8a2f17 done\n", + "#30 writing layer sha256:5ad1f2004580e415b998124ea394e9d4072a35d70968118c779f307204d6bd17 done\n", + "#30 writing layer sha256:62598eafddf023e7f22643485f4321cbd51ff7eee743b970db12454fd3c8c675 done\n", + "#30 writing layer sha256:63d7e616a46987136f4cc9eba95db6f6327b4854cfe3c7e20fed6db0c966e380 done\n", + "#30 writing layer sha256:6939d591a6b09b14a437e5cd2d6082a52b6d76bec4f72d960440f097721da34f done\n", + "#30 writing layer sha256:698318e5a60e5e0d48c45bf992f205a9532da567fdfe94bd59be2e192975dd6f done\n", + "#30 writing layer sha256:6ddc1d0f91833b36aac1c6f0c8cea005c87d94bab132d46cc06d9b060a81cca3 done\n", + "#30 writing layer sha256:74ac1f5a47c0926bff1e997bb99985a09926f43bd0895cb27ceb5fa9e95f8720 done\n", + "#30 writing layer sha256:7577973918dd30e764733a352a93f418000bc3181163ca451b2307492c1a6ba9 done\n", + "#30 writing layer sha256:81ab55ca8bce88347661e1c1e6d58975b998017ad2e91a1040bd3f5017741d2b done\n", + "#30 writing layer sha256:886c886d8a09d8befb92df75dd461d4f97b77d7cff4144c4223b0d2f6f2c17f2 done\n", + "#30 writing layer sha256:8a7451db9b4b817b3b33904abddb7041810a4ffe8ed4a034307d45d9ae9b3f2a done\n", + "#30 writing layer sha256:8ac1aede1873b9cad7d72492d19240df0510086e92ac4243bc5119ec85678931 done\n", + "#30 writing layer sha256:916f4054c6e7f10de4fd7c08ffc75fa23ebecca4eceb8183cb1023b33b1696c9 done\n", + "#30 writing layer sha256:9463aa3f56275af97693df69478a2dc1d171f4e763ca6f7b6f370a35e605c154 done\n", + "#30 writing layer sha256:955fd173ed884230c2eded4542d10a97384b408537be6bbb7c4ae09ccd6fb2d0 done\n", + "#30 writing layer sha256:9c42a4ee99755f441251e6043b2cbba16e49818a88775e7501ec17e379ce3cfd done\n", + "#30 writing layer sha256:9c63be0a86e3dc4168db3814bf464e40996afda0031649d9faa8ff7568c3154f done\n", + "#30 writing layer sha256:9e04bda98b05554953459b5edef7b2b14d32f1a00b979a23d04b6eb5c191e66b done\n", + "#30 writing layer sha256:a4a0c690bc7da07e592514dccaa26098a387e8457f69095e922b6d73f7852502 done\n", + "#30 writing layer sha256:a4aafbc094d78a85bef41036173eb816a53bcd3e2564594a32f542facdf2aba6 done\n", + "#30 writing layer sha256:ae36a4d38b76948e39a5957025c984a674d2de18ce162a8caaa536e6f06fccea done\n", + "#30 writing layer sha256:b092e71fced852d79e047f907a83ab32a129dd40cd0e9879dd507367a505dbd6 done\n", + "#30 writing layer sha256:b2fa40114a4a0725c81b327df89c0c3ed5c05ca9aa7f1157394d5096cf5460ce done\n", + "#30 writing layer sha256:b41f1b7d06dc0a3cea605edc5a074d982aa2f1b75ac808229b9dcb8d6744e17a done\n", + "#30 writing layer sha256:b48a5fafcaba74eb5d7e7665601509e2889285b50a04b5b639a23f8adc818157 done\n", + "#30 writing layer sha256:c84aee89fb491faea0b4112d4bb2cddb4a0b8fd0fb32e886aed7902a1626f4d2 done\n", + "#30 writing layer sha256:c86976a083599e36a6441f36f553627194d05ea82bb82a78682e718fe62fccf6 done\n", + "#30 writing layer sha256:cb506fbdedc817e3d074f609e2edbf9655aacd7784610a1bbac52f2d7be25438 done\n", + "#30 writing layer sha256:d2a6fe65a1f84edb65b63460a75d1cac1aa48b72789006881b0bcfd54cd01ffd done\n", + "#30 writing layer sha256:d8d16d6af76dc7c6b539422a25fdad5efb8ada5a8188069fcd9d113e3b783304 done\n", + "#30 writing layer sha256:ddc2ade4f6fe866696cb638c8a102cb644fa842c2ca578392802b3e0e5e3bcb7 done\n", + "#30 writing layer sha256:e2cfd7f6244d6f35befa6bda1caa65f1786cecf3f00ef99d7c9a90715ce6a03c done\n", + "#30 writing layer sha256:e94a4481e9334ff402bf90628594f64a426672debbdfb55f1290802e52013907 done\n", + "#30 writing layer sha256:eaf45e9f32d1f5a9983945a1a9f8dedbb475bc0f578337610e00b4dedec87c20 done\n", + "#30 writing layer sha256:eb411bef39c013c9853651e68f00965dbd826d829c4e478884a2886976e9c989 done\n", + "#30 writing layer sha256:edfe4a95eb6bd3142aeda941ab871ffcc8c19cf50c33561c210ba8ead2424759 done\n", + "#30 writing layer sha256:ef4466d6f927d29d404df9c5af3ef5733c86fa14e008762c90110b963978b1e7 done\n", + "#30 writing layer sha256:f346e3ecdf0bee048fa1e3baf1d3128ff0283b903f03e97524944949bd8882e5 done\n", + "#30 writing layer sha256:f3f9a00a1ce9aadda250aacb3e66a932676badc5d8519c41517fdf7ea14c13ed done\n", + "#30 writing layer sha256:fd849d9bd8889edd43ae38e9f21a912430c8526b2c18f3057a3b2cd74eb27b31 done\n", + "#30 writing config sha256:2efdd8bd5fee272f11add678820bb36fd73b0d8b589200720e3a2b1f2014c239 done\n", + "#30 writing manifest sha256:3e52de4375cea72779be5447ac509152ce31588970ac87f44cfce9a7de19df7e done\n", + "#30 DONE 0.6s\n", + "[2023-11-15 18:37:49,607] [INFO] (packager) - Build Summary:\n", "\n", "Platform: x64-workstation/dgpu\n", " Status: Succeeded\n", @@ -674,15 +667,14 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "mednist_app-x64-workstation-dgpu-linux-amd64 1.0 5c18974168b1 10 minutes ago 15.4GB\n", - "mednist_app-x64-workstation-dgpu-linux-amd64 latest 8aa4dbfb02fb 2 weeks ago 15.4GB\n" + "mednist_app-x64-workstation-dgpu-linux-amd64 1.0 f980243cd5d8 About an hour ago 15.4GB\n" ] } ], @@ -704,7 +696,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -763,16 +755,16 @@ " \"version\": 1\n", "}\n", "\n", - "2023-08-30 07:28:47 [INFO] Copying application from /opt/holoscan/app to /var/run/holoscan/export/app\n", + "2023-11-16 02:37:55 [INFO] Copying application from /opt/holoscan/app to /var/run/holoscan/export/app\n", "\n", - "2023-08-30 07:28:47 [INFO] Copying application manifest file from /etc/holoscan/app.json to /var/run/holoscan/export/config/app.json\n", - "2023-08-30 07:28:47 [INFO] Copying pkg manifest file from /etc/holoscan/pkg.json to /var/run/holoscan/export/config/pkg.json\n", - "2023-08-30 07:28:47 [INFO] Copying application configuration from /var/holoscan/app.yaml to /var/run/holoscan/export/config/app.yaml\n", + "2023-11-16 02:37:55 [INFO] Copying application manifest file from /etc/holoscan/app.json to /var/run/holoscan/export/config/app.json\n", + "2023-11-16 02:37:55 [INFO] Copying pkg manifest file from /etc/holoscan/pkg.json to /var/run/holoscan/export/config/pkg.json\n", + "2023-11-16 02:37:55 [INFO] Copying application configuration from /var/holoscan/app.yaml to /var/run/holoscan/export/config/app.yaml\n", "\n", - "2023-08-30 07:28:47 [INFO] Copying models from /opt/holoscan/models to /var/run/holoscan/export/models\n", + "2023-11-16 02:37:55 [INFO] Copying models from /opt/holoscan/models to /var/run/holoscan/export/models\n", "\n", - "2023-08-30 07:28:47 [INFO] Copying documentation from /opt/holoscan/docs/ to /var/run/holoscan/export/docs\n", - "2023-08-30 07:28:47 [INFO] '/opt/holoscan/docs/' cannot be found.\n", + "2023-11-16 02:37:55 [INFO] Copying documentation from /opt/holoscan/docs/ to /var/run/holoscan/export/docs\n", + "2023-11-16 02:37:55 [INFO] '/opt/holoscan/docs/' cannot be found.\n", "\n", "app config models\n" ] @@ -797,27 +789,27 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2023-08-30 00:28:51,206] [INFO] (runner) - Checking dependencies...\n", - "[2023-08-30 00:28:51,206] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", + "[2023-11-15 18:37:58,606] [INFO] (runner) - Checking dependencies...\n", + "[2023-11-15 18:37:58,606] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", "\n", - "[2023-08-30 00:28:51,206] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", + "[2023-11-15 18:37:58,606] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", "\n", - "[2023-08-30 00:28:51,207] [INFO] (runner) - --> Verifying if \"mednist_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", + "[2023-11-15 18:37:58,606] [INFO] (runner) - --> Verifying if \"mednist_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", "\n", - "[2023-08-30 00:28:51,263] [INFO] (runner) - Reading HAP/MAP manifest...\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.56kB to /tmp/tmplfd8b757/app.json\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.05kB to /tmp/tmplfd8b757/pkg.json\n", - "[2023-08-30 00:28:51,463] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", + "[2023-11-15 18:37:58,679] [INFO] (runner) - Reading HAP/MAP manifest...\n", + "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.56kB to /tmp/tmp89s5qkz8/app.json\n", + "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.05kB to /tmp/tmp89s5qkz8/pkg.json\n", + "[2023-11-15 18:37:58,873] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", "\n", - "[2023-08-30 00:28:51,629] [INFO] (common) - Launching container (d5b437535199) using image 'mednist_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", - " container name: focused_jepsen\n", + "[2023-11-15 18:37:59,068] [INFO] (common) - Launching container (e8950f0a463a) using image 'mednist_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", + " container name: priceless_ptolemy\n", " host name: mingq-dt\n", " network: host\n", " user: 1000:1000\n", @@ -826,11 +818,11 @@ " ipc mode: host\n", " shared memory size: 67108864\n", " devices: \n", - "2023-08-30 07:28:52 [INFO] Launching application python3 /opt/holoscan/app/mednist_classifier_monaideploy.py ...\n", + "2023-11-16 02:37:59 [INFO] Launching application python3 /opt/holoscan/app/mednist_classifier_monaideploy.py ...\n", "\n", - "[2023-08-30 07:28:55,927] [INFO] (root) - Parsed args: Namespace(argv=['/opt/holoscan/app/mednist_classifier_monaideploy.py'], input=None, log_level=None, model=None, output=None, workdir=None)\n", + "[2023-11-16 02:38:01,849] [INFO] (root) - Parsed args: Namespace(argv=['/opt/holoscan/app/mednist_classifier_monaideploy.py'], input=None, log_level=None, model=None, output=None, workdir=None)\n", "\n", - "[2023-08-30 07:28:55,933] [INFO] (root) - AppContext object: AppContext(input_path=/var/holoscan/input, output_path=/var/holoscan/output, model_path=/opt/holoscan/models, workdir=/var/holoscan)\n", + "[2023-11-16 02:38:01,857] [INFO] (root) - AppContext object: AppContext(input_path=/var/holoscan/input, output_path=/var/holoscan/output, model_path=/opt/holoscan/models, workdir=/var/holoscan)\n", "\n", "[info] [app_driver.cpp:1025] Launching the driver/health checking service\n", "\n", @@ -862,9 +854,9 @@ "\n", " warnings.warn(msg)\n", "\n", - "[2023-08-30 07:29:01,433] [INFO] (root) - Finished writing DICOM instance to file /var/holoscan/output/1.2.826.0.1.3680043.8.498.13087581575145852698543141083118877098.dcm\n", + "[2023-11-16 02:38:04,038] [INFO] (root) - Finished writing DICOM instance to file /var/holoscan/output/1.2.826.0.1.3680043.8.498.16497775401758865936247607314643258908.dcm\n", "\n", - "[2023-08-30 07:29:01,435] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in /var/holoscan/output/1.2.826.0.1.3680043.8.498.13087581575145852698543141083118877098.dcm\n", + "[2023-11-16 02:38:04,039] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in /var/holoscan/output/1.2.826.0.1.3680043.8.498.16497775401758865936247607314643258908.dcm\n", "\n", "[info] [greedy_scheduler.cpp:369] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", "\n", @@ -880,7 +872,7 @@ "\n", "AbdomenCT\n", "\n", - "[2023-08-30 00:29:02,801] [INFO] (common) - Container 'focused_jepsen'(d5b437535199) exited.\n" + "[2023-11-15 18:38:04,955] [INFO] (common) - Container 'priceless_ptolemy'(e8950f0a463a) exited.\n" ] } ], @@ -892,7 +884,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -924,7 +916,7 @@ " - **Input**: a file path (`Path`)\n", " - **Output**: an image object in memory ([`Image`](/modules/_autosummary/monai.deploy.core.domain.Image))\n", "2. `MedNISTClassifierOperator` - Pre-transform the given image by using MONAI's `Compose` class, feed to the Torchscript model (`classifier.zip`), and write the prediction into JSON file(`output.json`)\n", - " - Pre-transforms consist of three transforms -- `AddChannel`, `ScaleIntensity`, and `EnsureType`.\n", + " - Pre-transforms consist of three transforms -- `EnsureChannelFirst`, `ScaleIntensity`, and `EnsureType`.\n", " - **Input**: an image object in memory ([`Image`](/modules/_autosummary/monai.deploy.core.domain.Image))\n", " - **Output**: a folder path that the prediction result(`output.json`) would be written (`Path`)\n", "\n", @@ -945,7 +937,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -959,7 +951,7 @@ "from monai.deploy.conditions import CountCondition\n", "from monai.deploy.core import AppContext, Application, ConditionType, Fragment, Image, Operator, OperatorSpec\n", "from monai.deploy.operators.dicom_text_sr_writer_operator import DICOMTextSRWriterOperator, EquipmentInfo, ModelInfo\n", - "from monai.transforms import AddChannel, Compose, EnsureType, ScaleIntensity\n", + "from monai.transforms import EnsureChannelFirst, Compose, EnsureType, ScaleIntensity\n", "\n", "MEDNIST_CLASSES = [\"AbdomenCT\", \"BreastMRI\", \"CXR\", \"ChestCT\", \"Hand\", \"HeadCT\"]" ] @@ -976,7 +968,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -1047,7 +1039,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -1138,7 +1130,7 @@ "\n", " @property\n", " def transform(self):\n", - " return Compose([AddChannel(), ScaleIntensity(), EnsureType()])\n", + " return Compose([EnsureChannelFirst(channel_dim=\"no_channel\"), ScaleIntensity(), EnsureType()])\n", "\n", " def compute(self, op_input, op_output, context):\n", " import json\n", @@ -1186,7 +1178,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -1237,15 +1229,15 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "[2023-08-30 00:29:04,860] [INFO] (root) - Parsed args: Namespace(argv=[], input=None, log_level=None, model=None, output=None, workdir=None)\n", - "[2023-08-30 00:29:04,876] [INFO] (root) - AppContext object: AppContext(input_path=input, output_path=output, model_path=models, workdir=)\n", + "[2023-11-15 18:38:10,416] [INFO] (root) - Parsed args: Namespace(argv=[], input=None, log_level=None, model=None, output=None, workdir=None)\n", + "[2023-11-15 18:38:10,440] [INFO] (root) - AppContext object: AppContext(input_path=input, output_path=output, model_path=models, workdir=)\n", "[info] [gxf_executor.cpp:210] Creating context\n", "[info] [gxf_executor.cpp:1595] Loading extensions from configs...\n", "[info] [gxf_executor.cpp:1741] Activating Graph...\n", @@ -1253,8 +1245,12 @@ "[info] [gxf_executor.cpp:1773] Waiting for completion...\n", "[info] [gxf_executor.cpp:1774] Graph execution waiting. Fragment: \n", "[info] [greedy_scheduler.cpp:190] Scheduling 3 entities\n", - "[2023-08-30 00:29:05,845] [INFO] (root) - Finished writing DICOM instance to file output/1.2.826.0.1.3680043.8.498.88152747946307619191879398109230140381.dcm\n", - "[2023-08-30 00:29:05,847] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in output/1.2.826.0.1.3680043.8.498.88152747946307619191879398109230140381.dcm\n" + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/monai/data/meta_tensor.py:116: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:206.)\n", + " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls)\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/pydicom/valuerep.py:443: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", + " warnings.warn(msg)\n", + "[2023-11-15 18:38:11,717] [INFO] (root) - Finished writing DICOM instance to file output/1.2.826.0.1.3680043.8.498.12540892677700748616860638452010005160.dcm\n", + "[2023-11-15 18:38:11,720] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in output/1.2.826.0.1.3680043.8.498.12540892677700748616860638452010005160.dcm\n" ] }, { @@ -1284,7 +1280,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -1318,7 +1314,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -1328,7 +1324,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -1363,7 +1359,7 @@ "from monai.deploy.conditions import CountCondition\n", "from monai.deploy.core import AppContext, Application, ConditionType, Fragment, Image, Operator, OperatorSpec\n", "from monai.deploy.operators.dicom_text_sr_writer_operator import DICOMTextSRWriterOperator, EquipmentInfo, ModelInfo\n", - "from monai.transforms import AddChannel, Compose, EnsureType, ScaleIntensity\n", + "from monai.transforms import EnsureChannelFirst, Compose, EnsureType, ScaleIntensity\n", "\n", "MEDNIST_CLASSES = [\"AbdomenCT\", \"BreastMRI\", \"CXR\", \"ChestCT\", \"Hand\", \"HeadCT\"]\n", "\n", @@ -1513,7 +1509,7 @@ "\n", " @property\n", " def transform(self):\n", - " return Compose([AddChannel(), ScaleIntensity(), EnsureType()])\n", + " return Compose([EnsureChannelFirst(channel_dim=\"no_channel\"), ScaleIntensity(), EnsureType()])\n", "\n", " def compute(self, op_input, op_output, context):\n", " import json\n", @@ -1593,15 +1589,15 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2023-08-30 00:29:14,027] [INFO] (root) - Parsed args: Namespace(argv=['mednist_app/mednist_classifier_monaideploy.py', '-i', 'input', '-o', 'output', '-m', 'models', '-l', 'DEBUG'], input=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/input'), log_level='DEBUG', model=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models'), output=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output'), workdir=None)\n", - "[2023-08-30 00:29:14,033] [INFO] (root) - AppContext object: AppContext(input_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/input, output_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output, model_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models, workdir=)\n", + "[2023-11-15 18:38:17,975] [INFO] (root) - Parsed args: Namespace(argv=['mednist_app/mednist_classifier_monaideploy.py', '-i', 'input', '-o', 'output', '-m', 'models', '-l', 'DEBUG'], input=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/input'), log_level='DEBUG', model=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models'), output=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output'), workdir=None)\n", + "[2023-11-15 18:38:17,979] [INFO] (root) - AppContext object: AppContext(input_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/input, output_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output, model_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models, workdir=)\n", "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:210] Creating context\n", "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1595] Loading extensions from configs...\n", "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1741] Activating Graph...\n", @@ -1609,43 +1605,41 @@ "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1773] Waiting for completion...\n", "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1774] Graph execution waiting. Fragment: \n", "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:190] Scheduling 3 entities\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/monai/utils/deprecate_utils.py:111: FutureWarning: : Class `AddChannel` has been deprecated since version 0.8. It will be removed in version 1.3. please use MetaTensor data type and monai.transforms.EnsureChannelFirst instead with `channel_dim='no_channel'`.\n", - " warn_deprecated(obj, msg, warning_category)\n", "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/monai/data/meta_tensor.py:116: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:206.)\n", - " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls) # type: ignore\n", + " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls)\n", "AbdomenCT\n", - "[2023-08-30 00:29:17,180] [DEBUG] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - Writing DICOM object...\n", + "[2023-11-15 18:38:19,019] [DEBUG] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - Writing DICOM object...\n", "\n", - "[2023-08-30 00:29:17,180] [DEBUG] (root) - Writing DICOM common modules...\n", + "[2023-11-15 18:38:19,019] [DEBUG] (root) - Writing DICOM common modules...\n", "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/pydicom/valuerep.py:443: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", " warnings.warn(msg)\n", - "[2023-08-30 00:29:17,183] [DEBUG] (root) - DICOM common modules written:\n", + "[2023-11-15 18:38:19,021] [DEBUG] (root) - DICOM common modules written:\n", "Dataset.file_meta -------------------------------\n", "(0002, 0000) File Meta Information Group Length UL: 198\n", "(0002, 0001) File Meta Information Version OB: b'01'\n", "(0002, 0002) Media Storage SOP Class UID UI: Basic Text SR Storage\n", - "(0002, 0003) Media Storage SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.48571967537049939109703063489026494794\n", + "(0002, 0003) Media Storage SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.67182506684910194313532021844767536558\n", "(0002, 0010) Transfer Syntax UID UI: Implicit VR Little Endian\n", "(0002, 0012) Implementation Class UID UI: 1.2.40.0.13.1.1.1\n", - "(0002, 0013) Implementation Version Name SH: '0.5.1+22.g029f8'\n", + "(0002, 0013) Implementation Version Name SH: '0.6.0'\n", "-------------------------------------------------\n", "(0008, 0005) Specific Character Set CS: 'ISO_IR 100'\n", - "(0008, 0012) Instance Creation Date DA: '20230830'\n", - "(0008, 0013) Instance Creation Time TM: '002917'\n", + "(0008, 0012) Instance Creation Date DA: '20231115'\n", + "(0008, 0013) Instance Creation Time TM: '183819'\n", "(0008, 0016) SOP Class UID UI: Basic Text SR Storage\n", - "(0008, 0018) SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.48571967537049939109703063489026494794\n", - "(0008, 0020) Study Date DA: '20230830'\n", - "(0008, 0021) Series Date DA: '20230830'\n", - "(0008, 0023) Content Date DA: '20230830'\n", - "(0008, 002a) Acquisition DateTime DT: '20230830002917'\n", - "(0008, 0030) Study Time TM: '002917'\n", - "(0008, 0031) Series Time TM: '002917'\n", - "(0008, 0033) Content Time TM: '002917'\n", + "(0008, 0018) SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.67182506684910194313532021844767536558\n", + "(0008, 0020) Study Date DA: '20231115'\n", + "(0008, 0021) Series Date DA: '20231115'\n", + "(0008, 0023) Content Date DA: '20231115'\n", + "(0008, 002a) Acquisition DateTime DT: '20231115183819'\n", + "(0008, 0030) Study Time TM: '183819'\n", + "(0008, 0031) Series Time TM: '183819'\n", + "(0008, 0033) Content Time TM: '183819'\n", "(0008, 0050) Accession Number SH: ''\n", "(0008, 0060) Modality CS: 'SR'\n", "(0008, 0070) Manufacturer LO: 'MOANI Deploy App SDK'\n", "(0008, 0090) Referring Physician's Name PN: ''\n", - "(0008, 0201) Timezone Offset From UTC SH: '-0700'\n", + "(0008, 0201) Timezone Offset From UTC SH: '-0800'\n", "(0008, 1030) Study Description LO: 'AI results.'\n", "(0008, 103e) Series Description LO: 'CAUTION: Not for Diagnostic Use, for research use only.'\n", "(0008, 1090) Manufacturer's Model Name LO: 'DICOM SR Writer'\n", @@ -1655,7 +1649,7 @@ "(0010, 0030) Patient's Birth Date DA: ''\n", "(0010, 0040) Patient's Sex CS: ''\n", "(0018, 0015) Body Part Examined CS: ''\n", - "(0018, 1020) Software Versions LO: '0.5.1+22.g029f8'\n", + "(0018, 1020) Software Versions LO: '0.6.0'\n", "(0018, a001) Contributing Equipment Sequence 1 item(s) ---- \n", " (0008, 0070) Manufacturer LO: 'MONAI WG Trainer'\n", " (0008, 1090) Manufacturer's Model Name LO: 'MEDNIST Classifier'\n", @@ -1667,38 +1661,38 @@ " (0008, 0104) Code Meaning LO: '\"Processing Algorithm'\n", " ---------\n", " ---------\n", - "(0020, 000d) Study Instance UID UI: 1.2.826.0.1.3680043.8.498.12129058299828649912489432723605279507\n", - "(0020, 000e) Series Instance UID UI: 1.2.826.0.1.3680043.8.498.97786003431027375178670323563066287594\n", + "(0020, 000d) Study Instance UID UI: 1.2.826.0.1.3680043.8.498.12379609192731250420244173376142712446\n", + "(0020, 000e) Series Instance UID UI: 1.2.826.0.1.3680043.8.498.73656010492290419012392741095771197196\n", "(0020, 0010) Study ID SH: '1'\n", - "(0020, 0011) Series Number IS: '1475'\n", + "(0020, 0011) Series Number IS: '9783'\n", "(0020, 0013) Instance Number IS: '1'\n", "(0040, 1001) Requested Procedure ID SH: ''\n", - "[2023-08-30 00:29:17,184] [DEBUG] (root) - DICOM dataset to be written:Dataset.file_meta -------------------------------\n", + "[2023-11-15 18:38:19,022] [DEBUG] (root) - DICOM dataset to be written:Dataset.file_meta -------------------------------\n", "(0002, 0000) File Meta Information Group Length UL: 198\n", "(0002, 0001) File Meta Information Version OB: b'01'\n", "(0002, 0002) Media Storage SOP Class UID UI: Basic Text SR Storage\n", - "(0002, 0003) Media Storage SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.48571967537049939109703063489026494794\n", + "(0002, 0003) Media Storage SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.67182506684910194313532021844767536558\n", "(0002, 0010) Transfer Syntax UID UI: Implicit VR Little Endian\n", "(0002, 0012) Implementation Class UID UI: 1.2.40.0.13.1.1.1\n", - "(0002, 0013) Implementation Version Name SH: '0.5.1+22.g029f8'\n", + "(0002, 0013) Implementation Version Name SH: '0.6.0'\n", "-------------------------------------------------\n", "(0008, 0005) Specific Character Set CS: 'ISO_IR 100'\n", - "(0008, 0012) Instance Creation Date DA: '20230830'\n", - "(0008, 0013) Instance Creation Time TM: '002917'\n", + "(0008, 0012) Instance Creation Date DA: '20231115'\n", + "(0008, 0013) Instance Creation Time TM: '183819'\n", "(0008, 0016) SOP Class UID UI: Basic Text SR Storage\n", - "(0008, 0018) SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.48571967537049939109703063489026494794\n", - "(0008, 0020) Study Date DA: '20230830'\n", - "(0008, 0021) Series Date DA: '20230830'\n", - "(0008, 0023) Content Date DA: '20230830'\n", - "(0008, 002a) Acquisition DateTime DT: '20230830002917'\n", - "(0008, 0030) Study Time TM: '002917'\n", - "(0008, 0031) Series Time TM: '002917'\n", - "(0008, 0033) Content Time TM: '002917'\n", + "(0008, 0018) SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.67182506684910194313532021844767536558\n", + "(0008, 0020) Study Date DA: '20231115'\n", + "(0008, 0021) Series Date DA: '20231115'\n", + "(0008, 0023) Content Date DA: '20231115'\n", + "(0008, 002a) Acquisition DateTime DT: '20231115183819'\n", + "(0008, 0030) Study Time TM: '183819'\n", + "(0008, 0031) Series Time TM: '183819'\n", + "(0008, 0033) Content Time TM: '183819'\n", "(0008, 0050) Accession Number SH: ''\n", "(0008, 0060) Modality CS: 'SR'\n", "(0008, 0070) Manufacturer LO: 'MOANI Deploy App SDK'\n", "(0008, 0090) Referring Physician's Name PN: ''\n", - "(0008, 0201) Timezone Offset From UTC SH: '-0700'\n", + "(0008, 0201) Timezone Offset From UTC SH: '-0800'\n", "(0008, 1030) Study Description LO: 'AI results.'\n", "(0008, 103e) Series Description LO: 'Not for clinical use. The result is for research use only.'\n", "(0008, 1090) Manufacturer's Model Name LO: 'DICOM SR Writer'\n", @@ -1708,7 +1702,7 @@ "(0010, 0030) Patient's Birth Date DA: ''\n", "(0010, 0040) Patient's Sex CS: ''\n", "(0018, 0015) Body Part Examined CS: ''\n", - "(0018, 1020) Software Versions LO: '0.5.1+22.g029f8'\n", + "(0018, 1020) Software Versions LO: '0.6.0'\n", "(0018, a001) Contributing Equipment Sequence 1 item(s) ---- \n", " (0008, 0070) Manufacturer LO: 'MONAI WG Trainer'\n", " (0008, 1090) Manufacturer's Model Name LO: 'MEDNIST Classifier'\n", @@ -1720,10 +1714,10 @@ " (0008, 0104) Code Meaning LO: '\"Processing Algorithm'\n", " ---------\n", " ---------\n", - "(0020, 000d) Study Instance UID UI: 1.2.826.0.1.3680043.8.498.12129058299828649912489432723605279507\n", - "(0020, 000e) Series Instance UID UI: 1.2.826.0.1.3680043.8.498.97786003431027375178670323563066287594\n", + "(0020, 000d) Study Instance UID UI: 1.2.826.0.1.3680043.8.498.12379609192731250420244173376142712446\n", + "(0020, 000e) Series Instance UID UI: 1.2.826.0.1.3680043.8.498.73656010492290419012392741095771197196\n", "(0020, 0010) Study ID SH: '1'\n", - "(0020, 0011) Series Number IS: '1475'\n", + "(0020, 0011) Series Number IS: '9783'\n", "(0020, 0013) Instance Number IS: '1'\n", "(0040, 1001) Requested Procedure ID SH: ''\n", "(0040, a040) Value Type CS: 'CONTAINER'\n", @@ -1744,8 +1738,8 @@ " ---------\n", " (0040, a160) Text Value UT: 'AbdomenCT'\n", " ---------\n", - "[2023-08-30 00:29:17,187] [INFO] (root) - Finished writing DICOM instance to file /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/1.2.826.0.1.3680043.8.498.48571967537049939109703063489026494794.dcm\n", - "[2023-08-30 00:29:17,188] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/1.2.826.0.1.3680043.8.498.48571967537049939109703063489026494794.dcm\n", + "[2023-11-15 18:38:19,026] [INFO] (root) - Finished writing DICOM instance to file /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/1.2.826.0.1.3680043.8.498.67182506684910194313532021844767536558.dcm\n", + "[2023-11-15 18:38:19,027] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/1.2.826.0.1.3680043.8.498.67182506684910194313532021844767536558.dcm\n", "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:369] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:398] Scheduler finished.\n", "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1783] Graph execution deactivating. Fragment: \n", @@ -1761,7 +1755,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -1788,7 +1782,7 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -1818,7 +1812,7 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 24, "metadata": {}, "outputs": [ { diff --git a/notebooks/tutorials/02_mednist_app.ipynb b/notebooks/tutorials/02_mednist_app.ipynb index 59d017ed..703d3b54 100644 --- a/notebooks/tutorials/02_mednist_app.ipynb +++ b/notebooks/tutorials/02_mednist_app.ipynb @@ -29,7 +29,17 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Traceback (most recent call last):\n", + " File \"\", line 1, in \n", + "ModuleNotFoundError: No module named 'ignite'\n" + ] + } + ], "source": [ "# Install necessary packages for MONAI Core\n", "!python -c \"import monai\" || pip install -q \"monai[pillow, tqdm]\"\n", @@ -60,30 +70,32 @@ "name": "stdout", "output_type": "stream", "text": [ - "MONAI version: 1.2.0\n", + "MONAI version: 1.3.0\n", "Numpy version: 1.24.4\n", - "Pytorch version: 2.0.1+cu117\n", + "Pytorch version: 2.1.1+cu121\n", "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n", - "MONAI rev id: c33f1ba588ee00229a309000e888f9817b4f1934\n", - "MONAI __file__: /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/monai/__init__.py\n", + "MONAI rev id: 865972f7a791bf7b42efbcd87c8402bd865b329e\n", + "MONAI __file__: /home//src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/monai/__init__.py\n", "\n", "Optional dependencies:\n", "Pytorch Ignite version: 0.4.11\n", "ITK version: NOT INSTALLED or UNKNOWN VERSION.\n", "Nibabel version: 5.1.0\n", "scikit-image version: 0.21.0\n", - "Pillow version: 10.0.0\n", + "scipy version: 1.10.1\n", + "Pillow version: 10.0.1\n", "Tensorboard version: NOT INSTALLED or UNKNOWN VERSION.\n", "gdown version: 4.7.1\n", "TorchVision version: NOT INSTALLED or UNKNOWN VERSION.\n", - "tqdm version: 4.65.0\n", + "tqdm version: 4.66.1\n", "lmdb version: NOT INSTALLED or UNKNOWN VERSION.\n", - "psutil version: 5.9.5\n", + "psutil version: 5.9.6\n", "pandas version: NOT INSTALLED or UNKNOWN VERSION.\n", "einops version: NOT INSTALLED or UNKNOWN VERSION.\n", "transformers version: NOT INSTALLED or UNKNOWN VERSION.\n", "mlflow version: NOT INSTALLED or UNKNOWN VERSION.\n", "pynrrd version: NOT INSTALLED or UNKNOWN VERSION.\n", + "clearml version: NOT INSTALLED or UNKNOWN VERSION.\n", "\n", "For details about installing the optional dependencies, please visit:\n", " https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies\n", @@ -118,7 +130,7 @@ "from monai.networks.nets import DenseNet121\n", "from monai.engines import SupervisedTrainer\n", "from monai.transforms import (\n", - " AddChannel,\n", + " EnsureChannelFirst,\n", " Compose,\n", " LoadImage,\n", " RandFlip,\n", @@ -161,7 +173,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "/tmp/tmp_ijj195_\n" + "/tmp/tmpjh72rafb\n" ] }, { @@ -170,18 +182,18 @@ "text": [ "Downloading...\n", "From (uriginal): https://drive.google.com/uc?id=1QsnnkvZyJPcbRoV_ArW8SnE1OTuoVbKE\n", - "From (redirected): https://drive.google.com/uc?id=1QsnnkvZyJPcbRoV_ArW8SnE1OTuoVbKE&confirm=t&uuid=d974f3a4-5d30-48b6-9b6d-9459b32b4cac\n", - "To: /tmp/tmp3aa3c3k6/MedNIST.tar.gz\n", - "100%|██████████| 61.8M/61.8M [00:03<00:00, 19.1MB/s]" + "From (redirected): https://drive.google.com/uc?id=1QsnnkvZyJPcbRoV_ArW8SnE1OTuoVbKE&confirm=t&uuid=8946f974-8b80-4bd3-8696-ac8716b357ed\n", + "To: /tmp/tmpv4hps2d5/MedNIST.tar.gz\n", + "100%|██████████| 61.8M/61.8M [00:02<00:00, 26.6MB/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "2023-08-03 20:42:12,748 - INFO - Downloaded: /tmp/tmp_ijj195_/MedNIST.tar.gz\n", - "2023-08-03 20:42:12,856 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", - "2023-08-03 20:42:12,857 - INFO - Writing into directory: /tmp/tmp_ijj195_.\n" + "2023-11-15 19:10:32,776 - INFO - Downloaded: /tmp/tmpjh72rafb/MedNIST.tar.gz\n", + "2023-11-15 19:10:32,883 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", + "2023-11-15 19:10:32,884 - INFO - Writing into directory: /tmp/tmpjh72rafb.\n" ] }, { @@ -253,21 +265,12 @@ "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/monai/utils/deprecate_utils.py:111: FutureWarning: : Class `AddChannel` has been deprecated since version 0.8. It will be removed in version 1.3. please use MetaTensor data type and monai.transforms.EnsureChannelFirst instead with `channel_dim='no_channel'`.\n", - " warn_deprecated(obj, msg, warning_category)\n" - ] - } - ], + "outputs": [], "source": [ "train_transforms = Compose(\n", " [\n", " LoadImage(image_only=True),\n", - " AddChannel(),\n", + " EnsureChannelFirst(channel_dim=\"no_channel\"),\n", " ScaleIntensity(),\n", " RandRotate(range_x=np.pi / 12, prob=0.5, keep_size=True),\n", " RandFlip(spatial_axis=0, prob=0.5),\n", @@ -323,11 +326,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch 1/5 Loss: 0.18928290903568268\n", - "Epoch 2/5 Loss: 0.06710730493068695\n", - "Epoch 3/5 Loss: 0.029032323509454727\n", - "Epoch 4/5 Loss: 0.01877668686211109\n", - "Epoch 5/5 Loss: 0.01939055137336254\n" + "Epoch 1/5 Loss: 0.1891738623380661\n", + "Epoch 2/5 Loss: 0.06714393198490143\n", + "Epoch 3/5 Loss: 0.028867393732070923\n", + "Epoch 4/5 Loss: 0.0186357069760561\n", + "Epoch 5/5 Loss: 0.0193067267537117\n" ] } ], @@ -385,7 +388,7 @@ "train_transforms = Compose(\n", " [\n", " LoadImage(image_only=True),\n", - " AddChannel(),\n", + " EnsureChannelFirst(channel_dim=\"no_channel\"),\n", " ScaleIntensity(),\n", " RandRotate(range_x=np.pi / 12, prob=0.5, keep_size=True),\n", " RandFlip(spatial_axis=0, prob=0.5),\n", @@ -404,7 +407,7 @@ " - **Input**: a file path (`Path`)\n", " - **Output**: an image object in memory ([`Image`](/modules/_autosummary/monai.deploy.core.domain.Image))\n", "2. `MedNISTClassifierOperator` - Pre-transform the given image by using MONAI's `Compose` class, feed to the Torchscript model (`classifier.zip`), and write the prediction into JSON file(`output.json`)\n", - " - Pre-transforms consist of three transforms -- `AddChannel`, `ScaleIntensity`, and `EnsureType`.\n", + " - Pre-transforms consist of three transforms -- `EnsureChannelFirst`, `ScaleIntensity`, and `EnsureType`.\n", " - **Input**: an image object in memory ([`Image`](/modules/_autosummary/monai.deploy.core.domain.Image))\n", " - **Output**: a folder path that the prediction result(`output.json`) would be written (`DataPath`)\n", "\n", @@ -495,7 +498,7 @@ "from monai.deploy.conditions import CountCondition\n", "from monai.deploy.core import AppContext, Application, ConditionType, Fragment, Image, Operator, OperatorSpec\n", "from monai.deploy.operators.dicom_text_sr_writer_operator import DICOMTextSRWriterOperator, EquipmentInfo, ModelInfo\n", - "from monai.transforms import AddChannel, Compose, EnsureType, ScaleIntensity\n", + "from monai.transforms import EnsureChannelFirst, Compose, EnsureType, ScaleIntensity\n", "\n", "MEDNIST_CLASSES = [\"AbdomenCT\", \"BreastMRI\", \"CXR\", \"ChestCT\", \"Hand\", \"HeadCT\"]" ] @@ -672,7 +675,7 @@ "\n", " @property\n", " def transform(self):\n", - " return Compose([AddChannel(), ScaleIntensity(), EnsureType()])\n", + " return Compose([EnsureChannelFirst(channel_dim=\"no_channel\"), ScaleIntensity(), EnsureType()])\n", "\n", " def compute(self, op_input, op_output, context):\n", " import json\n", @@ -770,6 +773,8 @@ "name": "stderr", "output_type": "stream", "text": [ + "[2023-11-15 19:18:17,922] [INFO] (root) - Parsed args: Namespace(argv=[], input=None, log_level=None, model=None, output=None, workdir=None)\n", + "[2023-11-15 19:18:17,941] [INFO] (root) - AppContext object: AppContext(input_path=input, output_path=output, model_path=models, workdir=)\n", "[info] [gxf_executor.cpp:210] Creating context\n", "[info] [gxf_executor.cpp:1595] Loading extensions from configs...\n", "[info] [gxf_executor.cpp:1741] Activating Graph...\n", @@ -778,7 +783,11 @@ "[info] [gxf_executor.cpp:1774] Graph execution waiting. Fragment: \n", "[info] [greedy_scheduler.cpp:190] Scheduling 3 entities\n", "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/monai/data/meta_tensor.py:116: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:206.)\n", - " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls) # type: ignore\n" + " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls)\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/pydicom/valuerep.py:443: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", + " warnings.warn(msg)\n", + "[2023-11-15 19:18:19,246] [INFO] (root) - Finished writing DICOM instance to file output/1.2.826.0.1.3680043.8.498.89399783846974532553567524226806601923.dcm\n", + "[2023-11-15 19:18:19,249] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in output/1.2.826.0.1.3680043.8.498.89399783846974532553567524226806601923.dcm\n" ] }, { @@ -792,8 +801,6 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/pydicom/valuerep.py:443: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", - " warnings.warn(msg)\n", "[info] [greedy_scheduler.cpp:369] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", "[info] [greedy_scheduler.cpp:398] Scheduler finished.\n", "[info] [gxf_executor.cpp:1783] Graph execution deactivating. Fragment: \n", @@ -887,7 +894,7 @@ "from monai.deploy.conditions import CountCondition\n", "from monai.deploy.core import AppContext, Application, ConditionType, Fragment, Image, Operator, OperatorSpec\n", "from monai.deploy.operators.dicom_text_sr_writer_operator import DICOMTextSRWriterOperator, EquipmentInfo, ModelInfo\n", - "from monai.transforms import AddChannel, Compose, EnsureType, ScaleIntensity\n", + "from monai.transforms import EnsureChannelFirst, Compose, EnsureType, ScaleIntensity\n", "\n", "MEDNIST_CLASSES = [\"AbdomenCT\", \"BreastMRI\", \"CXR\", \"ChestCT\", \"Hand\", \"HeadCT\"]\n", "\n", @@ -1037,7 +1044,7 @@ "\n", " @property\n", " def transform(self):\n", - " return Compose([AddChannel(), ScaleIntensity(), EnsureType()])\n", + " return Compose([EnsureChannelFirst(channel_dim=\"no_channel\"), ScaleIntensity(), EnsureType()])\n", "\n", " def compute(self, op_input, op_output, context):\n", " import json\n", @@ -1125,10 +1132,8 @@ "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1773] Waiting for completion...\n", "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1774] Graph execution waiting. Fragment: \n", "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:190] Scheduling 3 entities\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/monai/utils/deprecate_utils.py:111: FutureWarning: : Class `AddChannel` has been deprecated since version 0.8. It will be removed in version 1.3. please use MetaTensor data type and monai.transforms.EnsureChannelFirst instead with `channel_dim='no_channel'`.\n", - " warn_deprecated(obj, msg, warning_category)\n", "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/monai/data/meta_tensor.py:116: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:206.)\n", - " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls) # type: ignore\n", + " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls)\n", "AbdomenCT\n", "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/pydicom/valuerep.py:443: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", " warnings.warn(msg)\n", @@ -1240,17 +1245,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/pydantic/_internal/_config.py:269: UserWarning: Valid config keys have changed in V2:\n", - "* 'allow_population_by_field_name' has been renamed to 'populate_by_name'\n", - " warnings.warn(message, UserWarning)\n", - "[2023-08-03 20:49:29,599] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/mednist_app/mednist_classifier_monaideploy.py\n", - "[2023-08-03 20:49:29,599] [INFO] (packager.parameters) - Detected application type: Python File\n", - "[2023-08-03 20:49:29,599] [INFO] (packager) - Scanning for models in {models_path}...\n", - "[2023-08-03 20:49:29,599] [DEBUG] (packager) - Model model=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model added.\n", - "[2023-08-03 20:49:29,599] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/mednist_app/app.yaml...\n", - "[2023-08-03 20:49:29,601] [INFO] (packager) - Generating app.json...\n", - "[2023-08-03 20:49:29,601] [INFO] (packager) - Generating pkg.json...\n", - "[2023-08-03 20:49:29,601] [DEBUG] (common) - \n", + "[2023-11-15 19:18:32,397] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/mednist_app/mednist_classifier_monaideploy.py\n", + "[2023-11-15 19:18:32,397] [INFO] (packager.parameters) - Detected application type: Python File\n", + "[2023-11-15 19:18:32,397] [INFO] (packager) - Scanning for models in {models_path}...\n", + "[2023-11-15 19:18:32,397] [DEBUG] (packager) - Model model=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model added.\n", + "[2023-11-15 19:18:32,397] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/mednist_app/app.yaml...\n", + "[2023-11-15 19:18:32,398] [INFO] (packager) - Generating app.json...\n", + "[2023-11-15 19:18:32,399] [INFO] (packager) - Generating pkg.json...\n", + "[2023-11-15 19:18:32,400] [DEBUG] (common) - \n", "=============== Begin app.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -1285,7 +1287,7 @@ "}\n", "================ End app.json ================\n", " \n", - "[2023-08-03 20:49:29,602] [DEBUG] (common) - \n", + "[2023-11-15 19:18:32,400] [DEBUG] (common) - \n", "=============== Begin pkg.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -1304,7 +1306,7 @@ "}\n", "================ End pkg.json ================\n", " \n", - "[2023-08-03 20:49:29,635] [DEBUG] (packager.builder) - \n", + "[2023-11-15 19:18:32,429] [DEBUG] (packager.builder) - \n", "========== Begin Dockerfile ==========\n", "\n", "\n", @@ -1382,9 +1384,8 @@ "RUN pip install holoscan==0.6.0\n", "\n", "\n", - "# Copy user-specified MONAI Deploy SDK file\n", - "COPY ./monai_deploy_app_sdk-0.5.1+7.g9fa1185.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+7.g9fa1185.dirty-py3-none-any.whl\n", - "RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+7.g9fa1185.dirty-py3-none-any.whl\n", + "# Install MONAI Deploy from PyPI org\n", + "RUN pip install monai-deploy-app-sdk==0.6.0\n", "\n", "\n", "\n", @@ -1400,7 +1401,7 @@ "ENTRYPOINT [\"/var/holoscan/tools\"]\n", "=========== End Dockerfile ===========\n", "\n", - "[2023-08-03 20:49:29,636] [INFO] (packager.builder) - \n", + "[2023-11-15 19:18:32,429] [INFO] (packager.builder) - \n", "===============================================================================\n", "Building image for: x64-workstation\n", " Architecture: linux/amd64\n", @@ -1409,252 +1410,371 @@ " Cache: Enabled\n", " Configuration: dgpu\n", " Holoiscan SDK Package: pypi.org\n", - " MONAI Deploy App SDK Package: /home/mqin/src/monai-deploy-app-sdk/dist/monai_deploy_app_sdk-0.5.1+7.g9fa1185.dirty-py3-none-any.whl\n", + " MONAI Deploy App SDK Package: pypi.org\n", " gRPC Health Probe: N/A\n", " SDK Version: 0.6.0\n", " SDK: monai-deploy\n", " Tag: mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", " \n", - "[2023-08-03 20:49:30,337] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", - "[2023-08-03 20:49:30,338] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", + "[2023-11-15 19:18:32,690] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", + "[2023-11-15 19:18:32,691] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", + "#0 building with \"holoscan_app_builder\" instance using docker-container driver\n", + "\n", "#1 [internal] load .dockerignore\n", - "#1 transferring context: 1.79kB 0.0s done\n", + "#1 transferring context: 1.79kB done\n", "#1 DONE 0.1s\n", "\n", "#2 [internal] load build definition from Dockerfile\n", - "#2 transferring dockerfile: 2.67kB done\n", + "#2 transferring dockerfile: 2.49kB done\n", "#2 DONE 0.1s\n", "\n", "#3 [internal] load metadata for nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu\n", - "#3 DONE 0.8s\n", + "#3 DONE 0.4s\n", "\n", "#4 [internal] load build context\n", "#4 DONE 0.0s\n", "\n", - "#5 importing cache manifest from local:9585092855700183608\n", + "#5 importing cache manifest from local:12435489437730595250\n", "#5 DONE 0.0s\n", "\n", "#6 importing cache manifest from nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu\n", - "#6 DONE 0.9s\n", + "#6 DONE 0.7s\n", "\n", - "#7 [ 1/22] FROM nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu@sha256:9653f80f241fd542f25afbcbcf7a0d02ed7e5941c79763e69def5b1e6d9fb7bc\n", - "#7 resolve nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu@sha256:9653f80f241fd542f25afbcbcf7a0d02ed7e5941c79763e69def5b1e6d9fb7bc\n", + "#7 [ 1/21] FROM nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu@sha256:9653f80f241fd542f25afbcbcf7a0d02ed7e5941c79763e69def5b1e6d9fb7bc\n", "#7 resolve nvcr.io/nvidia/clara-holoscan/holoscan:v0.6.0-dgpu@sha256:9653f80f241fd542f25afbcbcf7a0d02ed7e5941c79763e69def5b1e6d9fb7bc 0.1s done\n", "#7 DONE 0.1s\n", "\n", "#4 [internal] load build context\n", - "#4 transferring context: 28.78MB 0.2s done\n", + "#4 transferring context: 28.62MB 0.2s done\n", "#4 DONE 0.3s\n", "\n", - "#8 [ 6/22] RUN chown -R holoscan /var/holoscan\n", + "#8 [ 6/21] RUN chown -R holoscan /var/holoscan\n", "#8 CACHED\n", "\n", - "#9 [12/22] COPY ./pip/requirements.txt /tmp/requirements.txt\n", + "#9 [ 7/21] RUN chown -R holoscan /var/holoscan/input\n", "#9 CACHED\n", "\n", - "#10 [10/22] COPY ./tools /var/holoscan/tools\n", + "#10 [ 9/21] WORKDIR /var/holoscan\n", "#10 CACHED\n", "\n", - "#11 [15/22] RUN pip install holoscan==0.6.0\n", + "#11 [ 2/21] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", "#11 CACHED\n", "\n", - "#12 [16/22] COPY ./monai_deploy_app_sdk-0.5.1+7.g9fa1185.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+7.g9fa1185.dirty-py3-none-any.whl\n", + "#12 [ 3/21] RUN apt-get update && apt-get install -y curl jq && rm -rf /var/lib/apt/lists/*\n", "#12 CACHED\n", "\n", - "#13 [ 7/22] RUN chown -R holoscan /var/holoscan/input\n", + "#13 [ 5/21] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", "#13 CACHED\n", "\n", - "#14 [ 4/22] RUN groupadd -g 1000 holoscan\n", + "#14 [10/21] COPY ./tools /var/holoscan/tools\n", "#14 CACHED\n", "\n", - "#15 [14/22] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", + "#15 [ 4/21] RUN groupadd -g 1000 holoscan\n", "#15 CACHED\n", "\n", - "#16 [11/22] RUN chmod +x /var/holoscan/tools\n", + "#16 [ 8/21] RUN chown -R holoscan /var/holoscan/output\n", "#16 CACHED\n", "\n", - "#17 [ 5/22] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", + "#17 [11/21] RUN chmod +x /var/holoscan/tools\n", "#17 CACHED\n", "\n", - "#18 [ 9/22] WORKDIR /var/holoscan\n", - "#18 CACHED\n", - "\n", - "#19 [ 8/22] RUN chown -R holoscan /var/holoscan/output\n", - "#19 CACHED\n", - "\n", - "#20 [ 2/22] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", - "#20 CACHED\n", - "\n", - "#21 [ 3/22] RUN apt-get update && apt-get install -y curl jq && rm -rf /var/lib/apt/lists/*\n", - "#21 CACHED\n", - "\n", - "#22 [13/22] RUN pip install --upgrade pip\n", - "#22 CACHED\n", - "\n", - "#23 [17/22] RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+7.g9fa1185.dirty-py3-none-any.whl\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 6.29MB / 2.40GB 0.2s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 130.02MB / 2.40GB 2.7s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 251.66MB / 2.40GB 5.1s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 374.34MB / 2.40GB 7.7s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 497.03MB / 2.40GB 10.2s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 629.15MB / 2.40GB 12.9s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 758.12MB / 2.40GB 15.5s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 880.80MB / 2.40GB 18.0s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 1.00GB / 2.40GB 20.6s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 1.13GB / 2.40GB 23.1s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 1.26GB / 2.40GB 25.4s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 1.38GB / 2.40GB 27.9s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 1.51GB / 2.40GB 30.3s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 1.63GB / 2.40GB 32.9s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 1.76GB / 2.40GB 35.7s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 1.89GB / 2.40GB 38.4s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 2.02GB / 2.40GB 41.0s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 2.14GB / 2.40GB 43.4s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 2.26GB / 2.40GB 45.8s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 2.38GB / 2.40GB 48.2s\n", - "#23 sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 2.40GB / 2.40GB 49.8s done\n", - "#23 extracting sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523\n", - "#23 extracting sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 57.5s done\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 5.24MB / 105.68MB 0.2s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 13.63MB / 105.68MB 0.3s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 22.02MB / 105.68MB 0.5s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 29.36MB / 105.68MB 0.6s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 35.65MB / 105.68MB 0.8s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 44.04MB / 105.68MB 0.9s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 51.38MB / 105.68MB 1.1s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 59.77MB / 105.68MB 1.2s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 67.15MB / 105.68MB 1.4s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 75.50MB / 105.68MB 1.5s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 82.84MB / 105.68MB 1.7s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 89.13MB / 105.68MB 1.8s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 97.52MB / 105.68MB 2.0s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 105.68MB / 105.68MB 2.1s\n", - "#23 sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 105.68MB / 105.68MB 2.4s done\n", - "#23 extracting sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded\n", - "#23 extracting sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded 2.9s done\n", - "#23 sha256:55e32cef42f992f9c914515dc95457ad65a501d20fb8face7a82d51a620e8d0c 149.04kB / 149.04kB 0.0s done\n", - "#23 extracting sha256:55e32cef42f992f9c914515dc95457ad65a501d20fb8face7a82d51a620e8d0c 0.0s done\n", - "#23 sha256:806c67c703b35fc283718dc9a3a7062a0303aabbea1395b138e66c10cd915f56 6.29MB / 48.57MB 0.2s\n", - "#23 sha256:806c67c703b35fc283718dc9a3a7062a0303aabbea1395b138e66c10cd915f56 13.63MB / 48.57MB 0.3s\n", - "#23 sha256:806c67c703b35fc283718dc9a3a7062a0303aabbea1395b138e66c10cd915f56 22.02MB / 48.57MB 0.5s\n", - "#23 sha256:806c67c703b35fc283718dc9a3a7062a0303aabbea1395b138e66c10cd915f56 29.36MB / 48.57MB 0.6s\n", - "#23 sha256:806c67c703b35fc283718dc9a3a7062a0303aabbea1395b138e66c10cd915f56 35.65MB / 48.57MB 0.8s\n", - "#23 sha256:806c67c703b35fc283718dc9a3a7062a0303aabbea1395b138e66c10cd915f56 42.99MB / 48.57MB 0.9s\n", - "#23 sha256:806c67c703b35fc283718dc9a3a7062a0303aabbea1395b138e66c10cd915f56 48.57MB / 48.57MB 1.1s\n", - "#23 sha256:806c67c703b35fc283718dc9a3a7062a0303aabbea1395b138e66c10cd915f56 48.57MB / 48.57MB 1.1s done\n", - "#23 extracting sha256:806c67c703b35fc283718dc9a3a7062a0303aabbea1395b138e66c10cd915f56\n", - "#23 extracting sha256:806c67c703b35fc283718dc9a3a7062a0303aabbea1395b138e66c10cd915f56 2.2s done\n", - "#23 CACHED\n", - "\n", - "#24 [18/22] COPY ./models /opt/holoscan/models\n", - "#24 DONE 3.1s\n", - "\n", - "#25 [19/22] COPY ./map/app.json /etc/holoscan/app.json\n", + "#18 [12/21] COPY ./pip/requirements.txt /tmp/requirements.txt\n", + "#18 DONE 0.4s\n", + "\n", + "#19 [13/21] RUN pip install --upgrade pip\n", + "#19 1.132 Defaulting to user installation because normal site-packages is not writeable\n", + "#19 1.214 Requirement already satisfied: pip in /usr/local/lib/python3.8/dist-packages (22.0.4)\n", + "#19 1.417 Collecting pip\n", + "#19 1.467 Downloading pip-23.3.1-py3-none-any.whl (2.1 MB)\n", + "#19 1.538 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 32.7 MB/s eta 0:00:00\n", + "#19 1.658 Installing collected packages: pip\n", + "#19 2.774 Successfully installed pip-23.3.1\n", + "#19 2.906 WARNING: You are using pip version 22.0.4; however, version 23.3.1 is available.\n", + "#19 2.906 You should consider upgrading via the '/usr/bin/python -m pip install --upgrade pip' command.\n", + "#19 DONE 3.1s\n", + "\n", + "#20 [14/21] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", + "#20 0.781 Collecting monai>=1.2.0 (from -r /tmp/requirements.txt (line 1))\n", + "#20 0.810 Downloading monai-1.3.0-202310121228-py3-none-any.whl.metadata (10 kB)\n", + "#20 1.152 Collecting Pillow>=8.4.0 (from -r /tmp/requirements.txt (line 2))\n", + "#20 1.165 Downloading Pillow-10.1.0-cp38-cp38-manylinux_2_28_x86_64.whl.metadata (9.5 kB)\n", + "#20 1.216 Collecting pydicom>=2.3.0 (from -r /tmp/requirements.txt (line 3))\n", + "#20 1.227 Downloading pydicom-2.4.3-py3-none-any.whl.metadata (7.8 kB)\n", + "#20 1.342 Collecting highdicom>=0.18.2 (from -r /tmp/requirements.txt (line 4))\n", + "#20 1.351 Downloading highdicom-0.22.0-py3-none-any.whl.metadata (3.8 kB)\n", + "#20 1.430 Collecting SimpleITK>=2.0.0 (from -r /tmp/requirements.txt (line 5))\n", + "#20 1.439 Downloading SimpleITK-2.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.9 kB)\n", + "#20 1.777 Collecting setuptools>=59.5.0 (from -r /tmp/requirements.txt (line 6))\n", + "#20 1.785 Downloading setuptools-68.2.2-py3-none-any.whl.metadata (6.3 kB)\n", + "#20 1.912 Requirement already satisfied: numpy>=1.20 in /usr/local/lib/python3.8/dist-packages (from monai>=1.2.0->-r /tmp/requirements.txt (line 1)) (1.22.3)\n", + "#20 1.972 Collecting torch>=1.9 (from monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 1.983 Downloading torch-2.1.1-cp38-cp38-manylinux1_x86_64.whl.metadata (25 kB)\n", + "#20 2.163 Collecting pillow-jpls>=1.0 (from highdicom>=0.18.2->-r /tmp/requirements.txt (line 4))\n", + "#20 2.182 Downloading pillow_jpls-1.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (340 kB)\n", + "#20 2.197 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 340.3/340.3 kB 76.9 MB/s eta 0:00:00\n", + "#20 2.400 Collecting filelock (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 2.411 Downloading filelock-3.13.1-py3-none-any.whl.metadata (2.8 kB)\n", + "#20 2.415 Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1)) (4.7.1)\n", + "#20 2.467 Collecting sympy (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 2.477 Downloading sympy-1.12-py3-none-any.whl (5.7 MB)\n", + "#20 2.531 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7/5.7 MB 114.1 MB/s eta 0:00:00\n", + "#20 2.617 Collecting networkx (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 2.626 Downloading networkx-3.1-py3-none-any.whl (2.1 MB)\n", + "#20 2.652 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 95.7 MB/s eta 0:00:00\n", + "#20 2.668 Requirement already satisfied: jinja2 in /usr/local/lib/python3.8/dist-packages (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1)) (3.1.2)\n", + "#20 2.721 Collecting fsspec (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 2.730 Downloading fsspec-2023.10.0-py3-none-any.whl.metadata (6.8 kB)\n", + "#20 2.760 Collecting nvidia-cuda-nvrtc-cu12==12.1.105 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 2.772 Downloading nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (23.7 MB)\n", + "#20 2.981 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.7/23.7 MB 116.4 MB/s eta 0:00:00\n", + "#20 3.068 Collecting nvidia-cuda-runtime-cu12==12.1.105 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 3.109 Downloading nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (823 kB)\n", + "#20 3.124 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 823.6/823.6 kB 94.7 MB/s eta 0:00:00\n", + "#20 3.163 Collecting nvidia-cuda-cupti-cu12==12.1.105 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 3.176 Downloading nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (14.1 MB)\n", + "#20 3.309 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.1/14.1 MB 109.7 MB/s eta 0:00:00\n", + "#20 3.378 Collecting nvidia-cudnn-cu12==8.9.2.26 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 3.386 Downloading nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\n", + "#20 3.416 Collecting nvidia-cublas-cu12==12.1.3.1 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 3.430 Downloading nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl (410.6 MB)\n", + "#20 7.176 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 410.6/410.6 MB 107.3 MB/s eta 0:00:00\n", + "#20 8.220 Collecting nvidia-cufft-cu12==11.0.2.54 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 8.233 Downloading nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl (121.6 MB)\n", + "#20 9.379 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.6/121.6 MB 109.4 MB/s eta 0:00:00\n", + "#20 9.783 Collecting nvidia-curand-cu12==10.3.2.106 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 9.793 Downloading nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl (56.5 MB)\n", + "#20 10.31 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.5/56.5 MB 116.7 MB/s eta 0:00:00\n", + "#20 10.48 Collecting nvidia-cusolver-cu12==11.4.5.107 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 10.49 Downloading nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl (124.2 MB)\n", + "#20 11.57 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 124.2/124.2 MB 124.0 MB/s eta 0:00:00\n", + "#20 11.93 Collecting nvidia-cusparse-cu12==12.1.0.106 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 11.94 Downloading nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl (196.0 MB)\n", + "#20 13.68 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.0/196.0 MB 112.6 MB/s eta 0:00:00\n", + "#20 14.22 Collecting nvidia-nccl-cu12==2.18.1 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 14.23 Downloading nvidia_nccl_cu12-2.18.1-py3-none-manylinux1_x86_64.whl (209.8 MB)\n", + "#20 16.25 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 209.8/209.8 MB 110.7 MB/s eta 0:00:00\n", + "#20 16.82 Collecting nvidia-nvtx-cu12==12.1.105 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 16.83 Downloading nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (99 kB)\n", + "#20 16.84 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.1/99.1 kB 177.1 MB/s eta 0:00:00\n", + "#20 16.88 Collecting triton==2.1.0 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 16.89 Downloading triton-2.1.0-0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.3 kB)\n", + "#20 16.94 Collecting nvidia-nvjitlink-cu12 (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 16.95 Downloading nvidia_nvjitlink_cu12-12.3.101-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", + "#20 17.06 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.8/dist-packages (from jinja2->torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1)) (2.1.1)\n", + "#20 17.16 Collecting mpmath>=0.19 (from sympy->torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", + "#20 17.17 Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)\n", + "#20 17.18 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 171.3 MB/s eta 0:00:00\n", + "#20 17.28 Downloading monai-1.3.0-202310121228-py3-none-any.whl (1.3 MB)\n", + "#20 17.30 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 106.8 MB/s eta 0:00:00\n", + "#20 17.31 Downloading Pillow-10.1.0-cp38-cp38-manylinux_2_28_x86_64.whl (3.6 MB)\n", + "#20 17.36 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 85.2 MB/s eta 0:00:00\n", + "#20 17.37 Downloading pydicom-2.4.3-py3-none-any.whl (1.8 MB)\n", + "#20 17.40 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 82.5 MB/s eta 0:00:00\n", + "#20 17.42 Downloading highdicom-0.22.0-py3-none-any.whl (825 kB)\n", + "#20 17.43 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 825.0/825.0 kB 76.9 MB/s eta 0:00:00\n", + "#20 17.45 Downloading SimpleITK-2.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (52.7 MB)\n", + "#20 18.20 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.7/52.7 MB 93.6 MB/s eta 0:00:00\n", + "#20 18.21 Downloading setuptools-68.2.2-py3-none-any.whl (807 kB)\n", + "#20 18.22 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 807.9/807.9 kB 125.5 MB/s eta 0:00:00\n", + "#20 18.23 Downloading torch-2.1.1-cp38-cp38-manylinux1_x86_64.whl (670.2 MB)\n", + "#20 24.62 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 670.2/670.2 MB 74.1 MB/s eta 0:00:00\n", + "#20 24.63 Downloading nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl (731.7 MB)\n", + "#20 31.44 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 731.7/731.7 MB 65.6 MB/s eta 0:00:00\n", + "#20 31.46 Downloading triton-2.1.0-0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (89.2 MB)\n", + "#20 32.91 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.2/89.2 MB 90.3 MB/s eta 0:00:00\n", + "#20 32.92 Downloading filelock-3.13.1-py3-none-any.whl (11 kB)\n", + "#20 32.93 Downloading fsspec-2023.10.0-py3-none-any.whl (166 kB)\n", + "#20 32.94 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 166.4/166.4 kB 69.7 MB/s eta 0:00:00\n", + "#20 32.96 Downloading nvidia_nvjitlink_cu12-12.3.101-py3-none-manylinux1_x86_64.whl (20.5 MB)\n", + "#20 34.08 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 20.5/20.5 MB 19.1 MB/s eta 0:00:00\n", + "#20 38.74 Installing collected packages: SimpleITK, mpmath, sympy, setuptools, pydicom, Pillow, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, networkx, fsspec, filelock, triton, pillow-jpls, nvidia-cusparse-cu12, nvidia-cudnn-cu12, nvidia-cusolver-cu12, highdicom, torch, monai\n", + "#20 85.54 Successfully installed Pillow-10.1.0 SimpleITK-2.3.1 filelock-3.13.1 fsspec-2023.10.0 highdicom-0.22.0 monai-1.3.0 mpmath-1.3.0 networkx-3.1 nvidia-cublas-cu12-12.1.3.1 nvidia-cuda-cupti-cu12-12.1.105 nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cudnn-cu12-8.9.2.26 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.18.1 nvidia-nvjitlink-cu12-12.3.101 nvidia-nvtx-cu12-12.1.105 pillow-jpls-1.2.0 pydicom-2.4.3 setuptools-68.2.2 sympy-1.12 torch-2.1.1 triton-2.1.0\n", + "#20 DONE 87.6s\n", + "\n", + "#21 [15/21] RUN pip install holoscan==0.6.0\n", + "#21 0.757 Defaulting to user installation because normal site-packages is not writeable\n", + "#21 1.044 Collecting holoscan==0.6.0\n", + "#21 1.084 Downloading holoscan-0.6.0-cp38-cp38-manylinux2014_x86_64.whl.metadata (4.4 kB)\n", + "#21 1.124 Requirement already satisfied: cloudpickle~=2.2 in /usr/local/lib/python3.8/dist-packages (from holoscan==0.6.0) (2.2.1)\n", + "#21 1.126 Requirement already satisfied: python-on-whales~=0.60 in /usr/local/lib/python3.8/dist-packages (from holoscan==0.6.0) (0.63.0)\n", + "#21 1.128 Requirement already satisfied: Jinja2~=3.1 in /usr/local/lib/python3.8/dist-packages (from holoscan==0.6.0) (3.1.2)\n", + "#21 1.130 Requirement already satisfied: packaging~=23.1 in /usr/local/lib/python3.8/dist-packages (from holoscan==0.6.0) (23.1)\n", + "#21 1.131 Requirement already satisfied: pyyaml~=6.0 in /usr/local/lib/python3.8/dist-packages (from holoscan==0.6.0) (6.0.1)\n", + "#21 1.132 Requirement already satisfied: requests~=2.28 in /usr/local/lib/python3.8/dist-packages (from holoscan==0.6.0) (2.31.0)\n", + "#21 1.134 Requirement already satisfied: pip>=20.2 in /home/holoscan/.local/lib/python3.8/site-packages (from holoscan==0.6.0) (23.3.1)\n", + "#21 1.276 Collecting wheel-axle-runtime<1.0 (from holoscan==0.6.0)\n", + "#21 1.285 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl.metadata (7.7 kB)\n", + "#21 1.308 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.8/dist-packages (from Jinja2~=3.1->holoscan==0.6.0) (2.1.1)\n", + "#21 1.319 Requirement already satisfied: pydantic<2,>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-on-whales~=0.60->holoscan==0.6.0) (1.10.12)\n", + "#21 1.320 Requirement already satisfied: tqdm in /usr/local/lib/python3.8/dist-packages (from python-on-whales~=0.60->holoscan==0.6.0) (4.65.0)\n", + "#21 1.321 Requirement already satisfied: typer>=0.4.1 in /usr/local/lib/python3.8/dist-packages (from python-on-whales~=0.60->holoscan==0.6.0) (0.9.0)\n", + "#21 1.321 Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from python-on-whales~=0.60->holoscan==0.6.0) (4.7.1)\n", + "#21 1.332 Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.8/dist-packages (from requests~=2.28->holoscan==0.6.0) (3.2.0)\n", + "#21 1.332 Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests~=2.28->holoscan==0.6.0) (3.4)\n", + "#21 1.333 Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests~=2.28->holoscan==0.6.0) (2.0.4)\n", + "#21 1.334 Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests~=2.28->holoscan==0.6.0) (2023.7.22)\n", + "#21 1.337 Requirement already satisfied: filelock in /home/holoscan/.local/lib/python3.8/site-packages (from wheel-axle-runtime<1.0->holoscan==0.6.0) (3.13.1)\n", + "#21 1.381 Requirement already satisfied: click<9.0.0,>=7.1.1 in /usr/local/lib/python3.8/dist-packages (from typer>=0.4.1->python-on-whales~=0.60->holoscan==0.6.0) (8.1.6)\n", + "#21 1.444 Downloading holoscan-0.6.0-cp38-cp38-manylinux2014_x86_64.whl (52.8 MB)\n", + "#21 2.307 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.8/52.8 MB 27.8 MB/s eta 0:00:00\n", + "#21 2.319 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl (12 kB)\n", + "#21 2.826 Installing collected packages: wheel-axle-runtime, holoscan\n", + "#21 3.814 Successfully installed holoscan-0.6.0 wheel-axle-runtime-0.0.5\n", + "#21 DONE 4.4s\n", + "\n", + "#22 [16/21] RUN pip install monai-deploy-app-sdk==0.6.0\n", + "#22 0.661 Defaulting to user installation because normal site-packages is not writeable\n", + "#22 0.843 Collecting monai-deploy-app-sdk==0.6.0\n", + "#22 0.872 Downloading monai_deploy_app_sdk-0.6.0-py3-none-any.whl (125 kB)\n", + "#22 0.895 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 125.1/125.1 KB 7.3 MB/s eta 0:00:00\n", + "#22 0.918 Requirement already satisfied: numpy>=1.21.6 in /usr/local/lib/python3.8/dist-packages (from monai-deploy-app-sdk==0.6.0) (1.22.3)\n", + "#22 0.919 Requirement already satisfied: holoscan~=0.6.0 in /home/holoscan/.local/lib/python3.8/site-packages (from monai-deploy-app-sdk==0.6.0) (0.6.0)\n", + "#22 0.994 Collecting colorama>=0.4.1\n", + "#22 1.002 Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", + "#22 1.091 Collecting typeguard>=3.0.0\n", + "#22 1.105 Downloading typeguard-4.1.5-py3-none-any.whl (34 kB)\n", + "#22 1.130 Requirement already satisfied: cloudpickle~=2.2 in /usr/local/lib/python3.8/dist-packages (from holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (2.2.1)\n", + "#22 1.131 Requirement already satisfied: wheel-axle-runtime<1.0 in /home/holoscan/.local/lib/python3.8/site-packages (from holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (0.0.5)\n", + "#22 1.132 Requirement already satisfied: Jinja2~=3.1 in /usr/local/lib/python3.8/dist-packages (from holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (3.1.2)\n", + "#22 1.133 Requirement already satisfied: packaging~=23.1 in /usr/local/lib/python3.8/dist-packages (from holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (23.1)\n", + "#22 1.134 Requirement already satisfied: python-on-whales~=0.60 in /usr/local/lib/python3.8/dist-packages (from holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (0.63.0)\n", + "#22 1.135 Requirement already satisfied: pyyaml~=6.0 in /usr/local/lib/python3.8/dist-packages (from holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (6.0.1)\n", + "#22 1.136 Requirement already satisfied: pip>=20.2 in /usr/local/lib/python3.8/dist-packages (from holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (22.0.4)\n", + "#22 1.137 Requirement already satisfied: requests~=2.28 in /usr/local/lib/python3.8/dist-packages (from holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (2.31.0)\n", + "#22 1.151 Requirement already satisfied: typing-extensions>=4.7.0 in /usr/local/lib/python3.8/dist-packages (from typeguard>=3.0.0->monai-deploy-app-sdk==0.6.0) (4.7.1)\n", + "#22 1.266 Collecting importlib-metadata>=3.6\n", + "#22 1.274 Downloading importlib_metadata-6.8.0-py3-none-any.whl (22 kB)\n", + "#22 1.371 Collecting zipp>=0.5\n", + "#22 1.378 Downloading zipp-3.17.0-py3-none-any.whl (7.4 kB)\n", + "#22 1.393 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.8/dist-packages (from Jinja2~=3.1->holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (2.1.1)\n", + "#22 1.401 Requirement already satisfied: tqdm in /usr/local/lib/python3.8/dist-packages (from python-on-whales~=0.60->holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (4.65.0)\n", + "#22 1.402 Requirement already satisfied: pydantic<2,>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-on-whales~=0.60->holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (1.10.12)\n", + "#22 1.403 Requirement already satisfied: typer>=0.4.1 in /usr/local/lib/python3.8/dist-packages (from python-on-whales~=0.60->holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (0.9.0)\n", + "#22 1.414 Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests~=2.28->holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (2023.7.22)\n", + "#22 1.415 Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.8/dist-packages (from requests~=2.28->holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (3.2.0)\n", + "#22 1.416 Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests~=2.28->holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (3.4)\n", + "#22 1.417 Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests~=2.28->holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (2.0.4)\n", + "#22 1.423 Requirement already satisfied: filelock in /home/holoscan/.local/lib/python3.8/site-packages (from wheel-axle-runtime<1.0->holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (3.13.1)\n", + "#22 1.464 Requirement already satisfied: click<9.0.0,>=7.1.1 in /usr/local/lib/python3.8/dist-packages (from typer>=0.4.1->python-on-whales~=0.60->holoscan~=0.6.0->monai-deploy-app-sdk==0.6.0) (8.1.6)\n", + "#22 1.945 Installing collected packages: zipp, colorama, importlib-metadata, typeguard, monai-deploy-app-sdk\n", + "#22 2.185 Successfully installed colorama-0.4.6 importlib-metadata-6.8.0 monai-deploy-app-sdk-0.6.0 typeguard-4.1.5 zipp-3.17.0\n", + "#22 2.190 WARNING: You are using pip version 22.0.4; however, version 23.3.1 is available.\n", + "#22 2.190 You should consider upgrading via the '/usr/bin/python -m pip install --upgrade pip' command.\n", + "#22 DONE 2.4s\n", + "\n", + "#23 [17/21] COPY ./models /opt/holoscan/models\n", + "#23 DONE 0.2s\n", + "\n", + "#24 [18/21] COPY ./map/app.json /etc/holoscan/app.json\n", + "#24 DONE 0.1s\n", + "\n", + "#25 [19/21] COPY ./app.config /var/holoscan/app.yaml\n", "#25 DONE 0.1s\n", "\n", - "#26 [20/22] COPY ./app.config /var/holoscan/app.yaml\n", + "#26 [20/21] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", "#26 DONE 0.1s\n", "\n", - "#27 [21/22] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", + "#27 [21/21] COPY ./app /opt/holoscan/app\n", "#27 DONE 0.1s\n", "\n", - "#28 [22/22] COPY ./app /opt/holoscan/app\n", - "#28 DONE 0.1s\n", - "\n", - "#29 exporting to docker image format\n", - "#29 exporting layers\n", - "#29 exporting layers 1.1s done\n", - "#29 exporting manifest sha256:c788c08ceb970d2b6c8a36eaf5d5809a959ed6ac92e387bf964a3b4998d3f2af 0.0s done\n", - "#29 exporting config sha256:d22d232013f038d48c43d4caa2246268674e9c6c81083f7ab6c3f37ec7ce31e2 0.0s done\n", - "#29 sending tarball\n", - "#29 ...\n", - "\n", - "#30 importing to docker\n", - "#30 DONE 1.3s\n", - "\n", - "#29 exporting to docker image format\n", - "#29 sending tarball 52.6s done\n", - "#29 DONE 53.8s\n", - "\n", - "#31 exporting content cache\n", - "#31 preparing build cache for export\n", - "#31 writing layer sha256:0709800848b4584780b40e7e81200689870e890c38b54e96b65cd0a3b1942f2d done\n", - "#31 writing layer sha256:0ce020987cfa5cd1654085af3bb40779634eb3d792c4a4d6059036463ae0040d done\n", - "#31 writing layer sha256:0f65089b284381bf795d15b1a186e2a8739ea957106fa526edef0d738e7cda70 done\n", - "#31 writing layer sha256:12a47450a9f9cc5d4edab65d0f600dbbe8b23a1663b0b3bb2c481d40e074b580 done\n", - "#31 writing layer sha256:1338fe24653eba781a71bd79902b5b905624589983ce80c816a09bda7b89e3bd\n", - "#31 writing layer sha256:1338fe24653eba781a71bd79902b5b905624589983ce80c816a09bda7b89e3bd 0.6s done\n", - "#31 writing layer sha256:1477e9e55f1216fe4085565e21baa742149b480d35141f298402b1e766fb58d3 0.0s done\n", - "#31 writing layer sha256:1de965777e2e37c7fabe00bdbf3d0203ca83ed30a71a5479c3113fe4fc48c4bb done\n", - "#31 writing layer sha256:24b5aa2448e920814dd67d7d3c0169b2cdacb13c4048d74ded3b4317843b13ff done\n", - "#31 writing layer sha256:2d42104dbf0a7cc962b791f6ab4f45a803f8a36d296f996aca180cfb2f3e30d0 done\n", - "#31 writing layer sha256:2fa1ce4fa3fec6f9723380dc0536b7c361d874add0baaddc4bbf2accac82d2ff\n", - "#31 writing layer sha256:2fa1ce4fa3fec6f9723380dc0536b7c361d874add0baaddc4bbf2accac82d2ff done\n", - "#31 writing layer sha256:38794be1b5dc99645feabf89b22cd34fb5bdffb5164ad920e7df94f353efe9c0 done\n", - "#31 writing layer sha256:38f963dc57c1e7b68a738fe39ed9f9345df7188111a047e2163a46648d7f1d88 done\n", - "#31 writing layer sha256:3e7e4c9bc2b136814c20c04feb4eea2b2ecf972e20182d88759931130cfb4181 done\n", - "#31 writing layer sha256:3fd77037ad585442cd82d64e337f49a38ddba50432b2a1e563a48401d25c79e6 done\n", - "#31 writing layer sha256:41814ed91034b30ac9c44dfc604a4bade6138005ccf682372c02e0bead66dbc0 done\n", - "#31 writing layer sha256:45893188359aca643d5918c9932da995364dc62013dfa40c075298b1baabece3 done\n", - "#31 writing layer sha256:49bc651b19d9e46715c15c41b7c0daa007e8e25f7d9518f04f0f06592799875a done\n", - "#31 writing layer sha256:4aeb0049534a685f9b8d851171ca3ee850fc1609d85e651ebdb0508d8d1e9403 0.0s done\n", - "#31 writing layer sha256:4c12db5118d8a7d909e4926d69a2192d2b3cd8b110d49c7504a4f701258c1ccc done\n", - "#31 writing layer sha256:4cc43a803109d6e9d1fd35495cef9b1257035f5341a2db54f7a1940815b6cc65 done\n", - "#31 writing layer sha256:4d32b49e2995210e8937f0898327f196d3fcc52486f0be920e8b2d65f150a7ab done\n", - "#31 writing layer sha256:4d6fe980bad9cd7b2c85a478c8033cae3d098a81f7934322fb64658b0c8f9854 done\n", - "#31 writing layer sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 done\n", - "#31 writing layer sha256:5150182f1ff123399b300ca469e00f6c4d82e1b9b72652fb8ee7eab370245236 done\n", - "#31 writing layer sha256:55e32cef42f992f9c914515dc95457ad65a501d20fb8face7a82d51a620e8d0c done\n", - "#31 writing layer sha256:595c38fa102c61c3dda19bdab70dcd26a0e50465b986d022a84fa69023a05d0f done\n", - "#31 writing layer sha256:59d451175f6950740e26d38c322da0ef67cb59da63181eb32996f752ba8a2f17 done\n", - "#31 writing layer sha256:5ad1f2004580e415b998124ea394e9d4072a35d70968118c779f307204d6bd17 done\n", - "#31 writing layer sha256:62598eafddf023e7f22643485f4321cbd51ff7eee743b970db12454fd3c8c675 done\n", - "#31 writing layer sha256:63d7e616a46987136f4cc9eba95db6f6327b4854cfe3c7e20fed6db0c966e380 done\n", - "#31 writing layer sha256:6939d591a6b09b14a437e5cd2d6082a52b6d76bec4f72d960440f097721da34f done\n", - "#31 writing layer sha256:698318e5a60e5e0d48c45bf992f205a9532da567fdfe94bd59be2e192975dd6f done\n", - "#31 writing layer sha256:6ddc1d0f91833b36aac1c6f0c8cea005c87d94bab132d46cc06d9b060a81cca3 done\n", - "#31 writing layer sha256:74ac1f5a47c0926bff1e997bb99985a09926f43bd0895cb27ceb5fa9e95f8720 done\n", - "#31 writing layer sha256:7577973918dd30e764733a352a93f418000bc3181163ca451b2307492c1a6ba9 done\n", - "#31 writing layer sha256:806c67c703b35fc283718dc9a3a7062a0303aabbea1395b138e66c10cd915f56 done\n", - "#31 writing layer sha256:886c886d8a09d8befb92df75dd461d4f97b77d7cff4144c4223b0d2f6f2c17f2 done\n", - "#31 writing layer sha256:8a7451db9b4b817b3b33904abddb7041810a4ffe8ed4a034307d45d9ae9b3f2a done\n", - "#31 writing layer sha256:916f4054c6e7f10de4fd7c08ffc75fa23ebecca4eceb8183cb1023b33b1696c9 done\n", - "#31 writing layer sha256:9463aa3f56275af97693df69478a2dc1d171f4e763ca6f7b6f370a35e605c154 done\n", - "#31 writing layer sha256:955fd173ed884230c2eded4542d10a97384b408537be6bbb7c4ae09ccd6fb2d0 done\n", - "#31 writing layer sha256:99ef644a0c84a569b9692a76e0c6a1c3e9dedae5d551087be684b6bc1bea6f22 done\n", - "#31 writing layer sha256:9c42a4ee99755f441251e6043b2cbba16e49818a88775e7501ec17e379ce3cfd done\n", - "#31 writing layer sha256:9c63be0a86e3dc4168db3814bf464e40996afda0031649d9faa8ff7568c3154f done\n", - "#31 writing layer sha256:9e04bda98b05554953459b5edef7b2b14d32f1a00b979a23d04b6eb5c191e66b done\n", - "#31 writing layer sha256:a4a0c690bc7da07e592514dccaa26098a387e8457f69095e922b6d73f7852502 done\n", - "#31 writing layer sha256:a4aafbc094d78a85bef41036173eb816a53bcd3e2564594a32f542facdf2aba6 done\n", - "#31 writing layer sha256:ae36a4d38b76948e39a5957025c984a674d2de18ce162a8caaa536e6f06fccea done\n", - "#31 writing layer sha256:b2fa40114a4a0725c81b327df89c0c3ed5c05ca9aa7f1157394d5096cf5460ce done\n", - "#31 writing layer sha256:b48a5fafcaba74eb5d7e7665601509e2889285b50a04b5b639a23f8adc818157 done\n", - "#31 writing layer sha256:b8ec9058cfc8057a4989af89add416b6d4c425cb3e3a4542281d3b188ef8d97f 0.0s done\n", - "#31 writing layer sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523\n", - "#31 preparing build cache for export 1.3s done\n", - "#31 writing layer sha256:b9874c0e107000cd0157c2f6c12f6b095ec79e92b293ef581984b94c75080523 done\n", - "#31 writing layer sha256:c86976a083599e36a6441f36f553627194d05ea82bb82a78682e718fe62fccf6 done\n", - "#31 writing layer sha256:cb506fbdedc817e3d074f609e2edbf9655aacd7784610a1bbac52f2d7be25438 done\n", - "#31 writing layer sha256:d2a6fe65a1f84edb65b63460a75d1cac1aa48b72789006881b0bcfd54cd01ffd done\n", - "#31 writing layer sha256:d674572cae0440d01b016bd1a6cf88924f6067f38858706ad4856d78993a0a6e done\n", - "#31 writing layer sha256:d709c3fc82181d7bc3561f087363554add07059d1fc1fa014d3da3f9092a7524 0.0s done\n", - "#31 writing layer sha256:d8d16d6af76dc7c6b539422a25fdad5efb8ada5a8188069fcd9d113e3b783304 done\n", - "#31 writing layer sha256:ddc2ade4f6fe866696cb638c8a102cb644fa842c2ca578392802b3e0e5e3bcb7 done\n", - "#31 writing layer sha256:e2cfd7f6244d6f35befa6bda1caa65f1786cecf3f00ef99d7c9a90715ce6a03c done\n", - "#31 writing layer sha256:e94a4481e9334ff402bf90628594f64a426672debbdfb55f1290802e52013907 done\n", - "#31 writing layer sha256:eaf45e9f32d1f5a9983945a1a9f8dedbb475bc0f578337610e00b4dedec87c20 done\n", - "#31 writing layer sha256:eb411bef39c013c9853651e68f00965dbd826d829c4e478884a2886976e9c989 done\n", - "#31 writing layer sha256:edfe4a95eb6bd3142aeda941ab871ffcc8c19cf50c33561c210ba8ead2424759 done\n", - "#31 writing layer sha256:ef4466d6f927d29d404df9c5af3ef5733c86fa14e008762c90110b963978b1e7 done\n", - "#31 writing layer sha256:f20d17e4fd485b1a37bb580c6b5e8b8d707b382d387df57004086b8036ddaded done\n", - "#31 writing layer sha256:f346e3ecdf0bee048fa1e3baf1d3128ff0283b903f03e97524944949bd8882e5 done\n", - "#31 writing layer sha256:f3f9a00a1ce9aadda250aacb3e66a932676badc5d8519c41517fdf7ea14c13ed done\n", - "#31 writing layer sha256:fd849d9bd8889edd43ae38e9f21a912430c8526b2c18f3057a3b2cd74eb27b31 done\n", - "#31 writing config sha256:23fbbd00b006000bbd87f5dfe7e12fe71203e710a83580e1ee63125c214ff4d5 0.0s done\n", - "#31 writing manifest sha256:7b8dadf0182c3fbe7dede6a29963defd6eff4efa3a6b8e81e5f2dceaaf023210 0.0s done\n", - "#31 DONE 1.3s\n", - "[2023-08-03 20:52:32,339] [INFO] (packager) - Build Summary:\n", + "#28 exporting to docker image format\n", + "#28 exporting layers\n", + "#28 exporting layers 157.5s done\n", + "#28 exporting manifest sha256:6d3e7548287a6a3abc70110c29982b2b32483515fb249876f50112b03dac40a6 0.0s done\n", + "#28 exporting config sha256:69287893ca549aef4897eb7391ab557b1cc5802f1c547ac41b761808e04a7fa4 0.0s done\n", + "#28 sending tarball\n", + "#28 ...\n", + "\n", + "#29 importing to docker\n", + "#29 DONE 90.4s\n", + "\n", + "#28 exporting to docker image format\n", + "#28 sending tarball 132.9s done\n", + "#28 DONE 290.5s\n", + "\n", + "#30 exporting content cache\n", + "#30 preparing build cache for export\n", + "#30 writing layer sha256:0709800848b4584780b40e7e81200689870e890c38b54e96b65cd0a3b1942f2d\n", + "#30 writing layer sha256:0709800848b4584780b40e7e81200689870e890c38b54e96b65cd0a3b1942f2d done\n", + "#30 writing layer sha256:0ce020987cfa5cd1654085af3bb40779634eb3d792c4a4d6059036463ae0040d done\n", + "#30 writing layer sha256:0f65089b284381bf795d15b1a186e2a8739ea957106fa526edef0d738e7cda70 done\n", + "#30 writing layer sha256:12a47450a9f9cc5d4edab65d0f600dbbe8b23a1663b0b3bb2c481d40e074b580 done\n", + "#30 writing layer sha256:1de965777e2e37c7fabe00bdbf3d0203ca83ed30a71a5479c3113fe4fc48c4bb done\n", + "#30 writing layer sha256:24b5aa2448e920814dd67d7d3c0169b2cdacb13c4048d74ded3b4317843b13ff done\n", + "#30 writing layer sha256:2d42104dbf0a7cc962b791f6ab4f45a803f8a36d296f996aca180cfb2f3e30d0 done\n", + "#30 writing layer sha256:2fa1ce4fa3fec6f9723380dc0536b7c361d874add0baaddc4bbf2accac82d2ff done\n", + "#30 writing layer sha256:3783d0dc66925772df1dfb27f94eaa99034d14162095ac959cd3963ec714d1f4 0.0s done\n", + "#30 writing layer sha256:38794be1b5dc99645feabf89b22cd34fb5bdffb5164ad920e7df94f353efe9c0 done\n", + "#30 writing layer sha256:38f963dc57c1e7b68a738fe39ed9f9345df7188111a047e2163a46648d7f1d88 done\n", + "#30 writing layer sha256:394546a9b772ece8edef536c1ed208c87a1c39293207cc101fc7d94cc5ff364f\n", + "#30 writing layer sha256:394546a9b772ece8edef536c1ed208c87a1c39293207cc101fc7d94cc5ff364f 54.5s done\n", + "#30 writing layer sha256:3e7e4c9bc2b136814c20c04feb4eea2b2ecf972e20182d88759931130cfb4181 done\n", + "#30 writing layer sha256:3fd77037ad585442cd82d64e337f49a38ddba50432b2a1e563a48401d25c79e6 done\n", + "#30 writing layer sha256:40c61fe78b843bfb1e890001a8d40e2dbe8f3e2f0ddb65d10c91147cfb0f1af3\n", + "#30 writing layer sha256:40c61fe78b843bfb1e890001a8d40e2dbe8f3e2f0ddb65d10c91147cfb0f1af3 0.1s done\n", + "#30 writing layer sha256:41814ed91034b30ac9c44dfc604a4bade6138005ccf682372c02e0bead66dbc0 done\n", + "#30 writing layer sha256:45893188359aca643d5918c9932da995364dc62013dfa40c075298b1baabece3 done\n", + "#30 writing layer sha256:49bc651b19d9e46715c15c41b7c0daa007e8e25f7d9518f04f0f06592799875a done\n", + "#30 writing layer sha256:4c12db5118d8a7d909e4926d69a2192d2b3cd8b110d49c7504a4f701258c1ccc done\n", + "#30 writing layer sha256:4cc43a803109d6e9d1fd35495cef9b1257035f5341a2db54f7a1940815b6cc65 done\n", + "#30 writing layer sha256:4d32b49e2995210e8937f0898327f196d3fcc52486f0be920e8b2d65f150a7ab done\n", + "#30 writing layer sha256:4d6fe980bad9cd7b2c85a478c8033cae3d098a81f7934322fb64658b0c8f9854 done\n", + "#30 writing layer sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 done\n", + "#30 writing layer sha256:5150182f1ff123399b300ca469e00f6c4d82e1b9b72652fb8ee7eab370245236 done\n", + "#30 writing layer sha256:595c38fa102c61c3dda19bdab70dcd26a0e50465b986d022a84fa69023a05d0f done\n", + "#30 writing layer sha256:599c7444a380d72214895c595ea8a776b249a23b4bde9c029c5b3b737fd44cf1 0.0s done\n", + "#30 writing layer sha256:59d451175f6950740e26d38c322da0ef67cb59da63181eb32996f752ba8a2f17 done\n", + "#30 writing layer sha256:5ad1f2004580e415b998124ea394e9d4072a35d70968118c779f307204d6bd17 done\n", + "#30 writing layer sha256:62598eafddf023e7f22643485f4321cbd51ff7eee743b970db12454fd3c8c675 done\n", + "#30 writing layer sha256:63d7e616a46987136f4cc9eba95db6f6327b4854cfe3c7e20fed6db0c966e380 done\n", + "#30 writing layer sha256:689393d5c3926910ebc9e4c6c377ea651c84cf0134a1aa69cadcf309ecef9e02 0.0s done\n", + "#30 writing layer sha256:6939d591a6b09b14a437e5cd2d6082a52b6d76bec4f72d960440f097721da34f\n", + "#30 writing layer sha256:6939d591a6b09b14a437e5cd2d6082a52b6d76bec4f72d960440f097721da34f done\n", + "#30 writing layer sha256:698318e5a60e5e0d48c45bf992f205a9532da567fdfe94bd59be2e192975dd6f done\n", + "#30 writing layer sha256:6d907abcbcc8c4fea9f9678d5b7a9a0171b441c35bed212a634d58d27d8fb5cb\n", + "#30 writing layer sha256:6d907abcbcc8c4fea9f9678d5b7a9a0171b441c35bed212a634d58d27d8fb5cb 0.4s done\n", + "#30 writing layer sha256:6ddc1d0f91833b36aac1c6f0c8cea005c87d94bab132d46cc06d9b060a81cca3 done\n", + "#30 writing layer sha256:7073fc2251eff329a82af3e4f73a2b5e75b8fe8c6d744183f08d11f395277e9c 0.0s done\n", + "#30 writing layer sha256:74ac1f5a47c0926bff1e997bb99985a09926f43bd0895cb27ceb5fa9e95f8720 done\n", + "#30 writing layer sha256:7577973918dd30e764733a352a93f418000bc3181163ca451b2307492c1a6ba9 done\n", + "#30 writing layer sha256:7f256c83fad20862afc50cdf843f2b48a9be6bb58f9f17ef9f63e26f047ba31a 0.0s done\n", + "#30 writing layer sha256:886c886d8a09d8befb92df75dd461d4f97b77d7cff4144c4223b0d2f6f2c17f2\n", + "#30 writing layer sha256:886c886d8a09d8befb92df75dd461d4f97b77d7cff4144c4223b0d2f6f2c17f2 done\n", + "#30 writing layer sha256:8a7451db9b4b817b3b33904abddb7041810a4ffe8ed4a034307d45d9ae9b3f2a done\n", + "#30 writing layer sha256:8bf04775f408495a1ab7de439b0fc5f981bd282834c6d940f5eb7b865fcb2aa0 0.0s done\n", + "#30 writing layer sha256:916f4054c6e7f10de4fd7c08ffc75fa23ebecca4eceb8183cb1023b33b1696c9 done\n", + "#30 writing layer sha256:9463aa3f56275af97693df69478a2dc1d171f4e763ca6f7b6f370a35e605c154 done\n", + "#30 writing layer sha256:955fd173ed884230c2eded4542d10a97384b408537be6bbb7c4ae09ccd6fb2d0 done\n", + "#30 writing layer sha256:9c42a4ee99755f441251e6043b2cbba16e49818a88775e7501ec17e379ce3cfd done\n", + "#30 writing layer sha256:9c63be0a86e3dc4168db3814bf464e40996afda0031649d9faa8ff7568c3154f done\n", + "#30 writing layer sha256:9e04bda98b05554953459b5edef7b2b14d32f1a00b979a23d04b6eb5c191e66b done\n", + "#30 writing layer sha256:a4a0c690bc7da07e592514dccaa26098a387e8457f69095e922b6d73f7852502 done\n", + "#30 writing layer sha256:a4aafbc094d78a85bef41036173eb816a53bcd3e2564594a32f542facdf2aba6 done\n", + "#30 writing layer sha256:ae36a4d38b76948e39a5957025c984a674d2de18ce162a8caaa536e6f06fccea done\n", + "#30 writing layer sha256:b2fa40114a4a0725c81b327df89c0c3ed5c05ca9aa7f1157394d5096cf5460ce done\n", + "#30 writing layer sha256:b48a5fafcaba74eb5d7e7665601509e2889285b50a04b5b639a23f8adc818157 done\n", + "#30 writing layer sha256:bc094183f34f419fbf8d0d5a76d88f741675287a26603b98896c4161a0218d63\n", + "#30 writing layer sha256:bc094183f34f419fbf8d0d5a76d88f741675287a26603b98896c4161a0218d63 1.6s done\n", + "#30 writing layer sha256:c86976a083599e36a6441f36f553627194d05ea82bb82a78682e718fe62fccf6\n", + "#30 preparing build cache for export 57.9s done\n", + "#30 writing layer sha256:c86976a083599e36a6441f36f553627194d05ea82bb82a78682e718fe62fccf6 done\n", + "#30 writing layer sha256:cb506fbdedc817e3d074f609e2edbf9655aacd7784610a1bbac52f2d7be25438 done\n", + "#30 writing layer sha256:d2a6fe65a1f84edb65b63460a75d1cac1aa48b72789006881b0bcfd54cd01ffd done\n", + "#30 writing layer sha256:d8d16d6af76dc7c6b539422a25fdad5efb8ada5a8188069fcd9d113e3b783304 done\n", + "#30 writing layer sha256:ddc2ade4f6fe866696cb638c8a102cb644fa842c2ca578392802b3e0e5e3bcb7 done\n", + "#30 writing layer sha256:e2cfd7f6244d6f35befa6bda1caa65f1786cecf3f00ef99d7c9a90715ce6a03c done\n", + "#30 writing layer sha256:e94a4481e9334ff402bf90628594f64a426672debbdfb55f1290802e52013907 done\n", + "#30 writing layer sha256:eaf45e9f32d1f5a9983945a1a9f8dedbb475bc0f578337610e00b4dedec87c20 done\n", + "#30 writing layer sha256:eb411bef39c013c9853651e68f00965dbd826d829c4e478884a2886976e9c989 done\n", + "#30 writing layer sha256:edfe4a95eb6bd3142aeda941ab871ffcc8c19cf50c33561c210ba8ead2424759 done\n", + "#30 writing layer sha256:ef4466d6f927d29d404df9c5af3ef5733c86fa14e008762c90110b963978b1e7 done\n", + "#30 writing layer sha256:f346e3ecdf0bee048fa1e3baf1d3128ff0283b903f03e97524944949bd8882e5 done\n", + "#30 writing layer sha256:f3f9a00a1ce9aadda250aacb3e66a932676badc5d8519c41517fdf7ea14c13ed done\n", + "#30 writing layer sha256:fd849d9bd8889edd43ae38e9f21a912430c8526b2c18f3057a3b2cd74eb27b31 done\n", + "#30 writing config sha256:7cfec7bd2b3ff69855a31c8535d3935c07e6028f6e6f6ad8d1ee72dca22a059e 0.0s done\n", + "#30 writing manifest sha256:ae24e011466a0d1cad0f5738f6d2871e7cc99b4f959833c08e056e8dadd6f56c 0.0s done\n", + "#30 DONE 57.9s\n", + "[2023-11-15 19:26:02,805] [INFO] (packager) - Build Summary:\n", "\n", "Platform: x64-workstation/dgpu\n", " Status: Succeeded\n", @@ -1690,7 +1810,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "mednist_app-x64-workstation-dgpu-linux-amd64 1.0 d22d232013f0 59 seconds ago 15.4GB\n" + "mednist_app-x64-workstation-dgpu-linux-amd64 1.0 69287893ca54 5 minutes ago 15.6GB\n" ] } ], @@ -1716,23 +1836,20 @@ "name": "stdout", "output_type": "stream", "text": [ - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.8/site-packages/pydantic/_internal/_config.py:269: UserWarning: Valid config keys have changed in V2:\n", - "* 'allow_population_by_field_name' has been renamed to 'populate_by_name'\n", - " warnings.warn(message, UserWarning)\n", - "[2023-08-03 20:52:37,269] [INFO] (runner) - Checking dependencies...\n", - "[2023-08-03 20:52:37,269] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", + "[2023-11-15 19:26:07,374] [INFO] (runner) - Checking dependencies...\n", + "[2023-11-15 19:26:07,375] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", "\n", - "[2023-08-03 20:52:37,270] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", + "[2023-11-15 19:26:07,375] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", "\n", - "[2023-08-03 20:52:37,270] [INFO] (runner) - --> Verifying if \"mednist_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", + "[2023-11-15 19:26:07,375] [INFO] (runner) - --> Verifying if \"mednist_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", "\n", - "[2023-08-03 20:52:37,348] [INFO] (runner) - Reading HAP/MAP manifest...\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.56kB to /tmp/tmp4dplyjgr/app.json\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.05kB to /tmp/tmp4dplyjgr/pkg.json\n", - "[2023-08-03 20:52:37,733] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", + "[2023-11-15 19:26:07,454] [INFO] (runner) - Reading HAP/MAP manifest...\n", + "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.56kB to /tmp/tmp7n6pc6u1/app.json\n", + "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.05kB to /tmp/tmp7n6pc6u1/pkg.json\n", + "[2023-11-15 19:26:07,741] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", "\n", - "[2023-08-03 20:52:37,954] [INFO] (common) - Launching container (96d09cbab602) using image 'mednist_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", - " container name: determined_maxwell\n", + "[2023-11-15 19:26:07,994] [INFO] (common) - Launching container (c634a4b0db9a) using image 'mednist_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", + " container name: quizzical_hopper\n", " host name: mingq-dt\n", " network: host\n", " user: 1000:1000\n", @@ -1741,7 +1858,7 @@ " ipc mode: host\n", " shared memory size: 67108864\n", " devices: \n", - "2023-08-04 03:52:38 [INFO] Launching application python3 /opt/holoscan/app/mednist_classifier_monaideploy.py ...\n", + "2023-11-16 03:26:08 [INFO] Launching application python3 /opt/holoscan/app/mednist_classifier_monaideploy.py ...\n", "\n", "[info] [app_driver.cpp:1025] Launching the driver/health checking service\n", "\n", @@ -1773,13 +1890,9 @@ "\n", "[info] [gxf_executor.cpp:229] Destroying context\n", "\n", - "/home/holoscan/.local/lib/python3.8/site-packages/monai/utils/deprecate_utils.py:111: FutureWarning: : Class `AddChannel` has been deprecated since version 0.8. It will be removed in version 1.3. please use MetaTensor data type and monai.transforms.EnsureChannelFirst instead with `channel_dim='no_channel'`.\n", - "\n", - " warn_deprecated(obj, msg, warning_category)\n", - "\n", "/home/holoscan/.local/lib/python3.8/site-packages/monai/data/meta_tensor.py:116: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:206.)\n", "\n", - " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls) # type: ignore\n", + " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls)\n", "\n", "/home/holoscan/.local/lib/python3.8/site-packages/pydicom/valuerep.py:443: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", "\n", @@ -1787,7 +1900,7 @@ "\n", "AbdomenCT\n", "\n", - "[2023-08-03 20:52:51,293] [INFO] (common) - Container 'determined_maxwell'(96d09cbab602) exited.\n" + "[2023-11-15 19:26:14,982] [INFO] (common) - Container 'quizzical_hopper'(c634a4b0db9a) exited.\n" ] } ], diff --git a/platforms/nuance_pin/app/inference.py b/platforms/nuance_pin/app/inference.py index 50c104cd..1d805e39 100644 --- a/platforms/nuance_pin/app/inference.py +++ b/platforms/nuance_pin/app/inference.py @@ -27,7 +27,6 @@ from monai.deploy.operators.monai_seg_inference_operator import InMemImageReader from monai.deploy.utils.importutil import optional_import from monai.transforms import ( - AddChanneld, Compose, CopyItemsd, EnsureChannelFirstd, @@ -184,7 +183,7 @@ def pre_process(self, img_reader) -> Compose: keys=image_key, axcodes="RAS", ), - AddChanneld(keys=image_key), + EnsureChannelFirstd(keys=image_key), ScaleIntensityRanged(image_key, a_min=-1024.0, a_max=300.0, b_min=0.0, b_max=1.0, clip=True), EnsureTyped(image_key), ], From 423c6f527593e40a499d71f46274efca6a187b32 Mon Sep 17 00:00:00 2001 From: M Q Date: Thu, 16 Nov 2023 15:13:48 -0800 Subject: [PATCH 2/4] Add back the option for if omitting DICOM SEG empty frames, defaults to true. Signed-off-by: M Q --- monai/deploy/operators/dicom_seg_writer_operator.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/monai/deploy/operators/dicom_seg_writer_operator.py b/monai/deploy/operators/dicom_seg_writer_operator.py index 55840f61..f5bc5ae4 100644 --- a/monai/deploy/operators/dicom_seg_writer_operator.py +++ b/monai/deploy/operators/dicom_seg_writer_operator.py @@ -184,6 +184,7 @@ def __init__( segment_descriptions: List[SegmentDescription], output_folder: Path, custom_tags: Optional[Dict[str, str]] = None, + omit_empty_frames: bool = True, **kwargs, ): """Instantiates the DICOM Seg Writer instance with optional list of segment label strings. @@ -205,12 +206,16 @@ def __init__( Object encapsulating the description of each segment present in the segmentation. output_folder: Folder for file output, overridden by named input on compute. Defaults to current working dir's child folder, output. - custom_tags: OptonalDict[str, str], optional + custom_tags: Optonal[Dict[str, str]], optional Dictionary for setting custom DICOM tags using Keywords and str values only + omit_empty_frames: bool, optional + Whether to omit frames that contain no segmented pixels from the output segmentation. + Defaults to True, same as the underlying lib API. """ self._seg_descs = [sd.to_segment_description(n) for n, sd in enumerate(segment_descriptions, 1)] self._custom_tags = custom_tags + self._omit_empty_frames = omit_empty_frames self.output_folder = output_folder if output_folder else DICOMSegmentationWriterOperator.DEFAULT_OUTPUT_FOLDER self.input_name_seg = "seg_image" @@ -323,6 +328,7 @@ def create_dicom_seg(self, image: np.ndarray, dicom_series: DICOMSeries, output_ manufacturer_model_name="MONAI Deploy App SDK", software_versions=version_str, device_serial_number="0000", + omit_empty_frames=self._omit_empty_frames, ) # Adding a few tags that are not in the Dataset From 22f097c82baad7af6fd3fac518e15cb9ccf6da7d Mon Sep 17 00:00:00 2001 From: M Q Date: Thu, 16 Nov 2023 16:53:20 -0800 Subject: [PATCH 3/4] Pin torch to ~=2.0.1 for libcudart.11.0 Signed-off-by: M Q --- requirements-dev.txt | 2 +- requirements-examples.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 6a73a614..81ac93f5 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -35,4 +35,4 @@ scikit-image>=0.17.2 nibabel>=3.2.1 numpy-stl>=2.12.0 trimesh>=3.8.11 -torch>=1.12.0 +torch~=2.0.1 diff --git a/requirements-examples.txt b/requirements-examples.txt index 6e045a9a..1490e6fa 100644 --- a/requirements-examples.txt +++ b/requirements-examples.txt @@ -9,5 +9,5 @@ trimesh>=3.8.11 nibabel>=3.2.1 numpy-stl>=2.12.0 trimesh>=3.8.11 -torch>=1.12.0 +torch~=2.0.1 monai>=1.0.0 \ No newline at end of file From c59a088be5e774fcf47b57389175d7f757fe50b4 Mon Sep 17 00:00:00 2001 From: M Q Date: Thu, 16 Nov 2023 17:40:38 -0800 Subject: [PATCH 4/4] Test packages Signed-off-by: M Q --- .github/workflows/pr.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 4457de82..73fe3442 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -30,8 +30,9 @@ jobs: python3 -c 'import sys; print(sys.executable)' python3 -c 'import site; print(site.getsitepackages())' python3 -m pip freeze + export LD_LIBRARY_PATH=`pwd`/.venv/lib/python3.8/site-packages/nvidia/cuda_runtime/lib:$LD_LIBRARY_PATH python3 -c 'from holoscan.core import *' - ./run check -f + ./run check -f - name: Run Unit tests run: | source .venv/bin/activate