From 465fcb011667d8810ceceb1283f12ea8cfb7a6b5 Mon Sep 17 00:00:00 2001
From: TheRiPtide <g.zaugg97@gmail.com>
Date: Wed, 22 Dec 2021 10:16:25 +0100
Subject: [PATCH] fix: swap to onehot encoding started

---
 models/internal_priming.pth      | Bin 13301 -> 13301 bytes
 notebooks/internal_priming.ipynb | 220 ++++++-------------------------
 2 files changed, 41 insertions(+), 179 deletions(-)

diff --git a/models/internal_priming.pth b/models/internal_priming.pth
index 7eb6ff99f2a924ff4bc1a60a12fc26199d0b0e09..eeab5fda317b000d341c6d4f6badf410ba6e96f0 100644
GIT binary patch
delta 8903
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

delta 8903
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
WvS0zb86?eNti%F#BZ%W-yb%C`;0cic

diff --git a/notebooks/internal_priming.ipynb b/notebooks/internal_priming.ipynb
index 55fd43a..d1c274f 100644
--- a/notebooks/internal_priming.ipynb
+++ b/notebooks/internal_priming.ipynb
@@ -22,32 +22,13 @@
   },
   {
    "cell_type": "code",
-<<<<<<< HEAD
-<<<<<<< HEAD
-   "execution_count": 80,
-=======
-   "execution_count": null,
->>>>>>> d2ef840 (chore: started cnn notebook)
-=======
-   "execution_count": 80,
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
+   "execution_count": 14,
    "outputs": [],
    "source": [
     "# importing the libraries\n",
     "import pandas as pd\n",
     "import numpy as np\n",
-<<<<<<< HEAD
-<<<<<<< HEAD
-<<<<<<< HEAD
-    "import matplotlib.pyplot as plt\n",
-=======
->>>>>>> d2ef840 (chore: started cnn notebook)
-=======
     "import matplotlib.pyplot as plt\n",
->>>>>>> 93ea318 (chore: added training function for cnn)
-=======
-    "import matplotlib.pyplot as plt\n",
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
     "\n",
     "# for creating validation set\n",
     "from sklearn.model_selection import train_test_split\n",
@@ -59,18 +40,9 @@
     "# PyTorch libraries and modules\n",
     "import torch\n",
     "from torch.autograd import Variable\n",
-<<<<<<< HEAD
-<<<<<<< HEAD
     "from torch.nn import Linear, ReLU, CrossEntropyLoss, Sequential, MaxPool1d, Module, Softmax, BatchNorm1d, Dropout, Conv1d\n",
-    "from torch.optim import Adam\n",
-=======
-    "from torch.nn import Linear, ReLU, CrossEntropyLoss, Sequential, Conv2d, MaxPool2d, Module, Softmax, BatchNorm2d, Dropout\n",
     "from torch.optim import Adam, SGD\n",
->>>>>>> d2ef840 (chore: started cnn notebook)
-=======
-    "from torch.nn import Linear, ReLU, CrossEntropyLoss, Sequential, MaxPool1d, Module, Softmax, BatchNorm1d, Dropout, Conv1d\n",
-    "from torch.optim import Adam\n",
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
+    "from torchsummary import summary\n",
     "\n",
     "\n",
     "# adding the nn\n",
@@ -79,10 +51,6 @@
     "        super(Net, self).__init__()\n",
     "\n",
     "        self.cnn_layers = Sequential(\n",
-<<<<<<< HEAD
-<<<<<<< HEAD
-=======
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
     "            # Defining a 1D convolution layer\n",
     "            Conv1d(1, 4, kernel_size=3, stride=1, padding=1),\n",
     "            BatchNorm1d(4),\n",
@@ -97,25 +65,6 @@
     "\n",
     "        self.linear_layers = Sequential(\n",
     "            Linear(4 * 50, 10)\n",
-<<<<<<< HEAD
-=======
-    "            # Defining a 2D convolution layer\n",
-    "            Conv2d(1, 4, kernel_size=3, stride=1, padding=1),\n",
-    "            BatchNorm2d(4),\n",
-    "            ReLU(inplace=True),\n",
-    "            MaxPool2d(kernel_size=2, stride=2),\n",
-    "            # Defining another 2D convolution layer\n",
-    "            Conv2d(4, 4, kernel_size=3, stride=1, padding=1),\n",
-    "            BatchNorm2d(4),\n",
-    "            ReLU(inplace=True),\n",
-    "            MaxPool2d(kernel_size=2, stride=2),\n",
-    "        )\n",
-    "\n",
-    "        self.linear_layers = Sequential(\n",
-    "            Linear(4 * 7 * 7, 10)\n",
->>>>>>> d2ef840 (chore: started cnn notebook)
-=======
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
     "        )\n",
     "\n",
     "    # Defining the forward pass\n",
@@ -123,13 +72,6 @@
     "        x = self.cnn_layers(x)\n",
     "        x = x.view(x.size(0), -1)\n",
     "        x = self.linear_layers(x)\n",
-<<<<<<< HEAD
-<<<<<<< HEAD
-<<<<<<< HEAD
-=======
->>>>>>> 93ea318 (chore: added training function for cnn)
-=======
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
     "        return x\n",
     "\n",
     "# defining training function\n",
@@ -164,15 +106,6 @@
     "    tr_loss = loss_train.item()\n",
     "\n",
     "    return loss_train, loss_val"
-<<<<<<< HEAD
-<<<<<<< HEAD
-=======
-    "        return x"
->>>>>>> d2ef840 (chore: started cnn notebook)
-=======
->>>>>>> 93ea318 (chore: added training function for cnn)
-=======
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
    ],
    "metadata": {
     "collapsed": false,
@@ -195,26 +128,22 @@
   },
   {
    "cell_type": "code",
-<<<<<<< HEAD
-<<<<<<< HEAD
-=======
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
-   "execution_count": 81,
+   "execution_count": 15,
    "outputs": [
     {
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      "100%|██████████| 20000/20000 [00:00<00:00, 97752.58it/s]\n"
+      "100%|██████████| 20000/20000 [00:00<00:00, 27099.07it/s]\n"
      ]
     }
    ],
    "source": [
     "enum = {\n",
-    "    'A': 0.0,\n",
-    "    'U': 1/3,\n",
-    "    'G': 2/3,\n",
-    "    'C': 1.0\n",
+    "    'A': [1, 0, 0, 0],\n",
+    "    'U': [0, 1, 0, 0],\n",
+    "    'G': [0, 0, 1, 0],\n",
+    "    'C': [0, 0, 0, 1]\n",
     "}\n",
     "\n",
     "# TODO: Get test data from issues 25 and 26\n",
@@ -256,7 +185,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 82,
+   "execution_count": 17,
    "outputs": [],
    "source": [
     "# TODO: reshape shape from [n, l] to [n, 1, l]\n",
@@ -270,31 +199,14 @@
     "train_shape = train_x.shape\n",
     "val_shape = val_x.shape\n",
     "\n",
-    "train_x = train_x.reshape(train_shape[0], 1, train_shape[1])\n",
-    "val_x = val_x.reshape(val_shape[0], 1, val_shape[1])\n",
+    "train_x = train_x.reshape(train_shape[0], 1, train_shape[1], 4)\n",
+    "val_x = val_x.reshape(val_shape[0], 1, val_shape[1], 4)\n",
     "\n",
     "train_x  = torch.from_numpy(train_x)\n",
     "train_y = torch.from_numpy(train_y)\n",
     "\n",
     "val_x  = torch.from_numpy(val_x)\n",
     "val_y = torch.from_numpy(val_y)"
-<<<<<<< HEAD
-=======
-   "execution_count": null,
-   "outputs": [],
-   "source": [
-    "# TODO: Get test data from issues 25 and 26\n",
-    "train_x = []\n",
-    "train_y = []\n",
-    "test_x = []\n",
-    "test_y = []\n",
-    "\n",
-    "train_x, val_x, train_y, val_y = train_test_split(train_x, train_y, test_size = 0.1)\n",
-    "\n",
-    "# TODO: reshape shape from [n, l] to [n, 1, l]\n"
->>>>>>> d2ef840 (chore: started cnn notebook)
-=======
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
    ],
    "metadata": {
     "collapsed": false,
@@ -317,17 +229,32 @@
   },
   {
    "cell_type": "code",
-<<<<<<< HEAD
-<<<<<<< HEAD
-=======
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
-   "execution_count": 83,
+   "execution_count": 18,
    "outputs": [
     {
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      "100%|██████████| 25/25 [00:18<00:00,  1.34it/s]\n"
+      "  0%|          | 0/25 [00:00<?, ?it/s]\n"
+     ]
+    },
+    {
+     "ename": "RuntimeError",
+     "evalue": "Expected 3-dimensional input for 3-dimensional weight [4, 1, 3], but got 4-dimensional input of size [18000, 1, 200, 4] instead",
+     "output_type": "error",
+     "traceback": [
+      "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
+      "\u001B[1;31mRuntimeError\u001B[0m                              Traceback (most recent call last)",
+      "\u001B[1;32m~\\AppData\\Local\\Temp/ipykernel_14744/999922600.py\u001B[0m in \u001B[0;36m<module>\u001B[1;34m\u001B[0m\n\u001B[0;32m     24\u001B[0m \u001B[1;31m# training the model\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m     25\u001B[0m \u001B[1;32mfor\u001B[0m \u001B[0mepoch\u001B[0m \u001B[1;32min\u001B[0m \u001B[0mtqdm\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mrange\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mn_epochs\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 26\u001B[1;33m     \u001B[0mtrain_loss\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mval_loss\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mtrain\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m     27\u001B[0m     \u001B[0mtrain_losses\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mappend\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mtrain_loss\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m     28\u001B[0m     \u001B[0mval_losses\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mappend\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mval_loss\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
+      "\u001B[1;32m~\\AppData\\Local\\Temp/ipykernel_14744/2669949571.py\u001B[0m in \u001B[0;36mtrain\u001B[1;34m()\u001B[0m\n\u001B[0;32m     67\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m     68\u001B[0m     \u001B[1;31m# prediction for training and validation set\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 69\u001B[1;33m     \u001B[0moutput_train\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mmodel\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mx_train\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m     70\u001B[0m     \u001B[0moutput_val\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mmodel\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mx_val\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m     71\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n",
+      "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py\u001B[0m in \u001B[0;36m_call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m   1100\u001B[0m         if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks\n\u001B[0;32m   1101\u001B[0m                 or _global_forward_hooks or _global_forward_pre_hooks):\n\u001B[1;32m-> 1102\u001B[1;33m             \u001B[1;32mreturn\u001B[0m \u001B[0mforward_call\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m*\u001B[0m\u001B[0minput\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m   1103\u001B[0m         \u001B[1;31m# Do not call functions when jit is used\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m   1104\u001B[0m         \u001B[0mfull_backward_hooks\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mnon_full_backward_hooks\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
+      "\u001B[1;32m~\\AppData\\Local\\Temp/ipykernel_14744/2669949571.py\u001B[0m in \u001B[0;36mforward\u001B[1;34m(self, x)\u001B[0m\n\u001B[0;32m     43\u001B[0m     \u001B[1;31m# Defining the forward pass\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m     44\u001B[0m     \u001B[1;32mdef\u001B[0m \u001B[0mforward\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mx\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 45\u001B[1;33m         \u001B[0mx\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mcnn_layers\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mx\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m     46\u001B[0m         \u001B[0mx\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mx\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mview\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mx\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0msize\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;36m0\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m-\u001B[0m\u001B[1;36m1\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m     47\u001B[0m         \u001B[0mx\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mlinear_layers\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mx\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
+      "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py\u001B[0m in \u001B[0;36m_call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m   1100\u001B[0m         if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks\n\u001B[0;32m   1101\u001B[0m                 or _global_forward_hooks or _global_forward_pre_hooks):\n\u001B[1;32m-> 1102\u001B[1;33m             \u001B[1;32mreturn\u001B[0m \u001B[0mforward_call\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m*\u001B[0m\u001B[0minput\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m   1103\u001B[0m         \u001B[1;31m# Do not call functions when jit is used\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m   1104\u001B[0m         \u001B[0mfull_backward_hooks\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mnon_full_backward_hooks\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
+      "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\container.py\u001B[0m in \u001B[0;36mforward\u001B[1;34m(self, input)\u001B[0m\n\u001B[0;32m    139\u001B[0m     \u001B[1;32mdef\u001B[0m \u001B[0mforward\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0minput\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m    140\u001B[0m         \u001B[1;32mfor\u001B[0m \u001B[0mmodule\u001B[0m \u001B[1;32min\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 141\u001B[1;33m             \u001B[0minput\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mmodule\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0minput\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m    142\u001B[0m         \u001B[1;32mreturn\u001B[0m \u001B[0minput\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m    143\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n",
+      "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py\u001B[0m in \u001B[0;36m_call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m   1100\u001B[0m         if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks\n\u001B[0;32m   1101\u001B[0m                 or _global_forward_hooks or _global_forward_pre_hooks):\n\u001B[1;32m-> 1102\u001B[1;33m             \u001B[1;32mreturn\u001B[0m \u001B[0mforward_call\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m*\u001B[0m\u001B[0minput\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m   1103\u001B[0m         \u001B[1;31m# Do not call functions when jit is used\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m   1104\u001B[0m         \u001B[0mfull_backward_hooks\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mnon_full_backward_hooks\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
+      "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\conv.py\u001B[0m in \u001B[0;36mforward\u001B[1;34m(self, input)\u001B[0m\n\u001B[0;32m    299\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m    300\u001B[0m     \u001B[1;32mdef\u001B[0m \u001B[0mforward\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0minput\u001B[0m\u001B[1;33m:\u001B[0m \u001B[0mTensor\u001B[0m\u001B[1;33m)\u001B[0m \u001B[1;33m->\u001B[0m \u001B[0mTensor\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 301\u001B[1;33m         \u001B[1;32mreturn\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_conv_forward\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0minput\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mweight\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mbias\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m    302\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m    303\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n",
+      "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\conv.py\u001B[0m in \u001B[0;36m_conv_forward\u001B[1;34m(self, input, weight, bias)\u001B[0m\n\u001B[0;32m    295\u001B[0m                             \u001B[0mweight\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mbias\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mstride\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m    296\u001B[0m                             _single(0), self.dilation, self.groups)\n\u001B[1;32m--> 297\u001B[1;33m         return F.conv1d(input, weight, bias, self.stride,\n\u001B[0m\u001B[0;32m    298\u001B[0m                         self.padding, self.dilation, self.groups)\n\u001B[0;32m    299\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n",
+      "\u001B[1;31mRuntimeError\u001B[0m: Expected 3-dimensional input for 3-dimensional weight [4, 1, 3], but got 4-dimensional input of size [18000, 1, 200, 4] instead"
      ]
     }
    ],
@@ -341,37 +268,10 @@
     "# defining the loss function\n",
     "criterion = CrossEntropyLoss()\n",
     "\n",
-<<<<<<< HEAD
-=======
-   "execution_count": null,
-   "outputs": [],
-   "source": [
-    "# defining the model\n",
-    "model = Net()\n",
-    "\n",
-    "# defining the optimizer\n",
-    "optimizer = Adam(model.parameters(), lr=0.07)\n",
-    "\n",
-    "# defining the loss function\n",
-    "criterion = CrossEntropyLoss()\n",
-<<<<<<< HEAD
->>>>>>> d2ef840 (chore: started cnn notebook)
-=======
-    "\n",
->>>>>>> 93ea318 (chore: added training function for cnn)
-=======
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
     "# checking if GPU is available\n",
     "if torch.cuda.is_available():\n",
     "    model = model.cuda()\n",
     "    criterion = criterion.cuda()\n",
-<<<<<<< HEAD
-<<<<<<< HEAD
-<<<<<<< HEAD
-=======
->>>>>>> 93ea318 (chore: added training function for cnn)
-=======
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
     "\n",
     "# defining the number of epochs\n",
     "n_epochs = 25\n",
@@ -383,10 +283,6 @@
     "val_losses = []\n",
     "\n",
     "# training the model\n",
-<<<<<<< HEAD
-<<<<<<< HEAD
-=======
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
     "for epoch in tqdm(range(n_epochs)):\n",
     "    train_loss, val_loss = train()\n",
     "    train_losses.append(train_loss)\n",
@@ -413,19 +309,8 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 84,
-   "outputs": [
-    {
-     "data": {
-      "text/plain": "<Figure size 432x288 with 1 Axes>",
-      "image/png": "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pfKwatUq1q1bd9CydevW5dTwC9JdIKuqqsa070MD/tvf/jaf/OQnx7StUlGSAQ8QcVbjiWnAK1VKVq5cyZNPPjk4uUdzczN79uzh3HPP5dZbb6WpqYk5c+Zw9913D/v+mTNn0t6e/v/9Pffcw4knnsg555wz2FIY0mPcFy9ezLx587jqqqvo7e1l06ZNPP744/z93/898+fP57333mP16tU89thjADz77LMsWLCA008/nRtuuIH+/v7B/d19990sXLiQ008/nR07dhzx+I62tsIlOQ4eoMddQ/mAtitQasyeugv2vVHYbU49HS787ogv19TUcMYZZ/DUU09x2WWXsW7dOq655hpEhHvuuYeamhqSySSf+MQneP3115k7d+6w29myZQvr1q1j27ZtJBIJFi5cyKJFiwC48sorufHGGwH45je/yU9/+lO++MUvcumll3LJJZewcuXKg7YVi8VYvXo1zz77LCeeeCLXXXcdDzzwAHfccQcAdXV1bN26lR/+8Ifce++9/OQnPxnx+I62tsIl+w2+31tLZVIDXqlSM/Q0zdDTM7/61a9YuHAhCxYsYPv27QedTjnUiy++yBVXXEF5eTmVlZVceumlg6+9+eabnHvuuZx++uk88sgjbN++/Yj1vPPOO8yaNYsTTzwRgOuvv56NGzcOvn7llVcCsGjRosEGZSN56aWX+NznPgcM31b4/vvvJxQK4XK5WLx4MQ8++CBr1qzhjTfeoKKi4ojbHouS/QafLK+nOhQmmTI4HTpLvFJ5O8I37Yl02WWXceedd7J161Z6e3tZtGgRH3zwAffeey+vvfYa1dXVrF69mlgsNqbtr169mvXr1zNv3jweeughXnjhhXHVm205PJ52w1a1FS7Zb/D4G6iQPrrCYasrUUrlIRAIsHz5cm644YbBb++RSAS/308wGGT//v089dRTR9zGeeedx/r16+nr6yMajfLEE08MvhaNRpk2bRrxeHywxS9ARUUF0Wj0sG2ddNJJNDc3s3PnTgB+8Ytf8PGPf3xMx3a0tRUu2W/w2XYF4bZW6qqrrC1GKZWXVatWccUVVwyeqsm21z355JOZMWMGS5cuPeL7Fy5cyGc+8xnmzZtHQ0MDixcvHnztO9/5DkuWLKG+vp4lS5YMhvq1117LjTfeyP333z94cRXA5/Px4IMPcvXVV5NIJFi8eDG33HLL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\n"
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
+   "execution_count": null,
+   "outputs": [],
    "source": [
     "train_losses_list = [train_loss.item() for train_loss in train_losses]\n",
     "val_losses_list = [val_loss.item() for val_loss in val_losses]\n",
@@ -445,17 +330,8 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 85,
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "0.9995\n",
-      "0.9995\n"
-     ]
-    }
-   ],
+   "execution_count": null,
+   "outputs": [],
    "source": [
     "# prediction for training set\n",
     "with torch.no_grad():\n",
@@ -499,28 +375,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 86,
+   "execution_count": null,
    "outputs": [],
    "source": [
-    "torch.save(model.state_dict(), '../models/internal_priming.pth')"
-<<<<<<< HEAD
-=======
-    "\n"
->>>>>>> d2ef840 (chore: started cnn notebook)
-=======
-    "for epoch in range(n_epochs):\n",
-    "    train_loss, val_loss = train()\n",
-    "    train_losses.append(train_loss)\n",
-    "    val_losses.append(val_loss)\n",
+    "torch.save(model.state_dict(), '../models/internal_priming.pth')\n",
     "\n",
-    "# plotting the training and validation loss\n",
-    "plt.plot(train_losses, label='Training loss')\n",
-    "plt.plot(val_losses, label='Validation loss')\n",
-    "plt.legend()\n",
-    "plt.show()"
->>>>>>> 93ea318 (chore: added training function for cnn)
-=======
->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df
+    "for name, param in model.named_parameters():\n",
+    "    if param.requires_grad:\n",
+    "        print(name, param.data)"
    ],
    "metadata": {
     "collapsed": false,
-- 
GitLab