From 4de0583b49a21888c2f4303ef22409ed55caf622 Mon Sep 17 00:00:00 2001 From: Shubbair Date: Sun, 28 Jul 2024 19:18:35 +0300 Subject: [PATCH] Updating GAN Code... --- gan/playground.ipynb | 53 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/gan/playground.ipynb b/gan/playground.ipynb index 8e65fe90..02ed2a68 100644 --- a/gan/playground.ipynb +++ b/gan/playground.ipynb @@ -445,14 +445,60 @@ "name": "stderr", "output_type": "stream", "text": [ - " 2%|▏ | 3/200 [11:42<12:47:26, 233.74s/it]" + " 10%|█ | 20/200 [1:17:04<11:32:48, 230.94s/it]" ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 20: Generator loss: array(16.7247, dtype=float32), discriminator loss: array(nan, dtype=float32)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 10%|█ | 20/200 [1:21:00<12:09:01, 243.01s/it]\n" + ] + }, + { + "ename": "ValueError", + "evalue": "[take] Cannot do a non-empty take from an array with zero elements.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[45], line 37\u001b[0m\n\u001b[1;32m 35\u001b[0m fake \u001b[38;5;241m=\u001b[39m gen(fake_noise)\n\u001b[1;32m 36\u001b[0m show_images(fake)\n\u001b[0;32m---> 37\u001b[0m \u001b[43mshow_images\u001b[49m\u001b[43m(\u001b[49m\u001b[43mreal\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 38\u001b[0m cur_step \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n", + "Cell \u001b[0;32mIn[39], line 5\u001b[0m, in \u001b[0;36mshow_images\u001b[0;34m(imgs, num_imgs)\u001b[0m\n\u001b[1;32m 2\u001b[0m fig,axes \u001b[38;5;241m=\u001b[39m plt\u001b[38;5;241m.\u001b[39msubplots(\u001b[38;5;241m5\u001b[39m, \u001b[38;5;241m5\u001b[39m, figsize\u001b[38;5;241m=\u001b[39m(\u001b[38;5;241m4\u001b[39m, \u001b[38;5;241m4\u001b[39m))\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, ax \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(axes\u001b[38;5;241m.\u001b[39mflat):\n\u001b[0;32m----> 5\u001b[0m img \u001b[38;5;241m=\u001b[39m mx\u001b[38;5;241m.\u001b[39marray(\u001b[43mimgs\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m)\u001b[38;5;241m.\u001b[39mreshape(\u001b[38;5;241m28\u001b[39m,\u001b[38;5;241m28\u001b[39m)\n\u001b[1;32m 6\u001b[0m ax\u001b[38;5;241m.\u001b[39mimshow(img,cmap\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mgray\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 7\u001b[0m ax\u001b[38;5;241m.\u001b[39maxis(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124moff\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", + "\u001b[0;31mValueError\u001b[0m: [take] Cannot do a non-empty take from an array with zero elements." + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "# Train the GAN for only 1000 images\n", "batch_size = 16\n", - "display_step = 20\n", + "display_step = 5\n", "cur_step = 0\n", "mean_generator_loss = 0\n", "mean_discriminator_loss = 0\n", @@ -461,7 +507,7 @@ "G_loss_grad = nn.value_and_grad(gen, gen_loss)\n", "\n", "\n", - "for epoch in tqdm(range(200)):\n", + "for epoch in tqdm(range(50)):\n", "\n", " for real in batch_iterate(batch_size, train_images[:500]):\n", " \n", @@ -487,6 +533,7 @@ " fake = gen(fake_noise)\n", " show_images(fake)\n", " show_images(real)\n", + " print(real.shape)\n", " cur_step += 1" ] }