cleanup of PG code example
This commit is contained in:
1 parent
4e4016f705
commit
bc4718ffe9
1 file changed
+33
-64
+33
-64
@@ -58,7 +58,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 143,
|
"execution_count": 17,
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"!pip install --upgrade --quiet git+https://github.com/tum-pbs/PhiFlow\n",
|
"!pip install --upgrade --quiet git+https://github.com/tum-pbs/PhiFlow\n",
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 144,
|
"execution_count": 18,
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"def generate_heat_example(*shape, bounds: Box = None):\n",
|
"def generate_heat_example(*shape, bounds: Box = None):\n",
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 145,
|
"execution_count": 19,
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"output_type": "display_data",
|
"output_type": "display_data",
|
||||||
@@ -153,7 +153,7 @@
|
|||||||
"height": 390
|
"height": 390
|
||||||
},
|
},
|
||||||
"id": "BHtnPdL3S2eO",
|
"id": "BHtnPdL3S2eO",
|
||||||
"outputId": "819f73cc-1346-4243-94cc-8416e7c8c621"
|
"outputId": "7937d111-1c65-44fb-e11a-1f219cc8ecb1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -216,7 +216,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 146,
|
"execution_count": 20,
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"def apply_damping(kernel, inv_kernel, amp, f_uncertainty, log_kernel):\n",
|
"def apply_damping(kernel, inv_kernel, amp, f_uncertainty, log_kernel):\n",
|
||||||
@@ -272,7 +272,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 147,
|
"execution_count": 21,
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"math.set_global_precision(64)\n",
|
"math.set_global_precision(64)\n",
|
||||||
@@ -295,9 +295,10 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"Now we'll define loss function for phiflow.\n",
|
"Now we'll define loss function for phiflow.\n",
|
||||||
"The gradients for the network weights are always computed as d(loss_function)/d$\\theta$.\n",
|
"The gradients for the network weights are always computed as d(loss_function)/d$\\theta$.\n",
|
||||||
"For SIP, we invert the physics, and then define the proxy loss as $L^2$(prediction - correction), where correction is taken as constant. Below this is realized via `x = field.stop_gradient(prediction)`.\n",
|
|
||||||
"\n",
|
"\n",
|
||||||
"The Adam / GD version for `sip=False` simply computes the L2 difference of two diffused $y$ fields for the gradient, as outlined above.\n",
|
"For SIP, we invert the physics, and then define the proxy loss as $L^2$(prediction - correction), where correction is taken as constant. Below this is realized via `x = field.stop_gradient(prediction)`. This L2 loss triggers the backprop towards the neural network weights. For SIP, the `y_l2` is only computed for comparison, and is not crucial for training.\n",
|
||||||
|
"\n",
|
||||||
|
"The Adam / GD version for `sip=False` simply computes the L2 difference of the predicted, diffused $y$ field to the target, and backprops through the operations for the gradient.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"We also compute the reference $y = \\mathcal P(x^*)$ in the loss function on-the-fly.\n"
|
"We also compute the reference $y = \\mathcal P(x^*)$ in the loss function on-the-fly.\n"
|
||||||
],
|
],
|
||||||
@@ -308,7 +309,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 148,
|
"execution_count": 22,
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"# @math.jit_compile\n",
|
"# @math.jit_compile\n",
|
||||||
@@ -322,11 +323,11 @@
|
|||||||
" y = diffuse.fourier(x, 8., 1)\n",
|
" y = diffuse.fourier(x, 8., 1)\n",
|
||||||
" dx, _, amp, raw_kernel, kernel, sig_prob = inv_diffuse(y_target - y, 8., uncertainty=abs(y_target - y) * 1e-6)\n",
|
" dx, _, amp, raw_kernel, kernel, sig_prob = inv_diffuse(y_target - y, 8., uncertainty=abs(y_target - y) * 1e-6)\n",
|
||||||
" correction = x + dx\n",
|
" correction = x + dx\n",
|
||||||
" loss = field.l2_loss(prediction - correction)\n",
|
" y_l2 = field.l2_loss(y - y_target) # not important, just for tracking \n",
|
||||||
" y_l2 = field.l2_loss(y - y_target)\n",
|
" loss = field.l2_loss(prediction - correction) # proxy L2 loss for network\n",
|
||||||
" else:\n",
|
" else:\n",
|
||||||
" y = diffuse.fourier(prediction, 8., 1)\n",
|
" y = diffuse.fourier(prediction, 8., 1)\n",
|
||||||
" y_l2 = loss = field.l2_loss(y - y_target)\n",
|
" loss = y_l2 = field.l2_loss(y - y_target) # for Adam we backprop through the loss and y\n",
|
||||||
" return loss, x, y, field.l2_loss(x_gt - x), y_l2\n"
|
" return loss, x, y, field.l2_loss(x_gt - x), y_l2\n"
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
@@ -364,9 +365,9 @@
|
|||||||
"base_uri": "https://localhost:8080/"
|
"base_uri": "https://localhost:8080/"
|
||||||
},
|
},
|
||||||
"id": "PK47PUNKaeA0",
|
"id": "PK47PUNKaeA0",
|
||||||
"outputId": "2529bd34-0594-443e-8f71-9e1fe72d1435"
|
"outputId": "f275a0bb-6fab-412a-fcc7-e2a786b8fa8b"
|
||||||
},
|
},
|
||||||
"execution_count": 149,
|
"execution_count": 23,
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
@@ -400,7 +401,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 150,
|
"execution_count": 24,
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
@@ -443,7 +444,7 @@
|
|||||||
"colab": {
|
"colab": {
|
||||||
"base_uri": "https://localhost:8080/"
|
"base_uri": "https://localhost:8080/"
|
||||||
},
|
},
|
||||||
"outputId": "0b3f0a60-aa3a-4b5a-9e6d-dd4fef70f509"
|
"outputId": "272f48e4-fadd-44d6-c8b3-3704c8135a9a"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -464,8 +465,8 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"import pylab as plt\n",
|
"import pylab as plt\n",
|
||||||
"fig = plt.figure().gca()\n",
|
"fig = plt.figure().gca()\n",
|
||||||
"pltx = range(len(loss_adam_x)) # np.linspace(-1,1,N)\n",
|
"pltx = range(len(loss_gd_x)) \n",
|
||||||
"fig.plot(pltx, loss_adam_x , lw=2, color='blue', label=\"GD\") \n",
|
"fig.plot(pltx, loss_gd_x , lw=2, color='blue', label=\"GD\") \n",
|
||||||
"fig.plot(pltx, loss_sip_x , lw=2, color='red', label=\"SIP\")\n",
|
"fig.plot(pltx, loss_sip_x , lw=2, color='red', label=\"SIP\")\n",
|
||||||
"plt.xlabel('iterations'); plt.ylabel('x loss'); plt.legend(); plt.yscale(\"log\")\n"
|
"plt.xlabel('iterations'); plt.ylabel('x loss'); plt.legend(); plt.yscale(\"log\")\n"
|
||||||
],
|
],
|
||||||
@@ -475,9 +476,9 @@
|
|||||||
"base_uri": "https://localhost:8080/",
|
"base_uri": "https://localhost:8080/",
|
||||||
"height": 300
|
"height": 300
|
||||||
},
|
},
|
||||||
"outputId": "3dd0ee6e-3592-4d03-d5ed-a886d7994b6e"
|
"outputId": "aee621e7-d572-44fb-8100-43988e999ae1"
|
||||||
},
|
},
|
||||||
"execution_count": 151,
|
"execution_count": 25,
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"output_type": "display_data",
|
"output_type": "display_data",
|
||||||
@@ -508,10 +509,10 @@
|
|||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
"fig = plt.figure().gca()\n",
|
"fig = plt.figure().gca()\n",
|
||||||
"pltx = range(len(loss_adam_y)) \n",
|
"pltx = range(len(loss_gd_y)) \n",
|
||||||
"import scipy # for filtering\n",
|
"import scipy # for filtering\n",
|
||||||
"fig.plot(pltx, scipy.ndimage.filters.gaussian_filter1d(loss_adam_y,sigma=2) , lw=2, color='blue', label=\"GD\") \n",
|
"fig.plot(pltx, scipy.ndimage.filters.gaussian_filter1d(loss_gd_y,sigma=2) , lw=2, color='blue', label=\"GD\") \n",
|
||||||
"fig.plot(pltx, scipy.ndimage.filters.gaussian_filter1d(loss_sip_y ,sigma=2) , lw=2, color='red', label=\"SIP\")\n",
|
"fig.plot(pltx, scipy.ndimage.filters.gaussian_filter1d(loss_sip_y ,sigma=2), lw=2, color='red', label=\"SIP\")\n",
|
||||||
"plt.xlabel('iterations'); plt.ylabel('y loss'); plt.legend(); plt.yscale(\"log\")\n"
|
"plt.xlabel('iterations'); plt.ylabel('y loss'); plt.legend(); plt.yscale(\"log\")\n"
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
@@ -520,9 +521,9 @@
|
|||||||
"height": 300
|
"height": 300
|
||||||
},
|
},
|
||||||
"id": "KcJemrzNu6dm",
|
"id": "KcJemrzNu6dm",
|
||||||
"outputId": "284fe910-faf9-4452-aa1b-b533e77a1818"
|
"outputId": "d3f1bf55-4673-44a8-8793-a58c99442753"
|
||||||
},
|
},
|
||||||
"execution_count": 152,
|
"execution_count": 26,
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"output_type": "display_data",
|
"output_type": "display_data",
|
||||||
@@ -552,57 +553,25 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
"#todo plot outputs\n",
|
"vis.plot(x_gd.values.batch[0], x_sip.values.batch[0], data.values.batch[0]);"
|
||||||
"\n",
|
|
||||||
"#vis.plot(generate_heat_example(batch(view_examples=2), spatial(x=64, y=64)));\n",
|
|
||||||
"#vis.plot(x_gd);\n",
|
|
||||||
"#print(format( tensor(x_gd.values,convert=True) ))\n",
|
|
||||||
"\n",
|
|
||||||
"#t1=tensor(x_gd.values,convert=True)\n",
|
|
||||||
"t2a=math.Tensor.numpy(x_gd.values ,\"batch,y,x\")\n",
|
|
||||||
"t2b=math.Tensor.numpy(x_sip.values,\"batch,y,x\")\n",
|
|
||||||
"t2c=math.Tensor.numpy(data.values,\"batch,y,x\")\n",
|
|
||||||
"t3=math.tensor( np.concatenate([ t2a[0],t2b[0],t2c[0] ],axis=0) , spatial(x=3*64, y=64))\n",
|
|
||||||
"print(format( t2a.shape ))\n",
|
|
||||||
"vis.plot(t3)\n",
|
|
||||||
"\n",
|
|
||||||
"#vis.plot( [math.tensor( t2a[0] , spatial(x=64, y=64)) , math.tensor( t2b[0] , spatial(x=64, y=64))] , row_dims=\"2\", col_dims=\"1\" )\n"
|
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"id": "gNvf0FuxwfdF",
|
"id": "gNvf0FuxwfdF",
|
||||||
"colab": {
|
"colab": {
|
||||||
"base_uri": "https://localhost:8080/",
|
"base_uri": "https://localhost:8080/",
|
||||||
"height": 759
|
"height": 390
|
||||||
},
|
},
|
||||||
"outputId": "775f10d9-a956-40d5-926e-63a9098c7c3e"
|
"outputId": "dbea2b17-baf0-43a7-bceb-43921beb4b97"
|
||||||
},
|
},
|
||||||
"execution_count": 154,
|
"execution_count": 27,
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
|
||||||
"output_type": "stream",
|
|
||||||
"name": "stdout",
|
|
||||||
"text": [
|
|
||||||
"(128, 64, 64)\n"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"output_type": "execute_result",
|
|
||||||
"data": {
|
|
||||||
"text/plain": [
|
|
||||||
"<Figure size 864x360 with 2 Axes>"
|
|
||||||
],
|
|
||||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAFgCAYAAAAmWu9SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9e7As2VXe+a3Kqjrn3Ee/pabVLSQBMg9jA3aHGAZikJARAmsQM0NgydgWDjl6wmFhZjxhS9gONIOJCdlEDEMMGkSH6FETYyRk2Rr1OARCA5I1DAjUAgF6ABKNhLppqdWv2/eeV1Vlrvnj1L357VWV++atyjrn1K3v13GiMyt37tyZuXfe2pXf+pa5O4QQQgghhBBiGXon3QAhhBBCCCHE+qOJhRBCCCGEEGJpNLEQQgghhBBCLI0mFkIIIYQQQoil0cRCCCGEEEIIsTT9k26AEEIIIYQQ1xPf9ZKz/sST5VJ1fPQPDt/n7i/vqEnHgiYWQgghhBBCdMgTT5b4nfd9+VJ1FHd8+raOmnNsaGIhhBBCCCFEhziACtVJN+PYUYyFEEIIIYQQYmn0xkIIIYQQQohOcZS+eW8sNLEQQgghhBCiQ46kUL7SY5jZfQBeAeAxd//6Odv/KYAfnK72AXwtgGe5+5Nm9lkAFwGUACbufncXbZIUSgghhBBCiI6plvyvBW8D0Oga5e4/6e7f6O7fCOBHAfwnd3+Sirxkur2TSQWgiYUQQgghhBBrh7t/CMCTVy14xKsBvH2FzQGgiYUQQgghhBCd4nCUvtxfV5jZGRy92fj3SROBXzWzj5rZPV0dSzEWQgghhBBCdEwHMRa3mdmDtH6vu9+7QD3/JYD/L8igvs3dHzGzZwN4v5n90fQNyFJoYiGEEEIIIUSHOIBy+YnF4x3FP7wKQQbl7o9M//+Ymb0bwIsALD2xkBRKCCGEEEKIjqngS/11gZndCODbAbyHPjtrZucvLwN4GYCPd3E8vbEQQgghhBBizTCztwN4MY4kUw8DeCOAAQC4+1umxf4rAL/q7ru06+0A3m1mwNFc4Bfd/Ve6aJMmFkIIIYQQQnSIA50GYM89hvurW5R5G45safmzhwB8wyrapImFEEIIIYQQHbN5ebc1sRBCCCGEEKJTHN5F8PbaoeBtIYQQQgghxNLojYUQQgghhBBd4kC5eS8sNLEQQgghhBCiSxyKsRBCCCGEEEIsjaGEnXQjjh3FWAghhBBCCCGWRm8shBBCCCGE6BAHUCnGQgghhBBCCLEsmyiF0sRCCCGEEEKIDnFs5sRCMRZCCCGEEEKIpdEbCyGEEEIIITqm8s17Y6GJhRBCCCGEEB2yqVIoTSyEEEIIIYToEIeh3MCIg807YyGEEEIIIUTn6I2FEEIIIYQQHaMYCyGEEEIIIcRSKMZCCCGEEEII0QGG0jcv4mDzzlgIIYQQQgjROXpjIYQQQgghRIc4gGoDf7/XxEIIIYQQQoiOUYyFEEIIIYQQYincFWMhhBBCCCGEEAuhNxZCCCGEEEJ0TCUplBBCCCGEEGIZjvJYbJ4wSBMLIYQQQgghOkUxFkIIIYQQQgixEHpjIYQQQgghRIcoj4UQQgghhBCiE0pX8LYQQgghhBBiCRy2kcHbm3fGQgghhBBCrDlmdp+ZPWZmH2/Y/mIzu2BmH5v+/Rhte7mZ/bGZfcbM3tBVm/TGQgghhBBCiI6pVu8K9TYAPwPgFzJl/l93fwV/YGYFgDcD+E4ADwP4iJk94O6fXLZBmlgIIYQQQgjRIceRx8LdP2Rmz19g1xcB+Iy7PwQAZvYOAK8EsPTEQlIoIYQQQgghOsRhKH25PwC3mdmD9HfPAk35FjP7fTP7ZTP7y9PP7gTweSrz8PSzpdEbCyGEEEIIITqmA7vZx9397iX2/10Az3P3S2b2PQD+LwAvXLZROfTGQgghhBBCiOsMd3/G3S9Nl98LYGBmtwF4BMBzqehd08+WRm8shBBCCCGE6BB3oFx98HYWM/syAF90dzezF+HohcITAJ4G8EIzewGOJhSvAvC3uzimJhZCCCGEEEJ0iqHCahPkmdnbAbwYR7EYDwN4I4ABALj7WwB8P4B/aGYTAPsAXuXuDmBiZq8D8D4ABYD73P0TXbRJEwshhBBCCCE6xLH6Nxbu/uqrbP8ZHNnRztv2XgDv7bpNirEQQgghhBBCLI3eWAghhBBCCNExq85jcRrRxEIIIYQQQogOcRgqX22MxWlEEwshhBBCCCE6ZhPfWGzeGQshhBBCCCE6R28shBBCCCGE6BAHUJ1wHouTQBMLIYQQQgghOsVQrjiPxWlEEwshhBBCCCE6ZFPfWGzeGQshhBBCCCE6Zy3eWAyGZ3175+aTbsZixLdgvkAdi+wTD+1USayPthlvq7yxXLI8s07LFi4Ar/fqea0XYY7bq8tlT7/lW0bLnP4i9a07VjXco3jP1+16tB0rTecV+mtSXdtr0bZcrq252xDHXps6c8da9B4vst+Cz7JT3w8XPa8No9y+Pn/LLA6qk27CRnJw+DRG491T/XSQFOqUsr1zM/7af/7DAADvpTcp+SKc+we3a+IXZm4Gb1pwYsFf/Kxst5PFLyNcx6Re7o3LtNxhvW60zUbjtByvjyfJNudtFdUxGKSN2hrW+5zdubI8uXEnKVZtF/Vy0XzPnbblyhV0jh6/PNK/dV4c30Mg3q8murDBjuNmcLG+Xz6oL0DvIO0b6K3ZQ7HtM4D6AF8b76fnm/SpcC34viTXd8GJRa+cP16B5ueBZSb/bZ8hsc/HvtJI5hnYfLBFfyU55f1w5ocWWj7lTT9OLnzlmWR9nVUiRnOJG/907+QassH8zsd+9qSbkMXdNlIKtRYTC3OgODwaxTYJvwzQPzgz/8gSC305i/+YNfSP+EW17T8k8YtwUmeffs3v85egUI6+BMQvD8kX12G9UozS4/b4i8Q2d4mttBxf+yrcB17lL+qDIinW9KWl2krLTWhiEb/s8X3uHdYH7o/SNnFfSb5k5fpJbB9/AV2zLwh8/6tB2nF4olXyGCrTa+gt1ZKW+cI4Mz5a7JOjqb5ra1NDuV56vk79stwKX8Abxm8chz2eJOReNnDfi09mmscn9cdzpGtT9TP1FfxMaR5f4ElMPBT3Fd5nJZPR0/1KYPYHr7q9bfvrJjI+v77XZnjhdPdJcTooN3BisXlnLIQQQgghhOictXhjIYQQQgghxLrgAKoN1EJqYiGEEEIIIUSn2EZKodZjYuF+RbPKsQfAnJiLy7tcyyRxSQ1s1HI7muMemGLSvK0kzW41qJcnwVWjHDYHjRrF4bLOuxoFHfmNLbsBy6hj21u60RQUE9Eb18vFbhoozuvVMI2/YDjuw2JQOl37RA8fdPRcf67ftDYKaNmfjjNmI/ZDvh7JcoyJadlGX+BXmdw+bQPbZ1ysuP4koDoEZQ8phsnmjzUAmJypy01CjAWXTWM2QjvYdIu9DGLwNsVRFON0Y/+gXh9eqAv2d6MRQ73NYhxU0qjMdaM+UA3rZ8NMkDeV47iMmTillrE0re85Vx2fecdoiJAcN/RDxVUIIY7yWGzes2DzplJCCCGEEEKIzlnpxMLMbjKzd5nZH5nZp8zsW8zsFjN7v5l9evr/NU1QIYQQQgghxHxK9Jb6W0dWLYX6aQC/4u7fb2ZDAGcA/HMAv+bubzKzNwB4A4DXX7Wm6Vt9C/qBJqnRtb2Jbvn+vGz4PGdLm5EB5JLRFftUbkKyjSAzmOyQTCpINSxRQjRb1jbKB2byYtTLUQpVkJKJ3/xNttM2leRgW4zq5eGlVLZRHDbbw7LHf0EWs8VMuVoW0rtUH8y309waye2LifqSgs2b0CSTaiut6oLYD5O+l2sI7RKLcZ0dyL/a4m3HZMayOSfPSXJX8CnO5LGgbUGRVw55meSPmZwGiewsjkMaAmWaJiYZ2xPqv/399BHe36sfUiw7jHAbY86MtP82y8kac75kLHBzZTvJ13JCqoOY4JNzBUkWJcRm4rCNlEKtbGJhZjcC+C8A/BAAuPsIwMjMXgngxdNi9wP4INpMLIQQQgghhFgTqjV967AMqzzjFwD4EoD/w8x+z8zeamZnAdzu7o9Oy3wBwO0rbIMQQgghhBDiGFjlxKIP4K8B+Fl3/yYAuziSPV3B3R0NOiQzu8fMHjSzB0fj3RU2UwghhBBCiO5wB0q3pf7WkVXGWDwM4GF3/+3p+rtwNLH4opnd4e6PmtkdAB6bt7O73wvgXgC44fyd9eQjJ4Fnve6M9ypXHnfMncYCtLRXTMpFi8aG84zxBmxRia20LGu4exQfEvsqa8UTDXjGvpbjI2aORZrtGEdQkYbdCypXBo3ypKR90m192pbo6GN8BMffsKZ8lArYjSw1473zjMY8pUGXvmbMWKW2jXVIdloweKT1tb72Y89YpfI696EYR8C2zyH+otzibZljUbdku9n+QWgkdcsqxi8M6zZOqI0xTqOkvtw/oPijw/DcoNikXpkGj7ENdMJM/FFv7iKqxexmV01TTFNbi+k1/TdeCHGCbGKMxcreWLj7FwB83sy+evrRSwF8EsADAF4z/ew1AN6zqjYIIYQQQghx3BwFb/eW+ltHVu0K9cMA/u3UEeohAH8fR5OZd5rZawF8DsAPrLgNQgghhBBCiBWz0omFu38MwN1zNr10JcdLpBSZgh2/mcq+6cpagNLH0Q6z4VxmstryoaKMhewxS1qO2YVZnsF2sDlb2nKc1lGQrKM45EaERlKdh+ebZVde1A2eyfJtdDJ0nXpFkHBQncUu2YHGbO28XjRn+c7SIN1ZNDNwJ2TkRKfSArMDyUzj9Y39ixOxs4ot04YqPi15XLItbSiX7Jc5xaSOMPbYBpeli2w3DaTSwOKgrnCwHzJ579f7FYdBanipXi4OWDaYjhu+VolcMfatgsdelBpiZax6rGVlUixZzTyzhRDXN2XnWvvTzLine truncated
|
|
||||||
},
|
|
||||||
"metadata": {},
|
|
||||||
"execution_count": 154
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"output_type": "display_data",
|
"output_type": "display_data",
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<Figure size 864x360 with 2 Axes>"
|
"<Figure size 864x360 with 6 Axes>"
|
||||||
],
|
],
|
||||||
"image/png": "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 truncated
|
"image/png": "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 truncated
|
||||||
},
|
},
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"needs_background": "light"
|
"needs_background": "light"
|
||||||
@@ -615,7 +584,7 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"## Next steps\n",
|
"## Next steps\n",
|
||||||
"\n",
|
"\n",
|
||||||
"* For this example, it's worth experimenting with various training parameters: run it longer, with varying learning rates, and different network sizes (or even different architectures)."
|
"* For this example, it's worth experimenting with various training parameters: run the training longer, with varying learning rates, and different network sizes (or even different architectures).\n"
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"id": "pC5xFvjv7wGz"
|
"id": "pC5xFvjv7wGz"
|
||||||
|
|||||||
Reference in new issue
Block a user