diff --git a/modules/UNet_input_size_constraints.ipynb b/modules/UNet_input_size_constraints.ipynb index b7de60759..90a8373b0 100644 --- a/modules/UNet_input_size_constraints.ipynb +++ b/modules/UNet_input_size_constraints.ipynb @@ -36,7 +36,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 1, "id": "efcd04b9", "metadata": {}, "outputs": [], @@ -55,10 +55,54 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 2, "id": "86ee1f12", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MONAI version: 0+untagged.2891.gccd32ca\n", + "Numpy version: 1.25.1\n", + "Pytorch version: 2.0.1\n", + "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n", + "MONAI rev id: ccd32ca5e9e84562d2f388b45b6724b5c77c1f57\n", + "MONAI __file__: /Users//Envs/monai/lib/python3.9/site-packages/monai/__init__.py\n", + "\n", + "Optional dependencies:\n", + "Pytorch Ignite version: 0.4.11\n", + "ITK version: 5.3.0\n", + "Nibabel version: 5.1.0\n", + "scikit-image version: 0.21.0\n", + "scipy version: 1.11.1\n", + "Pillow version: 10.0.0\n", + "Tensorboard version: 2.13.0\n", + "gdown version: 4.7.1\n", + "TorchVision version: 0.15.2\n", + "tqdm version: 4.65.0\n", + "lmdb version: 1.4.1\n", + "psutil version: 5.9.5\n", + "pandas version: 2.0.3\n", + "einops version: 0.6.1\n", + "transformers version: 4.21.3\n", + "mlflow version: 2.4.2\n", + "pynrrd version: 1.0.0\n", + "clearml version: 1.11.2rc0\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", + "\n" + ] + } + ], "source": [ "from monai.networks.nets import UNet\n", "import monai\n", @@ -91,7 +135,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 3, "id": "fd05bcb4", "metadata": {}, "outputs": [ @@ -152,7 +196,7 @@ ")" ] }, - "execution_count": 21, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -247,7 +291,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 4, "id": "37f7e0e6", "metadata": {}, "outputs": [], @@ -271,7 +315,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 5, "id": "0d5b0d70", "metadata": {}, "outputs": [ @@ -291,7 +335,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 6, "id": "3b1b4388", "metadata": {}, "outputs": [ @@ -329,7 +373,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 7, "id": "caece123", "metadata": {}, "outputs": [ @@ -348,7 +392,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 8, "id": "f67804d2", "metadata": {}, "outputs": [ @@ -382,23 +426,20 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 9, "id": "dc4be9d5", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "dict_keys(['INSTANCE', 'BATCH', 'GROUP', 'LAYER', 'LOCALRESPONSE', 'SYNCBATCH'])" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "('INSTANCE', 'BATCH', 'INSTANCE_NVFUSER', 'GROUP', 'LAYER', 'LOCALRESPONSE', 'SYNCBATCH')\n" + ] } ], "source": [ - "monai.networks.layers.factories.Norm.factories.keys()" + "print(monai.networks.layers.factories.Norm.names)" ] }, { @@ -428,7 +469,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 10, "id": "732f2769", "metadata": {}, "outputs": [], @@ -461,7 +502,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 11, "id": "0a33cc15", "metadata": {}, "outputs": [], @@ -486,17 +527,17 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 12, "id": "23d75904", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "tensor([[[[[-0.7587]]]]])" + "tensor([[[[[-0.6150]]]]])" ] }, - "execution_count": 30, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -636,7 +677,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 13, "id": "1bdc5c8e", "metadata": {}, "outputs": [ @@ -671,7 +712,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 14, "id": "7485a83a", "metadata": {}, "outputs": [ @@ -702,7 +743,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 15, "id": "6a31861f", "metadata": {}, "outputs": [ @@ -770,7 +811,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 16, "id": "d234f140", "metadata": {}, "outputs": [ @@ -806,7 +847,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 17, "id": "ccf53aa1", "metadata": {}, "outputs": [ @@ -842,7 +883,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 18, "id": "da6e9277", "metadata": {}, "outputs": [ @@ -894,7 +935,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.10" + "version": "3.9.16" } }, "nbformat": 4, diff --git a/modules/network_contraints/unet_plusplus.ipynb b/modules/network_contraints/unet_plusplus.ipynb index dcf5e4713..4de2ffc6b 100644 --- a/modules/network_contraints/unet_plusplus.ipynb +++ b/modules/network_contraints/unet_plusplus.ipynb @@ -33,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -52,35 +52,43 @@ "execution_count": 2, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ - "MONAI version: 1.2.0+63.g5feb3530\n", + "MONAI version: 0+untagged.2891.gccd32ca\n", "Numpy version: 1.25.1\n", "Pytorch version: 2.0.1\n", "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n", - "MONAI rev id: 5feb353030e0bb204e21e1de338cd81b5972bb8a\n", - "MONAI __file__: /Users/hung.nh/codespace/yauangon/MONAI/monai/__init__.py\n", + "MONAI rev id: ccd32ca5e9e84562d2f388b45b6724b5c77c1f57\n", + "MONAI __file__: /Users//Envs/monai/lib/python3.9/site-packages/monai/__init__.py\n", "\n", "Optional dependencies:\n", - "Pytorch Ignite version: NOT INSTALLED or UNKNOWN VERSION.\n", - "ITK version: NOT INSTALLED or UNKNOWN VERSION.\n", - "Nibabel version: NOT INSTALLED or UNKNOWN VERSION.\n", - "scikit-image version: NOT INSTALLED or UNKNOWN VERSION.\n", - "scipy version: NOT INSTALLED or UNKNOWN VERSION.\n", - "Pillow version: NOT INSTALLED or UNKNOWN VERSION.\n", + "Pytorch Ignite version: 0.4.11\n", + "ITK version: 5.3.0\n", + "Nibabel version: 5.1.0\n", + "scikit-image version: 0.21.0\n", + "scipy version: 1.11.1\n", + "Pillow version: 10.0.0\n", "Tensorboard version: 2.13.0\n", - "gdown version: NOT INSTALLED or UNKNOWN VERSION.\n", - "TorchVision version: NOT INSTALLED or UNKNOWN VERSION.\n", + "gdown version: 4.7.1\n", + "TorchVision version: 0.15.2\n", "tqdm version: 4.65.0\n", - "lmdb version: NOT INSTALLED or UNKNOWN VERSION.\n", + "lmdb version: 1.4.1\n", "psutil version: 5.9.5\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", + "pandas version: 2.0.3\n", + "einops version: 0.6.1\n", + "transformers version: 4.21.3\n", + "mlflow version: 2.4.2\n", + "pynrrd version: 1.0.0\n", + "clearml version: 1.11.2rc0\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", @@ -109,9 +117,355 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "BasicUNetPlusPlus features: (32, 32, 64, 128, 256, 32).\n", + "BasicUNetPlusPlus(\n", + " (conv_0_0): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(3, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(32, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " (conv_1_0): Down(\n", + " (max_pooling): MaxPool3d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(32, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(32, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (conv_2_0): Down(\n", + " (max_pooling): MaxPool3d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(32, 64, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(64, 64, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (conv_3_0): Down(\n", + " (max_pooling): MaxPool3d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(64, 128, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(128, 128, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (conv_4_0): Down(\n", + " (max_pooling): MaxPool3d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(128, 256, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(256, 256, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (upcat_0_1): UpCat(\n", + " (upsample): UpSample(\n", + " (deconv): ConvTranspose3d(32, 32, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " )\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(64, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(32, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (upcat_1_1): UpCat(\n", + " (upsample): UpSample(\n", + " (deconv): ConvTranspose3d(64, 32, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " )\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(64, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(32, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (upcat_2_1): UpCat(\n", + " (upsample): UpSample(\n", + " (deconv): ConvTranspose3d(128, 64, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " )\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(128, 64, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(64, 64, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (upcat_3_1): UpCat(\n", + " (upsample): UpSample(\n", + " (deconv): ConvTranspose3d(256, 128, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " )\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(256, 128, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(128, 128, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (upcat_0_2): UpCat(\n", + " (upsample): UpSample(\n", + " (deconv): ConvTranspose3d(32, 32, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " )\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(96, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(32, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (upcat_1_2): UpCat(\n", + " (upsample): UpSample(\n", + " (deconv): ConvTranspose3d(64, 32, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " )\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(96, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(32, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (upcat_2_2): UpCat(\n", + " (upsample): UpSample(\n", + " (deconv): ConvTranspose3d(128, 64, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " )\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(192, 64, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(64, 64, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (upcat_0_3): UpCat(\n", + " (upsample): UpSample(\n", + " (deconv): ConvTranspose3d(32, 32, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " )\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(128, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(32, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (upcat_1_3): UpCat(\n", + " (upsample): UpSample(\n", + " (deconv): ConvTranspose3d(64, 32, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " )\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(128, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(32, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (upcat_0_4): UpCat(\n", + " (upsample): UpSample(\n", + " (deconv): ConvTranspose3d(32, 32, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " )\n", + " (convs): TwoConv(\n", + " (conv_0): Convolution(\n", + " (conv): Conv3d(160, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " (conv_1): Convolution(\n", + " (conv): Conv3d(32, 32, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding=(1, 1, 1))\n", + " (adn): ADN(\n", + " (N): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (D): Dropout(p=0.0, inplace=False)\n", + " (A): LeakyReLU(negative_slope=0.1, inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (final_conv_0_1): Conv3d(32, 3, kernel_size=(1, 1, 1), stride=(1, 1, 1))\n", + " (final_conv_0_2): Conv3d(32, 3, kernel_size=(1, 1, 1), stride=(1, 1, 1))\n", + " (final_conv_0_3): Conv3d(32, 3, kernel_size=(1, 1, 1), stride=(1, 1, 1))\n", + " (final_conv_0_4): Conv3d(32, 3, kernel_size=(1, 1, 1), stride=(1, 1, 1))\n", + ")\n" + ] + } + ], "source": [ "model = BasicUnetPlusPlus(\n", " spatial_dims=3,\n", @@ -151,12 +505,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "dict_keys(['INSTANCE', 'BATCH', 'GROUP', 'LAYER', 'LOCALRESPONSE', 'SYNCBATCH', 'INSTANCE_NVFUSER'])\n" + "('INSTANCE', 'BATCH', 'INSTANCE_NVFUSER', 'GROUP', 'LAYER', 'LOCALRESPONSE', 'SYNCBATCH')\n" ] } ], "source": [ - "print(monai.networks.layers.factories.Norm.factories.keys())" + "print(monai.networks.layers.factories.Norm.names)" ] }, { @@ -269,7 +623,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -341,7 +695,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -407,7 +761,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -430,7 +784,7 @@ ], "metadata": { "kernelspec": { - "display_name": "monai", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -444,10 +798,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.0" - }, - "orig_nbformat": 4 + "version": "3.9.16" + } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 }