From 147cb3d2bc9b1dd8c9326fce40039ab51b941dbf Mon Sep 17 00:00:00 2001 From: Shubbair Date: Sat, 27 Jul 2024 01:09:51 +0300 Subject: [PATCH] Updating GAN Code... --- gan/playground.ipynb | 64214 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 60005 insertions(+), 4209 deletions(-) diff --git a/gan/playground.ipynb b/gan/playground.ipynb index 1f7e7e7d..ed96d59b 100644 --- a/gan/playground.ipynb +++ b/gan/playground.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 113, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -62,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 117, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -123,7 +123,7 @@ ")" ] }, - "execution_count": 117, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -135,7 +135,7 @@ }, { "cell_type": "code", - "execution_count": 118, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -152,7 +152,7 @@ }, { "cell_type": "code", - "execution_count": 119, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -165,7 +165,7 @@ }, { "cell_type": "code", - "execution_count": 120, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -189,7 +189,7 @@ }, { "cell_type": "code", - "execution_count": 121, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -214,7 +214,7 @@ ")" ] }, - "execution_count": 121, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -233,7 +233,7 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -248,21 +248,9 @@ }, { "cell_type": "code", - "execution_count": 123, + "execution_count": 13, "metadata": {}, - "outputs": [ - { - "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[123], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m gen \u001b[38;5;241m=\u001b[39m Generator(z_dim)\n\u001b[0;32m----> 2\u001b[0m \u001b[43mmx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meval\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgen\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparameters\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m gen_opt \u001b[38;5;241m=\u001b[39m optim\u001b[38;5;241m.\u001b[39mAdam(learning_rate\u001b[38;5;241m=\u001b[39mlr)\n\u001b[1;32m 5\u001b[0m disc \u001b[38;5;241m=\u001b[39m Discriminator()\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], + "outputs": [], "source": [ "gen = Generator(z_dim)\n", "mx.eval(gen.parameters())\n", @@ -282,14 +270,14 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "def disc_loss(gen, disc, real, num_images, z_dim):\n", " noise = mx.array(get_noise(num_images, z_dim))\n", " fake_images = gen(noise)\n", - " \n", + " \n", " fake_disc = disc(fake_images)\n", " \n", " fake_labels = mx.zeros((fake_images.shape[0],1))\n", @@ -298,8 +286,7 @@ " real_disc = disc(real)\n", " real_labels = mx.ones((real.shape[0],1))\n", "\n", - " # print('Shapes.....',real_disc.shape,real_labels.shape)\n", - " real_loss = nn.losses.binary_cross_entropy(real_disc,real_labels)\n", + " real_loss = nn.losses.binary_cross_entropy(real_disc,real_labels,with_logits=True)\n", "\n", " disc_loss = (fake_loss + real_loss) / 2\n", "\n", @@ -308,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 72, "metadata": {}, "outputs": [], "source": [ @@ -316,7 +303,6 @@ "\n", " noise = mx.array(get_noise(num_images, z_dim))\n", " fake_images = gen(noise)\n", - " \n", " fake_disc = disc(fake_images)\n", "\n", " fake_labels = mx.ones((fake_images.shape[0],1))\n", @@ -328,7 +314,7 @@ }, { "cell_type": "code", - "execution_count": 105, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -339,7 +325,7 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 59, "metadata": {}, "outputs": [], "source": [ @@ -359,12 +345,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 60, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -386,4120 +372,44 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(0.677068, dtype=float32)" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "z_dim = 64\n", + "gen = Generator(z_dim)\n", + "mx.eval(gen.parameters())\n", + "gen_opt = optim.Adam(learning_rate=lr)\n", + "\n", + "disc = Discriminator()\n", + "mx.eval(disc.parameters())\n", + "disc_opt = optim.Adam(learning_rate=lr)\n", + "\n", + "g_loss = gen_loss(gen, disc, 8, z_dim)\n", + "g_loss\n" + ] + }, + { + "cell_type": "code", + "execution_count": 74, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - " 0%| | 139/60000 [00:00<01:22, 726.53it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 1%| | 307/60000 [00:00<01:14, 801.44it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 1%| | 471/60000 [00:00<01:13, 808.99it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 1%| | 633/60000 [00:00<01:14, 800.05it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 1%|▏ | 794/60000 [00:01<01:16, 778.34it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 2%|▏ | 949/60000 [00:01<01:18, 747.52it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 2%|▏ | 1098/60000 [00:01<01:20, 733.90it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 2%|▏ | 1240/60000 [00:01<01:28, 660.48it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 2%|▏ | 1307/60000 [00:01<01:29, 656.89it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 2%|▏ | 1438/60000 [00:02<01:36, 608.91it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 3%|▎ | 1561/60000 [00:02<01:36, 603.59it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 3%|▎ | 1683/60000 [00:02<01:40, 582.79it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 3%|▎ | 1799/60000 [00:02<01:45, 552.37it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 3%|▎ | 1915/60000 [00:02<01:46, 543.12it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 3%|▎ | 2026/60000 [00:03<01:46, 543.94it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 4%|▎ | 2142/60000 [00:03<01:43, 560.25it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 4%|▍ | 2257/60000 [00:03<01:45, 545.45it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 4%|▍ | 2365/60000 [00:03<01:51, 518.84it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 4%|▍ | 2472/60000 [00:03<01:53, 506.74it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 4%|▍ | 2575/60000 [00:04<01:53, 504.04it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 4%|▍ | 2626/60000 [00:04<02:02, 469.09it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 5%|▍ | 2781/60000 [00:04<01:55, 494.90it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 5%|▍ | 2831/60000 [00:04<01:56, 490.73it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 5%|▍ | 2928/60000 [00:04<02:10, 438.99it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 5%|▌ | 3023/60000 [00:05<02:05, 453.50it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 5%|▌ | 3118/60000 [00:05<02:03, 460.44it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 5%|▌ | 3211/60000 [00:05<02:06, 449.22it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 6%|▌ | 3302/60000 [00:05<02:16, 416.36it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 6%|▌ | 3391/60000 [00:05<02:12, 426.27it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 6%|▌ | 3479/60000 [00:06<02:13, 423.14it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 6%|▌ | 3564/60000 [00:06<02:17, 411.69it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 6%|▌ | 3648/60000 [00:06<02:20, 401.16it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n", - "real shape , (784,)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 6%|▌ | 3662/60000 [00:54<14:01, 66.96it/s] \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[108], line 40\u001b[0m\n\u001b[1;32m 37\u001b[0m G_loss,G_grads \u001b[38;5;241m=\u001b[39m G_loss_grad(gen, disc, batch_size, z_dim)\n\u001b[1;32m 39\u001b[0m \u001b[38;5;66;03m# Update optimizer\u001b[39;00m\n\u001b[0;32m---> 40\u001b[0m \u001b[43mgen_opt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgen\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mG_grads\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 42\u001b[0m \u001b[38;5;66;03m# Update gradients\u001b[39;00m\n\u001b[1;32m 43\u001b[0m \n\u001b[1;32m 44\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 60\u001b[0m \u001b[38;5;66;03m# mean_discriminator_loss = 0\u001b[39;00m\n\u001b[1;32m 61\u001b[0m \u001b[38;5;66;03m# cur_step += 1\u001b[39;00m\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/optimizers/optimizers.py:29\u001b[0m, in \u001b[0;36mOptimizer.update\u001b[0;34m(self, model, gradients)\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mupdate\u001b[39m(\u001b[38;5;28mself\u001b[39m, model: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmlx.nn.Module\u001b[39m\u001b[38;5;124m\"\u001b[39m, gradients: \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m 21\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Apply the gradients to the parameters of the model and update the\u001b[39;00m\n\u001b[1;32m 22\u001b[0m \u001b[38;5;124;03m model with the new parameters.\u001b[39;00m\n\u001b[1;32m 23\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[38;5;124;03m via :func:`mlx.nn.value_and_grad`.\u001b[39;00m\n\u001b[1;32m 28\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m---> 29\u001b[0m model\u001b[38;5;241m.\u001b[39mupdate(\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mapply_gradients\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgradients\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m)\u001b[49m)\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/optimizers/optimizers.py:88\u001b[0m, in \u001b[0;36mOptimizer.apply_gradients\u001b[0;34m(self, gradients, parameters)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstate[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstep\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstep \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;66;03m# Apply the update\u001b[39;00m\n\u001b[0;32m---> 88\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mtree_map\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mapply_single\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mgradients\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparameters\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstate\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:48\u001b[0m, in \u001b[0;36mtree_map\u001b[0;34m(fn, tree, is_leaf, *rest)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m TreeType(\n\u001b[1;32m 44\u001b[0m tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[i] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, child \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(tree)\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m---> 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[1;32m 49\u001b[0m k: tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[k] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m fn(tree, \u001b[38;5;241m*\u001b[39mrest)\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:49\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m TreeType(\n\u001b[1;32m 44\u001b[0m tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[i] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, child \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(tree)\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[0;32m---> 49\u001b[0m k: \u001b[43mtree_map\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchild\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mr\u001b[49m\u001b[43m[\u001b[49m\u001b[43mk\u001b[49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrest\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mis_leaf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_leaf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m fn(tree, \u001b[38;5;241m*\u001b[39mrest)\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:48\u001b[0m, in \u001b[0;36mtree_map\u001b[0;34m(fn, tree, is_leaf, *rest)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m TreeType(\n\u001b[1;32m 44\u001b[0m tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[i] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, child \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(tree)\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m---> 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[1;32m 49\u001b[0m k: tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[k] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m fn(tree, \u001b[38;5;241m*\u001b[39mrest)\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:49\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m TreeType(\n\u001b[1;32m 44\u001b[0m tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[i] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, child \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(tree)\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[0;32m---> 49\u001b[0m k: \u001b[43mtree_map\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchild\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mr\u001b[49m\u001b[43m[\u001b[49m\u001b[43mk\u001b[49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrest\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mis_leaf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_leaf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m fn(tree, \u001b[38;5;241m*\u001b[39mrest)\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:43\u001b[0m, in \u001b[0;36mtree_map\u001b[0;34m(fn, tree, is_leaf, *rest)\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, (\u001b[38;5;28mlist\u001b[39m, \u001b[38;5;28mtuple\u001b[39m)):\n\u001b[1;32m 42\u001b[0m TreeType \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(tree)\n\u001b[0;32m---> 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mTreeType\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 44\u001b[0m \u001b[43m \u001b[49m\u001b[43mtree_map\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchild\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mr\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrest\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mis_leaf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_leaf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 45\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchild\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43menumerate\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtree\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 46\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[1;32m 49\u001b[0m k: tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[k] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:44\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, (\u001b[38;5;28mlist\u001b[39m, \u001b[38;5;28mtuple\u001b[39m)):\n\u001b[1;32m 42\u001b[0m TreeType \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(tree)\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m TreeType(\n\u001b[0;32m---> 44\u001b[0m \u001b[43mtree_map\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchild\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mr\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrest\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mis_leaf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_leaf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, child \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(tree)\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[1;32m 49\u001b[0m k: tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[k] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:48\u001b[0m, in \u001b[0;36mtree_map\u001b[0;34m(fn, tree, is_leaf, *rest)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m TreeType(\n\u001b[1;32m 44\u001b[0m tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[i] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, child \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(tree)\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m---> 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[1;32m 49\u001b[0m k: tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[k] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m fn(tree, \u001b[38;5;241m*\u001b[39mrest)\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:49\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m TreeType(\n\u001b[1;32m 44\u001b[0m tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[i] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, child \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(tree)\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[0;32m---> 49\u001b[0m k: \u001b[43mtree_map\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchild\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mr\u001b[49m\u001b[43m[\u001b[49m\u001b[43mk\u001b[49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrest\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mis_leaf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_leaf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m fn(tree, \u001b[38;5;241m*\u001b[39mrest)\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:43\u001b[0m, in \u001b[0;36mtree_map\u001b[0;34m(fn, tree, is_leaf, *rest)\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, (\u001b[38;5;28mlist\u001b[39m, \u001b[38;5;28mtuple\u001b[39m)):\n\u001b[1;32m 42\u001b[0m TreeType \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(tree)\n\u001b[0;32m---> 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mTreeType\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 44\u001b[0m \u001b[43m \u001b[49m\u001b[43mtree_map\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchild\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mr\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrest\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mis_leaf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_leaf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 45\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchild\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43menumerate\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtree\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 46\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[1;32m 49\u001b[0m k: tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[k] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:44\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, (\u001b[38;5;28mlist\u001b[39m, \u001b[38;5;28mtuple\u001b[39m)):\n\u001b[1;32m 42\u001b[0m TreeType \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(tree)\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m TreeType(\n\u001b[0;32m---> 44\u001b[0m \u001b[43mtree_map\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchild\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mr\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrest\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mis_leaf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_leaf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, child \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(tree)\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[1;32m 49\u001b[0m k: tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[k] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:48\u001b[0m, in \u001b[0;36mtree_map\u001b[0;34m(fn, tree, is_leaf, *rest)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m TreeType(\n\u001b[1;32m 44\u001b[0m tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[i] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, child \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(tree)\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m---> 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[1;32m 49\u001b[0m k: tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[k] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m fn(tree, \u001b[38;5;241m*\u001b[39mrest)\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:49\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m TreeType(\n\u001b[1;32m 44\u001b[0m tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[i] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, child \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(tree)\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(tree, \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[0;32m---> 49\u001b[0m k: \u001b[43mtree_map\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchild\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mr\u001b[49m\u001b[43m[\u001b[49m\u001b[43mk\u001b[49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mr\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrest\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mis_leaf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_leaf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m fn(tree, \u001b[38;5;241m*\u001b[39mrest)\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/utils.py:53\u001b[0m, in \u001b[0;36mtree_map\u001b[0;34m(fn, tree, is_leaf, *rest)\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[1;32m 49\u001b[0m k: tree_map(fn, child, \u001b[38;5;241m*\u001b[39m(r[k] \u001b[38;5;28;01mfor\u001b[39;00m r \u001b[38;5;129;01min\u001b[39;00m rest), is_leaf\u001b[38;5;241m=\u001b[39mis_leaf)\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, child \u001b[38;5;129;01min\u001b[39;00m tree\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 51\u001b[0m }\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m---> 53\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtree\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mrest\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/optimizers/optimizers.py:426\u001b[0m, in \u001b[0;36mAdam.apply_single\u001b[0;34m(self, gradient, parameter, state)\u001b[0m\n\u001b[1;32m 424\u001b[0m v \u001b[38;5;241m=\u001b[39m state[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mv\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 425\u001b[0m m \u001b[38;5;241m=\u001b[39m b1 \u001b[38;5;241m*\u001b[39m m \u001b[38;5;241m+\u001b[39m (\u001b[38;5;241m1\u001b[39m \u001b[38;5;241m-\u001b[39m b1) \u001b[38;5;241m*\u001b[39m gradient\n\u001b[0;32m--> 426\u001b[0m v \u001b[38;5;241m=\u001b[39m b2 \u001b[38;5;241m*\u001b[39m v \u001b[38;5;241m+\u001b[39m (\u001b[38;5;241m1\u001b[39m \u001b[38;5;241m-\u001b[39m b2) \u001b[38;5;241m*\u001b[39m \u001b[43mmx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msquare\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgradient\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 427\u001b[0m state[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mm\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m m\n\u001b[1;32m 428\u001b[0m state[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mv\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m v\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + " 0%| | 0/1 [00:00 1\u001b[0m \u001b[43mdisc_loss\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgen\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdisc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreal\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mz_dim\u001b[49m\u001b[43m)\u001b[49m\n", - "Cell \u001b[0;32mIn[89], line 14\u001b[0m, in \u001b[0;36mdisc_loss\u001b[0;34m(gen, disc, real, num_images, z_dim)\u001b[0m\n\u001b[1;32m 11\u001b[0m real_labels \u001b[38;5;241m=\u001b[39m mx\u001b[38;5;241m.\u001b[39mones((real\u001b[38;5;241m.\u001b[39mshape[\u001b[38;5;241m0\u001b[39m],\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 13\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mShapes.....\u001b[39m\u001b[38;5;124m'\u001b[39m,real_disc\u001b[38;5;241m.\u001b[39mshape,real_labels\u001b[38;5;241m.\u001b[39mshape)\n\u001b[0;32m---> 14\u001b[0m real_loss \u001b[38;5;241m=\u001b[39m \u001b[43mnn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlosses\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbinary_cross_entropy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mreal_disc\u001b[49m\u001b[43m,\u001b[49m\u001b[43mreal_labels\u001b[49m\u001b[43m,\u001b[49m\u001b[43mwith_logits\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 16\u001b[0m disc_loss \u001b[38;5;241m=\u001b[39m (fake_loss \u001b[38;5;241m+\u001b[39m real_loss) \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m2\u001b[39m\n\u001b[1;32m 18\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m disc_loss\n", - "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/mlx/nn/losses.py:155\u001b[0m, in \u001b[0;36mbinary_cross_entropy\u001b[0;34m(inputs, targets, weights, with_logits, reduction)\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 125\u001b[0m \u001b[38;5;124;03mComputes the binary cross entropy loss.\u001b[39;00m\n\u001b[1;32m 126\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 152\u001b[0m \u001b[38;5;124;03m array(0.510826, dtype=float32)\u001b[39;00m\n\u001b[1;32m 153\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inputs\u001b[38;5;241m.\u001b[39mshape \u001b[38;5;241m!=\u001b[39m targets\u001b[38;5;241m.\u001b[39mshape:\n\u001b[0;32m--> 155\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 156\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInputs shape \u001b[39m\u001b[38;5;132;01m{\u001b[39;00minputs\u001b[38;5;241m.\u001b[39mshape\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m does not match targets shape \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtargets\u001b[38;5;241m.\u001b[39mshape\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 157\u001b[0m )\n\u001b[1;32m 159\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m with_logits:\n\u001b[1;32m 160\u001b[0m loss \u001b[38;5;241m=\u001b[39m mx\u001b[38;5;241m.\u001b[39mlogaddexp(\u001b[38;5;241m0.0\u001b[39m, inputs) \u001b[38;5;241m-\u001b[39m inputs \u001b[38;5;241m*\u001b[39m targets\n", - "\u001b[0;31mValueError\u001b[0m: Inputs shape (1,) does not match targets shape (784, 1)." + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[69], line 10\u001b[0m\n\u001b[1;32m 7\u001b[0m mx\u001b[38;5;241m.\u001b[39meval(disc\u001b[38;5;241m.\u001b[39mparameters())\n\u001b[1;32m 8\u001b[0m disc_opt \u001b[38;5;241m=\u001b[39m optim\u001b[38;5;241m.\u001b[39mAdam(learning_rate\u001b[38;5;241m=\u001b[39mlr)\n\u001b[0;32m---> 10\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m real \u001b[38;5;129;01min\u001b[39;00m tqdm(batch_iterate(batch_size, train_images)):\n\u001b[1;32m 11\u001b[0m d_loss \u001b[38;5;241m=\u001b[39m disc_loss(gen, disc, real, batch_size, z_dim)\n\u001b[1;32m 13\u001b[0m \u001b[38;5;66;03m# real = real.reshape(-1)\u001b[39;00m\n\u001b[1;32m 14\u001b[0m \u001b[38;5;66;03m# # real = real.view(cur_batch_size, -1)\u001b[39;00m\n\u001b[1;32m 15\u001b[0m \u001b[38;5;66;03m# # Calculate discriminator loss\u001b[39;00m\n\u001b[1;32m 16\u001b[0m \n\u001b[1;32m 17\u001b[0m \u001b[38;5;66;03m# d_loss = disc_loss(gen, disc, real, cur_batch_size, z_dim)\u001b[39;00m\n", + "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/tqdm/std.py:1188\u001b[0m, in \u001b[0;36mtqdm.__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1186\u001b[0m dt \u001b[38;5;241m=\u001b[39m cur_t \u001b[38;5;241m-\u001b[39m last_print_t\n\u001b[1;32m 1187\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m dt \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m mininterval \u001b[38;5;129;01mand\u001b[39;00m cur_t \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m min_start_t:\n\u001b[0;32m-> 1188\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mn\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mlast_print_n\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1189\u001b[0m last_print_n \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlast_print_n\n\u001b[1;32m 1190\u001b[0m last_print_t \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlast_print_t\n", + "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/tqdm/std.py:1239\u001b[0m, in \u001b[0;36mtqdm.update\u001b[0;34m(self, n)\u001b[0m\n\u001b[1;32m 1237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ema_dn(dn)\n\u001b[1;32m 1238\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ema_dt(dt)\n\u001b[0;32m-> 1239\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrefresh\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlock_args\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[43mlock_args\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1240\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdynamic_miniters:\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;66;03m# If no `miniters` was specified, adjust automatically to the\u001b[39;00m\n\u001b[1;32m 1242\u001b[0m \u001b[38;5;66;03m# maximum iteration rate seen so far between two prints.\u001b[39;00m\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# e.g.: After running `tqdm.update(5)`, subsequent\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;66;03m# calls to `tqdm.update()` will only cause an update after\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;66;03m# at least 5 more iterations.\u001b[39;00m\n\u001b[1;32m 1246\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmaxinterval \u001b[38;5;129;01mand\u001b[39;00m dt \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmaxinterval:\n", + "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/tqdm/std.py:1344\u001b[0m, in \u001b[0;36mtqdm.refresh\u001b[0;34m(self, nolock, lock_args)\u001b[0m\n\u001b[1;32m 1342\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1343\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lock\u001b[38;5;241m.\u001b[39macquire()\n\u001b[0;32m-> 1344\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdisplay\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1345\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m nolock:\n\u001b[1;32m 1346\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lock\u001b[38;5;241m.\u001b[39mrelease()\n", + "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/tqdm/std.py:1492\u001b[0m, in \u001b[0;36mtqdm.display\u001b[0;34m(self, msg, pos)\u001b[0m\n\u001b[1;32m 1490\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m pos:\n\u001b[1;32m 1491\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmoveto(pos)\n\u001b[0;32m-> 1492\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msp\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__str__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mmsg\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mmsg\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1493\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m pos:\n\u001b[1;32m 1494\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmoveto(\u001b[38;5;241m-\u001b[39mpos)\n", + "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/tqdm/std.py:347\u001b[0m, in \u001b[0;36mtqdm.status_printer..print_status\u001b[0;34m(s)\u001b[0m\n\u001b[1;32m 345\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mprint_status\u001b[39m(s):\n\u001b[1;32m 346\u001b[0m len_s \u001b[38;5;241m=\u001b[39m disp_len(s)\n\u001b[0;32m--> 347\u001b[0m \u001b[43mfp_write\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;130;43;01m\\r\u001b[39;49;00m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[43ms\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m \u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43mmax\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mlast_len\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mlen_s\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 348\u001b[0m last_len[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m=\u001b[39m len_s\n", + "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/tqdm/std.py:341\u001b[0m, in \u001b[0;36mtqdm.status_printer..fp_write\u001b[0;34m(s)\u001b[0m\n\u001b[1;32m 339\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mfp_write\u001b[39m(s):\n\u001b[1;32m 340\u001b[0m fp\u001b[38;5;241m.\u001b[39mwrite(\u001b[38;5;28mstr\u001b[39m(s))\n\u001b[0;32m--> 341\u001b[0m \u001b[43mfp_flush\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/tqdm/utils.py:127\u001b[0m, in \u001b[0;36mDisableOnWriteError.disable_on_exception..inner\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minner\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 126\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 127\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\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 128\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mOSError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 129\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m e\u001b[38;5;241m.\u001b[39merrno \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m5\u001b[39m:\n", + "File \u001b[0;32m~/miniforge3/lib/python3.10/site-packages/ipykernel/iostream.py:526\u001b[0m, in \u001b[0;36mOutStream.flush\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 524\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpub_thread\u001b[38;5;241m.\u001b[39mschedule(evt\u001b[38;5;241m.\u001b[39mset)\n\u001b[1;32m 525\u001b[0m \u001b[38;5;66;03m# and give a timeout to avoid\u001b[39;00m\n\u001b[0;32m--> 526\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[43mevt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwait\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mflush_timeout\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 527\u001b[0m \u001b[38;5;66;03m# write directly to __stderr__ instead of warning because\u001b[39;00m\n\u001b[1;32m 528\u001b[0m \u001b[38;5;66;03m# if this is happening sys.stderr may be the problem.\u001b[39;00m\n\u001b[1;32m 529\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mIOStream.flush timed out\u001b[39m\u001b[38;5;124m\"\u001b[39m, file\u001b[38;5;241m=\u001b[39msys\u001b[38;5;241m.\u001b[39m__stderr__)\n\u001b[1;32m 530\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", + "File \u001b[0;32m~/miniforge3/lib/python3.10/threading.py:607\u001b[0m, in \u001b[0;36mEvent.wait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 605\u001b[0m signaled \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_flag\n\u001b[1;32m 606\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m signaled:\n\u001b[0;32m--> 607\u001b[0m signaled \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_cond\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwait\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 608\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m signaled\n", + "File \u001b[0;32m~/miniforge3/lib/python3.10/threading.py:324\u001b[0m, in \u001b[0;36mCondition.wait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 322\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 323\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m timeout \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m--> 324\u001b[0m gotit \u001b[38;5;241m=\u001b[39m \u001b[43mwaiter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43macquire\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 325\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 326\u001b[0m gotit \u001b[38;5;241m=\u001b[39m waiter\u001b[38;5;241m.\u001b[39macquire(\u001b[38;5;28;01mFalse\u001b[39;00m)\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ - "disc_loss(gen, disc, real, batch_size, z_dim)" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "784" - ] - }, - "execution_count": 86, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "real.shape[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(8, 784)" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "real.shape" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "real.reshape((-1,len(real))).shape" + "z_dim = 64\n", + "gen = Generator(z_dim)\n", + "mx.eval(gen.parameters())\n", + "gen_opt = optim.Adam(learning_rate=lr)\n", + "\n", + "disc = Discriminator()\n", + "mx.eval(disc.parameters())\n", + "disc_opt = optim.Adam(learning_rate=lr)\n", + "\n", + "for real in tqdm(batch_iterate(batch_size, train_images)):\n", + " d_loss = disc_loss(gen, disc, real, batch_size, z_dim)\n" ] } ],