diff --git a/modules/dynunet_tutorial.ipynb b/modules/dynunet_tutorial.ipynb index 2a94d696c6..a22d57a14f 100644 --- a/modules/dynunet_tutorial.ipynb +++ b/modules/dynunet_tutorial.ipynb @@ -60,24 +60,24 @@ "name": "stdout", "output_type": "stream", "text": [ - "MONAI version: 0.4.0+54.gf9b47f0\n", + "MONAI version: 0.4.0+86.gadb2f7f.dirty\n", "Numpy version: 1.19.1\n", - "Pytorch version: 1.7.0a0+7036e91\n", - "MONAI flags: HAS_EXT = False, USE_COMPILED = False\n", - "MONAI rev id: f9b47f08691f53d9704dd62b01dbb77f5cae0ed6\n", + "Pytorch version: 1.7.0a0+8deb4fe\n", + "MONAI flags: HAS_EXT = True, USE_COMPILED = False\n", + "MONAI rev id: adb2f7fa7a0f9cb519614f6ec6f3a7f43601d9c9\n", "\n", "Optional dependencies:\n", "Pytorch Ignite version: 0.4.2\n", "Nibabel version: 3.2.1\n", "scikit-image version: 0.15.0\n", - "Pillow version: 8.0.1\n", + "Pillow version: 8.1.0\n", "Tensorboard version: 1.15.0+nv\n", "gdown version: 3.12.2\n", "TorchVision version: 0.8.0a0\n", "ITK version: 5.1.2\n", - "tqdm version: 4.54.1\n", - "lmdb version: 1.0.0\n", - "psutil version: 5.7.2\n", + "tqdm version: 4.56.2\n", + "lmdb version: 0.99\n", + "psutil version: 5.7.0\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", @@ -106,7 +106,6 @@ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import torch\n", - "import torch.nn as nn\n", "from monai.apps import DecathlonDataset\n", "from monai.config import print_config\n", "from monai.data import DataLoader\n", @@ -119,7 +118,7 @@ " ValidationHandler,\n", ")\n", "from monai.inferers import SimpleInferer, SlidingWindowInferer\n", - "from monai.losses import DiceLoss\n", + "from monai.losses import DiceCELoss\n", "from monai.networks.nets import DynUNet\n", "from monai.transforms import (\n", " AddChanneld,\n", @@ -140,7 +139,6 @@ " SpatialPadd,\n", " ToTensord,\n", ")\n", - "from torch.nn.functional import interpolate\n", "\n", "print_config()" ] @@ -225,7 +223,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "/workspace/data/medical\n" + "/workspace/data/medical/\n" ] } ], @@ -244,7 +242,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -322,15 +320,15 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 208/208 [00:02<00:00, 95.23it/s] \n", - "100%|██████████| 52/52 [00:00<00:00, 85.85it/s]\n" + "Loading dataset: 100%|██████████| 208/208 [00:01<00:00, 145.76it/s]\n", + "Loading dataset: 100%|██████████| 52/52 [00:00<00:00, 144.63it/s]\n" ] } ], @@ -365,12 +363,12 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -382,7 +380,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAr8AAAEICAYAAABWPpy+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAq3klEQVR4nO3de7Cd5XXf8d9CHCSELgddkXQkjiSLCASxIKqAmEwxNgS7TrHb1BO38XgSp7hNMo3bOMSmU+cybceeOiHupJOUBGrSJr7hUF+wTTBWxnVqk0ggA7JAQhfQXUJCSEJCSGL1j72VHuv9PUd7n/s+7/czo5HOOs/e+3n3+56Hh/fstVZkpgAAAIA6uGC0JwAAAACMFDa/AAAAqA02vwAAAKgNNr8AAACoDTa/AAAAqA02vwAAAKgNNr8YdRGxISJuHu15AAAGJiK2R8TbWxiXEfGmAb7GgB8L9HXhaE8AyMwVoz0HAABQD9z5BQAAQG2w+cWoO/vrsoj47Yj4YkT8r4g4GhFPR8QVEfGxiNgfETsi4rY+j/uFiNjYHLs1Ij50zvPeFRF7ImJ3RPxS31+ZRcTEiPhURLwYEfsi4o8j4uKRPnYAGE8iYnVEfC8iDjfX3z+MiIvOGfbO5pr9UkT8l4i4oM/jf7G5rr8cEY9ExOUjfAioATa/GGt+RtL/lHSppCclPaLGdbpA0u9K+u99xu6X9C5J0yT9gqR7IuI6SYqI2yX9O0lvl/QmSTef8zqfkHSFpJXN7y+Q9PFhOB4AqJMzkv6tpFmSbpT0Nkm/fM6Y90haJek6SXdI+kVJiog7JN0t6Z9Imi3p/0j67IjMGrUSmTnac0DNRcR2Sb8k6SZJb8nMW5vxn1Fj4ZuemWciYqqkI5IuzczD5nn+t6Q1mfnpiLhf0r7M/Fjze2+StFnSMklbJB2T9OOZuaX5/Rsl/UVmLh7OYwWA8ejsOp6Z3zon/mFJ/zAz39P8OiW9IzO/2fz6lyX908x8W0R8Q9KDmXlf83sXqLFWX5mZLzQfuywznx+p48L4xJ1fjDX7+vz7hKSXMvNMn68laYokRcQ7IuL7EXEoIg5Leqcadxskab6kHX2eq++/Z0uaLGld81dzhyV9sxkHAAxQ86NqX4uIvRFxRNJ/1v9fl8/qux6/oMZ6LUmXS/p0n3X5kKRQ4zdzwJBh84uOFBETJX1J0qckzc3MbklfV2OhlKQ9knr6PGRhn3+/pMZGekVmdjf/TM/MKcM/cwAY1/5I0rNq3KGdpsbHGOKcMX3X40WSdjf/vUPSh/qsy92ZeXFm/t9hnzVqhc0vOtVFkiZKOiDpdES8Q9Jtfb7/BUm/EBFXRsRkSf/h7Dcy8w1Jf6LGZ4TnSFJELIiInx6x2QPA+HT242nHImK5pH9txvxGRFwaEQsl/ZqkzzfjfyzpYxGxQpIiYnpE/LORmDTqhc0vOlJmHpX0b9TY5L4s6Z9L+kqf739D0n+VtEbS85K+3/zWyebfv3k23vzV3Lck/diITB4Axq+PqLEeH1XjJsPnzZgvS1onab2khyXdJ0mZ+ZCkT0r6XHNdfkbSO4Z/yqgbEt5QCxFxpRoL6cTMPD3a8wEAAKODO78YtyLiPc16vpeqcTfhq2x8AQCoNza/GM8+pEYt4C1q1J50nz0DAAA1wsceAAAAUBvc+QUAAEBtXDiYBzdbyH5a0gRJf5qZnzjPeG4zA+hYmXluvdKO0866fVFMzEm6ZMTmBgBD6ahefikzKw2sBvyxh4iYIGmTpFsl7ZT0d5Lel5k/7OcxbH4BdKxO3/y2u25Pixl5fbxtBGcIAEPnW/ngusxcdW58MB97WC3p+czcmpmvS/qcpDsG8XwAgOHFug2g9gaz+V2gH+3PvVOm/3ZE3BkRayNi7SBeCwAweOddt/uu2af+vicMAIwfw57wlpn3ZuYqd9sZADC29F2zuzRxtKcDAENuMJvfXZIW9vm6pxkDAIxNrNsAam8wm9+/k7QsIhZHxEWSfk7SV4ZmWgCAYcC6DaD2BlzqLDNPR8SvSnpEjZI592fmhiGbGQBgSLFuA8Ag6/xm5tclfX2I5gIAGGas2wDqjg5vAAAAqA02vwAAAKgNNr8AAACoDTa/AAAAqA02vwAAAKgNNr8AAACoDTa/AAAAqI1B1fkdK+66665K7LXXXrNjT5w40fLzTpgwoRJ74403Wn7O06dPV2JTp061Y3/qp36qElu+fLkd++yzz1ZiTzzxhB3r5nby5MlK7ODBg/bxZ86cqcRmzJhhx15wQfX/pS680F9ibuzRo0ft2EsuuaQSmzNnTiVWOufOpEmTbNy9D6+//rodGxGVWOl4T506VYkdOnTIjr3ooosqsQULFlRipeuut7e3EnvXu95lxy5cuLASK72PR44cqcTcNS5Jc+fOrcTcdVc655MnT24pJkmzZs2ycQAAHO78AgAAoDbY/AIAAKA22PwCAACgNtj8AgAAoDbY/AIAAKA2xkW1B1eBoVSR4OKLL275eTOzpdcqVQ7o6uqqxLq7u+3YJUuWVGJ79+61Y11lh8OHD9uxrqrC8ePHKzFXUUGSLrvsskqsnWoA06dPt2Ndlr+rBlCKlyolOK5KQOmcTZkypRJzFS9Kc5g2bZod694zVy2i9Hq7d++uxEqVJTZu3FiJucolkq8CUfoZcc/hrnHJXwul+TqukoX7eQQAoF3c+QUAAEBtsPkFAABAbbD5BQAAQG2w+QUAAEBtDCrhLSK2Szoq6Yyk05m5aigm1S6XpFRqI+za4s6cOdOOdUlRLhlp4sSJ9vHueUtJTi5J6Xvf+54d65Lb2mmr65L2XEvdklKymEuuK7XgdclLpeS4Y8eOVWKvvvpqS69f4p5Taq99tZtDKTnOnYfSe+7m4JIUXTKi5BPxtm3bZsfu27evElu6dKkd686Pew8kf35d4mIpEc/9nLzyyit2LNozVtZtABgtQ1Ht4a2Z+dIQPA8AYGSwbgOoLT72AAAAgNoY7OY3Jf1VRKyLiDvdgIi4MyLWRsTaQb4WAGDw+l23+67Zp+RrbwNAJxvsxx5uysxdETFH0qMR8WxmfqfvgMy8V9K9khQRVKkHgNHV77rdd82eFjNYswGMO4O685uZu5p/75f0kKTVQzEpAMDwYN0GUHcDvvMbEZdIuiAzjzb/fZuk3x2ymbVh+/btlVipzazLTnetdiVpwYIFLT1vOxn+pcoBzz77bCW2a9cuO9a16z19+nTLc3DVMdqplDB37lwbd21xSxn6L71UzbUptU12lSxcpYNSFYqXX365EitVeyhdC46rflCquuGqNZS48/P6669XYqX3y7X2XrFihR3rrvFSe2P3eqWW1O4YXAvtgwcP2se7n6lSpRS0biyt2wAwWgbzsYe5kh5q/gfpQkl/kZnfHJJZAQCGA+s2gNob8OY3M7dKevMQzgUAMIxYtwGAUmcAAACoETa/AAAAqI2h6PA2JpUSrVzcJV9J0v79+yuxefPmVWLz58+3j3dJVa6drCTt3LmzEislsR05cqQS2717tx3rWiy79rWlpL2urq6WYpJ/b6666io71h2va/Es+aQ9p5S012qb6tLYUiKda81bSgBzz1F6H10LbpeEVmoNfOWVV1ZipWvUJWCWjsG1Yy69j67FskvUdIl8kr/GXdtnAADaxZ1fAAAA1AabXwAAANQGm18AAADUBptfAAAA1AabXwAAANTGuKj24Fqplrh2qqVqAq4trsvQL72+y07fs2ePHesqQ5Qy4V1Vg+7ubjvWteBtp1WuqyhQOgZXnaLU7tdVnHBteSV/Hg4fPlyJlVrlunbMpRa+Tun8uvNQqhwya9asSsy1aJbKrbnP5SoqSP78Pvzww3bsD37wg0qsdLw333xzJbZ8+XI71lWGcBUcSlzFCdeaHACAdnHnFwAAALXB5hcAAAC1weYXAAAAtcHmFwAAALUxLhLe9u7dW4mVEq0ys6WY5JPQXJJTKXnKJceVkpQuueSSll5L8ok/rqWt5BPZDhw4UIm5pDDJt+V1bZ8ln9DkXkuSLr/88kpsxYoVduyyZcsqMXfOSvNyyWalc+aOYeLEiXasSwYsJWW5uZXaV7tksW984xuV2Jo1a+zjXdKdSxqUfJJhqZ3zjh07KrG77rrLjnXn9/jx45VYqQ25a5vsfkYAAGgXd34BAABQG2x+AQAAUBtsfgEAAFAbbH4BAABQG+dNeIuI+yW9S9L+zLy6GZsh6fOSeiVtl/TezPQZNSPAJRO57mqS1NPTU4m5BCNJOnr0aCXmEnFcQpXkE+ZcTPJduUod3twcSl3X3LG5DmKlZCL3eJfoJflkMdepS/Ld2Nz7LUlvfetbK7HZs2dXYgsXLrSPd8db6sTmEtZOnDhhx7qERJcUJknr1q2rxEoJeq7zm3v8U089ZR/vEtZK3fNcQmSpw9uGDRsqsd27d9uxl156aUuv1U7XN7SuE9ZtYCx4ZPf6YXnen56/clieF0OjlTu/n5F0+zmxj0p6LDOXSXqs+TUAYGz4jFi3AcA67+Y3M78j6dz6XHdIeqD57wckvXtopwUAGCjWbQAoG2id37mZefb37Hsl+SKxkiLiTkl3DvB1AABDo6V1u++aPUmTR2hqADByBp3wlo1uA75LROP792bmqsxcNdjXAgAMXn/rdt81u0u+wQsAdLKBbn73RcQ8SWr+7TN3AABjBes2AGjgH3v4iqQPSPpE8+8vD9mMBsBl3ZeqF7jqA6WqCq79rKu00E6739JrHT58uKXXknxr3tLzukoULhPftZ6V2svGd+9t6RjcOduyZYsdu2TJkkrMvQelc759+/ZK7PHHH7djXRWKUnULd32415J8FYnS827btq0Su+KKKyqx0vHu27evEiu1ynav5R4vSRFRiZWqjJw6daoSc5VDSsfgKmyUWjSjZWNq3QZG2nBVdhjsa1EZYuSd985vRHxW0vck/VhE7IyID6qxeN4aEZslvb35NQBgDGDdBoCy8975zcz3Fb71tiGeCwBgCLBuA0AZHd4AAABQG2x+AQAAUBsDTXgbU1wr466uLjvWJYaVEnxcm9jp06dXYqWkMJc85Vq8lsycOdPG3fG6BDBJmjy5WqfTJVqV2hAfOnRunfxyO2inlIjnnqP0Pm7durUSmzdvXiVWOufu/LrnlKTNmzdXYqWkve7u7krMXR+SP153biTfetkle7kWz5I/v729vXasa2XsWilL0k/8xE9UYi7pT/KJf67N9NKlS+3jXRtwWiED9TWSyWojjeS4kcedXwAAANQGm18AAADUBptfAAAA1AabXwAAANQGm18AAADUxrio9uCy5kuZ4a7taqnF6sSJE1t6fKmigYuXxrqs+1I1AJfNX6pI4KpLuFbGpRbNri2ve19Kcyi18M3Mlh4v+dbP7jyUWjS753WVB0pjjx49asfOnz+/EnOtoyV/PZZaDrvzvmPHDjvWcVUvXPUEyVescMdVGuuuD8mfH/ceuIoqAADPVYagAkT7uPMLAACA2mDzCwAAgNpg8wsAAIDaYPMLAACA2hgXCW9ORNi4a+Nbaou7d+/eSuzEiROVWCnJySWGldoQu/a3pYQoN9a1v5XKx3auUrKYS9BzLY8lP9/Se+O4hCpJWrx4cSXm2giXEvEWLlxYiZXeL9da2MUk39q3lBznrsdSMqBLeHPH4NpcSz657ZVXXrFj3XvW09Njx7prpPS8bm4u4W3u3Ln28a61d+n6ADD+lZK6xnPbYwwf7vwCAACgNtj8AgAAoDbY/AIAAKA22PwCAACgNs67+Y2I+yNif0Q80yf22xGxKyLWN/+8c3inCQBoFes2AJS1Uu3hM5L+UNKfnRO/JzM/NeQzGgDXGriU+e+yyA8ePGjH7tq1qxJz1QtKr+WUMvRdvNQK2WXNuyoUkq9u4do5l1opX3XVVZXYhg0b7Fj3PrpzU+KqOki++kCrVSwk37J4yZIldqw7D3/9139tx5ZaaDsXXlj9USsdgztnbl6lqhuu4oQ7j5KvOFGqbuHGuooXpbh7D0qPd+esdI3C+ozG+LoNDAVXBYIKEDif8975zczvSPL/lQUAjDms2wBQNpjP/P5qRDzV/PVa68VcAQCjhXUbQO0NdPP7R5KWSlopaY+k3ysNjIg7I2JtRKwd4GsBAAavpXW775p9StWP4ABApxvQ5jcz92Xmmcx8Q9KfSFrdz9h7M3NVZq4a6CQBAIPT6rrdd83uUuv5DADQKQbU3jgi5mXmnuaX75H0TH/jh5tLQiu1EZ40aVIl5hJxJJ/g49rMuueUpC1btlRipZbFLvFn9+7ddqw73tIcXKtbFyu1Id65c2clVmodPX/+/ErMJS5J0rx58yqxK664wo515+e1116rxKZOnWof7+ZQSsRzyXW9vb12rGt/XUqCc8mLrk215N/fV199tRIrJTm61yolT7bTgtsl6GWmHeuOzT3v4cOH7eOdpUuXtjwWVWNt3QaGS91aIZeOq/Q+oIXNb0R8VtLNkmZFxE5JvyXp5ohYKSklbZf0oeGbIgCgHazbAFB23s1vZr7PhO8bhrkAAIYA6zYAlNHhDQAAALXB5hcAAAC1weYXAAAAtTGgag9jjatUUGojfODAgUqsVL3AtYR1rYFdJr4kzZ07txJzVQokad++fZVYqRqAy5ovVXtwFRBchn2pSsHx48crsWnTptmx7r0paacyhKuq4CoduEoNkq9oUKp+4K6bFStW2LGuYsT69evtWHcuS9UaXJURN7bUGthdC6XXctdSOy2pS9z7617LtWIuKf3sAEAraIWMs7jzCwAAgNpg8wsAAIDaYPMLAACA2mDzCwAAgNoYFwlvBw8erMR27dplx7rErlmzZtmx06dPr8RcUlcp0cslcLnWwpJPUpo9e7Yd65LQSi1pXXKaS0YqtXh27ZxLyVOu1W13d7cd61o3u2REySeAuWTCEnd+58yZY8e6c+beb8kn2JWuO3eNunbBkk/sctdNKfHQveftJNeVriX3s1O6bk6dOlWJuQS9dlqLv/zyy3YsAADt4M4vAAAAaoPNLwAAAGqDzS8AAABqg80vAAAAaoPNLwAAAGpjXFR7cBn2+/fvt2NdK2QXK3FZ+6VWuS7DvtQ61rX7LbVzddUHDh06ZMe61sulihPOnj17KrFSVQZ3bKVKCZMnT67ESi2pXTUNVyXAtXIuxUvzcq+1YMECO9Y9x+WXX27HunNZqljhKh1ccEH1/1NLbbXd+1iq9uDipeonri126X1083VtpkstvF3lkFI7ZwAYKNfyWKLt8XjHnV8AAADUBptfAAAA1AabXwAAANQGm18AAADUxnkT3iJioaQ/kzRXUkq6NzM/HREzJH1eUq+k7ZLem5mj0n/UJayVWrS6ZKIZM2bYsa79rGuxWmpT6+ZValns2uqWWuW6saXkuNLrneuVV16xcZcA5pLzJP/elI7BJZGV2kS7uZ08ebISK7X7dXHXTro0r5kzZ9qxe/furcQWL15sx7rErpdeesmOdQmJ7hotJVq200q5nfbGrm1yKeHNJae5RLzS4931XLo+8KM6Yc0GgNHUyp3f05J+PTOvknSDpF+JiKskfVTSY5m5TNJjza8BAKOLNRsA+nHezW9m7snMJ5r/Pippo6QFku6Q9EBz2AOS3j1McwQAtIg1GwD611ad34jolXStpMclzc3Ms0Vg96rxKzb3mDsl3TmIOQIABmCwa/YkVetxA0CnaznhLSKmSPqSpA9n5pG+38tGRfpqVfrG9+7NzFWZuWpQMwUAtGwo1uwuVRuTAECna+nOb0R0qbGI/nlm/mUzvC8i5mXmnoiYJ8m3VBsBroNXKYlt0aJFlVip+5Xrmua6X7luY5JPSCol+LjuWbt377ZjXUJSqbuZe16nt7fXxl2S06lTp+zYrVu3VmKlhLdt27ZVYkuXLrVjXec4lwRX6nLnEg9LyVMuWcwlhZWUuqO5ZMBSwpubgzvn06dPt4933dFKCW+uW18pedJ1pCt1Xdu+fXsl5pIUSz+n7vy0cx7qbqyv2QCGn+tSV+poVzfnvfMbESHpPkkbM/P3+3zrK5I+0Pz3ByR9eeinBwBoB2s2APSvlTu/b5H0fklPR8T6ZuxuSZ+Q9IWI+KCkFyS9d1hmCABoB2s2APTjvJvfzPyupCh8+21DOx0AwGCwZgNA/+jwBgAAgNpg8wsAAIDaaKvO71hVaj/ruNbApda+r776aiXmsuPdOMlXWii14HXZ7aWqCq6F7pEjR8xIadOmTZVYOxUr3PtVag3c09NTiZVaIW/YsKESc1UdSs/hqmbs3++T192xld6vjRs3VmKu5bEkLVmypBJzbYyl9tpEu7FuvkePHrWPd5Uh2qlI0k6r6xJXBcLNq53W4O5aBIDh0E5VBFdVYawqzbVuVSC48wsAAIDaYPMLAACA2mDzCwAAgNpg8wsAAIDaGBcJb7Nnz67ESq2BXaLVG2+8Yce6hLNjx45VYhMnTrSPd8ltpQQf1zp28uTJdqxLSHLJRJK0evVqGz/Xzp07W467uUrSNddcU4mVWuXecMMNLT/v3/zN31RirtVtO62FS62Q3XxLbYhd8uNll11mx7pkMXfdSj7xz7UyLp0zlxhWauHtXqvUKtsl3ZUSOF0inTsPpaROp3SNA8BoajVZrJMS48Y77vwCAACgNtj8AgAAoDbY/AIAAKA22PwCAACgNtj8AgAAoDbGRbWHHTt2VGKl7HaXyV7KOHcZ665aQ3d3t328qz7g2r6WnsO1R5Z81n2pfa1rE+sqVlxwgf//oOeff74S+/73v2/HuqoMpQoOV199dSVWql6waNGiSsxVZShVe3Dtp9tpQ1w6D64KRGmsm9u+ffvsWDe3dtr9uqoKmWnHuueYM2eOHeuO1/2MSP4YNm/e3NLrS/7nrFSVBQCAdnDnFwAAALXB5hcAAAC1weYXAAAAtcHmFwAAALVx3oS3iFgo6c8kzZWUku7NzE9HxG9L+peSzvZ4vTszvz5cE+3P9u3bK7GFCxfasa4tbin5ySX+uGSzUqLV/PnzKzGXjCSVE6Ucl5T1wx/+0I597rnnKjGXPFVKmHMJgu49kPwxlFo/uxbN119/vR177bXXVmJf/epXK7FHHnmk5Xldd911dqx7b0tJWcePH6/ESglgu3btqsRcIl5pDk6p3a97fETYsS75sXS87hopJdKtXLmyEnPtuktJfy5htdQqGz+qE9ZsABhNrVR7OC3p1zPziYiYKmldRDza/N49mfmp4ZseAKBNrNkA0I/zbn4zc4+kPc1/H42IjZIWDPfEAADtY80GgP619ZnfiOiVdK2kx5uhX42IpyLi/oio/i698Zg7I2JtRKwd3FQBAO0Y7Jp9SidHaqoAMGJa3vxGxBRJX5L04cw8IumPJC2VtFKNuwy/5x6Xmfdm5qrMXDX46QIAWjEUa3aX/Gf2AaCTtbT5jYguNRbRP8/Mv5SkzNyXmWcy8w1JfyJp9fBNEwDQKtZsAChrpdpDSLpP0sbM/P0+8XnNz5ZJ0nskPTM8Uzw/1/a0nZbFriqD5FvzusoBpVbKrp2ry66XfNZ7qVKCy+bv7e21YydNmlSJuaz5bdu22cefPFn9tWcp695VzXAVESR/bNOmTbNjt27dWom5Ch+bNm2yj1+2bFklduDAATNSeuKJJyqxa665xo51FQ3cvCRf2WHevHl2rKu24Obrzq3kq0CU3tspU6ZUYqWKJK76Sakyhauq4ipsuPdb8q2US1VZ8KM6Yc0G6uin568c7Snokd3rR3sKY0Ir1R7eIun9kp6OiPXN2N2S3hcRK9UopbNd0oeGYX4AgPawZgNAP1qp9vBdSa5IKPUhAWCMYc0GgP7R4Q0AAAC1weYXAAAAtdHKZ37HvLe//e2V2IwZM+zYF154oRJzSV2SbxnsxpZatLp2sJdffrkd6xLASq1yXYJeKfnJzc0lt7nkPEmaPn16JVZqf+u41sSST/Z6+umn7ViXYOfO+c///M/bx7vExd27d9uxH//4xyuxUutpd41t2LDBjnXthUvJgC6B0iVwnj592j7ecS2tJX9+S8/rrsfSNepaYLukvwsu8P//7RLxSu2gAQCtGQtJd2MBd34BAABQG2x+AQAAUBtsfgEAAFAbbH4BAABQG2x+AQAAUBvjotqDqz7gqjpI0qFDhyqxUqtbV9nBtY5985vfbB/vWsqWXstl85fa37oqAY8//rgd++STT9r4uUptal3WfqmCw6pVqyqxFStW2LHuvenq6rJjZ86c2dJYV1FBkpYuXVqJPffcc3bse9/73kpszZo1duxDDz1UiZVaA3d3d1die/bsqQ6UtGDBgkrMtfB2Mcm3IS614HZVL0qVIVzVC9eGWPJVIFxlh1LbZXdspcoQAAC0g/+aAAAAoDbY/AIAAKA22PwCAACgNtj8AgAAoDbGRcKba4vrEtMkadasWZXYwoUL7VjXMriUZOS4hLmdO3fasS5x6LLLLrNj9+7dW4mVEq1c+1qXLNbb22sff/3111diPT09dqxrQzxhwgQ71rWvveiii+zYY8eOtfRapRbPzuTJk238/e9/fyX2kz/5k3bs/fffX4nt2rXLjnVtpkutgUvtlM/l3kPJJ5GVfh5cvJRY5hJLS+fXjXXPW2qlnJmV2NGjR+1YAADawZ1fAAAA1AabXwAAANQGm18AAADUBptfAAAA1MZ5E94iYpKk70ia2Bz/YGb+VkQslvQ5STMlrZP0/sz0GTzDzCVluYQZyScZueQpSXr11VcrMZd0U+rU5RLLSslELl7qynXjjTdWYqWuXI5LUiolLrnkqVJXL5eAdeGF/hJzyYAuJvkkQ9fNrXQMLmGu9N46LklSku6+++5K7L777rNjv/jFL1ZipYQ311XPdYgrJfi5a//qq6+2Y92x7dixw451SZWu26Dkk/amTp1aiZWSHN352bJlix2LH9UJazYAjKZW7vyelHRLZr5Z0kpJt0fEDZI+KemezHyTpJclfXDYZgkAaBVrNgD047yb32w4e+usq/knJd0i6cFm/AFJ7x6OCQIAWseaDQD9a+kzvxExISLWS9ov6VFJWyQdzsyzRTp3SlpQeOydEbE2ItYOwXwBAOcxVGv2KfmPIgFAJ2tp85uZZzJzpaQeSaslLW/1BTLz3sxclZmrBjZFAEA7hmrN7tLE4ZoiAIyatqo9ZOZhSWsk3SipOyLOZjP1SPKtrQAAo4I1GwCqWqn2MFvSqcw8HBEXS7pVjcSJNZJ+Vo3s4Q9I+vJwTrQ/mzZtqsRKbYRddnop49xlwrt2sK51reSrRSxevNiOXbRoUSV2zTXX2LGuusUrr7zS8hxclYCtW7fax586daoSmzjR3w1y702pUoKrmuEqOEi+WoOrAOEqIki+4kSpVa6r/FEaO2/evErsIx/5iB3rKlE8/PDDduyCBdXfRrvzWKpo4q6F0jlzSlU33POWKmy4Ns+uSkjp+pg/f34l5t5vSXrxxRdtvK46Yc0GgNF03s2vpHmSHoiICWrcKf5CZn4tIn4o6XMR8R8lPSnJ13gCAIwk1mwA6Md5N7+Z+ZSka018qxqfJQMAjBGs2QDQPzq8AQAAoDbY/AIAAKA2WvnM75jnkmvOnDljx7qkqssuu8yOde1nXQLY8uW+ipBrDVxK8Jk+fXolVkrwcW1mXUzyiVKulXLp/XLHMHfuXDvWJT+VnvfgwYM27syZM6cSaycxzbXVnTx5sh3rkshccp3k3/Oenh47dsWKFZVYKeHNJZadPn26EislsblrtJTE1k7ioZuXu74kn9jprvHSvFwS6f79++1YAADawZ1fAAAA1AabXwAAANQGm18AAADUBptfAAAA1AabXwAAANTGuKj2cOWVV1ZipSx0VyXAVT+QpO3bt1dil1xySSV222232ce7KgUuE1+SLr300krMtYMtxd28JF/VwLUhLrV4LlWRaFXpvXXHW3otVzHCHcOJEyfs4121BtdCuF2uMkSp4oQ7D+5alKQpU6a09LxunCTdeuutLc9r9+7dlZir8CFJ1113XSW2ZcsWO/bQoUOVmDvnpffAVTrp7e21Y++55x4bBwDA4c4vAAAAaoPNLwAAAGqDzS8AAABqg80vAAAAamNcJLy5Nq+lNsIuWWzdunV2rGtvvHTp0krMtfUtKSXiuWSvSZMm2bEu2avUgtcl2Lk2s6U2xMeOHavESsfrkpeOHDlix7oWyaWxLu7OuUtAk/y1UDoG9z6W2v26JMP58+fbsV1dXZVY6fwuWbKkEvvud79bic2ePds+fufOnZWYu5YlP9+bbrrJjnUJa9/+9rft2G9+85uVmLsWS0mKTilZFACAdnDnFwAAALXB5hcAAAC1weYXAAAAtcHmFwAAALVx3s1vREyKiL+NiB9ExIaI+J1m/DMRsS0i1jf/rBz22QIA+sWaDQD9a6Xaw0lJt2TmsYjokvTdiPhG83u/kZkPDt/0WtNqK1XJZ/677HpJ2rFjRyV28uTJSqxUKWHz5s2VWKkdrKs+sHz5cjvWtebt7u62Y111iz179lRirp2s5KsylDL03XveTlvdRYsW2bHuGI4fP16JlVo0u/Ozb98+O9adB9eaWPLHUGrX++ijj1ZiPT09duzUqVMrMXfduteXpAMHDlRiL774oh27bNmySmzVqlV27KZNmyqxUrUHx1W8KFXScNfjwoULW36tmhvzazYAjKbzbn6zUT/qbL2rruYfX1MKADCqWLMBoH8tfeY3IiZExHpJ+yU9mpmPN7/1nyLiqYi4JyKqhVcbj70zItZGxNqhmTIAoD9DtWafUvU3XQDQ6Vra/GbmmcxcKalH0uqIuFrSxyQtl/QPJM2Q9JuFx96bmasy0/8uFQAwpIZqze6S3R8DQEdrq9pDZh6WtEbS7Zm5JxtOSvofklYPw/wAAAPEmg0AVVFqCfv3AyJmSzqVmYcj4mJJfyXpk5LWZeaeaGSs3CPptcz86Hmei8+dAehYmekz9MaQoVyzp8WMvD7eNvyTBoBh8K18cJ375EEr1R7mSXogIiaocaf4C5n5tYj4dnORDUnrJf2roZwwAGBAWLMBoB+tVHt4StK1Jn7LsMwIADBgrNkA0D86vAEAAKA22PwCAACgNtj8AgAAoDbY/AIAAKA22PwCAACgNtj8AgAAoDbY/AIAAKA22PwCAACgNtj8AgAAoDbY/AIAAKA22PwCAACgNtj8AgAAoDbY/AIAAKA22PwCAACgNtj8AgAAoDbY/AIAAKA22PwCAACgNtj8AgAAoDbY/AIAAKA2IjNH7sUiDkh6ofnlLEkvjdiLjxyOq/OM12PjuIbW5Zk5exRed9SwZne88XpsHFfnGVPr9ohufn/khSPWZuaqUXnxYcRxdZ7xemwcF4bSeH3fx+txSeP32DiuzjPWjo2PPQAAAKA22PwCAACgNkZz83vvKL72cOK4Os94PTaOC0NpvL7v4/W4pPF7bBxX5xlTxzZqn/kFAAAARhofewAAAEBtsPkFAABAbYz45jcibo+I5yLi+Yj46Ei//lCKiPsjYn9EPNMnNiMiHo2Izc2/Lx3NOQ5ERCyMiDUR8cOI2BARv9aMd/SxRcSkiPjbiPhB87h+pxlfHBGPN6/Jz0fERaM914GIiAkR8WREfK359Xg5ru0R8XRErI+Itc1YR1+LnYQ1e+xjze7YtY01e5SM6OY3IiZI+m+S3iHpKknvi4irRnIOQ+wzkm4/J/ZRSY9l5jJJjzW/7jSnJf16Zl4l6QZJv9I8T51+bCcl3ZKZb5a0UtLtEXGDpE9Kuicz3yTpZUkfHL0pDsqvSdrY5+vxclyS9NbMXNmnTmSnX4sdgTW7Y7BmdybW7FEy0nd+V0t6PjO3Zubrkj4n6Y4RnsOQyczvSDp0TvgOSQ80//2ApHeP5JyGQmbuycwnmv8+qsYP5wJ1+LFlw7Hml13NPynpFkkPNuMdd1ySFBE9kv6RpD9tfh0aB8fVj46+FjsIa3YHYM3urOOSWLM1ysc20pvfBZJ29Pl6ZzM2nszNzD3Nf++VNHc0JzNYEdEr6VpJj2scHFvz10zrJe2X9KikLZIOZ+bp5pBOvSb/QNJdkt5ofj1T4+O4pMZ/7P4qItZFxJ3NWMdfix2CNbvDsGZ3jD8Qa/aouXA0X3y8y8yMiI6tJRcRUyR9SdKHM/NI439MGzr12DLzjKSVEdEt6SFJy0d3RoMXEe+StD8z10XEzaM8neFwU2buiog5kh6NiGf7frNTr0WMPZ1+LbFmdwbW7NG/Fkf6zu8uSQv7fN3TjI0n+yJiniQ1/94/yvMZkIjoUmMR/fPM/MtmeFwcmyRl5mFJayTdKKk7Is7+j2AnXpNvkfSPI2K7Gr+WvkXSp9X5xyVJysxdzb/3q/Efv9UaR9fiGMea3SFYszsKa/YoX4sjvfn9O0nLmhmNF0n6OUlfGeE5DLevSPpA898fkPTlUZzLgDQ/e3SfpI2Z+ft9vtXRxxYRs5t3DxQRF0u6VY3Pxq2R9LPNYR13XJn5sczsycxeNX6mvp2Z/0IdflySFBGXRMTUs/+WdJukZ9Th12IHYc3uAKzZnXVcrNlj4Ngyc0T/SHqnpE1qfG7n34/06w/xsXxW0h5Jp9T4fM4H1fjczmOSNkv6lqQZoz3PARzXTWp8ZucpSeubf97Z6ccm6cclPdk8rmckfbwZXyLpbyU9L+mLkiaO9lwHcYw3S/raeDmu5jH8oPlnw9k1o9OvxU76w5o99v+wZnfe2tbnGFmzR+EP7Y0BAABQG3R4AwAAQG2w+QUAAEBtsPkFAABAbbD5BQAAQG2w+QUAAEBtsPkFAABAbbD5BQAAQG38Pw2iyrqz7UrxAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -406,44 +404,6 @@ " plt.show()" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Customize loss function\n", - "Here we combine Dice loss and Cross Entropy loss." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "class CrossEntropyLoss(nn.Module):\n", - " def __init__(self):\n", - " super().__init__()\n", - " self.loss = nn.CrossEntropyLoss()\n", - "\n", - " def forward(self, y_pred, y_true):\n", - " # CrossEntropyLoss target needs to have shape (B, D, H, W)\n", - " # Target from pipeline has shape (B, 1, D, H, W)\n", - " y_true = torch.squeeze(y_true, dim=1).long()\n", - " return self.loss(y_pred, y_true)\n", - "\n", - "\n", - "class DiceCELoss(nn.Module):\n", - " def __init__(self):\n", - " super().__init__()\n", - " self.dice = DiceLoss(to_onehot_y=True, softmax=True)\n", - " self.cross_entropy = CrossEntropyLoss()\n", - "\n", - " def forward(self, y_pred, y_true):\n", - " dice = self.dice(y_pred, y_true)\n", - " cross_entropy = self.cross_entropy(y_pred, y_true)\n", - " return dice + cross_entropy" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -453,12 +413,12 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "device = torch.device(\"cuda:0\")\n", - "loss = DiceCELoss()\n", + "loss = DiceCELoss(to_onehot_y=True, softmax=True, batch=False)\n", "learning_rate = 0.01\n", "max_epochs = 200\n", "\n", @@ -491,6 +451,7 @@ " strides=strides,\n", " upsample_kernel_size=strides[1:],\n", " norm_name=\"instance\",\n", + " deep_supervision=True,\n", " deep_supr_num=2,\n", " res_block=False,\n", ").to(device)\n", @@ -511,7 +472,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -594,7 +555,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -616,12 +577,15 @@ " )\n", "\n", " def _compute_loss(preds, label):\n", - " labels = [label] + [\n", - " interpolate(label, pred.shape[2:]) for pred in preds[1:]\n", - " ]\n", + " if len(preds.size()) - len(targets.size()) == 1:\n", + " # In deep supervision mode, The shape of the preds is\n", + " # in the form of (Batch, deep_supr_num, C, H, W, D),\n", + " # thus they should be unbinded into a list of feature\n", + " # maps each has the shape (Batch, C, H, W, D)\n", + " preds = torch.unbind(preds, dim=1)\n", " return sum(\n", - " 0.5 ** i * self.loss_function(p, l)\n", - " for i, (p, l) in enumerate(zip(preds, labels))\n", + " 0.5 ** i * self.loss_function.forward(p, label)\n", + " for i, p in enumerate(preds)\n", " )\n", "\n", " self.network.train()\n", @@ -629,17 +593,13 @@ " if self.amp and self.scaler is not None:\n", " with torch.cuda.amp.autocast():\n", " predictions = self.inferer(inputs, self.network)\n", - " loss = _compute_loss(\n", - " [predictions] + self.network.get_feature_maps(), targets\n", - " )\n", + " loss = _compute_loss(predictions, targets)\n", " self.scaler.scale(loss).backward()\n", " self.scaler.step(self.optimizer)\n", " self.scaler.update()\n", " else:\n", " predictions = self.inferer(inputs, self.network)\n", - " loss = _compute_loss(\n", - " [predictions] + self.network.get_feature_maps(), targets\n", - " ).mean()\n", + " loss = _compute_loss(predictions, targets).mean()\n", " loss.backward()\n", " self.optimizer.step()\n", " return {\n", @@ -674,7 +634,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [