{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 04 MNIST Example with DataLoaders and Convolutions\n", "\n", "In this notebook we will look at how data loaders can be used in `pycox`.\n", "This is particularly useful when working with larger data sets than what is possible to fit in memory, and is an important part of any deep learning framework.\n", "As `pycox` is build on [torchtuples](https://github.com/havakv/torchtuples), the same principles applies as for `torchtuples.Model`.\n", "\n", "For our example, we will consider the [simulation study proposed by Gensheimer and Narasimhan](https://peerj.com/articles/6257/) based on the MNIST data set of handwritten digits. \n", "The basic ideas is that each digit represents a survival function, so if we can identify the digit, it is quite straight forward to get good survival estimates.\n", "We will use the `LogisticHazard` methods (which [Gensheimer and Narasimhan](https://peerj.com/articles/6257/) refer to as Nnet-survival), with a convolutional network.\n", "\n", "We will however, consider a slightly different survival function than that of [Gensheimer and Narasimhan](https://peerj.com/articles/6257/), and we will consider all the digits from 0 to 9, while [Gensheimer and Narasimhan](https://peerj.com/articles/6257/) only considered the first 5." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "import torch\n", "import torch.nn as nn\n", "import torch.nn.functional as F\n", "from torch.utils.data import Dataset, DataLoader \n", "\n", "# MNIST is part of torchvision\n", "from torchvision import datasets, transforms\n", "\n", "\n", "import torchtuples as tt\n", "from pycox.models import LogisticHazard\n", "from pycox.utils import kaplan_meier\n", "from pycox.evaluation import EvalSurv" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# for reproducability\n", "np.random.seed(1234)\n", "_ = torch.manual_seed(1234)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The Dataset\n", "\n", "We start by obtaining the MNIST data set with standard preprocessing. The `transform` ensures the data is a `torch.Tensor` and normalize with with a mean and standard deviation." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "transform = transforms.Compose(\n", " [transforms.ToTensor(),\n", " transforms.Normalize((0.1307,), (0.3081,))]\n", ")\n", "mnist_train = datasets.MNIST('.', train=True, download=True,\n", " transform=transform)\n", "mnist_test = datasets.MNIST('.', train=False, transform=transform)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = plt.imshow(mnist_train[0][0][0].numpy(), cmap='gray')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulation\n", "\n", "Next we need to simulate the responses corresponding to the images.\n", "We draw event times from an exponential distribution with the digit defining the scale parameter\n", "\n", "$$\n", "\\beta(\\text{digit}) = \\frac{365 \\cdot \\exp(-0.6 \\cdot \\text{digit})}{\\log(1.2)},\n", "$$\n", "and we censor all times higher than 700." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def sim_event_times(mnist, max_time=700):\n", " digits = mnist.targets.numpy()\n", " betas = 365 * np.exp(-0.6 * digits) / np.log(1.2)\n", " event_times = np.random.exponential(betas)\n", " censored = event_times > max_time\n", " event_times[censored] = max_time\n", " return tt.tuplefy(event_times, ~censored)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We simulate a training set and test set, based on the respective MNIST data sets." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "sim_train = sim_event_times(mnist_train)\n", "sim_test = sim_event_times(mnist_test)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([ 21.19004682, 700. , 104.56743096, ..., 121.80432849,\n", " 2.50843078, 13.8114342 ]),\n", " array([ True, False, True, ..., True, True, True]))" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sim_train" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualize\n", "We can visualize the survival curves for the 10 digits by applying the Kaplan-Meier estimator to the collection of event times for each digit" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for i in range(10):\n", " idx = mnist_train.targets.numpy() == i\n", " kaplan_meier(*sim_train.iloc[idx]).rename(i).plot()\n", "_ = plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our goal will be to estimate these survival functions from the images." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Label transforms\n", "\n", "Our simulated event times are drawn in continuous time, so to apply the `LogisticHazard` method, we need to discretize the observations. This can be done with the `label_transform` attribute, and we here use an equidistant grid with 20 grid points." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "labtrans = LogisticHazard.label_transform(20)\n", "target_train = labtrans.fit_transform(*sim_train)\n", "target_test = labtrans.transform(*sim_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The disretization grid is " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 36.84210526, 73.68421053, 110.52631579,\n", " 147.36842105, 184.21052632, 221.05263158, 257.89473684,\n", " 294.73684211, 331.57894737, 368.42105263, 405.26315789,\n", " 442.10526316, 478.94736842, 515.78947368, 552.63157895,\n", " 589.47368421, 626.31578947, 663.15789474, 700. ])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "labtrans.cuts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and the discrete targets are" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([ 1, 19, 3, ..., 4, 1, 1]),\n", " array([1., 0., 1., ..., 1., 1., 1.], dtype=float32))" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "target_train" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Make DataLoaders\n", "\n", "To make a `DataLoader` we first need to create a `Dataset`. The `DataSet` is responsible for the obtaining and transforming the data, while the `DataLoader` is contains a `DataSet` a batch sampler etc.\n", "\n", "The standard way to create a `Dataset` in PyTorch is by inheriting the `Dataset` class and defining the `__getitem__` method which reads the data for one individual at a time. \n", "This also require a `collate_fn` for combining multiple individuals into a batch. \n", "\n", "The following is an example of this approach, but we will shortly present an alternative approach that is more in line with `torchtuples`." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "class MnistSimDatasetSingle(Dataset):\n", " \"\"\"Simulatied data from MNIST. Read a single entry at a time.\n", " \"\"\"\n", " def __init__(self, mnist_dataset, time, event):\n", " self.mnist_dataset = mnist_dataset\n", " self.time, self.event = tt.tuplefy(time, event).to_tensor()\n", "\n", " def __len__(self):\n", " return len(self.mnist_dataset)\n", "\n", " def __getitem__(self, index):\n", " if type(index) is not int:\n", " raise ValueError(f\"Need `index` to be `int`. Got {type(index)}.\")\n", " img = self.mnist_dataset[index][0]\n", " return img, (self.time[index], self.event[index])" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "dataset_train = MnistSimDatasetSingle(mnist_train, *target_train)\n", "dataset_test = MnistSimDatasetSingle(mnist_test, *target_test)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(torch.Size([1, 28, 28]), (torch.Size([]), torch.Size([])))" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "samp = tt.tuplefy(dataset_train[1])\n", "samp.shapes()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(tensor(19), tensor(0.))" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "samp[1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our dataset gives a nested tuple `(img, (idx_duration, event))`, meaning the default collate in PyTorch does not work. We therefore use `tuplefy` to stack the tensors instead" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def collate_fn(batch):\n", " \"\"\"Stacks the entries of a nested tuple\"\"\"\n", " return tt.tuplefy(batch).stack()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### DataLoader\n", "\n", "We can now use the regular pytorch `DataLoader`.\n", "Note that you can set the argument `num_workers` in the `DataLoader` to use multiple processes for reading data. Dependent on the system (mac/linux/windows) this can cause some memory issues, so we here use the default `num_workers = 0`." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "batch_size = 128" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "dl_train = DataLoader(dataset_train, batch_size, shuffle=True, collate_fn=collate_fn)\n", "dl_test = DataLoader(dataset_test, batch_size, shuffle=False, collate_fn=collate_fn)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we now investigate a batch, we see that we have the same tuple structure `(img, (idx_durations, events))` but in a batch of size 128." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(torch.Size([128, 1, 28, 28]), (torch.Size([128]), torch.Size([128])))" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "batch = next(iter(dl_train))\n", "batch.shapes()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(torch.float32, (torch.int64, torch.float32))" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "batch.dtypes()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dataset with batches (alternative)\n", "\n", "When working with `torchtuples` it is typically simpler to read a batch at a times. This means that we do not need a `collate_fn`, and all the logic is in the `Dataset`.\n", "This approach is not needed, and if you prefer the regular PyTorch `DataLoader`, you can skip this and continue at the Convolutional Network section." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "class MnistSimDatasetBatch(Dataset):\n", " def __init__(self, mnist_dataset, time, event):\n", " self.mnist_dataset = mnist_dataset\n", " self.time, self.event = tt.tuplefy(time, event).to_tensor()\n", "\n", " def __len__(self):\n", " return len(self.time)\n", "\n", " def __getitem__(self, index):\n", " if not hasattr(index, '__iter__'):\n", " index = [index]\n", " img = [self.mnist_dataset[i][0] for i in index]\n", " img = torch.stack(img)\n", " return tt.tuplefy(img, (self.time[index], self.event[index]))" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "dataset_train = MnistSimDatasetBatch(mnist_train, *target_train)\n", "dataset_test = MnistSimDatasetBatch(mnist_test, *target_test)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(torch.Size([3, 1, 28, 28]), (torch.Size([3]), torch.Size([3])))" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "samp = dataset_train[[0, 1, 3]]\n", "samp.shapes()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### DataLoaderBatch\n", "\n", "As we have a `Dataset` that reads a batch at a time, we cannot use the regular pytorch `DataLoader`.\n", "Instead we have to rely on the `DataLoaderBatch` from `torchtuples`, but note that we don't need the `collate_fn`." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "dl_train = tt.data.DataLoaderBatch(dataset_train, batch_size, shuffle=True)\n", "dl_test = tt.data.DataLoaderBatch(dataset_test, batch_size, shuffle=False)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(torch.Size([128, 1, 28, 28]), (torch.Size([128]), torch.Size([128])))" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "batch = next(iter(dl_train))\n", "batch.shapes()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(torch.float32, (torch.int64, torch.float32))" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "batch.dtypes()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the end result is the same as for thte `DataLoader` above, so use the methods you find the simplest." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Convolutional Network\n", "\n", "We will use a convolutional network with two convolutional layers, global average pooling, and two dense layers. This networks is very basic, so better performance would be expected with a more carefully designed network." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "class Net(nn.Module):\n", " def __init__(self, out_features):\n", " super().__init__()\n", " self.conv1 = nn.Conv2d(1, 16, 5, 1)\n", " self.max_pool = nn.MaxPool2d(2)\n", " self.conv2 = nn.Conv2d(16, 16, 5, 1)\n", " self.glob_avg_pool = nn.AdaptiveAvgPool2d((1, 1))\n", " self.fc1 = nn.Linear(16, 16)\n", " self.fc2 = nn.Linear(16, out_features)\n", "\n", " def forward(self, x):\n", " x = F.relu(self.conv1(x))\n", " x = self.max_pool(x)\n", " x = F.relu(self.conv2(x))\n", " x = self.glob_avg_pool(x)\n", " x = torch.flatten(x, 1)\n", " x = F.relu(self.fc1(x))\n", " x = self.fc2(x)\n", " return x" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Net(\n", " (conv1): Conv2d(1, 16, kernel_size=(5, 5), stride=(1, 1))\n", " (max_pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n", " (conv2): Conv2d(16, 16, kernel_size=(5, 5), stride=(1, 1))\n", " (glob_avg_pool): AdaptiveAvgPool2d(output_size=(1, 1))\n", " (fc1): Linear(in_features=16, out_features=16, bias=True)\n", " (fc2): Linear(in_features=16, out_features=20, bias=True)\n", ")" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "net = Net(labtrans.out_features)\n", "net" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Logistic-Hazard Model\n", "\n", "We use the `LogisticHazard` with the Adam optimizer with a learning rate of 0.01." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "model = LogisticHazard(net, tt.optim.Adam(0.01), duration_index=labtrans.cuts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To verify that the network works as expected we can use the batch from before" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "torch.Size([128, 20])" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pred = model.predict(batch[0])\n", "pred.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Training\n", "\n", "We fit the network with `fit_dataloader` and use the `dl_test` to monitor the test performance. It should go without saying that, in practice, we need a validation set separate from the test set when we use early stopping, but this is just an illustrative example." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0:\t[33s / 33s],\t\ttrain_loss: 2.0743,\tval_loss: 1.9062\n", "1:\t[27s / 1m:1s],\t\ttrain_loss: 1.8318,\tval_loss: 1.7913\n", "2:\t[39s / 1m:40s],\t\ttrain_loss: 1.7777,\tval_loss: 1.7586\n", "3:\t[39s / 2m:19s],\t\ttrain_loss: 1.7623,\tval_loss: 1.7509\n", "4:\t[54s / 3m:14s],\t\ttrain_loss: 1.7507,\tval_loss: 1.7266\n", "5:\t[36s / 3m:51s],\t\ttrain_loss: 1.7427,\tval_loss: 1.7431\n", "6:\t[35s / 4m:27s],\t\ttrain_loss: 1.7330,\tval_loss: 1.7263\n", "7:\t[34s / 5m:1s],\t\ttrain_loss: 1.7266,\tval_loss: 1.7247\n", "8:\t[34s / 5m:36s],\t\ttrain_loss: 1.7265,\tval_loss: 1.7159\n", "9:\t[34s / 6m:11s],\t\ttrain_loss: 1.7179,\tval_loss: 1.7112\n", "10:\t[34s / 6m:46s],\t\ttrain_loss: 1.7146,\tval_loss: 1.7072\n", "11:\t[34s / 7m:20s],\t\ttrain_loss: 1.7136,\tval_loss: 1.7524\n", "12:\t[34s / 7m:55s],\t\ttrain_loss: 1.7107,\tval_loss: 1.7295\n", "13:\t[36s / 8m:32s],\t\ttrain_loss: 1.7080,\tval_loss: 1.7014\n", "14:\t[34s / 9m:6s],\t\ttrain_loss: 1.7051,\tval_loss: 1.7121\n", "15:\t[34s / 9m:41s],\t\ttrain_loss: 1.7054,\tval_loss: 1.7022\n", "16:\t[36s / 10m:18s],\t\ttrain_loss: 1.7026,\tval_loss: 1.7134\n", "17:\t[46s / 11m:5s],\t\ttrain_loss: 1.6998,\tval_loss: 1.6986\n", "18:\t[43s / 11m:48s],\t\ttrain_loss: 1.7000,\tval_loss: 1.7048\n", "19:\t[36s / 12m:25s],\t\ttrain_loss: 1.6948,\tval_loss: 1.6906\n", "20:\t[32s / 12m:58s],\t\ttrain_loss: 1.6955,\tval_loss: 1.6941\n", "21:\t[31s / 13m:29s],\t\ttrain_loss: 1.6943,\tval_loss: 1.6925\n", "22:\t[33s / 14m:2s],\t\ttrain_loss: 1.6925,\tval_loss: 1.6953\n", "23:\t[32s / 14m:34s],\t\ttrain_loss: 1.6936,\tval_loss: 1.6934\n", "24:\t[30s / 15m:5s],\t\ttrain_loss: 1.6918,\tval_loss: 1.6893\n", "25:\t[30s / 15m:35s],\t\ttrain_loss: 1.6883,\tval_loss: 1.6930\n", "26:\t[29s / 16m:5s],\t\ttrain_loss: 1.6865,\tval_loss: 1.6927\n", "27:\t[30s / 16m:35s],\t\ttrain_loss: 1.6863,\tval_loss: 1.6880\n", "28:\t[34s / 17m:10s],\t\ttrain_loss: 1.6857,\tval_loss: 1.6880\n", "29:\t[30s / 17m:40s],\t\ttrain_loss: 1.6862,\tval_loss: 1.6871\n", "30:\t[32s / 18m:13s],\t\ttrain_loss: 1.6849,\tval_loss: 1.6926\n", "31:\t[29s / 18m:42s],\t\ttrain_loss: 1.6838,\tval_loss: 1.6952\n", "32:\t[29s / 19m:12s],\t\ttrain_loss: 1.6834,\tval_loss: 1.6954\n", "33:\t[29s / 19m:42s],\t\ttrain_loss: 1.6835,\tval_loss: 1.6891\n", "34:\t[29s / 20m:11s],\t\ttrain_loss: 1.6805,\tval_loss: 1.6897\n" ] } ], "source": [ "callbacks = [tt.cb.EarlyStopping(patience=5)]\n", "epochs = 50\n", "verbose = True\n", "log = model.fit_dataloader(dl_train, epochs, callbacks, verbose, val_dataloader=dl_test)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "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KipaLcvPz+fCCy9k7dq1x7lW3ROSc9047KK9bpRSKkBCcgoEh83GAQ16pSLX3x+AfXkdr9cVmaPh/MfbLL7//vvp168fP/nJTwB4+OGHERGWLl3KgQMHqK+v57HHHuOSSy7p0tvW1NRw2223sXz5chwOB7/73e84++yzWbduHTfddBN1dXX4fD7efPNN+vTpwxVXXEFBQQFer5ef//znXHnllT3a7c4IyaBvaLoxxuhV45VSATF79mzuvvvuxqB//fXX+fDDD7nnnntISEigpKSESZMmcfHFF3cpdxr60efl5bFx40amTp3K5s2bmTdvHnfddRfXXHMNdXV1eL1ePvjgA/r06cP7778PWJOpHQ8hGfQOm1Dr8VFV5yXWHZJVVEr1RDtH3sfKuHHjKCoqorCwkOLiYpKSkujduzf33HMPS5cuxWazsWfPHvbv309mZmant7ts2TLuvPNOwJqpsl+/fmzevJnJkyfzq1/9ioKCAmbOnMngwYMZPXo09957L/fffz8XXngh3/ve947V7jYTsm30oNMgKKUCa9asWbzxxhu89tprzJ49m5dffpni4mJWrFjBqlWryMjIaHUe+va0NTHk1VdfzaJFi4iOjua8887j008/ZciQIaxYsYLRo0fzs5/9jEceeSQQu9WhkAx6u02DXikVeLNnz+bVV1/ljTfeYNasWRw6dIj09HScTidLlixh586dXd7mGWecwcsvvwzA5s2b2bVrF0OHDmX79u0MGDCAn/70p1x88cWsWbOGwsJCYmJiuPbaa7n33ntZuXJloHexVSHZLuKw2ahDg14pFVgjR46kvLycrKwsevfuzTXXXMNFF13E+PHjGTt2LMOGDevyNn/yk59w6623Mnr0aBwOBy+++CJut5vXXnuNv/71rzidTjIzM/nFL37Bt99+y3333YfNZsPpdDJ37txjsJctdTgffTCcNPZkc3jao/zm8jHMOiU72NVRSgWAzkcfOF2djz4km24a2ui1i6VSSvVcSDbd2ERw2nV0rFIquPLy8rjuuuuaLXO73Xz99dEztYe2kAx6gORYl853o1SECbexMaNHj2bVqlUdr3gcdae5PSSbbgCSY906g6VSESQqKorS0tJuBZWyGGMoLS0lKiqqS68L4SN6px7RKxVBsrOzKSgooLi4ONhVCWtRUVFkZ3etk0oIB72bvAMHg10N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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "_ = log.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Prediction\n", "\n", "To predict, we need a data loader that only gives the images and not the targets. We therefore need to create a new `Dataset` for this purpose." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "class MnistSimInput(Dataset):\n", " def __init__(self, mnist_dataset):\n", " self.mnist_dataset = mnist_dataset\n", "\n", " def __len__(self):\n", " return len(self.mnist_dataset)\n", "\n", " def __getitem__(self, index):\n", " img = self.mnist_dataset[index][0]\n", " return img" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "dataset_test_x = MnistSimInput(mnist_test)\n", "dl_test_x = DataLoader(dataset_test_x, batch_size, shuffle=False)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "torch.Size([128, 1, 28, 28])" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(iter(dl_test_x)).shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (alternative)\n", "Alternatively, if you have used the batch method, we can use the method `dataloader_input_only` to create this `Dataloader` from `dl_test`." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "dl_test_x = tt.data.dataloader_input_only(dl_test)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "torch.Size([128, 1, 28, 28])" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(iter(dl_test_x)).shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Survial predictions\n", "\n", "We can obtain survival prediction in the regular manner, and one can include the `interpolation` if wanted." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "surv = model.predict_surv_df(dl_test_x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Results\n", "\n", "We compute the average survival predictions for each digit in the test set" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for i in range(10):\n", " idx = mnist_test.targets.numpy() == i\n", " surv.loc[:, idx].mean(axis=1).rename(i).plot()\n", "_ = plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and find that they are quite similar to the Kaplan-Meier estimates!" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for i in range(10):\n", " idx = mnist_test.targets.numpy() == i\n", " kaplan_meier(*sim_test.iloc[idx]).rename(i).plot()\n", "_ = plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Concordance and Brier score" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "surv = model.interpolate(10).predict_surv_df(dl_test_x)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "ev = EvalSurv(surv, *sim_test, 'km')" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7426348804216191" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ev.concordance_td()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.10559285952465855" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "time_grid = np.linspace(0, sim_test[0].max())\n", "ev.integrated_brier_score(time_grid)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Next\n", "\n", "You can now look at other examples of survival methods in the [examples folder](https://nbviewer.jupyter.org/github/havakv/pycox/tree/master/examples).\n", "Or, alternatively take a look at\n", "\n", "- the more advanced training procedures in the notebook [02_introduction.ipynb](https://nbviewer.jupyter.org/github/havakv/pycox/blob/master/examples/02_introduction.ipynb).\n", "- other network architectures that combine autoencoders and survival networks in the notebook [03_network_architectures.ipynb](https://nbviewer.jupyter.org/github/havakv/pycox/blob/master/examples/03_network_architectures.ipynb)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 4 }