diff --git a/docs/notebooks/introduction.ipynb b/docs/notebooks/introduction.ipynb index ac2e487..402335f 100644 --- a/docs/notebooks/introduction.ipynb +++ b/docs/notebooks/introduction.ipynb @@ -28,7 +28,7 @@ "# %pip install lifelines\n", "# %pip install matplotlib\n", "# %pip install sklearn\n", - "# %pip install pandas\n" + "# %pip install pandas" ] }, { @@ -523,16 +523,20 @@ "metadata": {}, "outputs": [], "source": [ + "# Initiate Weibull model\n", "cox_model = torch.nn.Sequential(\n", - " torch.nn.BatchNorm1d(num_features), # Batch normalization\n", - " torch.nn.Linear(num_features, 32),\n", - " torch.nn.ReLU(),\n", - " torch.nn.Dropout(),\n", - " torch.nn.Linear(32, 64),\n", - " torch.nn.ReLU(),\n", - " torch.nn.Dropout(),\n", - " torch.nn.Linear(64, 1), # Estimating log hazards for Cox models\n", - ")" + " torch.nn.BatchNorm1d(num_features), # Batch normalization\n", + " torch.nn.Linear(num_features, 32),\n", + " torch.nn.ReLU(),\n", + " torch.nn.Dropout(),\n", + " torch.nn.Linear(32, 64),\n", + " torch.nn.ReLU(),\n", + " torch.nn.Dropout(),\n", + " torch.nn.Linear(64, 1), # Estimating log hazards for Cox models\n", + " )\n", + "\n", + "# Compile model for faster performance\n", + "cox_model = torch.compile(cox_model)" ] }, { @@ -553,16 +557,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch: 000, Training loss: 12.55\n", - "Epoch: 010, Training loss: 12.40\n", - "Epoch: 020, Training loss: 12.02\n", - "Epoch: 030, Training loss: 11.90\n", - "Epoch: 040, Training loss: 11.97\n", - "Epoch: 050, Training loss: 11.85\n", - "Epoch: 060, Training loss: 11.68\n", - "Epoch: 070, Training loss: 11.85\n", - "Epoch: 080, Training loss: 11.74\n", - "Epoch: 090, Training loss: 11.88\n" + "Epoch: 000, Training loss: 12.74\n", + "Epoch: 010, Training loss: 12.26\n", + "Epoch: 020, Training loss: 11.81\n", + "Epoch: 030, Training loss: 11.93\n", + "Epoch: 040, Training loss: 11.41\n", + "Epoch: 050, Training loss: 11.75\n", + "Epoch: 060, Training loss: 11.61\n", + "Epoch: 070, Training loss: 11.36\n", + "Epoch: 080, Training loss: 11.62\n", + "Epoch: 090, Training loss: 11.83\n" ] } ], @@ -617,7 +621,7 @@ "outputs": [ { "data": { - "image/png": "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rrzGve48586dw1133YWYmBiEhoZi2LBhOHjwoPI+97pzNDU14cknn0RGRgZMJhP69OmDp59+Gna7XXmGe91+X3zxBWbOnInk5GRIkoT333/f7X1f9rahoQFLly5FbGwszGYzbr75Zpw9e7bjixNEQogNGzaIoKAg8cYbb4gjR46IZcuWCbPZLE6fPu3vpfVoN9xwg1i3bp347rvvRF5enpgxY4bo1auXqK6uVp55/vnnhcViEe+++67Iz88Xd9xxh0hKShKVlZV+XHnPtn//ftG7d28xZMgQsWzZMuV17nXnKCsrE+np6WLBggVi3759oqCgQGzbtk2cOHFCeYZ73TmeffZZERMTIz766CNRUFAgNm3aJMLCwsTLL7+sPMO9br9PPvlErFixQrz77rsCgHjvvffc3vdlbxcuXChSUlJEbm6uOHTokJg0aZIYOnSoaGpq6tDaGKCREEKIa6+9VixcuNDttQEDBojHH3/cTyu6PJWUlAgAYteuXUIIIex2u0hMTBTPP/+88kx9fb2IiIgQr7/+ur+W2aNVVVWJfv36idzcXDFhwgQlQONed57HHntMjB071uv73OvOM2PGDHHvvfe6vXbrrbeKu+66SwjBve5MngGaL3tbXl4ugoKCxIYNG5Rnzp07J3Q6nfjss886tB4ecRKsVisOHjyIqVOnur0+depU7N2710+rujxVVFQAAKKjowEABQUFKC4udtt7o9GICRMmcO/bafHixZgxYwauv/56t9e5151ny5YtyM7Oxm233Yb4+HgMHz4cb7zxhvI+97rzjB07Fp9//jmOHz8OAPjmm2+we/du3HjjjQC4113Jl709ePAgGhsb3Z5JTk7G4MGDO7z/HJZOKC0thc1mQ0JCgtvrCQkJKC4u9tOqLj9CCDz00EMYO3YsBg8eDADK/mrt/enTp7t9jT3dhg0bcOjQIRw4cKDZe9zrzvPTTz9h9erVeOihh/Db3/4W+/fvxwMPPACj0Yi7776be92JHnvsMVRUVGDAgAHQ6/Ww2Wx47rnnMHfuXAD897or+bK3xcXFCA4ORlRUVLNnOvrzkwEaKSRJcvu9EKLZa9R+S5Yswbfffovdu3c3e49733FnzpzBsmXL8K9//QshISFen+Ned5zdbkd2djb++Mc/AgCGDx+O77//HqtXr8bdd9+tPMe97riNGzdi/fr1+Mc/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", + "image/png": "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", "text/plain": [ "
" ] @@ -686,8 +690,8 @@ "output_type": "stream", "text": [ "Cox model performance:\n", - "Concordance-index = 0.639417290687561\n", - "Confidence interval = tensor([0.5143, 0.7645])\n" + "Concordance-index = 0.6750708818435669\n", + "Confidence interval = tensor([0.5682, 0.7820])\n" ] } ], @@ -717,7 +721,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "p-value = 0.014473557472229004\n" + "p-value = 0.0006636381149291992\n" ] } ], @@ -744,8 +748,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "AUC 5-yr = tensor([0.6342])\n", - "AUC 5-yr (conf int.) = tensor([0.5767, 0.6917])\n" + "AUC 5-yr = tensor([0.6851])\n", + "AUC 5-yr (conf int.) = tensor([0.6213, 0.7489])\n" ] } ], @@ -816,22 +820,25 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "35b92c10-e5fb-491d-9e27-743bcffdced2", "metadata": {}, "outputs": [], "source": [ "# Same architecture than Cox model, beside outputs dimension\n", "weibull_model = torch.nn.Sequential(\n", - " torch.nn.BatchNorm1d(num_features), # Batch normalization\n", - " torch.nn.Linear(num_features, 32),\n", - " torch.nn.ReLU(),\n", - " torch.nn.Dropout(),\n", - " torch.nn.Linear(32, 64),\n", - " torch.nn.ReLU(),\n", - " torch.nn.Dropout(),\n", - " torch.nn.Linear(64, 2), # Estimating log parameters for Weibull model\n", - ")" + " torch.nn.BatchNorm1d(num_features), # Batch normalization\n", + " torch.nn.Linear(num_features, 32),\n", + " torch.nn.ReLU(),\n", + " torch.nn.Dropout(),\n", + " torch.nn.Linear(32, 64),\n", + " torch.nn.ReLU(),\n", + " torch.nn.Dropout(),\n", + " torch.nn.Linear(64, 2), # Estimating log parameters for Weibull model\n", + " )\n", + "\n", + "# Compile Weibull model\n", + "weibull_model = torch.compile(weibull_model)" ] }, { @@ -852,16 +859,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch: 000, Training loss: 100312.30\n", - "Epoch: 010, Training loss: 19.79\n", - "Epoch: 020, Training loss: 20.48\n", - "Epoch: 030, Training loss: 16.80\n", - "Epoch: 040, Training loss: 17.24\n", - "Epoch: 050, Training loss: 17.22\n", - "Epoch: 060, Training loss: 16.75\n", - "Epoch: 070, Training loss: 16.55\n", - "Epoch: 080, Training loss: 16.76\n", - "Epoch: 090, Training loss: 16.69\n" + "Epoch: 000, Training loss: 7743.42\n", + "Epoch: 010, Training loss: 19.23\n", + "Epoch: 020, Training loss: 18.48\n", + "Epoch: 030, Training loss: 17.35\n", + "Epoch: 040, Training loss: 17.19\n", + "Epoch: 050, Training loss: 19.53\n", + "Epoch: 060, Training loss: 17.40\n", + "Epoch: 070, Training loss: 18.38\n", + "Epoch: 080, Training loss: 18.25\n", + "Epoch: 090, Training loss: 17.76\n" ] } ], @@ -915,7 +922,7 @@ "outputs": [ { "data": { - "image/png": "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9esnd9NaxIpQC+w9WFqtZBAiIqLOJTw8HPv375e7GVZhRUgmSoWALLF+husSziVEREQkBwYhmaiUioaKUDErQkRERHJgEJKJWiEgy9w1xooQERGRHBiEWmD/wdIKXOYYISIiIlkxCLUgMTERqampOHLkiF22r1Y2GiNUrQeqSuyyHyIiImoZg5BMlAoBlXBFpar+jDSOEyIiInI4BiGZqJXSoddrgqUFHCdEREQ21rVrV6xcudL8syAI2Lx5c4vrp6enQxAEpKSk3NR+bbUdR+A8QjJRKaQL0JW4BCGo/BzHCRERkd1lZ2fDx8fHptucPXs2iouLLQJWeHg4srOz4e/vb9N92QODkEyUSikIFatNFSEGISIisq/g4GCH7EepVDpsXzeLXWMtsPdZY2qFdOiL1IHSAnaNERFRIx988AHCwsJgNBotlt99992YNWsWfvvtN9xzzz0ICgqCh4cH4uLisGPHjutu89quscOHD2PIkCFwdXVFbGwsjh8/brG+wWDAnDlz0K1bN7i5uaFPnz545513zPcvWbIE69atw3/+8x8IggBBELB79+5mu8b27NmDYcOGQaPRICQkBC+88ALq6urM948ZMwbPPPMMFi1aBF9fXwQHB2PJkiXWHzgrMQi1wN5njanqK0KF6iBpAQdLExE5higCNeXy3ESx1c184IEHkJ+fj127dpmXFRUVYdu2bZgxYwbKysowadIk7NixA8ePH8f48eMxefJkZGRktGr75eXl+N3vfoc+ffogOTkZS5YswXPPPWexjtFoRJcuXfDll18iNTUVL7/8Mv785z/jyy+/BAA899xzmDZtGiZMmIDs7GxkZ2cjPj6+yb6uXLmCSZMmIS4uDr/88gtWr16Njz/+GK+99prFeuvWrYO7uzsOHTqEN998E8uWLcP27dtbfczagl1jMjGNESpQsiJERORQtRXA30Ll2fefswAX91at6uvriwkTJuDf//43xo4dCwD46quv4Ovri7Fjx0KpVCI6Otq8/muvvYZNmzZhy5YtmD9//g23v379ehgMBvzzn/+EVqtF//79cfnyZTz11FPmddRqNZYuXWr+uVu3bjhw4AC+/PJLTJs2DR4eHnBzc0N1dfV1u8JWrVqF8PBwvPfeexAEAX379kVWVhaef/55vPzyy1DU95IMGjQIr7zyCgCgV69eeO+997Bz507c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goODAQBbt27FAw88gN69e2POnDk4efKkzRsoF0dNqKjmWWNERESysToIBQUFITU1FQaDAT/88APuuOMOAEBFRQWUSqXNGygXR02oqKo/a6yWZ40RERE5nNWDpR977DFMmzYNISEhEAQBd955JwDg0KFD6Nu3r80b2Nk1DJZm1xgREZGjWR2ElixZggEDBiAzMxMPPPAANBoNAECpVOKFF16weQM7u4bT51kRIiIicrQ2nT5///33N1k2a9asm26MMzKdNcbT54mIiBzP6jFCALBnzx5MnjwZPXv2RK9evXD33Xdj3759tm6bUzB1jdWya4yIiMjhrA5Cn332Ge644w5otVo888wzmD9/Ptzc3DB27Fj8+9//tkcbOzUVL7FBREQkG6u7xv7617/izTffxB/+8AfzsmeffRYrVqzAq6++iocfftimDezsOLM0ERGRfKyuCF28eBGTJ09usvzuu+9GWlqaTRrlTHitMSIiIvlYHYTCw8Oxc+fOJst37tyJ8PBwmzTKmfDq80RERPKxumvsj3/8I5555hmkpKQgPj4egiDg559/xtq1a/HOO+/Yo42dmpIzSxMREcnG6iD01FNPITg4GH//+9/x5ZdfAgD69euHDRs24J577rF5A+WSlJSEpKQkGAwGu+5HZQ5C7BojIiJyNEEURZYirkOv10On06GkpAReXl423/7a/WlY8m0q7hoUgqSHh9p8+0RERM6ote/fbZpHiGyn4fR5VoSIiIgcrVVdYz4+PhAEoVUbLCwsvKkGORt1/VljHCxNRETkeK0KQitXrrRzM5yXsv4SGxwsTURE5HitCkK8jpj9mCtCHCxNRETkcBwjJDPTRVfZNUZEROR4DEIy4zxCRERE8mEQklnDYGl2jRERETkag5DMWBEiIiKSD4OQzHitMSIiIvm06qyx++67r9Ub3LhxY5sb44xMl9io5VljREREDteqipBOpzPfvLy8sHPnThw9etR8f3JyMnbu3AmdTme3hnZWqvoxQgZ2jRERETlcqypCn3zyifn7559/HtOmTcP7778PpVIJADAYDJg3b55drsXV2fH0eSIiIvlYPUbon//8J5577jlzCAIApVKJhQsX4p///KdNG+cMlLz6PBERkWysDkJ1dXU4c+ZMk+VnzpyBsRO9mSclJSEqKgpxcXF23Q8HSxMREcmnVV1jjT322GN4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", + "image/png": "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qTTGIEREROWNHz8ev/zyCwoLCwGI8PLwww9DrVYjNzcXs2bNQmRkJLy9veHu7o7Tp08jISGhWs996tQpdOnSBa6uruZlvXr1Krfep59+ih49eiAgIADu7u74/PPPq72Nstvq1asXpDK9YX369EFOTg6uXLliXta5c2eLx4WEhCA1NdWqbVmLPUIKYWmMiEghWlfRM6PUtq0wYsQIGI1G/P7774iOjsaOHTswb948AMCLL76IDRs24P3330erVq3g4uKCBx98EEVFRdV6blmWb7nOTz/9hOeffx4ffPABevXqBQ8PD/zvf//D3r17rXodsixbhKCy2y+7XKvVWqwjSVK5MVK2xiCkEFEa41ljREQOJ0nVLk8pzcXFBffffz+WLVuG8+fPo02bNoiKigIA7NixA5MmTcLo0aMBADk5OYiPj6/2c0dGRuK7775Dfn4+XFzE8WjPnj0W6+zYsQO9e/fGM888Y1524cIFi3WcnJxgMFQ9MXBkZCR++eUXi0C0e/dueHh4oEmTJtVusz2wNKYQjUpCFnjWGBERVW38+PH4/fff8dVXX2HChAnm5a1atcLKlStx5MgRHD16FI888ohVvSePPPIIVCoVJk+ejNjYWKxbtw7vv/++xTqtWrXCgQMHsGHDBpw9exavv/56uTOqmzdvjmPHjuHMmTNIS0tDcXFxuW0988wzuHz5Mp599lmcPn0av/76K958803MnDnTPD5IKQxCCnHSqJAjszRGRERVu/POO+Hr64szZ87gkUceMS//8MMP4ePjg969e2PEiBEYOnQounfvXu3ndXd3x2+//YbY2Fh069YNr776Kt577z2LdaZMmYL7778fY8eOxW233Ybr169b9A4BwJNPPom2bduaxxHt2rWr3LaaNGmCdevWYd++fejSpQumTJmCyZMn47XXXrNyb9ieJFenSNjIxMTEICYmBgaDAWfPnkVmZiY8PT1tuo0f9iXg6K8f4V3tF0CbYcAjP9r0+YmISCgoKEBcXBwiIiLg7OysdHPIhir73WZlZcHLy6tax2/2CFXAERMqajihIhERkeIYhBTipCl71limso0hIiJqpBiEFKJV86wxIiIipTEIKURjMaEiS2NERERKYBBSiMU8QoVZ4to3RERkNzw3qOGxxe+UQUghTmpVaY+QUQ/oC5RtEBFRA2WarTgvT6ELrZLdmH6n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zeScnBzzOu+++67s4eEh//LLL/Lx48flsWPHyiEhIXJWVpaCLa/f9u3bJzdv3lzu3LmzPH36dPNy7mvbSE9Pl8PDw+VJkybJe/fulePi4uRNmzbJ58+fN6/DfW0777zzjuzn5yevXbtWjouLk3/++WfZ3d1dnj9/vnkd7u+aWbdunfzqq6/Kv/zyiwxAXrVqlcX91dmvU6ZMkZs0aSJv3LhRPnTokDxw4EC5S5cusl6vr1XbGIQcrGfPnvKUKVMslrVr105++eWXFWpRw5SamioDkLdt2ybLsiwbjUY5ODhYfvfdd83rFBQUyF5eXvKnn36qVDPrtezsbLl169byxo0b5f79+5uDEPe17bz00kty3759K72f+9q27rnnHvkf//iHxbL7779fnjBhgizL3N+2cnMQqs5+vXHjhqzVauUff/zRvE5iYqKsUqnk9evX16o9LI05UFFREQ4ePIghQ4ZYLB8yZAh2796tUKsapszMTACAr68vACAuLg4pKSkW+16n06F///7c9zU0depU3HPPPbjrrrsslnNf286aNWvQo0cPPPTQQwgMDES3bt3w+eefm+/nvratvn37YvPmzTh79iwA4OjRo9i5cyeGDx8OgPvbXqqzXw8ePIji4mKLdUJDQ9GxY8da73tedNWB0tLSYDAYEBQUZLE8KCgIKSkpCrWq4ZFlGTNnzkTfvn3RsWNHADDv34r2/aVLlxzexvruxx9/xKFDh7B///5y93Ff287FixexaNEizJw5E//+97+xb98+PPfcc9DpdHjssce4r23spZdeQmZmJtq1awe1Wg2DwYD//Oc/GDduHAD+bdtLdfZrSkoKnJyc4OPjU26d2h4/GYQUIEmSxW1Zlssto5qbNm0ajh07hp07d5a7j/u+9i5fvozp06fjzz//hLOzc6XrcV/XntFoRI8ePfB///d/AIBu3brh5MmTWLRoER577DHzetzXtrF8+XIsXboU33//PTp06IAjR45gxowZCA0NxcSJE83rcX/bR032qy32PUtjDuTv7w+1Wl0uvaamppZLwlQzzz77LNasWYMtW7agadOm5uXBwcEAwH1vAwcPHkRqaiqioqKg0Wig0Wiwbds2fPzxx9BoNOb9yX1deyEhIYiMjLRY1r59eyQkJADg37Wtvfjii3j55Zfx8MMPo1OnTnj00Ufx/PPPY+7cuQC4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", "text/plain": [ "
" ] @@ -989,9 +996,9 @@ "output_type": "stream", "text": [ "Weibull model performance:\n", - "Concordance-index = 0.4327795207500458\n", - "Confidence interval = tensor([0.3040, 0.5615])\n", - "p-value = 0.8468805551528931\n" + "Concordance-index = 0.5672465562820435\n", + "Confidence interval = tensor([0.4426, 0.6919])\n", + "p-value = 0.14525073766708374\n" ] } ], @@ -1024,9 +1031,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "AUC 5-yr = tensor([0.4158])\n", - "AUC 5-yr (conf int.) = tensor([0.3684, 0.4632])\n", - "AUC 5-yr (p value) = tensor([0.9998])\n" + "AUC 5-yr = tensor([0.6298])\n", + "AUC 5-yr (conf int.) = tensor([0.5693, 0.6903])\n", + "AUC 5-yr (p value) = tensor([1.2934e-05])\n" ] } ], @@ -1061,10 +1068,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "Brier score = tensor([0.4088, 0.4081, 0.4071, 0.4390, 0.4405])\n", - "Brier score (conf int.) = tensor([[0.4044, 0.4021, 0.4000, 0.4294, 0.4303],\n", - " [0.4133, 0.4140, 0.4143, 0.4485, 0.4507]])\n", - "Integrated Brier score = 0.24420785903930664\n" + "Brier score = tensor([0.4087, 0.4259, 0.4353, 0.4434, 0.4512])\n", + "Brier score (conf int.) = tensor([[0.4044, 0.4194, 0.4271, 0.4340, 0.4408],\n", + " [0.4130, 0.4325, 0.4435, 0.4527, 0.4615]])\n", + "Integrated Brier score = 0.23366779088974\n" ] } ], @@ -1097,7 +1104,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Brier score (p-val) = tensor([0.7680, 0.9690, 0.6890, 0.7730, 0.9120])\n" + "Brier score (p-val) = tensor([0.1220, 0.2830, 0.5210, 0.1620, 0.4440])\n" ] } ], @@ -1137,9 +1144,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Cox cindex = 0.639417290687561\n", - "Weibull cindex = 0.4327795207500458\n", - "p-value = 0.01457300502806902\n" + "Cox cindex = 0.6750708818435669\n", + "Weibull cindex = 0.5672465562820435\n", + "p-value = 0.06277404725551605\n" ] } ], @@ -1169,9 +1176,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Cox 5-yr AUC = tensor([0.6342])\n", - "Weibull 5-yr AUC = tensor([0.4158])\n", - "p-value = tensor([4.9211e-08])\n" + "Cox 5-yr AUC = tensor([0.6851])\n", + "Weibull 5-yr AUC = tensor([0.6298])\n", + "p-value = tensor([0.0494])\n" ] } ], diff --git a/docs/notebooks/momentum.ipynb b/docs/notebooks/momentum.ipynb index 35d8336..729eadd 100644 --- a/docs/notebooks/momentum.ipynb +++ b/docs/notebooks/momentum.ipynb @@ -219,7 +219,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "c216fa33-de09-4be2-82cc-83cb73db3a42", "metadata": {}, "outputs": [], @@ -230,7 +230,10 @@ " 1, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False\n", ")\n", "# Output log hazards\n", - "resnet.fc = torch.nn.Linear(in_features=resnet.fc.in_features, out_features=1)" + "resnet.fc = torch.nn.Linear(in_features=resnet.fc.in_features, out_features=1)\n", + "\n", + "# Compile model\n", + "# resnet = torch.compile(resnet)" ] }, { @@ -273,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "id": "1e7a2c7e-a1ef-42fa-ba74-1d33a1dcf2f3", "metadata": {}, "outputs": [], @@ -284,7 +287,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "id": "3f577acf-a821-41a4-8544-318617755d1e", "metadata": {}, "outputs": [ @@ -314,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "id": "430079cc-4fad-4da2-8ea5-aa904c41ec0e", "metadata": {}, "outputs": [ @@ -323,10 +326,10 @@ "output_type": "stream", "text": [ "\n", - " | Name | Type | Params\n", - "---------------------------------\n", - "0 | model | ResNet | 11.2 M\n", - "---------------------------------\n", + " | Name | Type | Params\n", + "------------------------------------------\n", + "0 | model | OptimizedModule | 11.2 M\n", + "------------------------------------------\n", "11.2 M Trainable params\n", "0 Non-trainable params\n", "11.2 M Total params\n", @@ -337,21 +340,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch 1: 100%|██████████| 11/11 [02:19<00:00, 0.08it/s, loss_step=226.0, val_loss_step=257.0, cindex_step=0.672, val_loss_epoch=256.0, cindex_epoch=0.676, loss_epoch=234.0]" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "`Trainer.fit` stopped: `max_epochs=2` reached.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1: 100%|██████████| 11/11 [02:19<00:00, 0.08it/s, loss_step=226.0, val_loss_step=257.0, cindex_step=0.672, val_loss_epoch=256.0, cindex_epoch=0.676, loss_epoch=234.0]\n" + ] } ], diff --git a/src/torchsurv/loss/cox.py b/src/torchsurv/loss/cox.py index ac3d997..6382398 100644 --- a/src/torchsurv/loss/cox.py +++ b/src/torchsurv/loss/cox.py @@ -6,7 +6,88 @@ import torch +from torchsurv.tools.validate_data import validate_loss + +@torch.jit.script +def _partial_likelihood_cox( + log_hz_sorted: torch.Tensor, + event_sorted: torch.Tensor, +) -> torch.Tensor: + """Calculate the partial log likelihood for the Cox proportional hazards model + in the absence of ties in event time. + """ + log_hz_flipped = log_hz_sorted.flip(0) + log_denominator = torch.logcumsumexp(log_hz_flipped, dim=0).flip(0) + return (log_hz_sorted - log_denominator)[event_sorted] + + +@torch.jit.script +def _partial_likelihood_efron( + log_hz_sorted: torch.Tensor, + event_sorted: torch.Tensor, + time_sorted: torch.Tensor, + time_unique: torch.Tensor, +) -> torch.Tensor: + """Calculate the partial log likelihood for the Cox proportional hazards model + using Efron's method to handle ties in event time. + """ + J = len(time_unique) + + H = [ + torch.where((time_sorted == time_unique[j]) & (event_sorted == 1))[0] + for j in range(J) + ] + R = [torch.where(time_sorted >= time_unique[j])[0] for j in range(J)] + + # Calculate the length of each element in H and store it in a tensor + m = torch.tensor([len(h) for h in H]) + + # Create a boolean tensor indicating whether each element in H has a length greater than 0 + include = torch.tensor([len(h) > 0 for h in H]) + + log_nominator = torch.stack([torch.sum(log_hz_sorted[h]) for h in H]) + + denominator_naive = torch.stack([torch.sum(torch.exp(log_hz_sorted[r])) for r in R]) + denominator_ties = torch.stack([torch.sum(torch.exp(log_hz_sorted[h])) for h in H]) + + log_denominator_efron = torch.zeros(J, device=log_hz_sorted.device) + for j in range(J): + mj = int(m[j].item()) + for l in range(1, mj + 1): + log_denominator_efron[j] += torch.log( + denominator_naive[j] - (l - 1) / float(m[j]) * denominator_ties[j] + ) + return (log_nominator - log_denominator_efron)[include] + + +@torch.jit.script +def _partial_likelihood_breslow( + log_hz_sorted: torch.Tensor, + event_sorted: torch.Tensor, + time_sorted: torch.Tensor, +): + """ + Compute the partial likelihood using Breslow's method for Cox proportional hazards model. + + Args: + log_hz_sorted (torch.Tensor): Log hazard rates sorted by time. + event_sorted (torch.Tensor): Binary tensor indicating if the event occurred (1) or was censored (0), sorted by time. + time_sorted (torch.Tensor): Event or censoring times sorted in ascending order. + + Returns: + torch.Tensor: The partial likelihood for the observed events. + """ + N = len(time_sorted) + R = [torch.where(time_sorted >= time_sorted[i])[0] for i in range(N)] + log_denominator = torch.stack( + [torch.logsumexp(log_hz_sorted[R[i]], dim=0) for i in range(N)] + ) + + return (log_hz_sorted - log_denominator)[event_sorted] + + +@torch.jit.script def neg_partial_log_likelihood( log_hz: torch.Tensor, event: torch.Tensor, @@ -118,9 +199,9 @@ def neg_partial_log_likelihood( """ if checks: - _check_inputs(log_hz, event, time) + validate_loss(log_hz, event, time, model_type="cox") - if any([event.sum() == 0, len(log_hz.size()) == 0]): + if any([event.sum().item() == 0, len(log_hz.size()) == 0]): warnings.warn("No events OR single sample. Returning zero loss for the batch") return torch.tensor(0.0, requires_grad=True) @@ -168,144 +249,6 @@ def neg_partial_log_likelihood( return loss -def _partial_likelihood_cox( - log_hz_sorted: torch.Tensor, - event_sorted: torch.Tensor, -) -> torch.Tensor: - r"""Calculate the partial log likelihood for the Cox proportional hazards model - in the absence of ties in event time. - - Args: - log_hz_sorted (torch.Tensor, float): - Log relative hazard of length n_samples, ordered by time-to-event or censoring. - event_sorted (torch.Tensor, bool): - Event indicator of length n_samples (= True if event occured), ordered by time-to-event or censoring. - - Returns: - (torch.tensor, float): - Vector of the partial log likelihoods. - - Note: - Let :math:`\tau_1 < \tau_2 < \cdots < \tau_N` - be the ordered times and let :math:`R(\tau_i) = \{ j: \tau_j \geq \tau_i\}` - be the risk set at :math:`\tau_i`. The partial log likelihood is defined as: - - .. math:: - - pll = \sum_{i: \: \delta_i = 1} \left(\log \theta_i - \log\left(\sum_{j \in R(\tau_i)} \theta_j \right) \right) - """ - log_denominator = torch.logcumsumexp(log_hz_sorted.flip(0), dim=0).flip(0) - - return (log_hz_sorted - log_denominator)[event_sorted] - - -def _partial_likelihood_efron( - log_hz_sorted: torch.Tensor, - event_sorted: torch.Tensor, - time_sorted: torch.Tensor, - time_unique: torch.Tensor, -) -> torch.Tensor: - """Calculate the partial log likelihood for the Cox proportional hazards model - using Efron's method to handle ties in event time. - - Args: - log_hz_sorted (torch.Tensor, float): - Log relative hazard of length n_samples, ordered by time-to-event or censoring. - event_sorted (torch.Tensor, bool): - Event indicator of length n_samples (= True if event occured), ordered by time-to-event or censoring. - time_sorted (torch.Tensor): - Time-to-event values sorted in order. - time_unique (torch.Tensor): - Set of unique time-to-event values. - Returns: - (torch.tensor, float): - Vector of partial log likelihood estimated using Efron's method. - """ - J = len(time_unique) - - H = [ - torch.where((time_sorted == time_unique[j]) & (event_sorted == 1))[0] - for j in range(J) - ] - R = [torch.where(time_sorted >= time_unique[j])[0] for j in range(J)] - - m = torch.tensor([len(h) for h in H]) - include = torch.tensor([len(h) > 0 for h in H]) - - log_nominator = torch.stack([torch.sum(log_hz_sorted[h]) for h in H]) - - denominator_naive = torch.stack([torch.sum(torch.exp(log_hz_sorted[r])) for r in R]) - denominator_ties = torch.stack([torch.sum(torch.exp(log_hz_sorted[h])) for h in H]) - - log_denominator_efron = torch.zeros(J).to(log_hz_sorted.device) - for j in range(J): - for l in range(1, m[j] + 1): - log_denominator_efron[j] += torch.log( - denominator_naive[j] - (l - 1) / m[j] * denominator_ties[j] - ) - - return (log_nominator - log_denominator_efron)[include] - - -def _partial_likelihood_breslow( - log_hz_sorted: torch.Tensor, - event_sorted: torch.Tensor, - time_sorted: torch.Tensor, -): - """Calculate the partial log likelihood for the Cox proportional hazards model - using Breslow's method to handle ties in event time. - - Args: - log_hz_sorted (torch.Tensor, float): - Log relative hazard of length n_samples, ordered by time-to-event or censoring. - event_sorted (torch.Tensor, bool): - Event indicator of length n_samples (= True if event occured), ordered by time-to-event or censoring. - time_sorted (torch.Tensor): - Time-to-event values sorted in order. - - Returns: - (torch.tensor, float): - Vector containing partial log likelihood estimated using Breslow's method. - """ - N = len(time_sorted) - - R = [torch.where(time_sorted >= time_sorted[i])[0] for i in range(N)] - log_denominator = torch.tensor( - [torch.logsumexp(log_hz_sorted[R[i]], dim=0) for i in range(N)] - ) - - return (log_hz_sorted - log_denominator)[event_sorted] - - -def _check_inputs(log_hz: torch.Tensor, event: torch.Tensor, time: torch.Tensor): - if not isinstance(log_hz, torch.Tensor): - raise TypeError("Input 'log_hz' must be a tensor.") - - if not isinstance(event, torch.Tensor): - raise TypeError("Input 'event' must be a tensor.") - - if not isinstance(time, torch.Tensor): - raise TypeError("Input 'time' must be a tensor.") - - if len(log_hz) != len(event): - raise ValueError( - "Length mismatch: 'log_hz' and 'event' must have the same length." - ) - - if len(time) != len(event): - raise ValueError( - "Length mismatch: 'time' must have the same length as 'event'." - ) - - if any(val < 0 for val in time): - raise ValueError("Invalid values: All elements in 'time' must be non-negative.") - - if any(val not in [True, False, 0, 1] for val in event): - raise ValueError( - "Invalid values: 'event' must contain only boolean values (True/False or 1/0)" - ) - - if __name__ == "__main__": import doctest diff --git a/src/torchsurv/loss/momentum.py b/src/torchsurv/loss/momentum.py index 8cab479..98f640a 100644 --- a/src/torchsurv/loss/momentum.py +++ b/src/torchsurv/loss/momentum.py @@ -151,15 +151,15 @@ def forward( """ - estimate_q = self.online(inputs) - for estimate in zip(estimate_q, event, time): - self.memory_q.append(self.survtuple(*list(estimate))) + online_estimate = self.online(inputs) + for estimate in zip(online_estimate, event, time): + self.memory_q.append(self.survtuple(*estimate)) loss = self._bank_loss() with torch.no_grad(): self._update_momentum_encoder() - estimate_k = self.target(inputs) - for estimate in zip(estimate_k, event, time): - self.memory_k.append(self.survtuple(*list(estimate))) + target_estimate = self.target(inputs) + for estimate in zip(target_estimate, event, time): + self.memory_k.append(self.survtuple(*estimate)) return loss @torch.no_grad() # deactivates autograd @@ -187,27 +187,33 @@ def infer(self, inputs: torch.Tensor) -> torch.Tensor: return self.target(inputs) def _bank_loss(self) -> torch.Tensor: - """computer the negative loss likelyhood from memory bank""" + """compute the negative log-likelihood from memory bank""" # Combine current batch and momentum bank = self.memory_k + self.memory_q assert all( x in bank[0]._fields for x in ["estimate", "event", "time"] ), "All fields must be present" - return self.loss( - torch.stack([mem.estimate.cpu() for mem in bank]).squeeze(), - torch.stack([mem.event.cpu() for mem in bank]).squeeze(), - torch.stack([mem.time.cpu() for mem in bank]).squeeze(), - ) + log_estimates = torch.stack([mem.estimate.cpu() for mem in bank]).squeeze() + events = torch.stack([mem.event.cpu() for mem in bank]).squeeze() + times = torch.stack([mem.time.cpu() for mem in bank]).squeeze() + return self.loss(log_estimates, events, times) @torch.no_grad() def _update_momentum_encoder(self): - """Exponantial moving average""" + """Exponential moving average""" for param_b, param_m in zip(self.online.parameters(), self.target.parameters()): param_m.data = param_m.data * self.rate + param_b.data * (1.0 - self.rate) @torch.no_grad() def _init_encoder_k(self): + """ + Initialize the target network (encoder_k) with the parameters of the online network (encoder_q). + The requires_grad attribute of the target network parameters is set to False to prevent gradient updates during training, + ensuring that the target network remains a stable reference point. + This method uses the `copy_` method to copy the parameters from the online network to the target network + and sets the requires_grad attribute of the target network parameters to False to prevent gradient updates. + """ for param_q, param_k in zip(self.online.parameters(), self.target.parameters()): param_k.data.copy_(param_q.data) param_k.requires_grad = False diff --git a/src/torchsurv/loss/weibull.py b/src/torchsurv/loss/weibull.py index 926488a..469aa39 100644 --- a/src/torchsurv/loss/weibull.py +++ b/src/torchsurv/loss/weibull.py @@ -2,7 +2,142 @@ import torch -TORCH_CLAMP_VALUE = 1e10 +from torchsurv.tools.validate_data import validate_log_shape, validate_loss + + +def cumulative_hazard( + log_params: torch.Tensor, + time: torch.Tensor, + all_times: bool = True, + clamp_value: float = 1e10, +) -> torch.Tensor: + """Cumulative hazard for the Weibull Accelerated Time Failure (AFT) survival model. + + Args: + log_params (torch.Tensor, float): + Parameters of the Weibull distribution of shape = (n_samples, 1) or (n_samples, 2). + The first column corresponds to the log scale parameter. The second column + corresponds to the log shape parameter. If the log shape parameter is missing, it is + imputed with 0. + time (torch.Tensor, float): + Time-to-event or censoring of length n_samples. + all_times (bool) + If True, subject-specific cumulative hazard is evaluated at all ``time`` (used for evaluation metrics). + If False, subject-specific cumulative hazard is evaluated at respective ``time``. + Defaults is True. + + Returns: + (torch.Tensor, float): Subject-specific cumulative hazard evaluated at ``time``. + + Examples: + >>> _ = torch.manual_seed(42) + >>> time = torch.randint(low=1, high=100, size=(4,)) + >>> log_params = torch.randn((4, 2)) + >>> cumulative_hazard(log_params, time, all_times=False) # Cumulative hazard at respective time + tensor([ 8.6257, 112.2115, 3.5105, 112.6339]) + >>> cumulative_hazard(log_params, time, all_times=True) # Default. Cumulative hazard at all time + tensor([[ 8.6257, 233.0865, 239.2167, 126.2805], + [ 12.7698, 112.2115, 114.1484, 74.9134], + [ 0.8706, 3.4725, 3.5105, 2.6850], + [ 6.9530, 212.7592, 218.5687, 112.6339]]) + """ + log_scale, log_shape = validate_log_shape(log_params).unbind(1) + + if all_times: + # Use all times for each sample + time = time.unsqueeze(0).expand(len(time), len(time)) # expand across rows + log_scale = log_scale.unsqueeze(1).expand( + len(time), len(time) + ) # expand across columns + log_shape = log_shape.unsqueeze(1).expand( + len(time), len(time) + ) # expand across columns + + return torch.clamp( + torch.exp( + torch.exp(log_shape) + * (torch.log(torch.clamp(time, min=1e-100, max=torch.inf)) - log_scale) + ), + min=0, + max=clamp_value, + ) + + +def log_hazard( + log_params: torch.Tensor, + time: torch.Tensor, + all_times: bool = True, + clamp_value: float = 1e10, +) -> torch.Tensor: + """Log hazard of the Weibull Accelerated Time Failure (AFT) survival model. + + Args: + log_params (torch.Tensor, float): + Parameters of the Weibull distribution of shape = (n_samples, 1) or (n_samples, 2). + The first column corresponds to the log scale parameter. The second column + corresponds to the log shape parameter. If the log shape parameter is missing, it is + imputed with 0. + time (torch.Tensor, float): + Time at which to evaluate the log hazard. + Should be of length n_samples to evaluate the log hazard at observed time-to-event or censoring, + or of length one to evaluate the log hazard at a new time. + all_times (bool): + If True, subject-specific log hazard is evaluated at all ``time`` (used for evaluation metrics). + If False, subject-specific log hazard is evaluated at respective ``time``. + Defaults is True. + Ignored if ``time`` is of length one. + + Returns: + (torch.Tensor, float): Subject-specific log hazard evaluated at ``time``. + + Examples: + >>> _ = torch.manual_seed(42) + >>> time = torch.randint(low=1, high=100, size=(4,)) + >>> log_params = torch.randn((4, 2)) + >>> log_hazard(log_params, time, all_times = False) # Log hazard at respective time + tensor([ 0.4392, -0.0303, -3.9672, 0.9140]) + >>> log_hazard(log_params, time, all_times = True) # Default. Log hazard at all time + tensor([[ 0.4392, 1.1174, 1.1227, 0.9913], + [ 0.4148, -0.0303, -0.0338, 0.0525], + [-2.7225, -3.9575, -3.9672, -3.7279], + [ 0.2606, 1.0632, 1.0695, 0.9140]]) + >>> log_hazard(log_params, time=torch.tensor(10.0)) # Log hazard at one new time (e.g., 10 years) + tensor([ 0.5316, 0.3542, -2.8907, 0.3699]) + >>> for t in torch.tensor([100.0, 150.0]): log_hazard(log_params, time=t) # Subject-specific log hazard at multiple new times + tensor([ 1.1280, -0.0372, -3.9767, 1.0757]) + tensor([ 1.2330, -0.1062, -4.1680, 1.1999]) + >>> log_params *= 1e2 # Increase scale + >>> log_hazard(log_params, time, all_times = False) # Check for Torch.Inf values + tensor([-1.0000e+10, -2.3197e+01, -6.8385e+01, -1.0000e+10]) + """ + + log_scale, log_shape = validate_log_shape(log_params).unbind(1) + + if time.dim() == 0: + # Use fixed time for each sample + time = time.repeat(len(log_params)) + elif time.size(0) == log_params.size(0) and all_times: + # Use all times for each sample + time = time.unsqueeze(0).expand(len(time), len(time)) # expand across rows + log_scale = log_scale.unsqueeze(1).expand( + len(time), len(time) + ) # expand across columns + log_shape = log_shape.unsqueeze(1).expand( + len(time), len(time) + ) # expand across columns + if time.size(0) != log_params.size(0): + raise ValueError( + f"Dimension mismatch: 'time' ({len(time)}) does not match the length of 'log_params' ({len(log_params)})." + ) + + return torch.clamp( + log_shape + - log_scale + + torch.expm1(log_shape) + * (torch.log(torch.clamp(time, min=1e-100, max=torch.inf)) - log_scale), + min=-clamp_value, + max=clamp_value, + ) def neg_log_likelihood( @@ -95,12 +230,12 @@ def neg_log_likelihood( """ if checks: - _check_inputs(log_params, event, time) + validate_loss(log_params, event, time, model_type="weibull") # Negative log likelihood nll = torch.neg( - event * log_hazard(log_params, time, all_times=False) - - cumulative_hazard(log_params, time, all_times=False) # Huge values here + event * log_hazard(log_params, time, False) + - cumulative_hazard(log_params, time, False) # Huge values here ) if any(torch.isinf(nll)): @@ -163,7 +298,7 @@ def survival_function( """ - log_scale, log_shape = _check_log_shape(log_params).unbind(1) + log_scale, log_shape = validate_log_shape(log_params).unbind(1) if time.dim() == 0: # Use one time for each sample @@ -186,183 +321,6 @@ def survival_function( ).cdf(time) -def log_hazard( - log_params: torch.Tensor, time: torch.Tensor, all_times: bool = True -) -> torch.Tensor: - """Log hazard of the Weibull Accelerated Time Failure (AFT) survival model. - - Args: - log_params (torch.Tensor, float): - Parameters of the Weibull distribution of shape = (n_samples, 1) or (n_samples, 2). - The first column corresponds to the log scale parameter. The second column - corresponds to the log shape parameter. If the log shape parameter is missing, it is - imputed with 0. - time (torch.Tensor, float): - Time at which to evaluate the log hazard. - Should be of length n_samples to evaluate the log hazard at observed time-to-event or censoring, - or of length one to evaluate the log hazard at a new time. - all_times (bool): - If True, subject-specific log hazard is evaluated at all ``time`` (used for evaluation metrics). - If False, subject-specific log hazard is evaluated at respective ``time``. - Defaults is True. - Ignored if ``time`` is of length one. - - Returns: - (torch.Tensor, float): Subject-specific log hazard evaluated at ``time``. - - Examples: - >>> _ = torch.manual_seed(42) - >>> time = torch.randint(low=1, high=100, size=(4,)) - >>> log_params = torch.randn((4, 2)) - >>> log_hazard(log_params, time, all_times = False) # Log hazard at respective time - tensor([ 0.4392, -0.0303, -3.9672, 0.9140]) - >>> log_hazard(log_params, time, all_times = True) # Default. Log hazard at all time - tensor([[ 0.4392, 1.1174, 1.1227, 0.9913], - [ 0.4148, -0.0303, -0.0338, 0.0525], - [-2.7225, -3.9575, -3.9672, -3.7279], - [ 0.2606, 1.0632, 1.0695, 0.9140]]) - >>> log_hazard(log_params, time=torch.tensor(10.0)) # Log hazard at one new time (e.g., 10 years) - tensor([ 0.5316, 0.3542, -2.8907, 0.3699]) - >>> for t in torch.tensor([100.0, 150.0]): log_hazard(log_params, time=t) # Subject-specific log hazard at multiple new times - tensor([ 1.1280, -0.0372, -3.9767, 1.0757]) - tensor([ 1.2330, -0.1062, -4.1680, 1.1999]) - >>> log_params *= 1e2 # Increase scale - >>> log_hazard(log_params, time, all_times = False) # Check for Torch.Inf values - tensor([-1.0000e+10, -2.3197e+01, -6.8385e+01, -1.0000e+10]) - """ - - log_scale, log_shape = _check_log_shape(log_params).unbind(1) - - if time.dim() == 0: - # Use fixed time for each sample - time = time.repeat(len(log_params)) - elif all([time.size(0) == log_params.size(0), all_times]): - # Use all times for each sample - time = time.unsqueeze(0).expand(len(time), len(time)) # expand across rows - log_scale = log_scale.unsqueeze(1).expand( - len(time), len(time) - ) # expand across columns - log_shape = log_shape.unsqueeze(1).expand( - len(time), len(time) - ) # expand across columns - if time.size(0) != log_params.size(0): - raise ValueError( - f"Dimension mismatch: 'time' ({len(time)}) does not match the length of 'log_params' ({len(log_params)})." - ) - - return torch.clamp( - log_shape - - log_scale - + torch.expm1(log_shape) - * (torch.log(torch.clip(time, 1e-100, torch.inf)) - log_scale), - min=-TORCH_CLAMP_VALUE, - max=TORCH_CLAMP_VALUE, - ) - - -def cumulative_hazard( - log_params: torch.Tensor, time: torch.Tensor, all_times: bool = True -) -> torch.Tensor: - """Cumulative hazard for the Weibull Accelerated Time Failure (AFT) survival model. - - Args: - log_params (torch.Tensor, float): - Parameters of the Weibull distribution of shape = (n_samples, 1) or (n_samples, 2). - The first column corresponds to the log scale parameter. The second column - corresponds to the log shape parameter. If the log shape parameter is missing, it is - imputed with 0. - time (torch.Tensor, float): - Time-to-event or censoring of length n_samples. - all_times (bool) - If True, subject-specific cumulative hazard is evaluated at all ``time`` (used for evaluation metrics). - If False, subject-specific cumulative hazard is evaluated at respective ``time``. - Defaults is True. - - Returns: - (torch.Tensor, float): Subject-specific cumulative hazard evaluated at ``time``. - - Examples: - >>> _ = torch.manual_seed(42) - >>> time = torch.randint(low=1, high=100, size=(4,)) - >>> log_params = torch.randn((4, 2)) - >>> cumulative_hazard(log_params, time, all_times=False) # Cumulative hazard at respective time - tensor([ 8.6257, 112.2115, 3.5105, 112.6339]) - >>> cumulative_hazard(log_params, time, all_times=True) # Default. Cumulative hazard at all time - tensor([[ 8.6257, 233.0865, 239.2167, 126.2805], - [ 12.7698, 112.2115, 114.1484, 74.9134], - [ 0.8706, 3.4725, 3.5105, 2.6850], - [ 6.9530, 212.7592, 218.5687, 112.6339]]) - """ - log_scale, log_shape = _check_log_shape(log_params).unbind(1) - - if all_times: - # Use all times for each sample - time = time.unsqueeze(0).expand(len(time), len(time)) # expand across rows - log_scale = log_scale.unsqueeze(1).expand( - len(time), len(time) - ) # expand across columns - log_shape = log_shape.unsqueeze(1).expand( - len(time), len(time) - ) # expand across columns - - return torch.clamp( - torch.exp( - torch.exp(log_shape) - * (torch.log(torch.clip(time, 1e-100, torch.inf)) - log_scale) - ), - min=0, - max=TORCH_CLAMP_VALUE, - ) - - -def _check_log_shape(log_params: torch.Tensor) -> torch.Tensor: - """Private function, check if the log shape is missing and impute it with 0 - if needed.""" - if any( - [ - log_params.dim() == 0, - log_params.dim() == 1, # if shape = [n_samples] - log_params.dim() > 1 - and log_params.size(1) == 1, # if shape = [n_samples, 1] - ] - ): - if log_params.dim() == 1: - log_params = log_params.unsqueeze(1) - - # Missing log shape parameter. Creating zeros placeholder instead. - log_params = torch.hstack((log_params, torch.zeros_like(log_params))) - - return log_params - - -def _check_inputs(log_params: torch.Tensor, event: torch.Tensor, time: torch.Tensor): - """Private function, perform input format checks.""" - if not isinstance(log_params, torch.Tensor): - raise TypeError("Input 'log_params' must be a tensor.") - - if not isinstance(event, torch.Tensor): - raise TypeError("Input 'event' must be a tensor.") - - if not isinstance(time, torch.Tensor): - raise TypeError("``Input 'time' must be a tensor.") - - if log_params.shape[0] != len(event): - raise ValueError( - "Length mismatch: The length of 'log_params' must match the length of 'event'." - ) - - if len(time) != len(event): - raise ValueError( - "Length mismatch: The length of 'time' must match the length of 'event'.`" - ) - - if any(val < 0 for val in time): - raise ValueError("All elements in 'time' must be non-negative.") - - if any(val not in [True, False, 0, 1] for val in event): - raise ValueError("All elements in 'event' must be boolean (True/False or 0/1).") - - if __name__ == "__main__": import doctest diff --git a/src/torchsurv/metrics/auc.py b/src/torchsurv/metrics/auc.py index b5a6a98..303e68e 100644 --- a/src/torchsurv/metrics/auc.py +++ b/src/torchsurv/metrics/auc.py @@ -6,8 +6,12 @@ from scipy import stats from torchmetrics import regression -from ..stats import kaplan_meier -from ..tools import validate_inputs +from torchsurv.stats import kaplan_meier +from torchsurv.tools.validate_data import ( + validate_log_shape, + validate_new_time, + validate_survival_data, +) class Auc: @@ -212,9 +216,9 @@ def __call__( # further input format checks if self.checks: - validate_inputs.validate_survival_data(event, time) - validate_inputs.validate_evaluation_time(new_time, time) - validate_inputs.validate_estimate(estimate, time, new_time) + validate_survival_data(event, time) + validate_new_time(new_time, time) + validate_log_shape(estimate) # sample size and length of time n_samples, n_times = estimate.shape[0], new_time.shape[0] @@ -579,7 +583,7 @@ def compare( return pvalue # pylint: disable=invalid-name - def _integrate_incident(self, S: torch.tensor, tmax: torch.tensor) -> torch.Tensor: + def _integrate_incident(self, S: torch.Tensor, tmax: torch.Tensor) -> torch.Tensor: """Integrates the incident/dynamic AUC, int_t AUC(t) x w(t) dt where w(t) = 2*f(t)*S(t) and f(t) is the lifeline distribution, S(t) is the survival distribution estimated with the Kaplan @@ -617,7 +621,7 @@ def _integrate_incident(self, S: torch.tensor, tmax: torch.tensor) -> torch.Tens # pylint: disable=invalid-name def _integrate_cumulative( - self, S: torch.tensor, tmax: torch.tensor + self, S: torch.Tensor, tmax: torch.Tensor ) -> torch.Tensor: """Integrates the cumulative/dynamic AUC, int_t AUC(t) · f(t) dt where f(t) is the lifeline distribution estimated from the discrete @@ -1168,7 +1172,7 @@ def _bootstrap_auc( @staticmethod def _find_torch_unique_indices( - inverse_indices: torch.tensor, counts: torch.tensor + inverse_indices: torch.Tensor, counts: torch.Tensor ) -> torch.tensor: """return unique_sorted_indices such that sorted_unique_tensor[inverse_indices] = original_tensor @@ -1214,12 +1218,12 @@ def _validate_auc_inputs( @staticmethod def _update_auc_new_time( - estimate: torch.tensor, - event: torch.tensor, - time: torch.tensor, - new_time: torch.tensor, - weight: torch.tensor, - weight_new_time: torch.tensor, + estimate: torch.Tensor, + event: torch.Tensor, + time: torch.Tensor, + new_time: torch.Tensor, + weight: torch.Tensor, + weight_new_time: torch.Tensor, ) -> torch.tensor: # update new time if ( @@ -1255,7 +1259,7 @@ def _update_auc_new_time( @staticmethod def _update_auc_estimate( - estimate: torch.tensor, new_time: torch.tensor + estimate: torch.Tensor, new_time: torch.Tensor ) -> torch.tensor: # squeeze estimate if shape = (n_samples, 1) if estimate.ndim == 2 and estimate.shape[1] == 1: @@ -1271,10 +1275,10 @@ def _update_auc_estimate( @staticmethod def _update_auc_weight( - time: torch.tensor, - new_time: torch.tensor, - weight: torch.tensor, - weight_new_time: torch.tensor, + time: torch.Tensor, + new_time: torch.Tensor, + weight: torch.Tensor, + weight_new_time: torch.Tensor, ) -> torch.tensor: # if weight was not specified, weight of 1 if weight is None: diff --git a/src/torchsurv/metrics/brier_score.py b/src/torchsurv/metrics/brier_score.py index e50ebe1..77c1f53 100644 --- a/src/torchsurv/metrics/brier_score.py +++ b/src/torchsurv/metrics/brier_score.py @@ -5,7 +5,11 @@ import torch from scipy import stats -from ..tools import validate_inputs +from torchsurv.tools.validate_data import ( + validate_log_shape, + validate_new_time, + validate_survival_data, +) class BrierScore: @@ -185,11 +189,9 @@ def __call__( # further input format checks if self.checks: - validate_inputs.validate_survival_data(event, time) - validate_inputs.validate_evaluation_time( - new_time, time, within_follow_up=False - ) - validate_inputs.validate_estimate(estimate, time, new_time) + validate_survival_data(event, time) + validate_new_time(new_time, time, within_follow_up=False) + validate_log_shape(estimate) # Calculating the residuals for each subject and time point residuals = torch.zeros_like(estimate) @@ -802,7 +804,7 @@ def _bootstrap_brier_score( @staticmethod def _find_torch_unique_indices( - inverse_indices: torch.tensor, counts: torch.tensor + inverse_indices: torch.Tensor, counts: torch.Tensor ) -> torch.tensor: """return unique_sorted_indices such that sorted_unique_tensor[inverse_indices] = original_tensor @@ -824,11 +826,11 @@ def _find_torch_unique_indices( @staticmethod def _validate_brier_score_inputs( - estimate: torch.tensor, - time: torch.tensor, - new_time: torch.tensor, - weight: torch.tensor, - weight_new_time: torch.tensor, + estimate: torch.Tensor, + time: torch.Tensor, + new_time: torch.Tensor, + weight: torch.Tensor, + weight_new_time: torch.Tensor, ) -> torch.tensor: # check new_time and weight are provided, weight_new_time should be provided if all([new_time is not None, weight is not None, weight_new_time is None]): @@ -855,11 +857,11 @@ def _validate_brier_score_inputs( @staticmethod def _update_brier_score_new_time( - estimate: torch.tensor, - time: torch.tensor, - new_time: torch.tensor, - weight: torch.tensor, - weight_new_time: torch.tensor, + estimate: torch.Tensor, + time: torch.Tensor, + new_time: torch.Tensor, + weight: torch.Tensor, + weight_new_time: torch.Tensor, ) -> torch.tensor: # check format of new_time if ( @@ -891,10 +893,10 @@ def _update_brier_score_new_time( @staticmethod def _update_brier_score_weight( - time: torch.tensor, - new_time: torch.tensor, - weight: torch.tensor, - weight_new_time: torch.tensor, + time: torch.Tensor, + new_time: torch.Tensor, + weight: torch.Tensor, + weight_new_time: torch.Tensor, ) -> torch.tensor: # if weight was not specified, weight of 1 if weight is None: diff --git a/src/torchsurv/metrics/cindex.py b/src/torchsurv/metrics/cindex.py index 9276a07..4882c6d 100644 --- a/src/torchsurv/metrics/cindex.py +++ b/src/torchsurv/metrics/cindex.py @@ -7,7 +7,7 @@ from scipy import stats from torchmetrics import regression -from ..tools import validate_inputs +from torchsurv.tools.validate_data import validate_log_shape, validate_survival_data class ConcordanceIndex: @@ -185,8 +185,8 @@ def __call__( # Inputs checks if self.checks: - validate_inputs.validate_survival_data(event, time) - validate_inputs.validate_estimate(estimate, time) + validate_survival_data(event, time) + validate_log_shape(estimate) # find comparable pairs comparable = self._get_comparable_and_tied_time(event, time) diff --git a/src/torchsurv/stats/ipcw.py b/src/torchsurv/stats/ipcw.py index 871cdd7..20446c9 100644 --- a/src/torchsurv/stats/ipcw.py +++ b/src/torchsurv/stats/ipcw.py @@ -1,18 +1,17 @@ -import sys import warnings from typing import Optional import torch -from ..tools import validate_inputs -from . import kaplan_meier +from torchsurv.stats import kaplan_meier +from torchsurv.tools.validate_data import validate_survival_data # pylint: disable=anomalous-backslash-in-string def get_ipcw( - event: torch.tensor, - time: torch.tensor, - new_time: Optional[torch.tensor] = None, + event: torch.Tensor, + time: torch.Tensor, + new_time: Optional[torch.Tensor] = None, checks: bool = True, ) -> torch.Tensor: """Calculate the inverse probability censoring weights (IPCW). @@ -56,7 +55,7 @@ def get_ipcw( """ if checks: - validate_inputs.validate_survival_data(event, time) + validate_survival_data(event, time) # time on which to evaluate IPCW if new_time is None: # if none, return ipcw of same size as time @@ -95,12 +94,14 @@ def _inverse_censoring_dist(ct: torch.Tensor) -> torch.Tensor: tensor([2.9701, 7.7634, 4.2651, 4.3415]) """ - if torch.any(ct.eq(0.0)): + if torch.any(ct == 0.0): + zero_indices = torch.nonzero(ct.eq(0.0)).squeeze() + zero_indices_list = zero_indices.tolist() # Explicitly convert to list warnings.warn( - "Censoring distribution zero at one or more time points. Returning ones as weight" + f"Censoring distribution zero at time points: {zero_indices_list}. Returning ones as weight" ) - return torch.ones_like(ct, dtype=ct.dtype) - weight = torch.ones(1, dtype=ct.dtype) / ct + weight = 1.0 / ct + weight = torch.ones_like(ct) / ct return weight @@ -111,6 +112,3 @@ def _inverse_censoring_dist(ct: torch.Tensor) -> torch.Tensor: results = doctest.testmod() if results.failed == 0: print("All tests passed.") - else: - print("Some doctests failed.") - sys.exit(1) diff --git a/src/torchsurv/stats/kaplan_meier.py b/src/torchsurv/stats/kaplan_meier.py index 31684cc..ea17fc7 100644 --- a/src/torchsurv/stats/kaplan_meier.py +++ b/src/torchsurv/stats/kaplan_meier.py @@ -4,7 +4,7 @@ import torch -from ..tools import validate_inputs +from torchsurv.tools.validate_data import validate_survival_data class KaplanMeierEstimator: @@ -12,8 +12,8 @@ class KaplanMeierEstimator: def __call__( self, - event: torch.tensor, - time: torch.tensor, + event: torch.Tensor, + time: torch.Tensor, censoring_dist: bool = False, check: bool = True, ): @@ -62,7 +62,7 @@ def __call__( # Check input validity if required if check: - validate_inputs.validate_survival_data(event, time) + validate_survival_data(event, time) # Compute the counts of events, censorings, and the number at risk at each unique time uniq_times, n_events, n_at_risk, n_censored = self._compute_counts() @@ -197,7 +197,7 @@ def print_survival_table(self): def _compute_counts( self, - ) -> Tuple[torch.tensor, torch.tensor, torch.tensor, torch.tensor]: + ) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]: """Compute the counts of events, censorings and risk set at ``time``. Returns: Tuple[torch.tensor, torch.tensor, torch.tensor, torch.tensor] diff --git a/src/torchsurv/tools/validate_data.py b/src/torchsurv/tools/validate_data.py new file mode 100644 index 0000000..571dd8f --- /dev/null +++ b/src/torchsurv/tools/validate_data.py @@ -0,0 +1,192 @@ +import torch + + +@torch.jit.script +def validate_log_shape(log_params: torch.Tensor) -> torch.Tensor: + """Private function, check if the log shape is missing and impute it with 0 + if needed.""" + if any( + [ + log_params.dim() == 0, + log_params.dim() == 1, # if shape = [n_samples] + log_params.dim() > 1 + and log_params.size(1) == 1, # if shape = [n_samples, 1] + ] + ): + if log_params.dim() == 1: + log_params = log_params.unsqueeze(1) + + # Missing log shape parameter. Creating zeros placeholder instead. + log_params = torch.hstack((log_params, torch.zeros_like(log_params))) + + return log_params + + +@torch.jit.script +def check_within_follow_up( + new_time: torch.Tensor, time: torch.Tensor, within_follow_up: bool +) -> None: + # Check if the within_follow_up flag is set to True + if within_follow_up: + # Check if any value in new_time is outside the range of time + if new_time.max() >= time.max() or new_time.min() < time.min(): + # Get the minimum and maximum values of time + min_time = time.min().item() + max_time = time.max().item() + # Raise a ValueError if new_time is not within the follow-up time range + raise ValueError( + "Value error: All new_time must be within follow-up time of test data: [{}; {}[".format( + min_time, max_time + ) + ) + + +@torch.jit.script +def validate_new_time( + new_time: torch.Tensor, time: torch.Tensor, within_follow_up: bool = True +) -> None: + """ + Validate the new_time tensor for survival analysis functions. + + Args: + new_time (torch.Tensor, float): Time points for metric computation of size n_times. + time (torch.Tensor, float): Event or censoring time of size n_samples. + within_follow_up (bool, optional): Whether values of ``new_time`` must be within values in ``time``. Defaults to True. + + Raises: + ValueError: If ``new_time`` contains duplicate values. + ValueError: If ``new_time`` is not sorted. + TypeError: If ``new_time`` is not a tensor. + ValueError: If ``new_time`` is not of floating-point type. + ValueError: If ``new_time`` is not within the range of follow-up in ``time``. Assessed only if ``within_follow_up`` is True. + """ + if not isinstance(new_time, torch.Tensor): + raise TypeError("Type error: Input 'new_time' should be a tensor.") + + if not torch.is_floating_point(new_time): + raise ValueError( + "Value error: Input 'new_time' should be of floating-point type." + ) + + new_time_sorted, _ = torch.sort(new_time) + if not torch.equal(new_time_sorted, new_time): + raise ValueError( + "Value error: Input 'new_time' should be sorted from the smallest time to the largest." + ) + + if len(new_time_sorted) != len(torch.unique(new_time_sorted)): + raise ValueError("Value error: Input 'new_time' should contain unique values.") + + check_within_follow_up(new_time, time, within_follow_up) + + +def validate_survival_data(event, time): + """Perform format and validity checks for survival data. + + Args: + event (torch.Tensor, boolean): + Event indicator of size n_samples (= True if event occured). + time (torch.Tensor, float): + Event or censoring time of size n_samples. + + Raises: + TypeError: If ``event`` or ``time`` are not tensors. + ValueError: If ``event`` is not boolean. + ValueError: If ``event`` and ``time`` are not of the same length. + ValueError: If all ``event`` are False. + ValueError: If any ``time`` are negative. + """ + if not torch.is_tensor(event) or not torch.is_tensor(time): + raise TypeError("Inputs 'event' and 'time' should be tensors") + + if not event.dtype == torch.bool: + raise ValueError("Input 'event' should be of boolean type.") + + if not torch.is_floating_point(time): + raise ValueError("Input 'time' should be of float type.") + + if len(event) != len(time): + raise ValueError( + "Dimension mismatch: Incompatible length between inputs 'time' and 'event'." + ) + + if torch.sum(event) <= 0: + raise ValueError("All samples are censored.") + + if torch.any(time < 0.0): + raise ValueError("Input 'time' should be non-negative.") + + +@torch.jit.script +def validate_loss( + log_params: torch.Tensor, event: torch.Tensor, time: torch.Tensor, model_type: str +) -> None: + """ + Validate the inputs for survival analysis functions. + + Args: + log_params (torch.Tensor): Parameters of the model (log hazards or log parameters). + event (torch.Tensor): Event indicator tensor. + time (torch.Tensor): Time-to-event or censoring tensor. + model_type (str): Type of the model ('weibull' or 'cox'). + + Raises: + TypeError: If inputs are not tensors. + ValueError: If any `time` are negative. + ValueError: If `event` contains invalid values. + ValueError: If lengths of inputs do not match. + """ + if not isinstance(log_params, torch.Tensor): + raise TypeError("Input 'log_params' must be a tensor.") + + if not isinstance(event, torch.Tensor): + raise TypeError("Input 'event' must be a tensor.") + + if not isinstance(time, torch.Tensor): + raise TypeError("Input 'time' must be a tensor.") + + if log_params.shape[0] != len(event): + raise ValueError( + "Length mismatch: The length of 'log_params' must match the length of 'event'." + ) + + if len(time) != len(event): + raise ValueError( + "Length mismatch: The length of 'time' must match the length of 'event'." + ) + + if torch.any(time < 0): + raise ValueError("All elements in 'time' must be non-negative.") + + if torch.any((event != 0) & (event != 1)): + raise ValueError( + "Invalid values: 'event' must contain only boolean values (True/False or 1/0)" + ) + + if model_type == "weibull": + # if log_params.shape[1] is not 1 or 2: + if log_params.shape[1] not in [1, 2]: + raise ValueError( + f"For Weibull model, 'log_params' must have shape (n_samples, 2) or (n_samples, 1)." + ) + elif model_type == "cox": + if log_params.shape[1] != 1: + raise ValueError( + "For Cox model, 'log_params' must have shape (n_samples, 1)." + ) + else: + raise ValueError("Invalid model type. Must be 'weibull' or 'cox'.") + + +# Example usage +if __name__ == "__main__": + log_params_weibull = torch.randn((5, 2)) + log_params_cox = torch.randn((5, 1)) + event = torch.tensor([1, 0, 1, 1, 0], dtype=torch.float32) + time = torch.tensor([10, 20, 30, 40, 50], dtype=torch.float32) + + # Validate Weibull model inputs + validate_loss(log_params_weibull, event, time, model_type="weibull") + + # Validate Cox model inputs + validate_loss(log_params_cox, event, time, model_type="cox") diff --git a/src/torchsurv/tools/validate_inputs.py b/src/torchsurv/tools/validate_inputs.py deleted file mode 100644 index 1d19023..0000000 --- a/src/torchsurv/tools/validate_inputs.py +++ /dev/null @@ -1,125 +0,0 @@ -import torch - - -def validate_survival_data(event, time): - """Perform format and validity checks for survival data. - - Args: - event (torch.Tensor, boolean): - Event indicator of size n_samples (= True if event occured). - time (torch.Tensor, float): - Event or censoring time of size n_samples. - - Raises: - TypeError: If ``event`` or ``time`` are not tensors. - ValueError: If ``event`` is not boolean. - ValueError: If ``event`` and ``time`` are not of the same length. - ValueError: If all ``event`` are False. - ValueError: If any ``time`` are negative. - """ - if not torch.is_tensor(event) or not torch.is_tensor(time): - raise TypeError("Inputs 'event' and 'time' should be tensors") - - if not event.dtype == torch.bool: - raise ValueError("Input 'event' should be of boolean type.") - - if not torch.is_floating_point(time): - raise ValueError("Input 'time' should be of float type.") - - if len(event) != len(time): - raise ValueError( - "Dimension mismatch: Incompatible length between inputs 'time' and 'event'." - ) - - if torch.sum(event) <= 0: - raise ValueError("All samples are censored.") - - if torch.any(time < 0.0): - raise ValueError("Input 'time' should be non-negative.") - - -def validate_evaluation_time(new_time, time, within_follow_up=True): - """Perform format and validity checks for evaluation time. - - Args: - new_time (torch.Tensor, optional): - Time points for metric computation of size n_times. - time (torch.Tensor, float): - Event or censoring time of size n_samples. - within_follow_up (bool, optional): - Whether values of ``new_time`` must be within values in ``time``. - Defaults to True. - - Raises: - ValueError: If ``new_time`` contains duplicate values. - ValueError: If ``new_time`` is not sorted. - TypeError: If ``new_time`` is not a tensor. - ValueError: If ``new_time`` is not of floating-point type. - ValueError: - If ``new_time`` is not within the range of follow-up in ``time``. - Assessed only if ``within_follow_up`` is True. - """ - new_time_sorted, indices = torch.unique(new_time, return_inverse=True) - - if len(new_time_sorted) != len(new_time): - raise ValueError("'Value error: Input 'new_time' should contain unique values.") - - if not torch.all(indices == torch.arange(len(new_time))): - raise ValueError( - "Value error: Input 'new_time' should be sorted from the smallest time to the largest." - ) - - if not torch.is_tensor(new_time): - raise TypeError("Type error: Input 'new_time' should be a tensor.") - - if not torch.is_floating_point(new_time): - raise ValueError( - "Value error: Input 'new_time' should be of floating-point type." - ) - - if within_follow_up: - if new_time.max() >= time.max() or new_time.min() < time.min(): - raise ValueError( - "Value error: All new_time must be within follow-up time of test data: [{}; {}[".format( - time.min(), time.max() - ) - ) - - -def validate_estimate(estimate, time, new_time=None) -> None: - """Perform format and validity checks for estimate. - - Args: - estimate (torch.Tensor): - Estimates of shape = (n_samples,) or (n_samples, n_times). - time (torch.Tensor, float): - Time of event or censoring of size n_samples. - new_time (torch.Tensor, optional): - Time points for metric computation of size n_times. - - Raises: - TypeError: If ``estimate`` is not a tensor. - ValueError: If ``estimate`` has more than 2 dimensions. - ValueError: If number of rows of ``estimate`` is not n_samples. - ValueError: - If number of columns of ``estimate`` is not n_times. - Assessed only if ``new_time`` is not None. - """ - if not torch.is_tensor(estimate): - raise TypeError("Type error: Input 'estimate' should be a tensor.") - - if estimate.ndim > 2: - raise ValueError("Value error: Input 'estimate' should have 1 or 2 dimensions.") - - if estimate.shape[0] != time.shape[0]: - raise ValueError( - "Dimension mismatch: Inconsistent number of samples between inputs 'time' and 'estimate'." - ) - - if not new_time is None: - if estimate.ndim == 2 and estimate.shape[1] != new_time.shape[0]: - raise ValueError( - "Dimension mismatch: Expected inputs 'estimate' with {} columns, but got {}".format( - new_time.shape[0], estimate.shape[1] - ) - ) diff --git a/tests/test_kaplan_meier.py b/tests/test_kaplan_meier.py index 62e0a5d..76eaa6d 100644 --- a/tests/test_kaplan_meier.py +++ b/tests/test_kaplan_meier.py @@ -216,6 +216,45 @@ def test_kaplan_meier_prediction_error_raised(self): self.assertRaises(ValueError, km.predict, test_time) + def test_kaplan_meier_plot_km(self): + """test Kaplan Meier plot function""" + import matplotlib.pyplot as plt + + event = torch.tensor([1, 1, 0, 1, 0, 1, 0, 0, 1, 1], dtype=torch.bool) + time = torch.tensor([1, 2, 2, 3, 3, 4, 4, 5, 6, 7], dtype=torch.float32) + + km = KaplanMeierEstimator() + km(event, time, censoring_dist=False) + + fig, ax = plt.subplots() + km.plot_km(ax=ax) + plt.close(fig) # Close the plot to avoid displaying it during tests + + def test_kaplan_meier_print_survival_table(self): + """test Kaplan Meier print survival table function""" + event = torch.tensor([1, 1, 0, 1, 0, 1, 0, 0, 1, 1], dtype=torch.bool) + time = torch.tensor([1, 2, 2, 3, 3, 4, 4, 5, 6, 7], dtype=torch.float32) + + km = KaplanMeierEstimator() + km(event, time, censoring_dist=False) + km.print_survival_table() + + # Check if the survival table is printed correctly + expected_output = ( + "Time\tSurvival\n" + "----------------\n" + "1.00\t1.0000\n" + "2.00\t0.8889\n" + "3.00\t0.6667\n" + "4.00\t0.5000\n" + "5.00\t0.5000\n" + "6.00\t0.3333\n" + "7.00\t0.0000\n" + ) + with self.assertLogs(level="INFO") as log: + km.print_survival_table() + self.assertIn(expected_output, log.output) + if __name__ == "__main__": unittest.main() diff --git a/tests/test_momentum.py b/tests/test_momentum.py index 7ee295f..c5e2b58 100644 --- a/tests/test_momentum.py +++ b/tests/test_momentum.py @@ -1,5 +1,4 @@ import unittest -from functools import partial import torch from torch import nn