diff --git a/nn_helper.py b/nn_helper.py index 8a0fef3..1b3b6e5 100644 --- a/nn_helper.py +++ b/nn_helper.py @@ -55,31 +55,6 @@ def forward(self, x): 'Forward pass' output = self.network(x) return output.view(-1, 1).squeeze(0) - -class Discriminator_WGAN(nn.Module): - def __init__(self, n_filters): - super().__init__() - - self.network = nn.Sequential( - nn.Conv2d(1, n_filters // 4, 4, 2, 1, bias=False), - nn.LeakyReLU(0.2), - nn.Conv2d(n_filters // 4, n_filters // 2, 4, 2, 1, bias=False), - nn.BatchNorm2d(n_filters // 2), - nn.LeakyReLU(0.2), - nn.Conv2d(n_filters // 2, n_filters, 3, 2, 0, bias=False), - nn.BatchNorm2d(n_filters), - nn.LeakyReLU(0.2), - nn.Conv2d(n_filters, 1, 3, 1, 0, bias=False), - ) - - self.linear = nn.Linear(1, 1) - - def forward(self, x): - 'Forward pass' - output = self.network(x) - output = output.view(-1, 1).squeeze(0) - output = self.linear(output) - return output # Generate noise from normal distribution def create_noise(batch_size, z_size): diff --git a/plotting.ipynb b/plotting.ipynb new file mode 100644 index 0000000..2e9f1c6 --- /dev/null +++ b/plotting.ipynb @@ -0,0 +1,123 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt \n", + "import pickle \n", + "import numpy as np " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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kpaWxpYtW3jooYe45JJL6kOJiIiIdFytDiPXXHMN+/btY9q0aeTl5TFkyBA++uij+k6tu3btalAT8tvf/haHw8Fvf/tbcnNziY2N5ZJLLuHRRx9tu08hIiIi7ZbWphEREZETQmvTiIiISLugMCIiIiK2UhgRERERWymMiIiIiK0URkRERMRWCiMiIiJiK4URERERsZXCiIiIiNhKYURERERspTAiIiIitlIYEREREVspjIiIiIitFEZERETEVgojIiIiYiuFEREREbGVwoiIiIjYSmFEREREbKUwIiIiIrZSGBERERFbKYyIiIiIrRRGRERExFYKIyIiImIrhRERERGxlcKIiIiI2EphRERERGylMCIiIiK2UhgRERERWymMiIiIiK0URkRERMRWCiMiIiJiK4URERERsZXCiIiIiNhKYURERERspTAiIiIitlIYEREREVspjIiIiIitFEZERETEVgojIiIiYiuFEREREbGVwoiIiIjYSmFEREREbKUwIiIiIrZSGBERERFbKYyIiIiIrRRGRERExFYKIyIiImIrhRERERGxlcKIiIiI2EphRERERGylMCIiIiK2UhgRERERWymMiIiIiK0URkRERMRWCiMiIiJiK4URERERsZXCiIiIiNhKYURERERspTAiIiIitlIYEREREVspjIiIiIitFEZERETEVscURmbMmEFqaiqBgYGkpaWxZMmSIx5fXFzM5MmTSUxMxO1206tXL+bNm3dMBRYREZHTi39rT5g9ezZTpkxh5syZpKWl8dRTTzFu3Dg2btxIXFxco+Nramr48Y9/TFxcHG+//TbJycns3LmTyMjItii/iIiItHMOy7Ks1pyQlpbGyJEjeeaZZwDw+XykpKRw991388ADDzQ6fubMmTzxxBNs2LCBgICAYyqkx+MhIiKCkpISwsPDj+kaIiIicnK19PndqmaampoasrOzycjIOHQBp5OMjAyysrKaPOf9998nPT2dyZMnEx8fz4ABA3jsscfwer3Nvk91dTUej6fBJiIiIqenVoWRwsJCvF4v8fHxDfbHx8eTl5fX5Dnbtm3j7bffxuv1Mm/ePB566CH++te/8sc//rHZ95k+fToRERH1W0pKSmuKKSIiIu3ICR9N4/P5iIuL4/nnn2f48OFcc801PPjgg8ycObPZc6ZOnUpJSUn9lpOTc6KLKSIiIjZpVQfWmJgY/Pz8yM/Pb7A/Pz+fhISEJs9JTEwkICAAPz+/+n19+/YlLy+PmpoaXC5Xo3Pcbjdut7s1RRMREZF2qlU1Iy6Xi+HDh5OZmVm/z+fzkZmZSXp6epPnnHnmmWzZsgWfz1e/b9OmTSQmJjYZRERERKRjaXUzzZQpU3jhhRf417/+xfr167nzzjspLy9n0qRJAEyYMIGpU6fWH3/nnXdSVFTEPffcw6ZNm5g7dy6PPfYYkydPbrtPISIiIu1Wq+cZueaaa9i3bx/Tpk0jLy+PIUOG8NFHH9V3at21axdO56GMk5KSwscff8y9997LoEGDSE5O5p577uH+++9vu08hIiIi7Var5xmxg+YZERERaX9OyDwjIiIiIm1NYURERERspTAiIiIitlIYEREREVspjIiIiIitFEZERETEVgojIiIiYiuFEREREbGVwoiIiIjYSmFEREREbKUwIiIiIrZSGBERERFbKYyIiIiIrRRGRERExFYKIyIiImIrhRERERGxlcKIiIiI2EphRERERGylMCIiIiK2UhgRERERWymMiIiIiK0URkRERMRWCiMiIiJiK4URERERsZXCiIiIiNhKYURERERspTAiIiIitlIYEREREVspjIiIiIitFEZERETEVgojIiIiYiuFEREREbGVwoiIiIjYSmFEREREbKUwIiIiIrZSGBERERFbKYyIiIiIrRRGRERExFYKIyIiImIrhRERERGxlcKIiIiI2EphRERERGylMCIiIiK2UhgRERERWymMiIiIiK0URkRERMRWCiMiIiJiK4URERERsZXCiIiIiNhKYURERERspTAiIiIitlIYEREREVspjIiIiIitFEZERETEVgojIiIiYiuFEREREbGVwoiIiIjYSmFEREREbKUwIiIiIrZSGBERERFbKYyIiIiIrY4pjMyYMYPU1FQCAwNJS0tjyZIlLTpv1qxZOBwOxo8ffyxvKyIiIqehVoeR2bNnM2XKFB5++GGWL1/O4MGDGTduHAUFBUc8b8eOHfzqV7/irLPOOubCioiIyOmn1WHkySef5LbbbmPSpEn069ePmTNnEhwczEsvvdTsOV6vlxtuuIHf//73dO/e/bgKLCIiIqeXVoWRmpoasrOzycjIOHQBp5OMjAyysrKaPe8Pf/gDcXFx3HLLLcdeUhERETkt+bfm4MLCQrxeL/Hx8Q32x8fHs2HDhibPWbhwIS+++CIrV65s8ftUV1dTXV1d/7vH42lNMUVERKQdOaGjaUpLS7npppt44YUXiImJafF506dPJyIion5LSUk5gaUUERERO7WqZiQmJgY/Pz/y8/Mb7M/PzychIaHR8Vu3bmXHjh1ccskl9ft8Pp95Y39/Nm7cSI8ePRqdN3XqVKZMmVL/u8fjUSARERE5TbUqjLhcLoYPH05mZmb98Fyfz0dmZiZ33XVXo+P79OnD6tWrG+z77W9/S2lpKX/729+aDRhutxu3292aoomIiEg71aowAjBlyhQmTpzIiBEjGDVqFE899RTl5eVMmjQJgAkTJpCcnMz06dMJDAxkwIABDc6PjIwEaLRfREREOqZWh5FrrrmGffv2MW3aNPLy8hgyZAgfffRRfafWXbt24XRqYlcRERFpGYdlWZbdhTgaj8dDREQEJSUlhIeH210cERERaYGWPr9VhSEiIiK2UhgRERERWymMiIiIiK0URkRERMRWCiMiIiJiK4URERERsZXCiIiIiNhKYURERERspTAiIiIitlIYEREREVspjIiIiIitFEZERETEVgojIiIiYiuFEREREbGVwoiIiIjYSmFEREREbKUwIiIiIrZSGBERERFbKYyIiIiIrRRGRERExFYKIyIiImIrhRERERGxlcKIiIiI2EphRERERGylMCIiIiK2UhgRERERWymMiIiIiK0URkRERMRWCiMiIiJiK4URERERsZXCiIiIiNhKYURERERspTAiIiIitlIYEREREVspjIiIiIitFEZERETEVgojIiIiYiuFEREREbGVwoiIiIjYSmFEREREbKUwIiIiIrZSGBERERFbKYyIiIiIrRRGRERExFYKIyIiImIrhRERERGxlcKIiIiI2EphRERERGylMCIiIiK2UhgRERERWymMiIiIiK0URkRERMRWCiMiIiJiK4URERERsZXCiIiIiNhKYURERERspTAiIiIitlIYEREREVspjIiIiIitFEZERETEVgojIiIiYqtjCiMzZswgNTWVwMBA0tLSWLJkSbPHvvDCC5x11llERUURFRVFRkbGEY8XERGRjqXVYWT27NlMmTKFhx9+mOXLlzN48GDGjRtHQUFBk8d/8cUXXHfddXz++edkZWWRkpLCeeedR25u7nEXXkRERNo/h2VZVmtOSEtL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ISwsDIfDcczX8Xg8pKSkkJOTo6afE0z3+uTRvT55dK9PHt3rk+dE3mvLsigtLSUpKQmns/meIa1uprGD0+mkc+fObXY99UM5eXSvTx7d65NH9/rk0b0+eU7UvY6IiDjqMafk0F4RERHpOBRGRERExFYdKoy43W4efvhh3G633UU57elenzy61yeP7vXJo3t98pwK97pddGAVERGR01eHqhkRERGRU4/CiIiIiNhKYURERERspTAiIiIituowYWTGjBmkpqYSGBhIWloaS5YssbtI7d706dMZOXIkYWFhxMXFMX78eDZu3NjgmKqqKiZPnkx0dDShoaFcccUVjVZxltZ7/PHHcTgc/PKXv6zfp3vddnJzc7nxxhuJjo4mKCiIgQMHsmzZsvrXLcti2rRpJCYmEhQUREZGBps3b7axxO2T1+vloYceolu3bgQFBdGjRw8eeeSRBuuY6F4fuy+//JJLLrmEpKQkHA4H7733XoPXW3Jvi4qKuOGGGwgPDycyMpJbbrmFsrKyti9sqxaJaadmzZpluVwu66WXXrLWrl1r3XbbbVZkZKSVn59vd9HatXHjxlkvv/yytWbNGmvlypXWhRdeaHXp0sUqKyurP+aOO+6wUlJSrMzMTGvZsmXW6NGjrTFjxthY6vZvyZIlVmpqqjVo0CDrnnvuqd+ve902ioqKrK5du1o//elPrcWLF1vbtm2zPv74Y2vLli31xzz++ONWRESE9d5771mrVq2yLr30Uqtbt25WZWWljSVvfx599FErOjra+uCDD6zt27dbb731lhUaGmr97W9/qz9G9/rYzZs3z3rwwQetOXPmWID17rvvNni9Jff2/PPPtwYPHmwtWrTI+uqrr6wzzjjDuu6669q8rB0ijIwaNcqaPHly/e9er9dKSkqypk+fbmOpTj8FBQUWYC1YsMCyLMsqLi62AgICrLfeeqv+mPXr11uAlZWVZVcx27XS0lKrZ8+e1vz5862zzz67PozoXred+++/3xo7dmyzr/t8PishIcF64okn6vcVFxdbbrfb+s9//nMyinjauOiii6ybb765wb7LL7/cuuGGGyzL0r1uS98PIy25t+vWrbMAa+nSpfXHfPjhh5bD4bByc3PbtHynfTNNTU0N2dnZZGRk1O9zOp1kZGSQlZVlY8lOPyUlJQB06tQJgOzsbGpraxvc+z59+tClSxfd+2M0efJkLrroogb3FHSv29L777/PiBEjuOqqq4iLi2Po0KG88MIL9a9v376dvLy8Bvc6IiKCtLQ03etWGjNmDJmZmWzatAmAVatWsXDhQi644AJA9/pEasm9zcrKIjIykhEjRtQfk5GRgdPpZPHixW1annaxUN7xKCwsxOv1Eh8f32B/fHw8GzZssKlUpx+fz8cvf/lLzjzzTAYMGABAXl4eLpeLyMjIBsfGx8eTl5dnQynbt1mzZrF8+XKWLl3a6DXd67azbds2nnvuOaZMmcJvfvMbli5dyi9+8QtcLhcTJ06sv59N/Zuie906DzzwAB6Phz59+uDn54fX6+XRRx/lhhtuANC9PoFacm/z8vKIi4tr8Lq/vz+dOnVq8/t/2ocROTkmT57MmjVrWLhwod1FOS3l5ORwzz33MH/+fAIDA+0uzmnN5/MxYsQIHnvsMQCGDh3KmjVrmDlzJhMnTrS5dKeXN998k9dff5033niD/v37s3LlSn75y1+SlJSke93BnPbNNDExMfj5+TUaVZCfn09CQoJNpTq93HXXXXzwwQd8/vnndO7cuX5/QkICNTU1FBcXNzhe9771srOzKSgoYNiwYfj7++Pv78+CBQv4+9//jr+/P/Hx8brXbSQxMZF+/fo12Ne3b1927doFUH8/9W/K8fv1r3/NAw88wLXXXsvAgQO56aabuPfee5k+fTqge30iteTeJiQkUFBQ0OD1uro6ioqK2vz+n/ZhxOVyMXz4cDIzM+v3+Xw+MjMzSU9Pt7Fk7Z9lWdx11128++67fPbZZ3Tr1q3B68OHDycgIKDBvd+4cSO7du3SvW+lH/3oR6xevZqVK1fWbyNGjOCGG26o/7Pudds488wzGw1R37RpE127dgWgW7duJCQkNLjXHo+HxYsX6163UkVFBU5nw8eQn58fPp8P0L0+kVpyb9PT0ykuLiY7O7v+mM8++wyfz0daWlrbFqhNu8OeombNmmW53W7rlVdesdatW2fdfvvtVmRkpJWXl2d30dq1O++804qIiLC++OILa+/evfVbRUVF/TF33HGH1aVLF+uzzz6zli1bZqWnp1vp6ek2lvr0cfhoGsvSvW4rS5Yssfz9/a1HH33U2rx5s/X6669bwcHB1muvvVZ/zOOPP25FRkZa//3vf61vv/3WuuyyyzTc9BhMnDjRSk5Orh/aO2fOHCsmJsa677776o/RvT52paWl1ooVK6wVK1ZYgPXkk09aK1assHbu3GlZVsvu7fnnn28NHTrUWrx4sbVw4UKrZ8+eGtp7PJ5++mmrS5culsvlskaNGmUtWrTI7iK1e0CT28svv1x/TGVlpfXzn//cioqKsoKDg62f/OQn1t69e+0r9Gnk+2FE97rt/O9//7MGDBhgud1uq0+fPtbzzz/f4HWfz2c99NBDVnx8vOV2u60f/ehH1saNG20qbfvl8Xise+65x+rSpYsVGBhode/e3XrwwQet6urq+mN0r4/d559/3uS/0RMnTrQsq2X3dv/+/dZ1111nhYaGWuHh4dakSZOs0tLSNi+rw7IOm+pORERE5CQ77fuMiIiIyKlNYURERERspTAiIiIitlIYEREREVspjIiIiIitFEZERETEVgojIiIiYiuFEREREbGVwoiIiIjYSmFEREREbKUwIiIiIrZSGBERERFb/X/bhothe+xK8wAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Load discriminator results for real and fake data \n", + "with open('saved_losses/gan_dis_fake_arr.pkl', 'rb') as f:\n", + " gan_dis_fake_arr = pickle.load(f)\n", + "with open('saved_losses/gan_dis_real_arr.pkl', 'rb') as f:\n", + " gan_dis_real_arr = pickle.load(f)\n", + "epochs = np.arange(0.0, 100.0) + 1.0\n", + "gan_dis_fake_arr = np.array(gan_dis_fake_arr)\n", + "gan_dis_real_arr = np.array(gan_dis_real_arr)\n", + "\n", + "plt.plot(epochs, gan_dis_fake_arr)\n", + "plt.plot(epochs, gan_dis_real_arr)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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rdaVV15pxcfHW7m5uRXX3HXXXVZcXJy1bNkya+PGjdaYMWOscePGebDqlm/9+vVWly5drEGDBln33XdfxXnda/fIyMiwOnfubN16663WunXrrEOHDllLliyxDhw4UHHN008/bYWGhloLFiywtm3bZl111VVW165drYKCAg9W3vI8+eSTVkREhLVo0SLr8OHD1gcffGAFBQVZf/vb3yqu0b1umM8//9z63e9+Z3388ccWYM2fP7/K83W5r5MnT7YGDx5srV271vrmm2+sHj16WDNnzmyUeltcsBg1apQ1Z86ciu+dTqcVGxtrzZ0714NVtT5paWkWYK1cudKyLMvKzMy0vL29rQ8++KDimu+//94CrDVr1niqzBYtJyfH6tmzp7V06VLroosuqggWutfu8+CDD1oXXHBBrc+7XC4rJibGevbZZyvOZWZmWr6+vta7777bFCW2GlOnTrVuv/32KueuueYaa9asWZZl6V67y5nBoi73dffu3RZgbdiwoeKaxYsXWzabzUpMTHR7jS2qK6S4uJhNmzYxadKkinN2u51JkyaxZs0aD1bW+mRlZQEQHh4OwKZNmygpKaly7/v06UN8fLzufQPNmTOHqVOnVrmnoHvtTp988gkjRozguuuuIyoqiqFDh/Lqq69WPH/48GFSUlKq3OvQ0FBGjx6te11P48aNY9myZezbtw+Abdu2sXr1aqZMmQLoXjeWutzXNWvWEBYWxogRIyqumTRpEna7nXXr1rm9pibfhOx8nDhxAqfTSXR0dJXz0dHR7Nmzx0NVtT4ul4v777+f8ePHM2DAAABSUlLw8fEhLCysyrXR0dGkpKR4oMqWbd68eWzevJkNGzZUe0732n0OHTrEiy++yAMPPMBvf/tbNmzYwM9//nN8fHyYPXt2xf2s6d8U3ev6eeihh8jOzqZPnz44HA6cTidPPvkks2bNAtC9biR1ua8pKSlERUVVed7Ly4vw8PBGufctKlhI05gzZw47d+5k9erVni6lVUpISOC+++5j6dKl+Pn5ebqcVs3lcjFixAieeuopAIYOHcrOnTt56aWXmD17toera13ef/993n77bd555x369+/P1q1buf/++4mNjdW9bmNaVFdIZGQkDoej2uj41NRUYmJiPFRV63LvvfeyaNEivv766yrb28fExFBcXExmZmaV63Xv62/Tpk2kpaUxbNgwvLy88PLyYuXKlfz973/Hy8uL6Oho3Ws36dChA/369atyrm/fvhw7dgyg4n7q35Tz9+tf/5qHHnqIG2+8kYEDB3LzzTfzi1/8grlz5wK6142lLvc1JiaGtLS0Ks+XlpaSkZHRKPe+RQULHx8fhg8fzrJlyyrOuVwuli1bxtixYz1YWctnWRb33nsv8+fPZ/ny5XTt2rXK88OHD8fb27vKvd+7dy/Hjh3Tva+nSy+9lB07drB169aKx4gRI5g1a1bFse61e4wfP77atOl9+/bRuXNnALp27UpMTEyVe52dnc26det0r+spPz8fu73qrxSHw4HL5QJ0rxtLXe7r2LFjyczMZNOmTRXXLF++HJfLxejRo91flNuHgzayefPmWb6+vtYbb7xh7d6927rzzjutsLAwKyUlxdOltWh33323FRoaaq1YscJKTk6ueOTn51dcc9ddd1nx8fHW8uXLrY0bN1pjx461xo4d68GqW4/TZ4VYlu61u6xfv97y8vKynnzySWv//v3W22+/bQUEBFhvvfVWxTVPP/20FRYWZi1cuNDavn27dfXVV2sKZAPMnj3b6tixY8V0048//tiKjIy0fvOb31Rco3vdMDk5OdaWLVusLVu2WID13HPPWVu2bLGOHj1qWVbd7uvkyZOtoUOHWuvWrbNWr15t9ezZU9NNT/ePf/zDio+Pt3x8fKxRo0ZZa9eu9XRJLR5Q4+P111+vuKagoMC65557rHbt2lkBAQHWjBkzrOTkZM8V3YqcGSx0r93n008/tQYMGGD5+vpaffr0sV555ZUqz7tcLuuRRx6xoqOjLV9fX+vSSy+19u7d66FqW67s7Gzrvvvus+Lj4y0/Pz+rW7du1u9+9zurqKio4hrd64b5+uuva/z3efbs2ZZl1e2+njx50po5c6YVFBRkhYSEWLfddpuVk5PTKPVq23QRERFxmxY1xkJERESaNwULERERcRsFCxEREXEbBQsRERFxGwULERERcRsFCxEREXEbBQsRERFxGwULERERcRsFCxEREXEbBQsRERFxGwULERERcRsFCxEREXGb/we/wFCpERenoAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Load loss of discriminator and generator for GAN \n", + "with open('saved_losses/gan_dis_loss_arr.pkl', 'rb') as f:\n", + " gan_dis_fake_arr = pickle.load(f)\n", + "with open('saved_losses/gan_gen_loss_arr.pkl', 'rb') as f:\n", + " gan_gen_loss_arr = pickle.load(f)\n", + "epochs = np.arange(0.0, 100.0) + 1.0\n", + "gan_dis_fake_arr = np.array(gan_dis_fake_arr)\n", + "gan_gen_loss_arr = np.array(gan_gen_loss_arr)\n", + "\n", + "plt.plot(epochs, gan_dis_fake_arr)\n", + "plt.plot(epochs, gan_gen_loss_arr)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}