From 56f8ab0d5cdd8c222cc2374c660dcff278ba58f8 Mon Sep 17 00:00:00 2001 From: Ryan Daniels <31715811+rkdan@users.noreply.github.com> Date: Wed, 12 Jun 2024 20:21:00 +0000 Subject: [PATCH] Decent Diffusers generation --- .github/workflows/documentation.yml | 28 +++ .gitignore | 3 +- diffusion-models/notebooks/hf_diffusers.ipynb | 199 ++++++++++++------ diffusion-models/notebooks/hf_ecg.ipynb | 180 ++++++++++++++++ 4 files changed, 346 insertions(+), 64 deletions(-) create mode 100644 .github/workflows/documentation.yml create mode 100644 diffusion-models/notebooks/hf_ecg.ipynb diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 0000000..aa3aa86 --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,28 @@ +name: Documentation +on: + push: + branches: + - main +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Configure Git Credentials + run: | + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v4 + with: + key: mkdocs-material-${{ env.cache_id }} + path: .cache + restore-keys: | + mkdocs-material- + - run: pip install mkdocstrings mkdocs-material + - run: mkdocs gh-deploy --force \ No newline at end of file diff --git a/.gitignore b/.gitignore index eb3e7b7..5130ccc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /venv docs/.DS_Store -diffusion-models/notebooks/mnist_data/ \ No newline at end of file +diffusion-models/notebooks/mnist_data/ +diffusion-models/notebooks/ecg/ \ No newline at end of file diff --git a/diffusion-models/notebooks/hf_diffusers.ipynb b/diffusion-models/notebooks/hf_diffusers.ipynb index bd18dfc..b3224f9 100644 --- a/diffusion-models/notebooks/hf_diffusers.ipynb +++ b/diffusion-models/notebooks/hf_diffusers.ipynb @@ -2,20 +2,9 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 20, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.10/dist-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n", - "/usr/local/lib/python3.10/dist-packages/diffusers/models/transformers/transformer_2d.py:34: FutureWarning: `Transformer2DModelOutput` is deprecated and will be removed in version 1.0.0. Importing `Transformer2DModelOutput` from `diffusers.models.transformer_2d` is deprecated and this will be removed in a future version. Please use `from diffusers.models.modeling_outputs import Transformer2DModelOutput`, instead.\n", - " deprecate(\"Transformer2DModelOutput\", \"1.0.0\", deprecation_message)\n" - ] - } - ], + "outputs": [], "source": [ "from datasets import load_dataset\n", "import torch\n", @@ -32,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -59,7 +48,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -242,7 +231,7 @@ ")" ] }, - "execution_count": 3, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -253,7 +242,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -274,18 +263,18 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "from diffusers import DDPMScheduler\n", "\n", - "noise_scheduler = DDPMScheduler(num_train_timesteps=150) " + "noise_scheduler = DDPMScheduler(num_train_timesteps=200) " ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -294,7 +283,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -320,7 +309,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -329,87 +318,147 @@ "text": [ "0it [00:00, ?it/s]/usr/local/lib/python3.10/dist-packages/diffusers/configuration_utils.py:140: FutureWarning: Accessing config attribute `num_train_timesteps` directly via 'DDPMScheduler' object attribute is deprecated. Please access 'num_train_timesteps' over 'DDPMScheduler's config object instead, e.g. 'scheduler.config.num_train_timesteps'.\n", " deprecate(\"direct config name access\", \"1.0.0\", deprecation_message, standard_warn=False)\n", - "1875it [04:51, 6.43it/s]\n" + "1875it [03:42, 8.43it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 0 Loss: 0.04561576619744301\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "1875it [03:27, 9.02it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1 Loss: 0.04327964410185814\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "1875it [03:29, 8.96it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 2 Loss: 0.04432613030076027\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "1875it [03:28, 9.00it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 3 Loss: 0.033934012055397034\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "1875it [03:30, 8.92it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "Epoch 0 Loss: 0.059813931584358215\n" + "Epoch 4 Loss: 0.03634652495384216\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "1875it [04:47, 6.52it/s]\n" + "1875it [03:28, 8.97it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "Epoch 1 Loss: 0.047683872282505035\n" + "Epoch 5 Loss: 0.03282684087753296\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "1875it [04:52, 6.40it/s]\n" + "1875it [03:24, 9.19it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "Epoch 2 Loss: 0.034084219485521317\n" + "Epoch 6 Loss: 0.030779113993048668\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "1875it [05:02, 6.20it/s]\n" + "1875it [03:24, 9.16it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "Epoch 3 Loss: 0.039008501917123795\n" + "Epoch 7 Loss: 0.03889871761202812\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "57it [00:09, 6.02it/s]\n" + "1875it [03:23, 9.20it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 8 Loss: 0.031148657202720642\n" ] }, { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[8], line 13\u001b[0m\n\u001b[1;32m 10\u001b[0m timesteps \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mrandint(\u001b[38;5;241m0\u001b[39m, noise_scheduler\u001b[38;5;241m.\u001b[39mnum_train_timesteps, (bs,), device\u001b[38;5;241m=\u001b[39mclean_images\u001b[38;5;241m.\u001b[39mdevice)\u001b[38;5;241m.\u001b[39mlong()\n\u001b[1;32m 11\u001b[0m noisy_images \u001b[38;5;241m=\u001b[39m noise_scheduler\u001b[38;5;241m.\u001b[39madd_noise(clean_images, noise, timesteps)\n\u001b[0;32m---> 13\u001b[0m noise_pred \u001b[38;5;241m=\u001b[39m \u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnoisy_images\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtimesteps\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlabels\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreturn_dict\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m 14\u001b[0m loss \u001b[38;5;241m=\u001b[39m F\u001b[38;5;241m.\u001b[39mmse_loss(noise_pred, noise)\n\u001b[1;32m 15\u001b[0m loss\u001b[38;5;241m.\u001b[39mbackward()\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/diffusers/models/unets/unet_2d.py:329\u001b[0m, in \u001b[0;36mUNet2DModel.forward\u001b[0;34m(self, sample, timestep, class_labels, return_dict)\u001b[0m\n\u001b[1;32m 327\u001b[0m sample, skip_sample \u001b[38;5;241m=\u001b[39m upsample_block(sample, res_samples, emb, skip_sample)\n\u001b[1;32m 328\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 329\u001b[0m sample \u001b[38;5;241m=\u001b[39m \u001b[43mupsample_block\u001b[49m\u001b[43m(\u001b[49m\u001b[43msample\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mres_samples\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43memb\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 331\u001b[0m \u001b[38;5;66;03m# 6. post-process\u001b[39;00m\n\u001b[1;32m 332\u001b[0m sample \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconv_norm_out(sample)\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/diffusers/models/unets/unet_2d_blocks.py:2673\u001b[0m, in \u001b[0;36mUpBlock2D.forward\u001b[0;34m(self, hidden_states, res_hidden_states_tuple, temb, upsample_size, *args, **kwargs)\u001b[0m\n\u001b[1;32m 2669\u001b[0m hidden_states \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mutils\u001b[38;5;241m.\u001b[39mcheckpoint\u001b[38;5;241m.\u001b[39mcheckpoint(\n\u001b[1;32m 2670\u001b[0m create_custom_forward(resnet), hidden_states, temb\n\u001b[1;32m 2671\u001b[0m )\n\u001b[1;32m 2672\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 2673\u001b[0m hidden_states \u001b[38;5;241m=\u001b[39m \u001b[43mresnet\u001b[49m\u001b[43m(\u001b[49m\u001b[43mhidden_states\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtemb\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2675\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mupsamplers \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 2676\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m upsampler \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mupsamplers:\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/diffusers/models/resnet.py:345\u001b[0m, in \u001b[0;36mResnetBlock2D.forward\u001b[0;34m(self, input_tensor, temb, *args, **kwargs)\u001b[0m\n\u001b[1;32m 343\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtime_emb_proj \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 344\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mskip_time_act:\n\u001b[0;32m--> 345\u001b[0m temb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnonlinearity\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtemb\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 346\u001b[0m temb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtime_emb_proj(temb)[:, :, \u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28;01mNone\u001b[39;00m]\n\u001b[1;32m 348\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtime_embedding_norm \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdefault\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/modules/activation.py:396\u001b[0m, in \u001b[0;36mSiLU.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 395\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[0;32m--> 396\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mF\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msilu\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minplace\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minplace\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/torch/nn/functional.py:2102\u001b[0m, in \u001b[0;36msilu\u001b[0;34m(input, inplace)\u001b[0m\n\u001b[1;32m 2100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inplace:\n\u001b[1;32m 2101\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m torch\u001b[38;5;241m.\u001b[39m_C\u001b[38;5;241m.\u001b[39m_nn\u001b[38;5;241m.\u001b[39msilu_(\u001b[38;5;28minput\u001b[39m)\n\u001b[0;32m-> 2102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_C\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_nn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msilu\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m)\u001b[49m\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + "name": "stderr", + "output_type": "stream", + "text": [ + "1875it [03:41, 8.48it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 9 Loss: 0.03246668353676796\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" ] } ], @@ -439,7 +488,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -448,7 +497,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -457,7 +506,7 @@ "torch._C.Generator" ] }, - "execution_count": 18, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -468,7 +517,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 47, "metadata": {}, "outputs": [], "source": [ @@ -480,7 +529,11 @@ " label: int) -> np.ndarray:\n", " \n", " image_shape = (batch_size, 1, 28, 28)\n", - " labels = torch.full((batch_size,), label)\n", + " # if label is a list\n", + " if isinstance(label, list):\n", + " labels = torch.tensor(label)\n", + " else:\n", + " labels = torch.full((batch_size,), label)\n", "\n", " image = torch.randn(image_shape)\n", "\n", @@ -502,26 +555,46 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "images = inference(model=model,\n", " scheduler=noise_scheduler,\n", " batch_size=10,\n", - " generator=torch.manual_seed(42),\n", - " num_inference_steps=150,\n", - " label=3)" + " generator=torch.manual_seed(1337),\n", + " num_inference_steps=200,\n", + " label=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(10, 28, 28, 1)" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "images.shape" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 53, "metadata": {}, "outputs": [ { "data": { - "image/png": "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IwIAAAAAAGhGIwIAAAAAAGhGIwIAAAAAAGhmLg2Ox+OW49gmJXM2HA57WSs938997nOj3F577VXM/P7v/35Ua/PmzVGO+tI1ti2qeX1xvy7mNTlmF+cxnYtf+ZVfKWa23377qNa1115bzNx4441RLZi09Dqtec3X3LNWV1ejWq94xSuKmXe84x1RrdnZ2WLmc5/7XFQr2T8Gg+wZ8NnPfnZUa35+vpi56667olrvec97ipn0HNVU8/5Te11DzbUy7evusMMOi3LJ/rzjjjtGtV772tcWM1u3bo1qrQXWax1d/PZJv6/tsMMOUe5Zz3pWlHvve99bzKTz+qlPfaqYueGGG6JaiS6eiWvyPab//EcEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQzFzXA9iWDYfDKpnBYDAYj8fFzGg0imolnvjEJ0a5//pf/2uUu/TSS4uZM888M6pVUzL/ydyvFeZistbCfNf8jTX30y6OuXHjxqjWv/t3/y7KJf70T/+0mLn99tujWulcpLnEWrhG1qrk3HZxzae1krHNzGR/D3T22WcXMzvvvHNU641vfGMxc9RRR0W1as5/Oq/XXXddMXPCCSdEtS666KIol6i5r3Wh5vUGg8Hk11TNvfmP//iPo1onnnhilLvrrruKmWOOOSaq9bnPfa6YmZ2djWqtBTXXBXV08exwyCGHFDPJO9FgMBjst99+UW51dbWYueWWW6JaJ598cpXjDQbZnKXPp97D2uji/WbS/EcEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQjEYEAAAAAADQzHA8Ho+T4Pz8fOuxdG44HEa5cMoG69atK2Z23nnnqNb1119fzKTjP/roo4uZs846K6p13333RbmnP/3pxcy1114b1Up/J91ZXl7uegjVzc3NRblkf6i91/APupjX9JhPfepTi5kTTjghqvWyl72smLn44oujWr/4i79YzKyurka11sJ6Tc/3yspK45FM1sLCQtdD+CethTU3GGS/c5dddolqJXvRoYceGtV67nOfG+X22GOPYuarX/1qVOuv/uqvipk//dM/jWrVXD/TvhZr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", + "image/png": "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AEAxnWiwrutsB221Wtm6enVdUdH1R9aWs2t0dDTU1deXb5bVxPnPeczxvn6IXk9bbLFFKPe6170umbnxxhtDXX/4wx+SmZx7YFS73Q7lttpqq2Tms5/9bKjroYceSmb+6Z/+KdR1++23JzPR8/qVr3wllLv55puTmZe//OWhrltuuSWUY3LL+Qw13uU8FzvuuGMo9+Y3vzmZiexrVVVV9957bygXMVlec5gMop9dc973Rx55ZCh30EEHJTOzZs0Kdb373e9OZr797W+HuiLsk/B/RT9HRvak5cuXr+xy/uILX/hCtq7c933knO29996hrs997nPJzNSpU0NdIyMjycyyZctCXawYv4gAAAAAAACKMYgAAAAAAACKMYgAAAAAAACKMYgAAAAAAACKMYgAAAAAAACKMYgAAAAAAACKMYgAAAAAAACKMYgAAAAAAACK6USDrVYrlKvr+m9ezN8iuq5dd901mdlxxx1DXYsXLw7l5s2bl8xst9122Y7529/+NtQ1Y8aMZOaTn/xkqGvp0qWh3Gc+85lk5kc/+lHWY4616LUfuWZzdkFufX2xGfbo6Ggyc88994S6hoeHQ7lc+vv7Q7lPfepTodzhhx+ezHzve98LdZ100knJTM7zFd1nHnjggWx966yzTqgLIsb62bSXRc5Fu90OdUX3v04n/XHjda97XahrcHAwmfF608s845cRPa8/+clPkpnNN9881DV16tRQbvny5cnMlltuGer63e9+l8y4dlZczs/nUFVVtdVWW2XJVFVVPfHEE8nMs88+G+pqQuS72KuuuirUFXlG/dOf/hTquvjii5OZkZGRUBcrxi8iAAAAAACAYgwiAAAAAACAYgwiAAAAAACAYgwiAAAAAACAYgwiAAAAAACAYgwiAAAAAACAYgwiAAAAAACAYgwiAAAAAACAYgwiAAAAAACAYjrRYF3XoVyr1fqbF/O36Ha7odyb3vSmZOad73xnqKvTCZ+2CW90dDSUu+SSS5KZe+65J9T1+te/Ppl55JFHQl2R6zX3tR/pG+v7CFbE3//934dy7XY7mRkcHFzZ5fxFzvtmq622CuWOO+64UO6JJ55IZk466aRQ19DQUDLTxH502GGHhXKRvm9+85vZuqJ7OIxnOfe/LbbYIpTbZZddQrkf/vCHycwf//jHUJfnI8a7nO/PuY8Z0avrin4nsP76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", "text/plain": [ "
" ] diff --git a/diffusion-models/notebooks/hf_ecg.ipynb b/diffusion-models/notebooks/hf_ecg.ipynb new file mode 100644 index 0000000..f3aa0ac --- /dev/null +++ b/diffusion-models/notebooks/hf_ecg.ipynb @@ -0,0 +1,180 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import torch" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# read ecg data\n", + "ecg_data = pd.read_csv('./ecg/mitbih_train.csv', header=None)\n", + "# labels are the final column\n", + "ecg_labels = ecg_data.iloc[:, -1]\n", + "# drop the labels from the data\n", + "ecg_data = ecg_data.drop(ecg_data.columns[-1], axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(87554, 187)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ecg_data.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot the first 20 samples in separate subplots\n", + "fig, axs = plt.subplots(5, 4)\n", + "fig.suptitle('First 20 ECG samples')\n", + "for i in range(20):\n", + " axs[i // 4, i % 4].plot(ecg_data.iloc[i])\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# create a torch dataset from the data and labels\n", + "class ECGDataset(torch.utils.data.Dataset):\n", + " def __init__(self, data, labels):\n", + " self.data = data\n", + " self.labels = labels\n", + "\n", + " def __len__(self):\n", + " return len(self.data)\n", + "\n", + " def __getitem__(self, idx):\n", + " return self.data.iloc[idx].values, self.labels.iloc[idx]\n", + " \n", + "# create a dataset from the data\n", + "ecg_dataset = ECGDataset(ecg_data, ecg_labels)\n", + "\n", + "# create a dataloader from the dataset\n", + "ecg_dataloader = torch.utils.data.DataLoader(ecg_dataset, batch_size=32, shuffle=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.10/dist-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n", + "/usr/local/lib/python3.10/dist-packages/diffusers/models/transformers/transformer_2d.py:34: FutureWarning: `Transformer2DModelOutput` is deprecated and will be removed in version 1.0.0. Importing `Transformer2DModelOutput` from `diffusers.models.transformer_2d` is deprecated and this will be removed in a future version. Please use `from diffusers.models.modeling_outputs import Transformer2DModelOutput`, instead.\n", + " deprecate(\"Transformer2DModelOutput\", \"1.0.0\", deprecation_message)\n" + ] + } + ], + "source": [ + "from diffusers import UNet1DModel\n", + "\n", + "import torch\n", + "import torch.nn as nn\n", + "import torch.optim as optim\n", + "import torch.nn.functional as F" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "model = UNet1DModel(\n", + " sample_size=187,\n", + " in_channels=2,\n", + " out_channels=1,\n", + " layers_per_block=1,\n", + " block_out_channels=(8, 16, 32),\n", + " down_block_types=(\n", + " \"DownBlock1D\",\n", + " \"DownBlock1D\",\n", + " \"DownBlock1D\",\n", + " ),\n", + " up_block_types=(\n", + " \"UpBlock1D\",\n", + " \"UpBlock1D\",\n", + " \"UpBlock1D\",\n", + " ),\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}