From 69004bc6c3239bcfc82cfeeee0c12b1c8f40b870 Mon Sep 17 00:00:00 2001 From: Tilman Krokotsch Date: Thu, 16 Nov 2023 16:03:04 +0100 Subject: [PATCH] docs: update example notebooks (#51) * docs: update and re-run all example notebooks * docs: fix argument names in docstrings --- docs/examples/adarul.ipynb | 92 ++++---- docs/examples/cnn_dann.ipynb | 95 ++++---- docs/examples/conditional.ipynb | 321 +++++---------------------- docs/examples/consistency_dann.ipynb | 78 ++++--- docs/examples/latent_align.ipynb | 217 +++++++++++------- docs/examples/lstm_dann.ipynb | 94 ++++---- docs/examples/pseudo_labels.ipynb | 90 ++++---- docs/examples/tbigru.ipynb | 126 +++++------ rul_adapt/model/cnn.py | 2 +- rul_adapt/model/rnn.py | 6 +- 10 files changed, 491 insertions(+), 630 deletions(-) diff --git a/docs/examples/adarul.ipynb b/docs/examples/adarul.ipynb index 39b66337..08d69087 100644 --- a/docs/examples/adarul.ipynb +++ b/docs/examples/adarul.ipynb @@ -13,8 +13,8 @@ "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2023-06-13T13:52:16.521279735Z", - "start_time": "2023-06-13T13:52:15.033977874Z" + "end_time": "2023-11-16T14:02:18.606749736Z", + "start_time": "2023-11-16T14:02:16.904318303Z" } }, "outputs": [], @@ -42,8 +42,8 @@ "execution_count": 2, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T13:52:16.788563939Z", - "start_time": "2023-06-13T13:52:16.521775963Z" + "end_time": "2023-11-16T14:02:18.834709633Z", + "start_time": "2023-11-16T14:02:18.608371867Z" } }, "outputs": [ @@ -83,8 +83,8 @@ "execution_count": 3, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T13:54:08.719456405Z", - "start_time": "2023-06-13T13:52:16.790944129Z" + "end_time": "2023-11-16T14:03:51.238690150Z", + "start_time": "2023-11-16T14:02:18.834977822Z" } }, "outputs": [ @@ -97,8 +97,10 @@ "----------------------------------------------------------------\n", "0 | train_loss | MeanSquaredError | 0 \n", "1 | val_loss | MeanSquaredError | 0 \n", - "2 | _feature_extractor | ActivationDropoutWrapper | 62.5 K\n", - "3 | _regressor | FullyConnectedHead | 6.3 K \n", + "2 | test_loss | MeanSquaredError | 0 \n", + "3 | evaluator | AdaptionEvaluator | 0 \n", + "4 | _feature_extractor | ActivationDropoutWrapper | 62.5 K\n", + "5 | _regressor | FullyConnectedHead | 6.3 K \n", "----------------------------------------------------------------\n", "68.7 K Trainable params\n", "0 Non-trainable params\n", @@ -112,7 +114,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "f0482d0d9bcf4fed9ee80144d4768e21" + "model_id": "8955d63606284c038e7c46f4ac715bf4" } }, "metadata": {}, @@ -124,7 +126,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "51a1bf984cd94c1c8bc2c9e8e12410dc" + "model_id": "26e2b87dbf144b80824762f64fa5f380" } }, "metadata": {}, @@ -136,7 +138,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "40f32180d1664716afcacba73a85cc77" + "model_id": "625a04b373054424896fb9fde921e80f" } }, "metadata": {}, @@ -168,8 +170,8 @@ "execution_count": 4, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T13:54:22.009053349Z", - "start_time": "2023-06-13T13:54:08.721360656Z" + "end_time": "2023-11-16T14:04:03.035152695Z", + "start_time": "2023-11-16T14:03:51.238597478Z" } }, "outputs": [ @@ -199,7 +201,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "a28ddb7f70584546afd2a8012b2fa4a1" + "model_id": "fe5a6f05c6e9431094ba9afc33e674f0" } }, "metadata": {}, @@ -219,7 +221,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "8a9861bab7254a469e77d14d2d099895" + "model_id": "60e18cd8aeb3447e81275989fb8fc445" } }, "metadata": {}, @@ -231,7 +233,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "a0e90d98cb0f4922ade78793e7c36fcf" + "model_id": "6cd1bb27a4624a71975daca2658abec1" } }, "metadata": {}, @@ -250,7 +252,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "dd10463d106245759bf7df76141c5ecf" + "model_id": "455a25a04c3045f8886cc83e655a2b42" } }, "metadata": {}, @@ -263,16 +265,16 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Test metric DataLoader 0 DataLoader 1\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/source/rmse 24.638370513916016\n", - " test/source/score 1310.9384765625\n", - " test/target/rmse 31.75853157043457\n", - " test/target/score 2995.100341796875\n", + " test/source/rmse 24.635229110717773\n", + " test/source/score 1310.8724365234375\n", + " test/target/rmse 31.754472732543945\n", + " test/target/score 2988.716064453125\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'test/source/rmse/dataloader_idx_0': 24.638370513916016,\n 'test/source/score/dataloader_idx_0': 1310.9384765625},\n {'test/target/rmse/dataloader_idx_1': 31.75853157043457,\n 'test/target/score/dataloader_idx_1': 2995.100341796875}]" + "text/plain": "[{'test/source/rmse/dataloader_idx_0': 24.635229110717773,\n 'test/source/score/dataloader_idx_0': 1310.8724365234375},\n {'test/target/rmse/dataloader_idx_1': 31.754472732543945,\n 'test/target/score/dataloader_idx_1': 2988.716064453125}]" }, "execution_count": 4, "metadata": {}, @@ -300,8 +302,8 @@ "execution_count": 5, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T13:54:22.059818733Z", - "start_time": "2023-06-13T13:54:22.007844833Z" + "end_time": "2023-11-16T14:04:03.083226295Z", + "start_time": "2023-11-16T14:04:03.034510227Z" } }, "outputs": [ @@ -321,17 +323,19 @@ " percent_broken: 1.0\n", " batch_size: 10\n", "feature_extractor:\n", + " _convert_: all\n", " _target_: rul_adapt.model.ActivationDropoutWrapper\n", " wrapped:\n", " _target_: rul_adapt.model.LstmExtractor\n", " input_channels: 14\n", - " lstm_units:\n", + " units:\n", " - 32\n", " - 32\n", " - 32\n", " bidirectional: true\n", " dropout: 0.5\n", "regressor:\n", + " _convert_: all\n", " _target_: rul_adapt.model.FullyConnectedHead\n", " input_channels: 64\n", " act_func_on_last_layer: false\n", @@ -341,6 +345,7 @@ " - 1\n", " dropout: 0.5\n", "domain_disc:\n", + " _convert_: all\n", " _target_: rul_adapt.model.FullyConnectedHead\n", " input_channels: 64\n", " act_func_on_last_layer: false\n", @@ -367,8 +372,7 @@ "trainer:\n", " _target_: pytorch_lightning.Trainer\n", " max_epochs: 20\n", - " limit_train_batches: 36\n", - "\n" + " limit_train_batches: 36\n" ] } ], @@ -392,8 +396,8 @@ "execution_count": 7, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T13:57:50.813643098Z", - "start_time": "2023-06-13T13:57:44.737726224Z" + "end_time": "2023-11-16T14:09:36.657065211Z", + "start_time": "2023-11-16T14:09:30.286988058Z" } }, "outputs": [ @@ -405,15 +409,17 @@ "TPU available: False, using: 0 TPU cores\n", "IPU available: False, using: 0 IPUs\n", "HPU available: False, using: 0 HPUs\n", - "/home/tilman/Programming/rul-adapt/.venv/lib/python3.8/site-packages/pytorch_lightning/callbacks/model_checkpoint.py:613: UserWarning: Checkpoint directory /home/tilman/Programming/rul-adapt/examples/lightning_logs/version_70/checkpoints exists and is not empty.\n", + "/home/tilman/Programming/rul-adapt/.venv/lib/python3.8/site-packages/pytorch_lightning/callbacks/model_checkpoint.py:613: UserWarning: Checkpoint directory /home/tilman/Programming/rul-adapt/docs/examples/lightning_logs/version_24/checkpoints exists and is not empty.\n", " rank_zero_warn(f\"Checkpoint directory {dirpath} exists and is not empty.\")\n", "\n", " | Name | Type | Params\n", "----------------------------------------------------------\n", "0 | train_loss | MeanSquaredError | 0 \n", "1 | val_loss | MeanSquaredError | 0 \n", - "2 | _feature_extractor | CnnExtractor | 5.3 K \n", - "3 | _regressor | FullyConnectedHead | 81 \n", + "2 | test_loss | MeanSquaredError | 0 \n", + "3 | evaluator | AdaptionEvaluator | 0 \n", + "4 | _feature_extractor | CnnExtractor | 5.3 K \n", + "5 | _regressor | FullyConnectedHead | 81 \n", "----------------------------------------------------------\n", "5.4 K Trainable params\n", "0 Non-trainable params\n", @@ -427,7 +433,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "fba79650766b4004ac9369cdc3905124" + "model_id": "8c2a29c85a3449e3b0a6237034fe7477" } }, "metadata": {}, @@ -464,7 +470,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "490aa272190a4daeadafababd9ed73a6" + "model_id": "796994b72921489fb85490c2bdf876a4" } }, "metadata": {}, @@ -476,7 +482,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "1abea8ac5fad41ccaae139a658bc7a3f" + "model_id": "2b8111c44ecd4039b2b94ff0cbd1b926" } }, "metadata": {}, @@ -488,7 +494,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "0780ccf9bef04bf6b8d1f91fe21218de" + "model_id": "9e0491af3e2b42e1835d5b206a64d712" } }, "metadata": {}, @@ -507,7 +513,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "be087729f37c49e4a5a52ee27e0910b9" + "model_id": "41a242a13d4843359f25b3ec0c4993d2" } }, "metadata": {}, @@ -520,16 +526,16 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Test metric DataLoader 0 DataLoader 1\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/source/rmse 114.05007934570312\n", - " test/source/score 4811891.5\n", - " test/target/rmse 114.94615173339844\n", - " test/target/score 4405463.5\n", + " test/source/rmse 65.23387908935547\n", + " test/source/score 70147.4921875\n", + " test/target/rmse 66.29417419433594\n", + " test/target/score 64386.578125\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'test/source/rmse/dataloader_idx_0': 114.05007934570312,\n 'test/source/score/dataloader_idx_0': 4811891.5},\n {'test/target/rmse/dataloader_idx_1': 114.94615173339844,\n 'test/target/score/dataloader_idx_1': 4405463.5}]" + "text/plain": "[{'test/source/rmse/dataloader_idx_0': 65.23387908935547,\n 'test/source/score/dataloader_idx_0': 70147.4921875},\n {'test/target/rmse/dataloader_idx_1': 66.29417419433594,\n 'test/target/score/dataloader_idx_1': 64386.578125}]" }, "execution_count": 7, "metadata": {}, @@ -547,7 +553,7 @@ "\n", "feature_extractor = rul_adapt.model.CnnExtractor(\n", " input_channels=14,\n", - " conv_filters=[16, 16, 16],\n", + " units=[16, 16, 16],\n", " seq_len=30,\n", " fc_units=8,\n", ")\n", diff --git a/docs/examples/cnn_dann.ipynb b/docs/examples/cnn_dann.ipynb index 85f6508f..d8f57cdd 100644 --- a/docs/examples/cnn_dann.ipynb +++ b/docs/examples/cnn_dann.ipynb @@ -9,11 +9,11 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 15, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T13:59:45.008141277Z", - "start_time": "2023-06-13T13:59:44.996957762Z" + "end_time": "2023-11-16T14:00:28.983541085Z", + "start_time": "2023-11-16T14:00:28.967329196Z" } }, "outputs": [], @@ -41,11 +41,11 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 16, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T13:59:45.140271168Z", - "start_time": "2023-06-13T13:59:45.003005075Z" + "end_time": "2023-11-16T14:00:29.101687264Z", + "start_time": "2023-11-16T14:00:28.973912067Z" } }, "outputs": [ @@ -75,11 +75,11 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 17, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T13:59:45.141064072Z", - "start_time": "2023-06-13T13:59:45.139545737Z" + "end_time": "2023-11-16T14:00:29.102039411Z", + "start_time": "2023-11-16T14:00:29.101468753Z" } }, "outputs": [ @@ -87,7 +87,7 @@ "data": { "text/plain": "CnnExtractor(\n (_layers): Sequential(\n (conv_0): Sequential(\n (0): Conv1d(14, 10, kernel_size=(10,), stride=(1,), padding=same)\n (1): Tanh()\n )\n (conv_1): Sequential(\n (0): Conv1d(10, 10, kernel_size=(10,), stride=(1,), padding=same)\n (1): Tanh()\n )\n (conv_2): Sequential(\n (0): Conv1d(10, 10, kernel_size=(10,), stride=(1,), padding=same)\n (1): Tanh()\n )\n (conv_3): Sequential(\n (0): Conv1d(10, 10, kernel_size=(10,), stride=(1,), padding=same)\n (1): Tanh()\n )\n (conv_4): Sequential(\n (0): Conv1d(10, 1, kernel_size=(10,), stride=(1,), padding=same)\n (1): Tanh()\n )\n (5): Flatten(start_dim=1, end_dim=-1)\n )\n)" }, - "execution_count": 7, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -106,11 +106,11 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 19, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T13:59:48.113612593Z", - "start_time": "2023-06-13T13:59:45.139936471Z" + "end_time": "2023-11-16T14:00:31.519051474Z", + "start_time": "2023-11-16T14:00:29.133710300Z" } }, "outputs": [ @@ -139,7 +139,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "090b6967afc849ec99bc077cb2f3b185" + "model_id": "aa719077fe4b41609121ccf8d1d6a215" } }, "metadata": {}, @@ -159,7 +159,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "95ec0d45e2b247f9b06cf5b5a5772173" + "model_id": "9877335865124c9ea94a9b7e55937e33" } }, "metadata": {}, @@ -171,7 +171,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "924ba7e4bf4a4188b699a5d96dc0e50e" + "model_id": "2445d7efd12d44c4b0f6d2844ebab8d1" } }, "metadata": {}, @@ -182,8 +182,8 @@ "output_type": "stream", "text": [ "`Trainer.fit` stopped: `max_epochs=1` reached.\n", - "Restoring states from the checkpoint path at /home/tilman/Programming/rul-adapt/examples/lightning_logs/version_73/checkpoints/epoch=0-step=35.ckpt\n", - "Loaded model weights from checkpoint at /home/tilman/Programming/rul-adapt/examples/lightning_logs/version_73/checkpoints/epoch=0-step=35.ckpt\n" + "Restoring states from the checkpoint path at /home/tilman/Programming/rul-adapt/docs/examples/lightning_logs/version_21/checkpoints/epoch=0-step=35.ckpt\n", + "Loaded model weights from checkpoint at /home/tilman/Programming/rul-adapt/docs/examples/lightning_logs/version_21/checkpoints/epoch=0-step=35.ckpt\n" ] }, { @@ -192,7 +192,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "8bb6a38d654c4678b593bd1d8631002e" + "model_id": "5411a38e032b4e89bcb8486b2bd9fece" } }, "metadata": {}, @@ -205,18 +205,18 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Test metric DataLoader 0 DataLoader 1\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/source/rmse 73.9995346069336\n", - " test/source/score 158398.34375\n", - " test/target/rmse 75.4319076538086\n", - " test/target/score 151056.078125\n", + " test/source/rmse 73.9958724975586\n", + " test/source/score 158354.40625\n", + " test/target/rmse 75.42831420898438\n", + " test/target/score 151000.71875\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'test/source/rmse/dataloader_idx_0': 73.9995346069336,\n 'test/source/score/dataloader_idx_0': 158398.34375},\n {'test/target/rmse/dataloader_idx_1': 75.4319076538086,\n 'test/target/score/dataloader_idx_1': 151056.078125}]" + "text/plain": "[{'test/source/rmse/dataloader_idx_0': 73.9958724975586,\n 'test/source/score/dataloader_idx_0': 158354.40625},\n {'test/target/rmse/dataloader_idx_1': 75.42831420898438,\n 'test/target/score/dataloader_idx_1': 151000.71875}]" }, - "execution_count": 8, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -236,11 +236,11 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 20, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T13:59:48.177826071Z", - "start_time": "2023-06-13T13:59:48.112752293Z" + "end_time": "2023-11-16T14:00:31.598979723Z", + "start_time": "2023-11-16T14:00:31.530833804Z" } }, "outputs": [ @@ -258,9 +258,10 @@ " percent_broken: 1.0\n", " batch_size: 512\n", "feature_extractor:\n", + " _convert_: all\n", " _target_: rul_adapt.model.CnnExtractor\n", " input_channels: 14\n", - " conv_filters:\n", + " units:\n", " - 10\n", " - 10\n", " - 10\n", @@ -269,10 +270,11 @@ " seq_len: 30\n", " kernel_size: 10\n", " padding: true\n", - " conv_act_func: torch.nn.Tanh\n", + " act_func: torch.nn.Tanh\n", "regressor:\n", " _target_: rul_adapt.model.wrapper.DropoutPrefix\n", " wrapped:\n", + " _convert_: all\n", " _target_: rul_adapt.model.FullyConnectedHead\n", " input_channels: 30\n", " act_func_on_last_layer: false\n", @@ -282,6 +284,7 @@ " - 1\n", " dropout: 0.5\n", "domain_disc:\n", + " _convert_: all\n", " _target_: rul_adapt.model.FullyConnectedHead\n", " input_channels: 30\n", " act_func_on_last_layer: false\n", @@ -290,6 +293,7 @@ " - 1\n", " act_func: torch.nn.Tanh\n", "dann:\n", + " _convert_: all\n", " _target_: rul_adapt.approach.DannApproach\n", " dann_factor: 3.0\n", " lr: 0.001\n", @@ -305,8 +309,7 @@ " - _target_: pytorch_lightning.callbacks.ModelCheckpoint\n", " save_top_k: 1\n", " monitor: val/target/rmse/dataloader_idx_1\n", - " mode: min\n", - "\n" + " mode: min\n" ] } ], @@ -327,11 +330,11 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 21, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:00:04.342594666Z", - "start_time": "2023-06-13T13:59:48.183145723Z" + "end_time": "2023-11-16T14:00:44.404607001Z", + "start_time": "2023-11-16T14:00:31.602212118Z" } }, "outputs": [ @@ -364,7 +367,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "84ea6ddb34f04af0ba4a70ac197560c9" + "model_id": "bf718164c9b340cfa6ddd077cf0bc6b6" } }, "metadata": {}, @@ -376,7 +379,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "46890f63979144f5add803a68ba54b5f" + "model_id": "b2932e429b454ab0976cfff153a19e76" } }, "metadata": {}, @@ -388,7 +391,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "3a9e9baa9a9b4f4aa74776d840bcdb2a" + "model_id": "67f7de3c109544b58e2dd4d55e6f9ea1" } }, "metadata": {}, @@ -407,7 +410,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "ab52c020775a45d3ba192085a2f01d17" + "model_id": "3495d1e032d84e2b9e6b457cbf98bde8" } }, "metadata": {}, @@ -420,18 +423,18 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Test metric DataLoader 0 DataLoader 1\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/source/rmse 21.133846282958984\n", - " test/source/score 3211.978759765625\n", - " test/target/rmse 20.884653091430664\n", - " test/target/score 1824.98193359375\n", + " test/source/rmse 20.788148880004883\n", + " test/source/score 3068.064453125\n", + " test/target/rmse 18.67778778076172\n", + " test/target/score 1114.4984130859375\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'test/source/rmse/dataloader_idx_0': 21.133846282958984,\n 'test/source/score/dataloader_idx_0': 3211.978759765625},\n {'test/target/rmse/dataloader_idx_1': 20.884653091430664,\n 'test/target/score/dataloader_idx_1': 1824.98193359375}]" + "text/plain": "[{'test/source/rmse/dataloader_idx_0': 20.788148880004883,\n 'test/source/score/dataloader_idx_0': 3068.064453125},\n {'test/target/rmse/dataloader_idx_1': 18.67778778076172,\n 'test/target/score/dataloader_idx_1': 1114.4984130859375}]" }, - "execution_count": 10, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -446,7 +449,7 @@ "\n", "feature_extractor = rul_adapt.model.LstmExtractor(\n", " input_channels=14,\n", - " lstm_units=[16],\n", + " units=[16],\n", " fc_units=8,\n", ")\n", "regressor = rul_adapt.model.FullyConnectedHead(\n", diff --git a/docs/examples/conditional.ipynb b/docs/examples/conditional.ipynb index 74abeb13..55180b2e 100644 --- a/docs/examples/conditional.ipynb +++ b/docs/examples/conditional.ipynb @@ -9,12 +9,12 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 8, "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2023-06-13T14:00:31.332977439Z", - "start_time": "2023-06-13T14:00:29.840459905Z" + "end_time": "2023-11-16T14:32:09.121530907Z", + "start_time": "2023-11-16T14:32:09.084438423Z" } }, "outputs": [], @@ -45,11 +45,11 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { + "is_executing": true, "ExecuteTime": { - "end_time": "2023-06-13T14:00:31.394110771Z", - "start_time": "2023-06-13T14:00:31.333773993Z" + "start_time": "2023-11-16T14:32:09.094303494Z" } }, "outputs": [ @@ -57,7 +57,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[(125, 110.0), (55.0, 125.0), (110.0, 0.0)]\n" + "[(110.0, 125), (55.0, 125.0), (0.0, 110.0)]\n" ] } ], @@ -69,7 +69,7 @@ "lower_quart = np.quantile(targets, 0.25)\n", "upper_quart = np.quantile(targets, 0.75)\n", "\n", - "fuzzy_sets = [(fd3.max_rul, median), (lower_quart, upper_quart), (median, 0.0)]\n", + "fuzzy_sets = [(median, fd3.max_rul), (lower_quart, upper_quart), (0.0, median)]\n", "print(fuzzy_sets)" ] }, @@ -83,11 +83,11 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { + "is_executing": true, "ExecuteTime": { - "end_time": "2023-06-13T14:00:31.398829541Z", - "start_time": "2023-06-13T14:00:31.396567118Z" + "start_time": "2023-11-16T14:32:09.187582789Z" } }, "outputs": [], @@ -108,11 +108,11 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { + "is_executing": true, "ExecuteTime": { - "end_time": "2023-06-13T14:00:31.443813227Z", - "start_time": "2023-06-13T14:00:31.402258483Z" + "start_time": "2023-11-16T14:32:09.187784606Z" } }, "outputs": [], @@ -141,224 +141,11 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { - "ExecuteTime": { - "end_time": "2023-06-13T14:01:46.050659798Z", - "start_time": "2023-06-13T14:00:31.443604088Z" - } + "is_executing": true }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "GPU available: False, used: False\n", - "TPU available: False, using: 0 TPU cores\n", - "IPU available: False, using: 0 IPUs\n", - "HPU available: False, using: 0 HPUs\n", - "\n", - " | Name | Type | Params\n", - "--------------------------------------------------------------------\n", - "0 | train_source_loss | MeanAbsoluteError | 0 \n", - "1 | mmd_loss | MaximumMeanDiscrepancyLoss | 0 \n", - "2 | conditional_mmd_loss | ConditionalAdaptionLoss | 0 \n", - "3 | evaluator | AdaptionEvaluator | 0 \n", - "4 | _feature_extractor | CnnExtractor | 55.6 K\n", - "5 | _regressor | FullyConnectedHead | 65 \n", - "--------------------------------------------------------------------\n", - "55.6 K Trainable params\n", - "0 Non-trainable params\n", - "55.6 K Total params\n", - "0.223 Total estimated model params size (MB)\n" - ] - }, - { - "data": { - "text/plain": "Sanity Checking: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "eee0073775c6400e9598ce2f87b1b348" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "Training: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "e44b8a4f8b4d4096ab1ad7b520c3c0b0" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "Validation: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "76501587194d45ac8182b7388ac76b92" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "Validation: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "aac70ae4f4764d498efa34d123d101f1" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "Validation: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "793585a3327f46fea66ec2a9c4576f77" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "Validation: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "2a65e38aa5a549c99d6358bcf34e657f" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "Validation: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "3981ca421004439d8384aee6ad76303d" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "Validation: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "28e98cbecec247c5b0dd870f7d80be1c" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "Validation: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "719493a54be84fc7a8cb5159864c5c66" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "Validation: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "4bd80cb95ae24cd9ae5ef543e7bbb374" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "Validation: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "4cc911c1ce9046cdb4d59e78d8908f87" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": "Validation: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "c6a6075702fa4bbf9c8a8ac67503001e" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "`Trainer.fit` stopped: `max_epochs=10` reached.\n" - ] - }, - { - "data": { - "text/plain": "Testing: 0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "31916e6501fb4d7ab5ccba691acd6307" - } - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " Test metric DataLoader 0 DataLoader 1\n", - "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/source/rmse 16.809019088745117\n", - " test/source/score 1181.4722900390625\n", - " test/target/rmse 39.89452362060547\n", - " test/target/score 333241.28125\n", - "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" - ] - }, - { - "data": { - "text/plain": "[{'test/source/rmse/dataloader_idx_0': 16.809019088745117,\n 'test/source/score/dataloader_idx_0': 1181.4722900390625},\n {'test/target/rmse/dataloader_idx_1': 39.89452362060547,\n 'test/target/score/dataloader_idx_1': 333241.28125}]" - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "trainer = pl.Trainer(max_epochs=10)\n", "trainer.fit(approach, dm)\n", @@ -376,11 +163,11 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 11, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:01:46.050900749Z", - "start_time": "2023-06-13T14:01:46.049884492Z" + "end_time": "2023-11-16T14:32:09.201331372Z", + "start_time": "2023-11-16T14:32:09.187710053Z" } }, "outputs": [], @@ -411,11 +198,11 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 13, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:02:20.566404553Z", - "start_time": "2023-06-13T14:01:46.050326407Z" + "end_time": "2023-11-16T14:34:02.648476135Z", + "start_time": "2023-11-16T14:32:09.187818699Z" } }, "outputs": [ @@ -428,19 +215,19 @@ "IPU available: False, using: 0 IPUs\n", "HPU available: False, using: 0 HPUs\n", "\n", - " | Name | Type | Params\n", - "------------------------------------------------------------------\n", - "0 | train_source_loss | MeanAbsoluteError | 0 \n", - "1 | evaluator | AdaptionEvaluator | 0 \n", - "2 | _feature_extractor | CnnExtractor | 55.6 K\n", - "3 | _regressor | FullyConnectedHead | 65 \n", - "4 | dann_loss | DomainAdversarialLoss | 65 \n", - "5 | conditional_dann_loss | ConditionalAdaptionLoss | 195 \n", - "------------------------------------------------------------------\n", - "55.9 K Trainable params\n", + " | Name | Type | Params\n", + "--------------------------------------------------------------------\n", + "0 | train_source_loss | MeanAbsoluteError | 0 \n", + "1 | mmd_loss | MaximumMeanDiscrepancyLoss | 0 \n", + "2 | conditional_mmd_loss | ConditionalAdaptionLoss | 0 \n", + "3 | evaluator | AdaptionEvaluator | 0 \n", + "4 | _feature_extractor | CnnExtractor | 55.6 K\n", + "5 | _regressor | FullyConnectedHead | 65 \n", + "--------------------------------------------------------------------\n", + "55.6 K Trainable params\n", "0 Non-trainable params\n", - "55.9 K Total params\n", - "0.224 Total estimated model params size (MB)\n" + "55.6 K Total params\n", + "0.223 Total estimated model params size (MB)\n" ] }, { @@ -449,7 +236,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "7d4462a013244c3280d39663cf7b7979" + "model_id": "d9cadf13705a49d5aba96ac16e3b2022" } }, "metadata": {}, @@ -461,7 +248,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "fcbfe6fdddd94f26971481f6b5d8f20c" + "model_id": "1b1085bddff14c74a466e7844561d496" } }, "metadata": {}, @@ -473,7 +260,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "b3481a92c7094e228b82927f2333f2a1" + "model_id": "8abd7748f9984e33a628f18cfff60195" } }, "metadata": {}, @@ -485,7 +272,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "cf7ddc76a6fb4d0fbc782a7cb0f0bf0d" + "model_id": "7e561112a01b4a62859fefe9bfa40e6f" } }, "metadata": {}, @@ -497,7 +284,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "89e8a70d18794547b8fd5321fb177d6c" + "model_id": "2cf780f20c604278ab83c0f24c774c54" } }, "metadata": {}, @@ -509,7 +296,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "330f35433fe14918b4d18f7bbb2d9088" + "model_id": "31f8f46043214f17a5127db2f794a182" } }, "metadata": {}, @@ -521,7 +308,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "3417aab5432746ca8fe70add563ca163" + "model_id": "fedb5e701a2d424bb5b07fb949250e15" } }, "metadata": {}, @@ -533,7 +320,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "7827fa8fcd6c4cf2a748a3cc8e432eb2" + "model_id": "295536539b2c4fe7b97d98f0aa5e6cd1" } }, "metadata": {}, @@ -545,7 +332,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "81ca33e44ff941109a555f67bbce3066" + "model_id": "621da9816b4645fbaa15f990d4be5747" } }, "metadata": {}, @@ -557,7 +344,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "31cff87560774104837156816660948e" + "model_id": "81cba211316844a389b5446635b98ff1" } }, "metadata": {}, @@ -569,7 +356,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "b79fae3399154a4b945486983f6f2885" + "model_id": "298e2183581b4c4e88b6eaa7a4ea70b6" } }, "metadata": {}, @@ -581,7 +368,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "13f3266d7758408fb44063b3ee110ec1" + "model_id": "d3f24001e68d4c54b4b870045d884cea" } }, "metadata": {}, @@ -600,7 +387,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "a05b6cec64d14984b396008712fdb37e" + "model_id": "178be49f0e0a495dab303522e4bae1b2" } }, "metadata": {}, @@ -613,18 +400,18 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Test metric DataLoader 0 DataLoader 1\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/source/rmse 17.359193801879883\n", - " test/source/score 1076.8475341796875\n", - " test/target/rmse 25.01502799987793\n", - " test/target/score 7174.01806640625\n", + " test/source/rmse 15.53573226928711\n", + " test/source/score 615.2120361328125\n", + " test/target/rmse 23.868637084960938\n", + " test/target/score 2933.725830078125\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'test/source/rmse/dataloader_idx_0': 17.359193801879883,\n 'test/source/score/dataloader_idx_0': 1076.8475341796875},\n {'test/target/rmse/dataloader_idx_1': 25.01502799987793,\n 'test/target/score/dataloader_idx_1': 7174.01806640625}]" + "text/plain": "[{'test/source/rmse/dataloader_idx_0': 15.53573226928711,\n 'test/source/score/dataloader_idx_0': 615.2120361328125},\n {'test/target/rmse/dataloader_idx_1': 23.868637084960938,\n 'test/target/score/dataloader_idx_1': 2933.725830078125}]" }, - "execution_count": 7, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } diff --git a/docs/examples/consistency_dann.ipynb b/docs/examples/consistency_dann.ipynb index 35f6d84b..888d0c08 100644 --- a/docs/examples/consistency_dann.ipynb +++ b/docs/examples/consistency_dann.ipynb @@ -12,8 +12,8 @@ "execution_count": 1, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:02:59.309626797Z", - "start_time": "2023-06-13T14:02:58.026541348Z" + "end_time": "2023-11-16T14:10:28.883035560Z", + "start_time": "2023-11-16T14:10:26.979290698Z" } }, "outputs": [], @@ -45,8 +45,8 @@ "execution_count": 2, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:02:59.613842136Z", - "start_time": "2023-06-13T14:02:59.311226151Z" + "end_time": "2023-11-16T14:10:29.114882374Z", + "start_time": "2023-11-16T14:10:28.883921139Z" } }, "outputs": [ @@ -86,8 +86,8 @@ "execution_count": 3, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:03:01.057686544Z", - "start_time": "2023-06-13T14:02:59.613629358Z" + "end_time": "2023-11-16T14:10:30.807970747Z", + "start_time": "2023-11-16T14:10:29.115848639Z" } }, "outputs": [ @@ -100,8 +100,10 @@ "----------------------------------------------------------\n", "0 | train_loss | MeanSquaredError | 0 \n", "1 | val_loss | MeanSquaredError | 0 \n", - "2 | _feature_extractor | CnnExtractor | 3.3 K \n", - "3 | _regressor | FullyConnectedHead | 221 \n", + "2 | test_loss | MeanSquaredError | 0 \n", + "3 | evaluator | AdaptionEvaluator | 0 \n", + "4 | _feature_extractor | CnnExtractor | 3.3 K \n", + "5 | _regressor | FullyConnectedHead | 221 \n", "----------------------------------------------------------\n", "3.5 K Trainable params\n", "0 Non-trainable params\n", @@ -115,7 +117,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "8c15cb3f1c1e4560a650dcbaf7d030ed" + "model_id": "3fe257f25e224adc8e8bc8a6d673b282" } }, "metadata": {}, @@ -127,7 +129,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "0e8df3fcddf54dc39a205a665f71c5e1" + "model_id": "e8362c6aea9b45e5bb348f0384700802" } }, "metadata": {}, @@ -139,7 +141,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "30ce93a7feaa423595897b055589b670" + "model_id": "bb42a5f3eb2d4152bf14aa1b4720b8f5" } }, "metadata": {}, @@ -171,8 +173,8 @@ "execution_count": 4, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:03:04.336374952Z", - "start_time": "2023-06-13T14:03:01.103256952Z" + "end_time": "2023-11-16T14:10:34.615167215Z", + "start_time": "2023-11-16T14:10:30.807564553Z" } }, "outputs": [ @@ -203,7 +205,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "88830a719ab64e43ab0d8bcb15c6febc" + "model_id": "05868e6c8b3d49c9b5c867fdbf3712f1" } }, "metadata": {}, @@ -215,7 +217,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "ca3c21d07b634f1882ad3fbea85fab8f" + "model_id": "9675c16874b448daa43230db2026fdd3" } }, "metadata": {}, @@ -227,7 +229,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "e745035b34554634a7b0c51cdedc0c1b" + "model_id": "d4ceb7d5a35e4e53bf44154c96681b64" } }, "metadata": {}, @@ -246,7 +248,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "24535b466366489eb17d300f4f358bd1" + "model_id": "84e3ce989af14bf9ab26778bfde8af4e" } }, "metadata": {}, @@ -296,8 +298,8 @@ "execution_count": 5, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:03:04.380836453Z", - "start_time": "2023-06-13T14:03:04.336062735Z" + "end_time": "2023-11-16T14:10:34.675747641Z", + "start_time": "2023-11-16T14:10:34.614529080Z" } }, "outputs": [ @@ -316,17 +318,19 @@ " kwargs:\n", " batch_size: 128\n", "feature_extractor:\n", + " _convert_: all\n", " _target_: rul_adapt.model.CnnExtractor\n", " input_channels: 14\n", - " conv_filters:\n", + " units:\n", " - 32\n", " - 16\n", " - 1\n", " seq_len: 20\n", " fc_units: 20\n", - " conv_dropout: 0.5\n", + " dropout: 0.5\n", " fc_dropout: 0.5\n", "regressor:\n", + " _convert_: all\n", " _target_: rul_adapt.model.FullyConnectedHead\n", " input_channels: 20\n", " act_func_on_last_layer: false\n", @@ -334,6 +338,7 @@ " - 10\n", " - 1\n", "domain_disc:\n", + " _convert_: all\n", " _target_: rul_adapt.model.FullyConnectedHead\n", " input_channels: 20\n", " act_func_on_last_layer: false\n", @@ -355,8 +360,7 @@ " max_epochs: 1000\n", "trainer:\n", " _target_: pytorch_lightning.Trainer\n", - " max_epochs: 3000\n", - "\n" + " max_epochs: 3000\n" ] } ], @@ -377,11 +381,11 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:03:20.246513394Z", - "start_time": "2023-06-13T14:03:04.385223682Z" + "end_time": "2023-11-16T14:11:04.248079897Z", + "start_time": "2023-11-16T14:10:49.656551089Z" } }, "outputs": [ @@ -393,15 +397,17 @@ "TPU available: False, using: 0 TPU cores\n", "IPU available: False, using: 0 IPUs\n", "HPU available: False, using: 0 HPUs\n", - "/home/tilman/Programming/rul-adapt/.venv/lib/python3.8/site-packages/pytorch_lightning/callbacks/model_checkpoint.py:613: UserWarning: Checkpoint directory /home/tilman/Programming/rul-adapt/examples/lightning_logs/version_78/checkpoints exists and is not empty.\n", + "/home/tilman/Programming/rul-adapt/.venv/lib/python3.8/site-packages/pytorch_lightning/callbacks/model_checkpoint.py:613: UserWarning: Checkpoint directory /home/tilman/Programming/rul-adapt/docs/examples/lightning_logs/version_27/checkpoints exists and is not empty.\n", " rank_zero_warn(f\"Checkpoint directory {dirpath} exists and is not empty.\")\n", "\n", " | Name | Type | Params\n", "----------------------------------------------------------\n", "0 | train_loss | MeanSquaredError | 0 \n", "1 | val_loss | MeanSquaredError | 0 \n", - "2 | _feature_extractor | LstmExtractor | 2.2 K \n", - "3 | _regressor | FullyConnectedHead | 81 \n", + "2 | test_loss | MeanSquaredError | 0 \n", + "3 | evaluator | AdaptionEvaluator | 0 \n", + "4 | _feature_extractor | LstmExtractor | 2.2 K \n", + "5 | _regressor | FullyConnectedHead | 81 \n", "----------------------------------------------------------\n", "2.3 K Trainable params\n", "0 Non-trainable params\n", @@ -415,7 +421,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "1691bb048fb041eba015d526e0dc4d3e" + "model_id": "b4e0acb91cd1457280c2e9e6ede15086" } }, "metadata": {}, @@ -453,7 +459,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "6c77ba38aab34fe884be3b9f0e16a6be" + "model_id": "b854ef7f1afa477f8da51f82ea88f2c9" } }, "metadata": {}, @@ -465,7 +471,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "6b00e6a3714e475ea2fab1758e674a78" + "model_id": "791f6529902b47db8d507cb2dbb0fd27" } }, "metadata": {}, @@ -477,7 +483,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "16ccd19500bc47b7a7f23307dc02014e" + "model_id": "db55e4300b89449ab9dca1e31447618f" } }, "metadata": {}, @@ -496,7 +502,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "ed12453bd4ed487ebf7b4f2083f2d3ac" + "model_id": "e2fe9a1bf0674accbc46b4ca186e1a6b" } }, "metadata": {}, @@ -520,7 +526,7 @@ "data": { "text/plain": "[{'test/source/rmse/dataloader_idx_0': 18.09880828857422,\n 'test/source/score/dataloader_idx_0': 1549.2022705078125},\n {'test/target/rmse/dataloader_idx_1': 22.494943618774414,\n 'test/target/score/dataloader_idx_1': 814.8432006835938}]" }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -536,7 +542,7 @@ "\n", "feature_extractor = rul_adapt.model.LstmExtractor(\n", " input_channels=14,\n", - " lstm_units=[16],\n", + " units=[16],\n", " fc_units=8,\n", ")\n", "regressor = rul_adapt.model.FullyConnectedHead(\n", diff --git a/docs/examples/latent_align.ipynb b/docs/examples/latent_align.ipynb index 44ce7ba5..e47a7123 100644 --- a/docs/examples/latent_align.ipynb +++ b/docs/examples/latent_align.ipynb @@ -9,12 +9,11 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": { - "collapsed": true, "ExecuteTime": { - "end_time": "2023-06-13T14:04:36.876589438Z", - "start_time": "2023-06-13T14:04:36.853546139Z" + "end_time": "2023-11-16T14:12:03.273034133Z", + "start_time": "2023-11-16T14:12:03.244024704Z" } }, "outputs": [], @@ -46,11 +45,11 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:06:16.254899343Z", - "start_time": "2023-06-13T14:05:09.983537746Z" + "end_time": "2023-11-16T14:13:16.261053688Z", + "start_time": "2023-11-16T14:12:03.250108856Z" } }, "outputs": [ @@ -79,12 +78,14 @@ }, { "data": { - "text/plain": "Training: 0it [00:00, ?it/s]", "application/vnd.jupyter.widget-view+json": { + "model_id": "c17feecdfff04d78a223c19174c0a498", "version_major": 2, - "version_minor": 0, - "model_id": "a326203bfa424cfb825e68ceda5e12fd" - } + "version_minor": 0 + }, + "text/plain": [ + "Training: 0it [00:00, ?it/s]" + ] }, "metadata": {}, "output_type": "display_data" @@ -122,7 +123,7 @@ " [64, 32, 16],\n", " features[0].shape[1],\n", " fc_units=512,\n", - " conv_act_func=torch.nn.LeakyReLU,\n", + " act_func=torch.nn.LeakyReLU,\n", " fc_act_func=torch.nn.LeakyReLU,\n", ")\n", "regressor = rul_adapt.model.FullyConnectedHead(\n", @@ -134,7 +135,7 @@ " features[0].shape[1],\n", " [10, 10, 10, 1, 1],\n", " padding=True,\n", - " conv_act_func=torch.nn.LeakyReLU,\n", + " act_func=torch.nn.LeakyReLU,\n", ")\n", "\n", "approach = rul_adapt.approach.LatentAlignFttpApproach(\n", @@ -157,18 +158,20 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:07:06.399903585Z", - "start_time": "2023-06-13T14:07:01.236673445Z" + "end_time": "2023-11-16T14:13:22.821704888Z", + "start_time": "2023-11-16T14:13:16.262015832Z" } }, "outputs": [ { "data": { - "text/plain": "
", - "image/png": "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\n" + "image/png": "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B1eSnp6OqqqqAbjKgffuu++iqKgIe/fu7XYf36/uTp06hRdeeAErV67Eo48+ir179+JXv/oVtFotli5dKr8v7v6Ono/v2SOPPAKDwYBx48ZBpVLBYrHgiSeewOLFiwGA71cPfHl/qqqqkJaW5nS/Wq1GcnLyef8ednR04OGHH8att94qH34Y7PeLAQv12vLly3Hw4EF8++23A30pIausrAwPPPAAtm3bBr1eP9CXExasVitmzpyJP/7xjwCAadOm4eDBg9i0aROWLl06wFcXet577z289dZbePvttzFx4kQUFxfjwQcfRGZmJt8v6lNmsxk/+9nPIAgCXnjhhT57HZaEPEhNTYVKpeq2S6O6uhoZGRkDdFWhZ8WKFdiyZQu++uorDB06VL49IyMDJpMJTU1NTuvP1/evsLAQNTU1mD59OtRqNdRqNXbs2IE///nPUKvVSE9P5/vlYvDgwZgwYYLTbePHj0dpaSkAyO8L/46KHnroITzyyCO45ZZbMHnyZNx+++349a9/jbVr1wLg+9UTX96fjIyMbpsuurq60NDQcN6+h1KwcvbsWWzbtk3OrgDBf78YsHig1WoxY8YMFBQUyLdZrVYUFBQgLy9vAK8sNAiCgBUrVuDDDz/El19+ieHDhzvdP2PGDGg0Gqf37+jRoygtLT0v379LL70UP/74I4qLi+WvmTNnYvHixfL/8/1yNm/evG5b5Y8dO4bs7GwAwPDhw5GRkeH0nhkMBnz//ffn5XtmNBqhVDr/SFepVLBarQD4fvXEl/cnLy8PTU1NKCwslNd8+eWXsFqtmDNnTr9f80CTgpXjx4/j3//+N1JSUpzuD/r75Xeb7nnk3XffFXQ6nfD6668Lhw8fFu6++24hMTFRqKqqGuhLG3D33XefkJCQIGzfvl2orKyUv4xGo7zm3nvvFYYNGyZ8+eWXwr59+4S8vDwhLy9vAK86tDjuEhIEvl+u9uzZI6jVauGJJ54Qjh8/Lrz11ltCdHS08Pe//11es27dOiExMVH45z//KRw4cEC47rrrhOHDhwvt7e0DeOUDY+nSpcKQIUOELVu2CKdPnxY++OADITU1VfjNb34jrznf36+WlhZh//79wv79+wUAwrPPPivs379f3tXiy/tz+eWXC9OmTRO+//574dtvvxVGjx4t3HrrrQP1LfUpb++XyWQSrr32WmHo0KFCcXGx0+dAZ2en/BzBfL8YsPTgueeeE4YNGyZotVph9uzZwu7duwf6kkICALdfr732mrymvb1duP/++4WkpCQhOjpauP7664XKysqBu+gQ4xqw8P3q7pNPPhEmTZok6HQ6Ydy4ccJLL73kdL/VahUee+wxIT09XdDpdMKll14qHD16dICudmAZDAbhgQceEIYNGybo9XphxIgRwm9/+1unD4/z/f366quv3P7cWrp0qSAIvr0/9fX1wq233irExsYK8fHxwrJly4SWlpYB+G76nrf36/Tp0x4/B7766iv5OYL5fikEwWEMIhEREVEIYg8LERERhTwGLERERBTyGLAQERFRyGPAQkRERCGPAQsRERGFPAYsREREFPIYsBAREVHIY8BCREREIY8BCxEREYU8BixEREQU8hiwEBERUchjwEJEREQh7/8DPuBhSTD0i04AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] }, "metadata": {}, "output_type": "display_data" @@ -194,11 +197,11 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:07:10.604188876Z", - "start_time": "2023-06-13T14:07:06.366541976Z" + "end_time": "2023-11-16T14:13:28.251264805Z", + "start_time": "2023-11-16T14:13:22.844232303Z" } }, "outputs": [ @@ -206,7 +209,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "FTTP of Bearing 1-1: 77\n" + "FTTP of Bearing 1-1: 83\n" ] } ], @@ -241,11 +244,11 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:07:10.892466786Z", - "start_time": "2023-06-13T14:07:10.602910853Z" + "end_time": "2023-11-16T14:13:28.449695509Z", + "start_time": "2023-11-16T14:13:28.249910918Z" } }, "outputs": [ @@ -275,19 +278,42 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:07:10.892805498Z", - "start_time": "2023-06-13T14:07:10.891655490Z" + "end_time": "2023-11-16T14:13:28.450123525Z", + "start_time": "2023-11-16T14:13:28.449547161Z" } }, "outputs": [ { "data": { - "text/plain": "CnnExtractor(\n (_layers): Sequential(\n (conv_0): Sequential(\n (0): Conv1d(14, 32, kernel_size=(3,), stride=(1,), padding=valid)\n (1): LeakyReLU(negative_slope=0.01)\n )\n (conv_1): Sequential(\n (0): Conv1d(32, 16, kernel_size=(3,), stride=(1,), padding=valid)\n (1): LeakyReLU(negative_slope=0.01)\n )\n (conv_2): Sequential(\n (0): Conv1d(16, 1, kernel_size=(3,), stride=(1,), padding=valid)\n (1): LeakyReLU(negative_slope=0.01)\n )\n (3): Flatten(start_dim=1, end_dim=-1)\n (fc): Sequential(\n (0): Dropout(p=0.5, inplace=False)\n (1): Linear(in_features=24, out_features=256, bias=True)\n (2): LeakyReLU(negative_slope=0.01)\n )\n )\n)" + "text/plain": [ + "CnnExtractor(\n", + " (_layers): Sequential(\n", + " (conv_0): Sequential(\n", + " (0): Conv1d(14, 32, kernel_size=(3,), stride=(1,), padding=valid)\n", + " (1): LeakyReLU(negative_slope=0.01)\n", + " )\n", + " (conv_1): Sequential(\n", + " (0): Conv1d(32, 16, kernel_size=(3,), stride=(1,), padding=valid)\n", + " (1): LeakyReLU(negative_slope=0.01)\n", + " )\n", + " (conv_2): Sequential(\n", + " (0): Conv1d(16, 1, kernel_size=(3,), stride=(1,), padding=valid)\n", + " (1): LeakyReLU(negative_slope=0.01)\n", + " )\n", + " (3): Flatten(start_dim=1, end_dim=-1)\n", + " (fc): Sequential(\n", + " (0): Dropout(p=0.5, inplace=False)\n", + " (1): Linear(in_features=24, out_features=256, bias=True)\n", + " (2): LeakyReLU(negative_slope=0.01)\n", + " )\n", + " )\n", + ")" + ] }, - "execution_count": 10, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -305,11 +331,11 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:07:24.174421540Z", - "start_time": "2023-06-13T14:07:10.891839319Z" + "end_time": "2023-11-16T14:13:42.077285284Z", + "start_time": "2023-11-16T14:13:28.449817500Z" } }, "outputs": [ @@ -337,36 +363,42 @@ }, { "data": { - "text/plain": "Sanity Checking: 0it [00:00, ?it/s]", "application/vnd.jupyter.widget-view+json": { + "model_id": "3cf2285adfd345efb4406008700e13dd", "version_major": 2, - "version_minor": 0, - "model_id": "ae750013545342c7b845e05c215a36b0" - } + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: 0it [00:00, ?it/s]" + ] }, "metadata": {}, "output_type": "display_data" }, { "data": { - "text/plain": "Training: 0it [00:00, ?it/s]", "application/vnd.jupyter.widget-view+json": { + "model_id": "881d2c90b9754112b9bf9b41e4bbbee2", "version_major": 2, - "version_minor": 0, - "model_id": "ab93ae31d6af49abb95bcc3b49f51772" - } + "version_minor": 0 + }, + "text/plain": [ + "Training: 0it [00:00, ?it/s]" + ] }, "metadata": {}, "output_type": "display_data" }, { "data": { - "text/plain": "Validation: 0it [00:00, ?it/s]", "application/vnd.jupyter.widget-view+json": { + "model_id": "66c2839a5d424f93964a8d77c886a380", "version_major": 2, - "version_minor": 0, - "model_id": "31d89ff3681146458c7b4bcfa09a2667" - } + "version_minor": 0 + }, + "text/plain": [ + "Validation: 0it [00:00, ?it/s]" + ] }, "metadata": {}, "output_type": "display_data" @@ -380,12 +412,14 @@ }, { "data": { - "text/plain": "Testing: 0it [00:00, ?it/s]", "application/vnd.jupyter.widget-view+json": { + "model_id": "8c857ad0c0c24040a0f680437d1cd8ed", "version_major": 2, - "version_minor": 0, - "model_id": "92c3ce1a72c0461a880a415b6696adb4" - } + "version_minor": 0 + }, + "text/plain": [ + "Testing: 0it [00:00, ?it/s]" + ] }, "metadata": {}, "output_type": "display_data" @@ -397,18 +431,23 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Test metric DataLoader 0 DataLoader 1\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/source/rmse 82.13536834716797\n", - " test/source/score 326230.375\n", - " test/target/rmse 83.71646881103516\n", - " test/target/score 317456.15625\n", + " test/source/rmse 83.4994888305664\n", + " test/source/score 368967.1875\n", + " test/target/rmse 84.54061889648438\n", + " test/target/score 340130.5\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'test/source/rmse/dataloader_idx_0': 82.13536834716797,\n 'test/source/score/dataloader_idx_0': 326230.375},\n {'test/target/rmse/dataloader_idx_1': 83.71646881103516,\n 'test/target/score/dataloader_idx_1': 317456.15625}]" + "text/plain": [ + "[{'test/source/rmse/dataloader_idx_0': 83.4994888305664,\n", + " 'test/source/score/dataloader_idx_0': 368967.1875},\n", + " {'test/target/rmse/dataloader_idx_1': 84.54061889648438,\n", + " 'test/target/score/dataloader_idx_1': 340130.5}]" + ] }, - "execution_count": 11, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -428,11 +467,11 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:07:24.216780871Z", - "start_time": "2023-06-13T14:07:24.174065907Z" + "end_time": "2023-11-16T14:13:42.167585435Z", + "start_time": "2023-11-16T14:13:42.118701951Z" } }, "outputs": [ @@ -456,18 +495,20 @@ " inductive: true\n", " split_by_steps: 80\n", "feature_extractor:\n", + " _convert_: all\n", " _target_: rul_adapt.model.CnnExtractor\n", " input_channels: 14\n", - " conv_filters:\n", + " units:\n", " - 32\n", " - 16\n", " - 1\n", " seq_len: 30\n", " fc_units: 256\n", " fc_dropout: 0.5\n", - " conv_act_func: torch.nn.LeakyReLU\n", + " act_func: torch.nn.LeakyReLU\n", " fc_act_func: torch.nn.LeakyReLU\n", "regressor:\n", + " _convert_: all\n", " _target_: rul_adapt.model.FullyConnectedHead\n", " input_channels: 256\n", " act_func_on_last_layer: false\n", @@ -479,11 +520,11 @@ " alpha_direction: 1.0\n", " alpha_level: 1.0\n", " alpha_fusion: 1.0\n", + " labels_as_percentage: true\n", " lr: 0.0005\n", "trainer:\n", " _target_: pytorch_lightning.Trainer\n", - " max_epochs: 2000\n", - "\n" + " max_epochs: 2000\n" ] } ], @@ -504,11 +545,11 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 2, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:09:23.827618181Z", - "start_time": "2023-06-13T14:08:23.108708631Z" + "end_time": "2023-11-16T14:13:42.169331127Z", + "start_time": "2023-11-16T14:13:42.155968436Z" } }, "outputs": [ @@ -540,12 +581,14 @@ }, { "data": { - "text/plain": "Sanity Checking: 0it [00:00, ?it/s]", "application/vnd.jupyter.widget-view+json": { + "model_id": "", "version_major": 2, - "version_minor": 0, - "model_id": "fa4e12a05f6b4a8eafc30b8e4b2c7284" - } + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: 0it [00:00, ?it/s]" + ] }, "metadata": {}, "output_type": "display_data" @@ -560,12 +603,14 @@ }, { "data": { - "text/plain": "Training: 0it [00:00, ?it/s]", "application/vnd.jupyter.widget-view+json": { + "model_id": "7af00fc846494abc802015a5158c0deb", "version_major": 2, - "version_minor": 0, - "model_id": "66b2d4ecdb724d87a140a313d73e0234" - } + "version_minor": 0 + }, + "text/plain": [ + "Training: 0it [00:00, ?it/s]" + ] }, "metadata": {}, "output_type": "display_data" @@ -581,12 +626,14 @@ }, { "data": { - "text/plain": "Testing: 0it [00:00, ?it/s]", "application/vnd.jupyter.widget-view+json": { + "model_id": "65c4f15fe0434efaa243e981892106e0", "version_major": 2, - "version_minor": 0, - "model_id": "4db878e65066425cb6bc51ff1c63e4cd" - } + "version_minor": 0 + }, + "text/plain": [ + "Testing: 0it [00:00, ?it/s]" + ] }, "metadata": {}, "output_type": "display_data" @@ -606,16 +653,20 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Test metric DataLoader 0 DataLoader 1\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/target/rmse 64.29508209228516\n", - " test/target/score 31571106.0\n", + " test/target/rmse 0.3762059807777405\n", + " test/target/score 1309.618896484375\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{},\n {'test/target/rmse/dataloader_idx_1': 64.29508209228516,\n 'test/target/score/dataloader_idx_1': 31571106.0}]" + "text/plain": [ + "[{},\n", + " {'test/target/rmse/dataloader_idx_1': 0.3762059807777405,\n", + " 'test/target/score/dataloader_idx_1': 1309.618896484375}]" + ] }, - "execution_count": 14, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -649,7 +700,7 @@ " 1280,\n", " fc_units=256,\n", " fc_dropout=0.5,\n", - " conv_act_func=torch.nn.LeakyReLU,\n", + " act_func=torch.nn.LeakyReLU,\n", " fc_act_func=torch.nn.LeakyReLU,\n", ")\n", "\n", @@ -681,7 +732,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.14" + "version": "3.8.15" } }, "nbformat": 4, diff --git a/docs/examples/lstm_dann.ipynb b/docs/examples/lstm_dann.ipynb index 5a3f8aa9..b9bcfe29 100644 --- a/docs/examples/lstm_dann.ipynb +++ b/docs/examples/lstm_dann.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 1, "outputs": [], "source": [ "import rul_adapt\n", @@ -22,8 +22,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:14:41.060656652Z", - "start_time": "2023-06-13T14:14:41.043970888Z" + "end_time": "2023-11-16T14:20:45.021475726Z", + "start_time": "2023-11-16T14:20:43.250582007Z" } } }, @@ -46,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 2, "outputs": [ { "name": "stderr", @@ -67,8 +67,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:14:41.133754357Z", - "start_time": "2023-06-13T14:14:41.047146422Z" + "end_time": "2023-11-16T14:20:45.254740413Z", + "start_time": "2023-11-16T14:20:45.022087625Z" } } }, @@ -83,13 +83,13 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 3, "outputs": [ { "data": { "text/plain": "LstmExtractor(\n (_lstm_layers): _Rnn(\n (_layers): ModuleList(\n (0): LSTM(24, 64)\n (1): LSTM(64, 32)\n )\n )\n (_fc_layer): Sequential(\n (0): Dropout(p=0.3, inplace=False)\n (1): Linear(in_features=32, out_features=128, bias=True)\n (2): ReLU()\n )\n)" }, - "execution_count": 11, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -100,8 +100,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:14:41.178079188Z", - "start_time": "2023-06-13T14:14:41.136470723Z" + "end_time": "2023-11-16T14:20:45.261165919Z", + "start_time": "2023-11-16T14:20:45.250321315Z" } } }, @@ -117,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 4, "outputs": [ { "name": "stderr", @@ -144,7 +144,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "2c1873a270e74b5783d08f096409c43c" + "model_id": "642a735b2a7a463ea6932747d2b0ac6d" } }, "metadata": {}, @@ -156,7 +156,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "0ccc536be0a743b9aa3bddb456b10dcd" + "model_id": "8299e3e21e34425caf3a497a51cb8d42" } }, "metadata": {}, @@ -168,7 +168,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "72c320e5118346a882c01842115a2fdb" + "model_id": "c599ef9b5aad48c096e225e6a4fbe095" } }, "metadata": {}, @@ -179,8 +179,8 @@ "output_type": "stream", "text": [ "`Trainer.fit` stopped: `max_epochs=1` reached.\n", - "Restoring states from the checkpoint path at /home/tilman/Programming/rul-adapt/examples/lightning_logs/version_85/checkpoints/epoch=0-step=69.ckpt\n", - "Loaded model weights from checkpoint at /home/tilman/Programming/rul-adapt/examples/lightning_logs/version_85/checkpoints/epoch=0-step=69.ckpt\n" + "Restoring states from the checkpoint path at /home/tilman/Programming/rul-adapt/docs/examples/lightning_logs/version_32/checkpoints/epoch=0-step=69.ckpt\n", + "Loaded model weights from checkpoint at /home/tilman/Programming/rul-adapt/docs/examples/lightning_logs/version_32/checkpoints/epoch=0-step=69.ckpt\n" ] }, { @@ -189,7 +189,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "34a277983ca2477c855c286a2a25420d" + "model_id": "31e09455245840678126f1fabe1ce208" } }, "metadata": {}, @@ -202,18 +202,18 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Test metric DataLoader 0 DataLoader 1\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/source/rmse 18.77626609802246\n", - " test/source/score 1339.245849609375\n", - " test/target/rmse 25.87474250793457\n", - " test/target/score 5579.28662109375\n", + " test/source/rmse 20.155813217163086\n", + " test/source/score 1689.973876953125\n", + " test/target/rmse 32.33406448364258\n", + " test/target/score 12900.6259765625\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'test/source/rmse/dataloader_idx_0': 18.77626609802246,\n 'test/source/score/dataloader_idx_0': 1339.245849609375},\n {'test/target/rmse/dataloader_idx_1': 25.87474250793457,\n 'test/target/score/dataloader_idx_1': 5579.28662109375}]" + "text/plain": "[{'test/source/rmse/dataloader_idx_0': 20.155813217163086,\n 'test/source/score/dataloader_idx_0': 1689.973876953125},\n {'test/target/rmse/dataloader_idx_1': 32.33406448364258,\n 'test/target/score/dataloader_idx_1': 12900.6259765625}]" }, - "execution_count": 12, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -225,8 +225,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:14:51.829369918Z", - "start_time": "2023-06-13T14:14:41.177743160Z" + "end_time": "2023-11-16T14:20:57.734707703Z", + "start_time": "2023-11-16T14:20:45.255032959Z" } } }, @@ -242,7 +242,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 5, "outputs": [ { "name": "stdout", @@ -282,15 +282,17 @@ " percent_broken: 1.0\n", " batch_size: 256\n", "feature_extractor:\n", + " _convert_: all\n", " _target_: rul_adapt.model.LstmExtractor\n", " input_channels: 24\n", - " lstm_units:\n", + " units:\n", " - 64\n", " - 32\n", " fc_units: 128\n", - " lstm_dropout: 0.3\n", + " dropout: 0.3\n", " fc_dropout: 0.3\n", "regressor:\n", + " _convert_: all\n", " _target_: rul_adapt.model.FullyConnectedHead\n", " input_channels: 128\n", " act_func_on_last_layer: false\n", @@ -300,6 +302,7 @@ " - 1\n", " dropout: 0.1\n", "domain_disc:\n", + " _convert_: all\n", " _target_: rul_adapt.model.FullyConnectedHead\n", " input_channels: 128\n", " act_func_on_last_layer: false\n", @@ -327,8 +330,7 @@ " - _target_: pytorch_lightning.callbacks.ModelCheckpoint\n", " save_top_k: 1\n", " monitor: val/target/rmse/dataloader_idx_1\n", - " mode: min\n", - "\n" + " mode: min\n" ] } ], @@ -339,8 +341,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:14:51.871478348Z", - "start_time": "2023-06-13T14:14:51.828746584Z" + "end_time": "2023-11-16T14:20:57.852765477Z", + "start_time": "2023-11-16T14:20:57.733063816Z" } } }, @@ -358,7 +360,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 7, "outputs": [ { "name": "stderr", @@ -389,7 +391,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "f3c1903eed794414a7e6bc3a8edca570" + "model_id": "e6c81732a70442368ab4fed3252594ed" } }, "metadata": {}, @@ -401,7 +403,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "3b8effa5b57a44509556c512812f5073" + "model_id": "ea08721226af442085dd7325d3b8c4c2" } }, "metadata": {}, @@ -413,7 +415,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "fbfc58daacce461293647f876bad67c1" + "model_id": "d006a67935244075afd848cfb030c421" } }, "metadata": {}, @@ -432,7 +434,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "6c2d3fe049064cf988e61d9755b6a2c1" + "model_id": "37ae9b30df304190aa435f6d7252c2f4" } }, "metadata": {}, @@ -445,18 +447,18 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Test metric DataLoader 0 DataLoader 1\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/source/rmse 21.148601531982422\n", - " test/source/score 902.5635375976562\n", - " test/target/rmse 20.427507400512695\n", - " test/target/score 624.9207153320312\n", + " test/source/rmse 20.648313522338867\n", + " test/source/score 876.435546875\n", + " test/target/rmse 21.399911880493164\n", + " test/target/score 1010.3373413085938\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'test/source/rmse/dataloader_idx_0': 21.148601531982422,\n 'test/source/score/dataloader_idx_0': 902.5635375976562},\n {'test/target/rmse/dataloader_idx_1': 20.427507400512695,\n 'test/target/score/dataloader_idx_1': 624.9207153320312}]" + "text/plain": "[{'test/source/rmse/dataloader_idx_0': 20.648313522338867,\n 'test/source/score/dataloader_idx_0': 876.435546875},\n {'test/target/rmse/dataloader_idx_1': 21.399911880493164,\n 'test/target/score/dataloader_idx_1': 1010.3373413085938}]" }, - "execution_count": 14, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -471,7 +473,7 @@ "\n", "feature_extractor = rul_adapt.model.LstmExtractor(\n", " input_channels=14,\n", - " lstm_units=[16],\n", + " units=[16],\n", " fc_units=8,\n", ")\n", "regressor = rul_adapt.model.FullyConnectedHead(\n", @@ -496,8 +498,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:15:08.336028932Z", - "start_time": "2023-06-13T14:14:51.877259924Z" + "end_time": "2023-11-16T14:23:06.435668516Z", + "start_time": "2023-11-16T14:22:50.016834545Z" } } } diff --git a/docs/examples/pseudo_labels.ipynb b/docs/examples/pseudo_labels.ipynb index b5ec637a..3d877586 100644 --- a/docs/examples/pseudo_labels.ipynb +++ b/docs/examples/pseudo_labels.ipynb @@ -15,8 +15,8 @@ "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2023-06-13T14:15:22.432331248Z", - "start_time": "2023-06-13T14:15:21.213510500Z" + "end_time": "2023-11-16T14:36:26.511391215Z", + "start_time": "2023-11-16T14:36:24.706528522Z" } }, "outputs": [], @@ -57,8 +57,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:15:22.439060376Z", - "start_time": "2023-06-13T14:15:22.435745541Z" + "end_time": "2023-11-16T14:36:26.521963774Z", + "start_time": "2023-11-16T14:36:26.513592996Z" } } }, @@ -84,8 +84,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:15:22.443185149Z", - "start_time": "2023-06-13T14:15:22.439698032Z" + "end_time": "2023-11-16T14:36:26.522355626Z", + "start_time": "2023-11-16T14:36:26.517892159Z" } } }, @@ -116,8 +116,10 @@ "----------------------------------------------------------\n", "0 | train_loss | MeanSquaredError | 0 \n", "1 | val_loss | MeanSquaredError | 0 \n", - "2 | _feature_extractor | CnnExtractor | 15.7 K\n", - "3 | _regressor | FullyConnectedHead | 65 \n", + "2 | test_loss | MeanSquaredError | 0 \n", + "3 | evaluator | AdaptionEvaluator | 0 \n", + "4 | _feature_extractor | CnnExtractor | 15.7 K\n", + "5 | _regressor | FullyConnectedHead | 65 \n", "----------------------------------------------------------\n", "15.7 K Trainable params\n", "0 Non-trainable params\n", @@ -131,7 +133,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "c8127b66f86240e9ad22adf97ef2078c" + "model_id": "22b7832a2bbe4f92a2e22e907e3345cc" } }, "metadata": {}, @@ -143,7 +145,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "3ecb6f688c6243b2815e58acb1ce7955" + "model_id": "749f5c2de7804cef8828d982c962448b" } }, "metadata": {}, @@ -155,7 +157,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "a2d31e9691df4029b854d13eaaf219dd" + "model_id": "d1f848fe14a142f6b73105c77d938cc7" } }, "metadata": {}, @@ -167,7 +169,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "8ce41659ed92440893e2c31726bf9002" + "model_id": "9e20160b358d48519c040491f1df7aff" } }, "metadata": {}, @@ -179,7 +181,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "1379bdb0d3d248f8b4f40bf65a791d49" + "model_id": "e08c50147a9244548b1b60b7c30e34e6" } }, "metadata": {}, @@ -191,7 +193,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "914444ed225143e8862a479e955a4052" + "model_id": "29429432a8a3409f90b205d0ca0a6fc9" } }, "metadata": {}, @@ -203,7 +205,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "787df0f3aa6440d2a567567b63cd4c55" + "model_id": "4ee20c1d80594ce9b9d3af3e05755a75" } }, "metadata": {}, @@ -215,7 +217,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "7256828fdb564f98943f3d6b6d38b19c" + "model_id": "65dbab630a8d4a1391b23b5bff055ef2" } }, "metadata": {}, @@ -227,7 +229,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "b51d8cf336914b8baba213c4f088d3af" + "model_id": "a09a712e2fd24bcc8dfe0705a29174e7" } }, "metadata": {}, @@ -239,7 +241,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "19a54d4e96d74c6cbb0f5499ba63586d" + "model_id": "d0a3b020a73846bda3328416ed721f2b" } }, "metadata": {}, @@ -251,7 +253,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "0bf527e7b3974c0b8bb94528765c8350" + "model_id": "7cdd2fbee7cb4f4fba46ee815ccba9c4" } }, "metadata": {}, @@ -263,7 +265,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "c5608dae6c9745b48c6d55e67806040f" + "model_id": "01f6018cc8774fc9b234c1154f6c07d7" } }, "metadata": {}, @@ -282,7 +284,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "8f70377d721e4ce884f252e7ba6020e6" + "model_id": "cc07a6a749ac4d68a81e774ad81211df" } }, "metadata": {}, @@ -295,13 +297,13 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Validate metric DataLoader 0\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " val/loss 13.534152030944824\n", + " val/loss 14.083422660827637\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'val/loss': 13.534152030944824}]" + "text/plain": "[{'val/loss': 14.083422660827637}]" }, "execution_count": 4, "metadata": {}, @@ -321,8 +323,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:15:37.277127059Z", - "start_time": "2023-06-13T14:15:22.445280282Z" + "end_time": "2023-11-16T14:36:51.432571691Z", + "start_time": "2023-11-16T14:36:26.521860071Z" } } }, @@ -349,8 +351,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:15:37.277484166Z", - "start_time": "2023-06-13T14:15:37.275747260Z" + "end_time": "2023-11-16T14:36:51.432823457Z", + "start_time": "2023-11-16T14:36:40.205666211Z" } } }, @@ -373,7 +375,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/tilman/Programming/rul-adapt/rul_adapt/approach/pseudo_labels.py:85: UserWarning: At least one of the generated pseudo labels is negative. Please consider clipping them to zero.\n", + "/home/tilman/Programming/rul-adapt/rul_adapt/approach/pseudo_labels.py:88: UserWarning: At least one of the generated pseudo labels is negative. Please consider clipping them to zero.\n", " warnings.warn(\n" ] } @@ -386,8 +388,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:15:37.363850421Z", - "start_time": "2023-06-13T14:15:37.275853801Z" + "end_time": "2023-11-16T14:36:51.433061082Z", + "start_time": "2023-11-16T14:36:40.205851319Z" } } }, @@ -420,7 +422,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "ccfd303c558c4c328e6cbce82457ce3d" + "model_id": "552e54991de14468b157a2f32bc4e188" } }, "metadata": {}, @@ -433,13 +435,13 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Validate metric DataLoader 0\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " val/loss 61.95939636230469\n", + " val/loss 36.179779052734375\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'val/loss': 61.95939636230469}]" + "text/plain": "[{'val/loss': 36.179779052734375}]" }, "execution_count": 7, "metadata": {}, @@ -453,8 +455,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:15:37.622220650Z", - "start_time": "2023-06-13T14:15:37.365835223Z" + "end_time": "2023-11-16T14:36:51.433708088Z", + "start_time": "2023-11-16T14:36:40.304730808Z" } } }, @@ -484,8 +486,10 @@ "----------------------------------------------------------\n", "0 | train_loss | MeanSquaredError | 0 \n", "1 | val_loss | MeanSquaredError | 0 \n", - "2 | _feature_extractor | CnnExtractor | 15.7 K\n", - "3 | _regressor | FullyConnectedHead | 65 \n", + "2 | test_loss | MeanSquaredError | 0 \n", + "3 | evaluator | AdaptionEvaluator | 0 \n", + "4 | _feature_extractor | CnnExtractor | 15.7 K\n", + "5 | _regressor | FullyConnectedHead | 65 \n", "----------------------------------------------------------\n", "15.7 K Trainable params\n", "0 Non-trainable params\n", @@ -499,7 +503,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "020ab18e276744e595b5b3bd71e818cc" + "model_id": "3dac89e5c756476cb9254dbf495e940f" } }, "metadata": {}, @@ -518,7 +522,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "8efce9fe31f14f938afd371523e3592b" + "model_id": "101a136892c547599e5389f1c2c67fd4" } }, "metadata": {}, @@ -531,13 +535,13 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Validate metric DataLoader 0\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " val/loss 21.724597930908203\n", + " val/loss 29.42894172668457\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'val/loss': 21.724597930908203}]" + "text/plain": "[{'val/loss': 29.42894172668457}]" }, "execution_count": 8, "metadata": {}, @@ -557,8 +561,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-13T14:15:58.660336930Z", - "start_time": "2023-06-13T14:15:37.621722456Z" + "end_time": "2023-11-16T14:36:59.957379733Z", + "start_time": "2023-11-16T14:36:40.557538125Z" } } } diff --git a/docs/examples/tbigru.ipynb b/docs/examples/tbigru.ipynb index 66e945c1..be423629 100644 --- a/docs/examples/tbigru.ipynb +++ b/docs/examples/tbigru.ipynb @@ -9,11 +9,11 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:17:24.522583419Z", - "start_time": "2023-06-13T14:17:24.477380298Z" + "end_time": "2023-11-16T14:24:14.844928116Z", + "start_time": "2023-11-16T14:24:12.989454440Z" } }, "outputs": [], @@ -47,11 +47,11 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:17:59.636818011Z", - "start_time": "2023-06-13T14:17:24.487233403Z" + "end_time": "2023-11-16T14:24:48.082057656Z", + "start_time": "2023-11-16T14:24:14.846424160Z" } }, "outputs": [ @@ -59,7 +59,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 17, 20, 21, 22, 23, 32, 34, 42, 44, 48, 50, 52, 54, 56, 57, 58, 59]\n" + "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 17, 20, 21, 22, 23, 32, 44, 48, 50, 52, 54, 56, 57, 58, 59]\n" ] } ], @@ -81,11 +81,11 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:18:15.297667119Z", - "start_time": "2023-06-13T14:17:59.659713112Z" + "end_time": "2023-11-16T14:25:04.783631401Z", + "start_time": "2023-11-16T14:24:48.078502462Z" } }, "outputs": [], @@ -114,11 +114,11 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:18:15.372712961Z", - "start_time": "2023-06-13T14:18:15.329443197Z" + "end_time": "2023-11-16T14:25:04.820986279Z", + "start_time": "2023-11-16T14:25:04.818229505Z" } }, "outputs": [], @@ -248,11 +248,11 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:18:25.230810576Z", - "start_time": "2023-06-13T14:18:15.370635300Z" + "end_time": "2023-11-16T14:25:09.135739813Z", + "start_time": "2023-11-16T14:25:04.821548082Z" } }, "outputs": [], @@ -266,11 +266,11 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:18:25.231044306Z", - "start_time": "2023-06-13T14:18:25.230555308Z" + "end_time": "2023-11-16T14:25:09.143463785Z", + "start_time": "2023-11-16T14:25:09.137842482Z" } }, "outputs": [], @@ -298,18 +298,18 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:18:25.352213810Z", - "start_time": "2023-06-13T14:18:25.231117657Z" + "end_time": "2023-11-16T14:25:09.365453408Z", + "start_time": "2023-11-16T14:25:09.140773133Z" } }, "outputs": [ { "data": { "text/plain": "
", - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmYAAAG2CAYAAADV+ko4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAACJEUlEQVR4nO3dd3hT5dsH8O/J7N500lI2lD1LQZaUJS9DkC0gKChDBBQUmYoKLkSRHyiK4GA4AJUpVobILnuVTRltoYxO2mac94/Q04SmI23apO33c129SM55zsmdQ8adZwqiKIogIiIiIpuT2ToAIiIiIjJgYkZERERkJ5iYEREREdkJJmZEREREdoKJGREREZGdYGJGREREZCeYmBERERHZCSZmRERERHaCiRkRERGRnWBiRkRERGQnbJqY7dmzBz179kRgYCAEQcDGjRvzLb9+/Xp07twZlSpVgpubGyIiIrB9+/bSCZaIiIiohNk0MUtLS0OjRo2wZMmSQpXfs2cPOnfujC1btiA6OhodO3ZEz549cezYsRKOlIiIiKjkCfayiLkgCNiwYQP69Olj0XH16tXDwIEDMXv27JIJjIiIiKiUKGwdQHHo9XqkpKTAy8srzzKZmZnIzMyU7mu1Wpw7dw7BwcGQydjFjoiIqCzQ6/VISEhAkyZNoFCU6fQlX2X6mX3yySdITU3FgAED8iwzf/58vPPOO6UYFREREZWUQ4cOoUWLFrYOo8SU2cRs9erVeOedd/D777/D19c3z3LTp0/HlClTpPs3btxA/fr1cejQIQQEBJRGqERERFRMcXFxaNmyJfz8/GwdSokqk4nZ2rVr8dJLL+GXX35BZGRkvmXVajXUarV0393dHQAQEBCAypUrl2icREREZF3lvRtSmXt2a9aswciRI7FmzRr06NHD1uEQERGRncpvWi6NRoM333wTDRo0gLOzMwIDAzF8+HDcvn3bdgHDxolZamoqjh8/juPHjwMArl69iuPHjyM2NhaAoRly+PDhUvnVq1dj+PDh+PTTTxEeHo74+HjEx8cjKSnJFuETERGRHctvWq709HQcPXoUs2bNwtGjR7F+/XrExMSgV69eNog0h02ny9i1axc6duyYa/uIESOwcuVKvPDCC7h27Rp27doFAOjQoQN2796dZ/nCuHnzJoKDg3Hjxg02ZRIREZURxf3+Lsy0XIcPH0bLli1x/fp1hISEFCPaorNpH7MOHTogv7zwyWQrO0EjIiKiiiklJQXJycnS/Sf7khdHUlISBEGAh4eHVc5XFGWujxkRERFVXGFhYXB3d5f+5s+fb5XzZmRk4M0338TgwYPh5uZmlXMWRZkclUlEREQV09mzZxEUFCTdt0ZtmUajwYABAyCKIpYuXVrs8xUHEzMiIiIqM1xdXa1ao5WdlF2/fh3//POPTWvLACZmREREVEFlJ2UXL17Ezp074e3tbeuQmJgRERFR+ZSamopLly5J97On5fLy8kJAQACee+45HD16FJs2bYJOp0N8fDwAwMvLCyqVyiYxMzEjIiKicunIkSMm03JlL9E4YsQIzJ07F3/88QcAoHHjxibH7dy5Ex06dCitME0wMSMiIqJyqaBpuWw4lWueOF0GERERkZ1gYkZERERWodPrkKXLsnUYZRoTMyIiIrKKAZsGoPWa1kjXpNs6lDKLiRkRERFZxYUHF5Cpy8TpxNO2DqXMYmJGREREZCeYmBERERHZCSZmRERERHaCiRkRERGRnWBiRkRERGQnmJgRERER2QkmZkRERER2gokZERERkZ1gYkZERERkJ5iYEREREdkJJmZEREREdoKJGREREZGdYGJGREREZCeYmBERERHZCSZmREREZFWCINg6hDKLiRkRERFZlSiKtg6hzGJiRkRERGQnmJgRERER2QkmZkRERER2gokZERERkZ1gYkZERERkJ5iYERERkVVxuoyiY2JGREREZCeYmBEREZFVpWal2jqEMouJGRERERWb8aSyE3dOtGEkZRsTMyIiIiI7wcSMiIiIik0El2GyBiZmRERERHaCiRkREREVGxcutw4mZkRERER2gokZERERkZ1gYkZERETFxs7/1sHEjIiIiMhOMDEjIiKiYmONmXUwMSMiIiKyE0zMiIiIqPhYYWYVTMyIiIiI7AQTMyIiIio29jGzDiZmRERERHaCiRkREREVG2vMrMOmidmePXvQs2dPBAYGQhAEbNy4scBjdu3ahaZNm0KtVqNGjRpYuXJlicdJRERE+fv90u+2DqFcsGlilpaWhkaNGmHJkiWFKn/16lX06NEDHTt2xPHjxzFp0iS89NJL2L59ewlHSkRERHm5m34X8w7Ms3UY5YLClg/evXt3dO/evdDlly1bhqpVq+LTTz8FANStWxd79+7F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\n" + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmYAAAG2CAYAAADV+ko4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACJEUlEQVR4nO3dd3hT5dsH8O/J7N500lI2lD1LQZaUJS9DkC0gKChDBBQUmYoKLkSRHyiK4GA4AJUpVobILnuVTRltoYxO2mac94/Q04SmI23apO33c129SM55zsmdQ8adZwqiKIogIiIiIpuT2ToAIiIiIjJgYkZERERkJ5iYEREREdkJJmZEREREdoKJGREREZGdYGJGREREZCeYmBERERHZCSZmRERERHaCiRkRERGRnWBiRkRERGQnbJqY7dmzBz179kRgYCAEQcDGjRvzLb9+/Xp07twZlSpVgpubGyIiIrB9+/bSCZaIiIiohNk0MUtLS0OjRo2wZMmSQpXfs2cPOnfujC1btiA6OhodO3ZEz549cezYsRKOlIiIiKjkCfayiLkgCNiwYQP69Olj0XH16tXDwIEDMXv27JIJjIiIiKiUKGwdQHHo9XqkpKTAy8srzzKZmZnIzMyU7mu1Wpw7dw7BwcGQydjFjoiIqCzQ6/VISEhAkyZNoFCU6fQlX2X6mX3yySdITU3FgAED8iwzf/58vPPOO6UYFREREZWUQ4cOoUWLFrYOo8SU2cRs9erVeOedd/D777/D19c3z3LTp0/HlClTpPs3btxA/fr1cejQIQQEBJRGqERERFRMcXFxaNmyJfz8/GwdSokqk4nZ2rVr8dJLL+GXX35BZGRkvmXVajXUarV0393dHQAQEBCAypUrl2icREREZF3lvRtSmXt2a9aswciRI7FmzRr06NHD1uEQERGRncpvWi6NRoM333wTDRo0gLOzMwIDAzF8+HDcvn3bdgHDxolZamoqjh8/juPHjwMArl69iuPHjyM2NhaAoRly+PDhUvnVq1dj+PDh+PTTTxEeHo74+HjEx8cjKSnJFuETERGRHctvWq709HQcPXoUs2bNwtGjR7F+/XrExMSgV69eNog0h02ny9i1axc6duyYa/uIESOwcuVKvPDCC7h27Rp27doFAOjQoQN2796dZ/nCuHnzJoKDg3Hjxg02ZRIREZURxf3+Lsy0XIcPH0bLli1x/fp1hISEFCPaorNpH7MOHTogv7zwyWQrO0EjIiKiiiklJQXJycnS/Sf7khdHUlISBEGAh4eHVc5XFGWujxkRERFVXGFhYXB3d5f+5s+fb5XzZmRk4M0338TgwYPh5uZmlXMWRZkclUlEREQV09mzZxEUFCTdt0ZtmUajwYABAyCKIpYuXVrs8xUHEzMiIiIqM1xdXa1ao5WdlF2/fh3//POPTWvLACZmREREVEFlJ2UXL17Ezp074e3tbeuQmJgRERFR+ZSamopLly5J97On5fLy8kJAQACee+45HD16FJs2bYJOp0N8fDwAwMvLCyqVyiYxMzEjIiKicunIkSMm03JlL9E4YsQIzJ07F3/88QcAoHHjxibH7dy5Ex06dCitME0wMSMiIqJyqaBpuWw4lWueOF0GERERkZ1gYkZERERWodPrkKXLsnUYZRoTMyIiIrKKAZsGoPWa1kjXpNs6lDKLiRkRERFZxYUHF5Cpy8TpxNO2DqXMYmJGREREZCeYmBERERHZCSZmRERERHaCiRkRERGRnWBiRkRERGQnmJgRERER2QkmZkRERER2gokZERERkZ1gYkZERERkJ5iYEREREdkJJmZEREREdoKJGREREZGdYGJGREREZCeYmBERERHZCSZmREREZFWCINg6hDKLiRkRERFZlSiKtg6hzGJiRkRERGQnmJgRERER2QkmZkRERER2gokZERERkZ1gYkZERERkJ5iYERERkVVxuoyiY2JGREREZCeYmBEREZFVpWal2jqEMouJGRERERWb8aSyE3dOtGEkZRsTMyIiIiI7wcSMiIiIik0El2GyBiZmRERERHaCiRkREREVGxcutw4mZkRERER2gokZERERkZ1gYkZERETFxs7/1sHEjIiIiMhOMDEjIiKiYmONmXUwMSMiIiKyE0zMiIiIqPhYYWYVTMyIiIiI7AQTMyIiIio29jGzDiZmRERERHaCiRkREREVG2vMrMOmidmePXvQs2dPBAYGQhAEbNy4scBjdu3ahaZNm0KtVqNGjRpYuXJlicdJRERE+fv90u+2DqFcsGlilpaWhkaNGmHJkiWFKn/16lX06NEDHTt2xPHjxzFp0iS89NJL2L59ewlHSkRERHm5m34X8w7Ms3UY5YLClg/evXt3dO/evdDlly1bhqpVq+LTTz8FANStWxd79+7F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" }, "metadata": {}, "output_type": "display_data" @@ -353,11 +353,11 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:18:39.705875754Z", - "start_time": "2023-06-13T14:18:25.353332695Z" + "end_time": "2023-11-16T14:25:24.359865594Z", + "start_time": "2023-11-16T14:25:09.366754907Z" } }, "outputs": [ @@ -387,11 +387,11 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:18:39.706238683Z", - "start_time": "2023-06-13T14:18:39.705670673Z" + "end_time": "2023-11-16T14:25:24.360483761Z", + "start_time": "2023-11-16T14:25:24.358830207Z" } }, "outputs": [ @@ -399,7 +399,7 @@ "data": { "text/plain": "GruExtractor(\n (_fc_layer): Sequential(\n (0): Conv1d(30, 15, kernel_size=(1,), stride=(1,))\n (1): ReLU()\n (2): Conv1d(15, 5, kernel_size=(1,), stride=(1,))\n (3): ReLU()\n )\n (_gru_layers): GRU(5, 5, bidirectional=True)\n)" }, - "execution_count": 11, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -417,11 +417,11 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:19:52.274670540Z", - "start_time": "2023-06-13T14:18:39.706058993Z" + "end_time": "2023-11-16T14:26:32.111539707Z", + "start_time": "2023-11-16T14:25:24.359111750Z" } }, "outputs": [ @@ -450,7 +450,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "e3ea8eb855ce45aaaea2a2217cf29bd2" + "model_id": "3039b6abe71e4820bbf19800937555ac" } }, "metadata": {}, @@ -470,7 +470,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "72e08bfcd54149e4a8190abc206b3987" + "model_id": "f6aaed1a6e76448f992cf19b6daf3afe" } }, "metadata": {}, @@ -482,7 +482,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "540aac118db44d0897d7d0bf42cb6775" + "model_id": "9a7932b5e114420dac42e2d996edf5e8" } }, "metadata": {}, @@ -501,7 +501,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "7372e4244b284cc58a3cea73c2080533" + "model_id": "50e22981b9de40708124440a252fa933" } }, "metadata": {}, @@ -514,18 +514,18 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Test metric DataLoader 0 DataLoader 1\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/source/rmse 0.6548019051551819\n", - " test/source/score 115.59014892578125\n", - " test/target/rmse 0.6116324663162231\n", - " test/target/score 29.437801361083984\n", + " test/source/rmse 0.6547839045524597\n", + " test/source/score 0.02461443468928337\n", + " test/target/rmse 0.6114419102668762\n", + " test/target/score 0.0323663093149662\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'test/source/rmse/dataloader_idx_0': 0.6548019051551819,\n 'test/source/score/dataloader_idx_0': 115.59014892578125},\n {'test/target/rmse/dataloader_idx_1': 0.6116324663162231,\n 'test/target/score/dataloader_idx_1': 29.437801361083984}]" + "text/plain": "[{'test/source/rmse/dataloader_idx_0': 0.6547839045524597,\n 'test/source/score/dataloader_idx_0': 0.02461443468928337},\n {'test/target/rmse/dataloader_idx_1': 0.6114419102668762,\n 'test/target/score/dataloader_idx_1': 0.0323663093149662}]" }, - "execution_count": 12, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -544,11 +544,11 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:19:52.330073856Z", - "start_time": "2023-06-13T14:19:52.273756149Z" + "end_time": "2023-11-16T14:26:32.163280401Z", + "start_time": "2023-11-16T14:26:32.110666705Z" } }, "outputs": [ @@ -637,6 +637,7 @@ " - 59\n", " window_size: 20\n", "feature_extractor:\n", + " _convert_: all\n", " _target_: rul_adapt.model.GruExtractor\n", " input_channels: 30\n", " fc_units:\n", @@ -646,12 +647,14 @@ " - 5\n", " bidirectional: true\n", "regressor:\n", + " _convert_: all\n", " _target_: rul_adapt.model.FullyConnectedHead\n", " input_channels: 10\n", " act_func_on_last_layer: false\n", " units:\n", " - 1\n", "domain_disc:\n", + " _convert_: all\n", " _target_: rul_adapt.model.FullyConnectedHead\n", " input_channels: 10\n", " act_func_on_last_layer: false\n", @@ -664,8 +667,7 @@ " rul_score_mode: phm12\n", "trainer:\n", " _target_: pytorch_lightning.Trainer\n", - " max_epochs: 5000\n", - "\n" + " max_epochs: 5000\n" ] } ], @@ -686,11 +688,11 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 13, "metadata": { "ExecuteTime": { - "end_time": "2023-06-13T14:25:05.010658010Z", - "start_time": "2023-06-13T14:23:15.973226682Z" + "end_time": "2023-11-16T14:29:20.932685238Z", + "start_time": "2023-11-16T14:27:29.197192983Z" } }, "outputs": [ @@ -723,7 +725,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "26f47f2c45e44319b1b1a49062b0570b" + "model_id": "09bb708a964f4757be9632c75f769c84" } }, "metadata": {}, @@ -735,7 +737,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "8ef2781007604e7aa345dd74068d1594" + "model_id": "966d6397a94a41919e08b4d037d1141a" } }, "metadata": {}, @@ -747,7 +749,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "6f1016b67233470f9093b9d2d71facd7" + "model_id": "f94cf353257841c9bd66736d06e96ee9" } }, "metadata": {}, @@ -766,7 +768,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "aa406354ef334eb2a65b2715a67f01c5" + "model_id": "d3d95d2bca93458ab3df991dcf89b3fc" } }, "metadata": {}, @@ -779,18 +781,18 @@ "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", " Test metric DataLoader 0 DataLoader 1\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", - " test/source/rmse 0.2802342474460602\n", - " test/source/score 182.62896728515625\n", - " test/target/rmse 0.28318843245506287\n", - " test/target/score 86.33680725097656\n", + " test/source/rmse 0.2802481949329376\n", + " test/source/score 184.27552795410156\n", + " test/target/rmse 0.2827073335647583\n", + " test/target/score 86.12316131591797\n", "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" ] }, { "data": { - "text/plain": "[{'test/source/rmse/dataloader_idx_0': 0.2802342474460602,\n 'test/source/score/dataloader_idx_0': 182.62896728515625},\n {'test/target/rmse/dataloader_idx_1': 0.28318843245506287,\n 'test/target/score/dataloader_idx_1': 86.33680725097656}]" + "text/plain": "[{'test/source/rmse/dataloader_idx_0': 0.2802481949329376,\n 'test/source/score/dataloader_idx_0': 184.27552795410156},\n {'test/target/rmse/dataloader_idx_1': 0.2827073335647583,\n 'test/target/score/dataloader_idx_1': 86.12316131591797}]" }, - "execution_count": 16, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -812,7 +814,7 @@ "\n", "feature_extractor = rul_adapt.model.CnnExtractor(\n", " input_channels=5,\n", - " conv_filters=[16, 8],\n", + " units=[16, 8],\n", " seq_len=20,\n", " fc_units=16,\n", ")\n", diff --git a/rul_adapt/model/cnn.py b/rul_adapt/model/cnn.py index 8b906e07..f46b5ce6 100644 --- a/rul_adapt/model/cnn.py +++ b/rul_adapt/model/cnn.py @@ -63,7 +63,7 @@ def __init__( """ Create a new CNN-based feature extractor. - The `conv_filters` are the number of output filters for each CNN layer. The + The `units` are the number of output filters for each CNN layer. The `seq_len` is needed to calculate the input units for the FC layer. The kernel size of each CNN layer can be set by passing a list to `kernel_size`. If an integer is passed, each layer has the same kernel size. If `padding` is true, diff --git a/rul_adapt/model/rnn.py b/rul_adapt/model/rnn.py index 8dd61033..166784be 100644 --- a/rul_adapt/model/rnn.py +++ b/rul_adapt/model/rnn.py @@ -49,11 +49,11 @@ def __init__( """ Create a new LSTM-based feature extractor. - The `lstm_units` are the output units for each LSTM layer. If `bidirectional` + The `units` are the output units for each LSTM layer. If `bidirectional` is set to `True`, a BiLSTM is used and the output units are doubled. If `fc_units` is set, a fully connected layer is appended. The number of output - features of this network is either `lstm_units[-1]` by default, - `2 * lstm_units[ -1]` if bidirectional is set, or `fc_units` if it is set. + features of this network is either `units[-1]` by default, + `2 * units[ -1]` if bidirectional is set, or `fc_units` if it is set. Dropout can be applied to each LSTM layer by setting `lstm_dropout` to a number greater than zero. The same is valid for the fully connected layer and