You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1402 lines
104 KiB
1402 lines
104 KiB
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# 7.5 AdaGrad算法"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"%matplotlib inline\n",
|
|
"import math\n",
|
|
"import torch\n",
|
|
"import sys\n",
|
|
"sys.path.append(\"..\") \n",
|
|
"import d2lzh_pytorch as d2l"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 7.5.2 特点"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"epoch 20, x1 -2.382563, x2 -0.158591\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\nSUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x119aea630>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def adagrad_2d(x1, x2, s1, s2):\n",
|
|
" g1, g2, eps = 0.2 * x1, 4 * x2, 1e-6 # 前两项为自变量梯度\n",
|
|
" s1 += g1 ** 2\n",
|
|
" s2 += g2 ** 2\n",
|
|
" x1 -= eta / math.sqrt(s1 + eps) * g1\n",
|
|
" x2 -= eta / math.sqrt(s2 + eps) * g2\n",
|
|
" return x1, x2, s1, s2\n",
|
|
"\n",
|
|
"def f_2d(x1, x2):\n",
|
|
" return 0.1 * x1 ** 2 + 2 * x2 ** 2\n",
|
|
"\n",
|
|
"eta = 0.4\n",
|
|
"d2l.show_trace_2d(f_2d, d2l.train_2d(adagrad_2d))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"epoch 20, x1 -0.002295, x2 -0.000000\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEKCAYAAAAFJbKyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzsnXecJEd99r/VPTlsvr20t5dRzieJ\nIEAgCUSygiWREQheWfaLsV+/fo0Bm+T3teG1scEG8yIDQkQhgpDAgJAEGJSQ7oTCBZ0u323OOznX\n+0d1z8ymu9273Z0Nv+/n0+rq6pqZmrtTP1Nd1c+jtNYIgiAIwnSxat0BQRAEYXEhwiEIgiDMCBEO\nQRAEYUaIcAiCIAgzQoRDEARBmBEiHIIgCMKMEOEQBEEQZoQIhyAIgjAjRDgEQRCEGeGpdQfmgpaW\nFr1hw4Zad2NJkiuWSGULJHNFktkC2UIJBZy1ph6lat07QRBOlh07dgxorVdMp+2SFI4NGzawffv2\nWndj0aO15uBAkicODZW3gZE0AC1+D6/d0MjFG5q4eEMTF7Y34LFlACsIixWl1JHptl2SwiGcHKWS\nZl9fgt8dGuR3B4f43aEhBhJZAFoifi7d2MStr9jExRuaOG1VFNuSIYYgLEdEOJYxWmv29yV47OAg\njx0Y5HeHhhhK5gBYXR/g5VtbuGRjE5dubGJjSxgl96IEQUCEY1mhtebIYIpHDwzy6IEBHj9YGVGs\nbQhy+WkrePGmZl68sZl1TUERCkEQJkWEY4mTyhV4ZP8gv3y+j9+80E+nM0exss7PZVuaecnmZl6y\nqUWEQhCEaSPCsQTpGc3w4J5eHtrTyyMHBskVSkT8Hi7b0sJtl2/mpZub2SS3ngRBOElEOJYAWmt2\ndcV4cE8vD+7pZWdnDID2phBvv7SdK89YycUbmvB5ZNWTIAinjgjHIiVfLPG7g0M8sLuHB/f00TmS\nRim4sL2Rv7r6NK46YyVbWiMyqhAEYdYR4VhEJLMF/uuFfu7f1cMvn+8jnikQ8Fq8fOsK/uzKrbz6\n9FZaIv5ad1MQhCWOCMcCZySV4xe7e/nFrh5+s2+AXKFEU9jH1Wet4jVnreKyLS0EfXatuykIwjJC\nhGMBUiiW+K8X+vnBUx08uLuPXLHE2oYgb7+0ndeetYpt6xvlKW1BEGqGCMcC4vmeGN/f3sGPnu5i\nIJGlKezj7S9u57oL1nLO2nqZrxAEYUEgwlFjRlN57numk7u3d/Bc5yheW/Hq01u54aJ1XH7aCrwy\nshAEYYEhwlEDSiXNIwcGuHt7B/fv6iFXKHHG6jo+9qYzueb8tTSFfbXuoiAIwpSIcMwjnSNpvrf9\nGN/b3kHnSJr6oJe3XdLODRe1cfba+lp3TxAEYVqIcMwxWmt+u2+Arzx8iN/s60drePnWFv76dadz\n1ZkrCXhlRZQgCIsLEY45oljS/PS5br746wPs7o7RGvXzp6/eyo0XtbGuKVTr7gmCIJw0IhyzTCZf\n5AdPdXD7bw5yZDDFphVh/u8fnss1F6zB75HRhSAIi5+aCodS6mrgc4ANfFlr/alx598N/CPQ6VR9\nXmv95Xnt5DRJZAt86/EjfPnhQ/THs5zbVs//e8eFvObMVVgSeCQIwhKiZsKhlLKBLwBXAR3Ak0qp\n+7TWu8c1/a7W+v3z3sFpMpzMccejh7nz0cOMpvNctqWFz735fF6yuVmeuxAEYUlSyxHHJcB+rfVB\nAKXUXcA1wHjhWJD0xTJ8+eFDfPPxI6RyRV5z5kr+5FVbOH9dQ627JgiCMKfUUjjWAseqjjuASydp\n94dKqVcALwD/Q2t9bJI280a2UOQ/fnOQz/9qP7lCiTedt4Y/uXwLp62K1rJbgiAI80YthWOy+zh6\n3PGPge9orbNKqduAO4FXT/pmSt0K3ArQ3t4+m/0s86u9fXzivl0cHkzxurNX8cGrT2dDS3hOPksQ\nBGGhUkvh6ADWVR23AV3VDbTWg1WH/wF8eqo301rfDtwOsG3btvECdEocG0rxyZ/s5oHdvWxqCfP1\nWy7hFS9aMZsfIQiCsGiopXA8CWxVSm3ErJp6C/C26gZKqdVa627n8A+APfPZQfe21L/9cj+WUvzV\n1afx3ss2yrJaQRCWNTUTDq11QSn1fuB+zHLcr2qtdymlPgls11rfB3xAKfUHQAEYAt49X/17eN8A\nH713JwcHkrzu7FX87RvPZE1DcL4+XhAEYcGitJ7VuzoLgm3btunt27ef1GuHkzk+et8ufvxMF+ub\nQ3ziD87i8tNaZ7mHgiAICwul1A6t9bbptJUnx6vY2TnKbd/cQV8sy59fuZXbXrlZvKQEQRDGIcLh\n8KPfd/LBHzxLU9jH3be9RJ7HEARBmIJlLxyFYom//+nzfPWRQ1y6sYkvvP1CWiL+WndLEARhwbKs\nhWMwkeW/f/spHj84xLtfuoGPvOEMSdwTBEE4ActWOHZ2jvJH39jBQCLLZ248jz+8qK3WXRIEQVgU\nLEvhePTAAO+540mawz6+f9tLOadN0vcEQRCmy7ITjr09cf7oGztobwrxnVtfLPMZgiAIM2RZ3dDv\njWV4zx1PEPDa3PGei0U0BEEQToJlIxyJbIH33PEko+k8d7z7YtoaJb5VEAThZFgWt6ryxRJ//M0d\n7O2N85Wbt3H2WpnTEARBOFmW/IhDa83f3LOT3+4b4O+vO1vsQwRBEE6RJS8cv97bz3e3H+P9r9rC\nmy+em5wOQRCE5cSSFo5SSfNPv9hLe1OIP7tya627IwiCsCRY0sJx/64ednXF+PMrt8oT4YIgCLPE\nkr2aFkuaf37gBTavCHPN+Wtr3R1BEIQlw5IVjvue6WRfX4K/uOo0bGuyeHNBEAThZFiywvG5B/dx\nxuo6Xnf2qlp3RRAEYUmxJIUjVyxxeDDF2y5tx5LRhiAIwqyyJIUjmy8CcObqaI17IgiCsPSoqXAo\npa5WSu1VSu1XSv31JOf9SqnvOud/p5TaMJ33zeRLAGxdKcIhCIIw29TMckQpZQNfAK4COoAnlVL3\naa13VzV7LzCstd6ilHoL8GngzSd670yhyOb6AHUB71x0XVjoPHs3PPRJGO2A+ja44qNw7k217tWp\ns1C+11z141Ted7qvPV67yc5BpS7YaI7TQ6Bs0EVAAXri5/jr4UNHZ/onsGhQWk/ypefjg5V6CfBx\nrfVrneMPAWit/6Gqzf1Om8eUUh6gB1ihT9Dp+vbT9XWf+Dpfe88lc/cFhIXJs3fDjz8A+XSlzvbD\ny/8nbLmydv06VfY/CL/9DBSzlbpafK+56sepvO90X3u8djDxnLJBKSgVTu47LTLxUErt0Fpvm1bb\nGgrHDcDVWuv3OcfvBC7VWr+/qs1Op02Hc3zAaTNwvPcOrnmR/l9f/CGfvObsufsCwsLkX86G0WO1\n7oUgGD4+WuseTJuZCEct3XEnW+40XsWm08Y0VOpW4FaA0OrNdA6nJ2smLHVGO6Y4oeBtd89rV2aV\nb9/E5P/05/l7zVU/TuV9p/va47WDKc4Jk1FL4egA1lUdtwFdU7TpcG5V1QNDk72Z1vp24HaA1k1n\n6r298VnvsLAI8EchG5tYX98GL3rN/Pdntqhvm3wkNd/fa676cSrvO93XHq8dyEh1BtRyVdWTwFal\n1EallA94C3DfuDb3ATc75RuAX55ofgMg4LXpGE6TyJ7kvUlhcfLI54xoKHtsvTdYmehcrFzxUfM9\nqqnF95qrfpzK+073tcdrN9k5ywu2b3r9nwz/0s39qZlwaK0LwPuB+4E9wN1a611KqU8qpf7AafYV\noFkptR/4C2DCkt3JCHjN19ono47lw/Y74IGPwlnXw7X/DvXrAGX2b/rXxb+q6tybzPeo9feaq36c\nyvtO97XHazfZuWv/Ha75QqUu2GQ2qPpxMsUDxotsYnym1GxyfC459/wLdezqv+Mfrj+Ht14iGRxL\nnue+Dz94H2y9Ct78LfCcwq9EQVimzGRyfEk+Oe7zWKypD3D39mMsRWEUqnjhfrjnj2D9S+HGO0U0\nBGEeWJLCAfD+V2/l90dH+NXevlp3RZgrDj8Md78LVp4Nb70LfKFa90gQlgVLVjhu3NZGe1OIz/zi\nBUolGXUsOTqfgm+/BRrWwzt+CIG6WvdIEJYNS1Y4vLbFn1+5lV1dMe7f1VPr7gizSd8e+Ob1EGqE\nd/0Iws217pEgLCuWrHAAXHP+Wra0RvjnB16gKKOOpcHQIfj6tWaZ5Lvuhbo1te6RICw7lrRw2Jbi\nL656Efv6Enzl4YO17o5wqsS64RvXQiED7/wRNG2qdY8EYVmypIUD4OqzVvH6c1bxDz97np89113r\n7ggnS2oIvnEdJAfMnMbKM2vdI0FYtix54bAsxT/fdD4XtjfyZ999mu2HJ3UsERYy2Th88w9h6CC8\n9TvQdlGteyQIy5olLxxgLEj+413bWNsQ5H1f387B/kStuyRMl3zarJ7qfgZuuhM2vqLWPRKEZc+y\nEA6AprCPr73nYmylePcdTzKQyJ74RUJtKebhe++GI4/AdV+C015X6x4JgsAyEg6A9c1hvvLui+mL\nZ3jv154knsnXukvCVJSKcM9t8MLP4Q3/BOfeWOseCYLgsKyEA+D8dQ3821svZGdXjGu/8AgH5LbV\nwkNr+Olfws7vwxUfg4vfV+seCYJQxbITDoCrzlzJN997KcOpPNd+/hEe2tNb6y4J1Tz4cdj+VXjZ\nn8PL/6LWvREEYRzLUjgAXrK5mR//6WWsbwnx3ju387kH94k1yULgt/8Mj3wWtt0CV3681r0RBGES\nlq1wAKxtCPL9217K9Res5V8efIHbvrlD5j1qyZNfhoc+AefcCK//DKgpsg4EQagpy1o4wCzV/cxN\n5/GxN53JQ8/3ce0XHmF/n8x7zDvP3g3/+Zfwoqvh2i+Ctez/aQrCgkX+7wSUUrznZRv55nsvZSSV\n55rPP8ydjx4Wf6v5Yu/PzAqqDZfBjV8D21vrHgmCcBxEOKp4yeZmfvKBy7hwfSMfu28X13zhYZ4+\nNlLrbi1tDv4X3H0zrD7PPBU+PvdZEIQFhwjHOFbXB/n6LZfw+bddQF8sy3X//ggfvuc5RlK5Wndt\n6dGxHb7zVmNW+I4fgD9a6x4JgjANaiIcSqkmpdQDSql9zr5xinZFpdTTznbfPPaPN567hof+5yu5\n5WUb+e6Tx3jVP/2au544KiuvZove3cZ/KrIC3nkPhJpq3SNBEKZJrUYcfw08pLXeCjzkHE9GWmt9\nvrP9wfx1zxANePnbN57JT/70Mra2RvnrHz7HdV98lGc75PbVKTF00Nije4NOpsbqWvdIEIQZUCvh\nuAa40ynfCVxbo35MizNW1/HdP3oxn33z+XSNpLnmC4/woR8+R39c/K5mTKwLvn6N8aF654+gcUOt\neyQIwgxRWs//rRel1IjWuqHqeFhrPeF2lVKqADwNFIBPaa1/dJz3vBW4FaC9vf2iI0eOzH7HgXgm\nz2cf3MfXHj2Mx1K89ZJ2bn3FJtY0yKTuCUkOwB2vN+Jx832w9sJa90gQBAel1A6t9bZptZ0r4VBK\nPQismuTUR4A7pykca7TWXUqpTcAvgSu01gdO9Nnbtm3T27dvP4Xen5iD/Qm++OsD3PP7TpSC6y5Y\nyx9fvoWNLeE5/dxFS2YU7nwT9O81E+EbLqt1jwRBqGJBCMdxP1SpvcDlWutupdRq4Nda69NO8Jqv\nAT/RWn//RO8/H8Lh0jmS5vb/OsBdTx4jXyzx+nNW88eXb+asNfXz8vmLglzKTIR3PAFv+Ta86LW1\n7pEgCOOYiXDUao7jPuBmp3wzcO/4BkqpRqWU3ym3AC8Dds9bD6fJ2oYgn7jmbB7+4Kv5b6/YxK/3\n9vOGf32Ym7/6BI8fHKQWwrygKOTg7nfB0cdMpoaIhiAsemo14mgG7gbagaPAjVrrIaXUNuA2rfX7\nlFIvBb4ElDAC91mt9Vem8/7zOeIYz2g6zzcfP8IdjxxiIJHjwvYG/vjyLVxxeiuWtcy8l0pF+MH7\nYNcP4Y2fhW3vqXWPBEGYggV/q2quqaVwuGTyRb63/Rhf+s1BOobTbF4R5u2Xrue6C9bSGPbVtG/z\ngtbw4w/AU1+Hqz4JL/uzWvdIEITjIMKxAITDpVAs8Z/PdfPVRw7zzLERfLbFa85ayVsubuelm5uX\n5ihEa/jF38Bjn4eX/yVc8be17pEgCCdgJsLhmevOLHc8tsU156/lmvPXsqc7xnefPMY9v+/kJ892\ns7YhyA0XtXHDRW2sawrVuquzx2//yYjGxf8NXv03te6NIAizjIw4akAmX+T+XT18f0cHD+8fQGt4\n6eZmbtzWxtVnrSbos2vdxZPnd7fDz/4XnPtmuPb/iT26ICwS5FbVAheOajpH0vxgRwff23GMY0Np\nIn4PbzhnNTdsa2Pb+kbUYgozevo78KPb4LQ3wE1fB1sGtIKwWBDhWETC4VIqaR4/NMgPdnTys53d\npHJF1jeHuP6CNq6/cO3Cv5W15ydm2e2Gy+Btd4M3UOseCYIwA0Q4FqFwVJPMFvjZzh5+sKODxw4O\nAnDm6jpee9YqXnv2Sk5bGV1YI5EDv4Jv3wSrzjWmhf5IrXskCMIMEeFY5MJRzbGhFD/b2c39u3p5\n6ugwWsP65hCvOXMlrzlrFRe2N2LXcmXWsSfg69cas8J3/0Ts0QVhkSLCsYSEo5q+WIYH9vRy/65e\nHjswQL6oaQ77ePXprVx15kpevnXF/E6s9+yEr70egk1wy/0QXTl/ny0IwqwiwrFEhaOaWCbPf+3t\n54Hdvfxqbx/xTIGA1+KyLS1cccZKrji9lda6OZxnGDwAX70aLA/c8nNoXD93nyUIwpwjz3EsA+oC\nXt503hredN4acoUSTxwa4oHdPTy4p48H9/QBcF5bPVecsZJXn97KWWvqZm9eZLTDZGroIrzrP0U0\nBGGZISOOJYbWmr29cR7c3cuDe/p4pmMErWFVXYDLT1vBy7a08NLNzTRH/Cf3AYl+uON1kOiFm38M\na86f3S8gCEJNkFtVy1g4xtMfz/LrvX388vk+Ht43QDxbAOD0VVFevKmZl2xu5sUbm6kPeU/8ZukR\nuPONMLAf3vlDWP/SOe69IAjzhQiHCMekFIolnusc5dEDgzx2YJDtR4bI5EsoZZb7vmRTM5duauaS\nDU0ThSSXgm9cB5074K13wdYra/MlBEGYE0Q4RDimRbZQ5Jljozx2YJDHDg7w1NERcgUjJGesquPS\nTU1curGZS9ojNN37Ljj4K7jhq3DWdbXuuiAIs4wIhwjHSZHJF3nm2Ai/OzTE4wcHeeroMLl8gX/z\n/itvsJ/gh21/jb3tXVyysYnV9ZKxLghLCREOEY5ZIZcvMHr3H7Ni3918u/E2/n7o1SScOZK2xiAX\nb2hi24ZGLt7QxJYVkaVpES8IywRZjiucOlrje+hvWbHvbnjlB3nbqz7MTcUSz/fE+d2hIbYfHuK3\n+wa45/edANQFPJzTVs+5bQ2cu7aec9c1sKY+sLCsUQRBmBVkxCFMzq8/Db/+e7j0Nrj6UzCJAGit\nOTKY4onDQzx9bIRnO0Z4vjtOoWT+TTWHfZzTVs/Za+o5e20957TVi5gIwgJFRhzCqfH4F41onPc2\neO0/TCoaAEopNrSE2dAS5qZt6wAzT7K3J86zHSM80zHKzs5RfrtvgKIjJk1hH2evrefsNXWctaae\ns9fW0d4UEjERhEVETUYcSqkbgY8DZwCXaK0nHR4opa4GPgfYwJe11p+azvvLiOMU+P234N4/gTPe\nBDd8bVYyNTL5Iru7Y+zsHOW5jlF2dsXY11sZmUT9Hs5cU2e21UZQtrRG8HkkBEoQ5ovFMOLYCVwP\nfGmqBkopG/gCcBXQATyplLpPa717frq4DNl9L9z3ftj0KvjDr8xaEFPAa3NheyMXtjeW67KFIi/0\nJNjVNcrOrlF2dcW464ljpPNFALy2YmtrlDNW13HGandfR1PYNyt9EgTh5KmJcGit9wAnuj1xCbBf\na33QaXsXcA0gwjEX7H8Qvv9eaLsY3vIt8JykJck08Xtszmkz8x4uxZLm8GCS3V0xdnfH2NUV47f7\n+vnBUx3lNivr/Jy2qo7TV0XZ2hphi7NFA9N48l0QhFnhuMKhlKoDVmitD4yrP1dr/eyc9gzWAseq\njjuAS6dqrJS6FbgVoL29fW57ttQ4+jjc9Q5YcbpJ7/OFa9IN21JsXhFh84oIbzpvTbl+IJHl+e44\ne7pj7OmO8XxPnK8dGCRXLJXbrKoLsGlFmM0rImP2a+qDskxYEGaZKYVDKXUT8FmgTynlBd6ttX7S\nOf014MLjvbFS6kFg1SSnPqK1vncafZvs//YpJ2S01rcDt4OZ45jG+wsA3c/Ct26CujXGfyrYUOse\nTaAl4ueyrX4u29pSrisUSxwdSrG/L8H+/gT7+xIc7E/yo6c7iWcK5XZ+j8XGljAbW8JsWhFmY0uE\njS0hNjSHaQr7ZFJeEE6C4404PgxcpLXuVkpdAnxDKfVhrfUPmfyiPgat9amaGXUA66qO24CuU3xP\noZqB/cZ/yh81ka+R1lr3aNp4bItNKyJsWhHhNVX1WmsGEjkO9ic40J/k0ECCQwNJ9vbEeWB3b3lC\nHiAa8LCxJcyGZrMybENziPXNYdY3h2gWURGEKTmecNha624ArfUTSqlXAT9RSrVxnF/+s8iTwFal\n1EagE3gL8LZ5+Nzlwcgxk6kBRjQa1h2//SJBKcWKqJ8VUT+Xbmoecy5fLHFsKMXhwSSHBlIcHkhy\neDDJU0eH+cmzXVRpChG/h/amEOubQ7Q3hWh3900h1jQE8dqy4ktYvhxPOOJKqc3u/IYz8rgc+BFw\n1ql8qFLqOuDfgBXAfyqlntZav1YptQaz7Pb1WuuCUur9wP2Y5bhf1VrvOpXPFRwSfUY0snGTE96y\npdY9mhe8VaOU8eQKJTqGUxwZNMJyZDDFkcEkL/TGeej5PnKFynyKpWB1fZC2xiDrHDFpawyytiFI\nW1OIVXWB2ubAC8IcM+VzHEqp84AU4K1eAuvMd7xFa/2N+enizJHnOI5Dehi+9iYYOgDvvAfaX1zr\nHi14SiVNbzzD0cEUR4ZSdAylODac5thQimPDKXpj2THtPZZiVX2ANfVBVtUHzFYXYHV9gJVOeUXU\nL6MWYUExK89xaK2fcd5sp1LqG8D/BQLOfhuwYIVDmIJc0kyE9z8Pb/uuiMY0sSzF6vogq+uDE25/\ngXnAsWskTcew2TpHUnQMp+kZzfBMxwg/35UZM2IB8zB+c9jPqnq/IyQBVtb5aY0GaI36WemIS0vE\nh0cERlhgTOc5jkuBTwOPAlHgW8DL5rJTwhxQyMJdb4fO7XDj12DLFbXu0ZIh4LWnvAUGZsJ+OJWn\nezRNbyxDz2iWnliGvliGnliGjuE0vz86wmAyN+G1SkFTyFeet1kR8dPiCEpLxF+1+WgM+2QUI8wL\n0xGOPJAGgpgRxyGtden4LxEWFMUCfP8WE8R0zb/DmdfUukfLCqUUTWEfTWEfZ62pn7JdrlBiIJGl\nN5ahL56l39kq5QwH+5P0J7ITRjAuDSEvzWEfzWG/+cyIj2bns5vCPhpDZt8Q8tIU9hH02rJ6TJgx\n0xGOJ4F7gYuBZuBLSqkbtNY3zGnPhNmhVIL7/hSe/4lxub3g7bXukTAFPo/FmoYgaxqOH5KltSae\nLTAQzzKQyDGYyDKQNPvBRI7BpKk/0J/gycM5hlO5MSvGxn9mY8hLQ9CISUNVuS7opd7ZGkJmXxcw\n9dGAR0Y3y5jpCMd7q0wIe4BrlFLvnMM+CbOF1vDzv4Znvg2Xfxhe/Me17pEwCyilzAU84GXTihO3\nL5U0o+k8g8kcI6kcQ0kjJsOpPMPJHCOpPMOpHCPpPIcHUgynRhhJ56cc1biEfDZ1AS+RgIdowEM0\nYAQl6vcQ8XuIBMw+GvAQ9pst5LUJ+TyE/DYhn03I6yHos/HaSkY+i4gTCsdkzrULeUUVULbwXvb8\n+h/giS/Bi/87vPKvat0boUZYlqIxbOZAZkImX2Q0na9sqTzxrNnHMgVi6TyxTJ54pkA8U2A0nadj\nOEU8UyCRKZQNK6eDbSmCXpugzybgtQh6bQJem4DHxu+1TNlr4/dY+D1WuexzN9sac+y1zeaz3bLC\nY1t4LIXHVnjdsmVh2wpbKWxL4bEUlqWwlOmT5dRbytSdqrhprdHaPAhXLGlKWlMsaYpaUypVysWS\nplB09iVNoVSiUNTkiyWKJU3eKbtbrqjJFUrOViRXLJWPs+WtSDZfIuPs0/kimXyRjFM3E5ZkHsfu\n7hhXf/Y3XLTexJpetL6Rtsbg8vpF8+jn4b8+DRe8A177f6bM1BCEqXAv1ivrAif1+kKxRDJXJJkt\nkMgWSGYLpHNFkrkiqVyBVK5IKmcuXqlcgXSuRDpv2rgXs0y+SDxToD9u5nUy+WL5QpjJF8c4AcwX\nShnrDKWUs3fqqww1NEYgTNkIRq1+z7pi6/caUfZ7jOgGndFfU9ic+9UM3nNJJgC2n3aOvvyDX+Gp\nI8PljOyVdX4uWt/IReuNkJy5um7p5j089XUzr3HmNXDDHWDZte6RIMwJpZImVzRCkiuUyBVL5Avm\nV3i24P4iN7/OCyVNwTl2f8EXS5Vf9UVtzhdL5qLv/vIvlcxFX+Nc/HXluFocMKeqhKRStsoioxzh\nUdiWGQ3aVaMa26qMfGxndGSpygjJa1t4bHPOXzWyckdXvnGjsJncAlwMeRxzSmvUz9dvuYRiSbO3\nJ872I0PsODLMjiPD/PS5HsCo8HltDVywvoGL2hu5cH0jLZG5tRKfF3b+EO77AGy5Eq7/soiGsKSx\nLEXAMiMjYf5YkiOO4z053hvLsOPIMNsPD/PU0WF2dY2SL5o/g/amEBe2N3Dh+kYuWNfI6auji2vl\nyL4H4DtvhbZt8I4fgi9U6x4JgrBImMmIY9kJx3gy+SI7O0d56ugwTx0ZYcfRYfrjxkIi4LU4Z209\n57Y1cG5bPWevrWdjc3hh5jsceRS+cT20bDX+U4GpnxcQBEEYz7K/VTUTAl6bbRua2LahCTCTWF2j\nGZ46Mszvj47w+2PDfPPxI2SdpYkRJx/7nLX1nLO2nrPX1rGxJVJbU7uup+Hbb4b6NjPSENEQBGEO\nWfbCMR6lFGsbjNOpm0JXKJb/6qOgAAAgAElEQVTY15fguc5RdnaO8lznKN/63REyeSMmQa/NGauj\nnL22nrPW1HHWmnq2rozg98zDfdf+vfDN641YvOtHEJnGwn5BEIRTYNnfqjpZCsUSBweS7OwcZWdn\njJ2do+zqGiWZM+uhvbZiS2vUERIjJqevjlI3m9nYw0fgq1dDqQC3/ByaN8/eewuCsKyQOY4a2aqX\nSpojQyl2dRkx2dU1yu6u2BjzuvamEGeuruOM1XWcsTrKGavrTu4Zk3iPEY30ELz7p7Dq7Fn+NoIg\nLCdkjqNGWJYq51u/8Vxzm0trTW8sy57uGLu7Y+zuMvv7d/eU14BHAx7OWFURktNX17G1NULYP8Vf\nT2rIRL4m+kx6n4iGIAjziAjHHKOUKof5vOr0SqZ3Mlvg+Z44e7pj5e17OzpI5SqP/rc1BtnaGuFF\nK6NsaY2wdWWULQ0QuetGGNwPb7sb1l1ci68lCMIyRoSjRoT9HudJ9sZyXamk6RhOs7s7xr7eOC/0\nJdjXG+eR/YPkiiX85PiK9x95sb2Hzzf/LaO7W9kycIQtKyJsbo3QHPYtL1sVQRBqggjHAsKyFO3N\nIdqbQ1x99qpyfaFY4thAjPC9t9DatYtvrfkwD2Uv4cCTx8aMUBpDXjaviJitNcxmJ1xoXWNQUuQE\nQZg1aiIcSqkbgY8DZwCXTObA67Q7DMSBIlCY7sTNUsOjYOMjfwVdD8Hr/pG3X3orb8eMULpjGfb3\nJcrbwf4EDz3fx3e3V3KwvbaivSnkpNSF2dxi9htbwjTJKEUQhBlSqxHHTuB64EvTaPsqrfXAHPdn\n4aI1/Oyv4Nnvwqv/Bi69tXzKsirPnLzyRWOf3xhN5TkwkOBAX4KDA8ny/td7+8oWKwD1QS8bW8Js\nagmzwdnccmSqyXlBEJY1NbkyaK33wKl72y8Lfvm/4cn/gJf+Kbz8L6f9svqQlwvbG7mwvXFMfaFY\nomM4zaGBJAcHkhwaSHBoIMljBwf54e87x7RtifjZ2BJifXOY9U3mFtq6phDtTSGZTxGEZcxC/0mp\ngV8opTTwJa317VM1VErdCtwK0N7ePk/dm2Me+Rz89p/gwpvhqr+blUwNj22VRxavGncunStyZCjJ\nof4khwaTHB5IcnggxW9e6Kcvnh3TNui1WdcUpK0xxLrGIOuaQrQ1hmhrDLKuMURd0CPCIghLlDkT\nDqXUg8CqSU59RGt97zTf5mVa6y6lVCvwgFLqea31byZr6IjK7WAeADypTi8ktt8BD3wUzroe3vgv\n8xLEFPTZnL6qjtNX1U04l84V6RhOcXTIbMeG0hwbTnFsKMUTh4bKuScuUb+HtY3Bspi0NZpbam5d\nY8grwiIIi5Q5Ew6t9ZWz8B5dzr5PKXUPcAkwqXAsKZ77Pvzkf8DW18B1X1oQmRpBn83WlVG2roxO\nOKe1dmJD03QMp5x9mmNDKTqGUzx+cHCCsAS9NmsaAqxx5mjWNgRZ3RA0dfVBVtUHJGNBEBYoC/ZW\nlVIqDFha67hTfg3wyRp3a+554X64549g/UvhxjvBM7Oc6FqglKIh5KMh5OPstROdebXWxNIFOkaM\nqHQOp+kaSdM1asp7uuMMJLITXtcS8bHaEZE19QFW1RthWVUXYHV9kNY6v4iLINSAWi3HvQ74N2AF\n8J9Kqae11q9VSq0Bvqy1fj2wErjHuZ3hAb6ttf55Lfo7bxx+GO5+F6w8G95615IJYlJKUR/yUh+q\n56w1k1u+Z/JFekYzdI2m6RrJ0O0IS/dohqODZtQSzxQmvK4p7GNVnXkyf2VdwCn7Tbk+wMpogAa5\nLSYIs4qYHC4UOp+CO/8A6tbAe34G4eZa92jBkcgW6HHEpMfZumOVcm8sM8ZQ0sVnW6yI+mmJ+mmN\n+mmJ+FkR9bMi4jP1EWeL+gn7bBEZYVkiJoeLjb7n4Zt/CKFGk6khojEpEb+HLa1RtrROnGdxyRaK\n9MWy9MYy9MQyphzP0B/P0h/Pcmwoxe+PDjOYzDHZb6aA16I5bERkRcRHc9hPU8RHc9hHS8RPU9hH\ns1sf9uHzyBP5wvJDhKPWDB2Cr18Dttc43datqXWPFjV+j826JvO8yfEoFEsMpXIMxHP0J7IMxLMM\nJLIMJnMMxLP0J7J0jWR4rnOUwUSOQmnykXnU76Ep4qMp7KMp5OzDPhqd44aQl8awj8aQj8aQl/qg\nV+xfhEWPCEctiXXDN66FQsbcnmraVOseLRs8tkVrNEBrNHDCtu7k/kAyy2Aix1DSCMxQImf2yRzD\nqRw9sQx7uk3+ihs1PBl1AQ8NrpBUCUpD0Bw3BM1xvVPvbrIQQFgoiHDUCjdTIzkA77oPVp5Z6x4J\nU1CZ3PeyeRrJvFprUrkiw6kcI6l8WViGkzmGU3lG03lznMozkspxaCDBaCpPPFuY9PaZi89jUR/0\nUhfwUBf0UhfwOnsP0YCXaLneQzTgIeI3ddGAh6jfSyTgwbZk/kY4dUQ4akE2buY0hg7CO74PbRfV\nukfCLKKUIuz3EPZ7aGs8cXuXYkkTz+QZSeUZSRuBiTl7txzL5ImlC8QyRnwODyaJZwrEM/kxHmRT\nEfTaRAIeIn6zhf22szdbxO8h5LOdvSkHfTYhn03I5yHotct1QZ9N0GvjlVtvyw4Rjvkmn4bvvBW6\nn4G3fAs2vqLWPRIWCLZVeR5mpmityRZKjrgYIUlkCyQyBSMsWVOXzBZMfbZIwmnTOZIhmS2YLVcg\nk5/6NttkeCxF0Gvj99oEfRZBr03AaxPw2Pi9lil7bfwei4DXwu8xZb9z3mdb+DwWfs/YvdeunPPa\npt5rW3hshc+ulL22hcdS2JaSFXGYfwv5oqZQKpl90ezzxRK5Yol8sUS+oMkVi+QK2tQd59bqZCxJ\n4Tg0kOTj9+1ii5Oet7U1QmN4ATxIV8zD995tnte4/j/gtNfVukfCEkEpVb5At050jJkRhWKJZK5I\nOlcklSuQyhWdrUAmb8rpvHu+SCZfJJMvkc6bcjpXJFMw5XimQH88S7ZQIpsvmn2hRCZfnHLBwang\ntRUeywiJx1bYVkVUPLbCVqZsWwrLKVuWwlZgKVO23LJSKKesFCjMn7PZA6iyE9B4uar+Zub2o0Zr\nU6+1pjSmrCmVoKRNm6LWFEsarbVTNhEKhVKJksbsS2ZfKGoKJSMOhZIpF+fgz3U8S1I4iiXN97Yf\nI1kVctQS8Zn41VYnhrU1wpbWCCui/vn5lVIqwj23wQs/hzd8Bs69ce4/UxBOAo9tUR808ylzScH5\nBZwrmM0VlVyh8su4+pz5Be3+WjblQlGTdy+gxRJ558KZL5acvabonHcvyCWtKRTNvljSFLW5gBdL\n7nkoOhdpc1HXzkUetCsAuiIOUz0LV31dccWmLETO+WqRQplRp7da1JxzrvhZlilbSuG1TZ3Xtoww\nOuLosSwjoM5IzB2xmc2M1jzOSM6M6BQ+2+bcT0//725JCseW1ghPfuK1dI1m2NcbZ19vgn19cfb3\nJfjR051jnkCOBjxsaY2wZYURki2tJkFvXVNo9iYStYaf/iXs/D5c8TG4+H2z876CsIjxOBewk7gz\nJ9SYJSkcYNTcNc+7/LTWcr3Wmr54ln29Cfb3xdnfb5LzfrW3n+/t6Ci389kWG1vCVRGslSjWGQcc\nPfQJ2P5VeNmfw8v/Yra+oiAIQk1YssIxFUopVtYZX6PLtraMOTeSynGgP8GBvqTZ9yfY0x3n5zt7\nqL5t2Br1s7HFRK9uaAmzoTnMhpYQ65vCBH3j1tr/9p/h4X+BbbfAlR+f8+8nCIIw1yw74TgeDSEf\nF61v4qL1TWPqs4UiRwdTHOhPcnDACMvhwSQP7O6d4I20qi7A+uYQ65tDvD77Uy7f9ylGNl+LdcWn\nqJMVH4IgLAFEOKaB3zN1FkUsk+fIQIrDbmLeYIqjQ0n8e37AKwr/yoOlC7ht1/UUdj1IY8hLuxPD\nur7ZRLC2O5GsK6MBLHk4SxCERYAIxylSF/ByTls957RV2YXv/Rnc9XmK61/G2iu/yudjJY4Mpjgy\nlOLoYIrfHxvmJ892jbn95fNY5QhWV1DaGs1+XVOQaGBuV7gIgiBMFxGO2ebQb+Dum2H1edhvv4sz\n/FHOmKRZvliiayTNkUE3ijXFkcEUx4ZT7DgyPCF7oiHkLed5m3xvU25rNHGsIZ/8VQqCMD/I1WY2\n6dhungpv2gTv+AH4p7b/9toW65vDrG8OT3p+NJU3guLkept9mr29cR56vo/cuCc9m8O+soi0NYbK\nK8rWOHGs9UEJMxIEYXYQ4Zgtencb/6lwC7zzHgg1nfg1x6E+5OWc0LhbYA6lkqY/kZ2Q8d0xnOL5\n7jgP7emb4M4a8tmsqg+YbG83hrXepOStrg+yuiFA1O8RcREE4YSIcMwGQweNPbo36GRqrJ7Tj7Os\nypLii9ZPdNHTWjOQyNExnDIxrG4cq5Oe90JvP33x7AQn1rDPZmV9wAhLnRGYlfVOHGtdgJV1fpoj\nfnFYFYRlTq0yx/8ReBOQAw4A79Faj0zS7mrgc4CNySL/1Lx2dDrEukwQUzFvMjUaN9S6RyilTDRq\n1M8F7ZO3yRdL9MWzdI8YMXFFpTeWoXs0w2MHBuiNZyf43tiWojXqd4TLXxYw97g1avZya0wQli61\nGnE8AHxIa11QSn0a+BDwweoGSikb+AJwFdABPKmUuk9rvXveezueZ++Ghz4Jox1g2aBsuOXn0Hp6\nrXs2bby2VZ4HmYpiSTOYyNITq2R6m3KWvniGQwNJHjswSGzcRD6YVWIrIn5a60zOtwlNco8DZWFr\nDvskEU8QFhk1EQ6t9S+qDh8Hbpik2SXAfq31QQCl1F3ANUBthePZu+HHHzD26AClAtg2DO6HtRfW\ntGuzjW0pWusCtNYFOLdt6nbpXJHeWIa+eLa874ubvO++eIaD/UkePzjEaDo/4bVKQVPIVxaSloi7\n95WPTQa4iWIVkRGE2rMQ5jhuAb47Sf1a4FjVcQdw6bz06Hg89MmKaLgUs6b+3Jtq06caE/TZxnql\nZfIVYi7ZQpH+eJa+eJb+qs09HkhkOdifZCCRnTR61RWZ5oiP5rCfpoiPZifju7kq57sp4uZ9+/B5\nRGgEYbaZM+FQSj0IrJrk1Ee01vc6bT4CFIBvTfYWk9RNaTSvlLoVuBWgvX2KG/uzwWjHzOqFMn6P\nTVujebDxeGitSWRNjsNgMseAIyr9iRwDiSxDzn5Pl8n3nmwk4xL1e2gIe2kKGWFpDPloCHlpdLK+\nTfa3qXPrQz5b5mcE4TjMmXBora883nml1M3AG4Er9OSG9h3AuqrjNqDrOJ93O3A7wLZt2+YuyaS+\nDUaPTV4vzApKKSdD28umaWR854slJ9O7ku89lMyNyfoecrK/9/clGEmZ5Lup8NqK+qAjJkEv9UGT\nN94Q9Jly0GMyyIOVzc0AD3jtKd9XEJYKtVpVdTVmMvyVWuvUFM2eBLYqpTYCncBbgLfNUxen5oqP\njp3jALMM94qP1q5PyxyvbTmT74FpvyZXKDGSzjGSyjOczDGSzjOSypXzvt3yaDpP92iG53vijKaP\nLzhgFgXUBYy4RAOuoHioC3qJBjzUBcw+GvAQ9bvlSl3Y75EMb2HBU6s5js8DfuAB55bA41rr25RS\nazDLbl/vrLh6P3A/ZjnuV7XWu2rU3wruPIa7qqq+zYjGMp3fWKz4PDMXGzCjm1jaCEr1Fs8UGE3n\niWXyxNIFJ/vbnOsYShHLmLpc8cTZzgGvRTTgJeL3EPF7CPttIn4vEb9NuFznccp2uRz2mbZhn4eQ\nsw96bTHPFGYdNVXs4WJm27Ztevv27bXuhiBMwM3hjmfyzt4pZwskMgUS2cq5RLZAMmv2iWyRRDZP\nMlskkS1MsJw5HkGvTdhvE/TZhLwes3e2oM9D0GsR8nkIeG2CXlMf8Frm2GcT8Dh7r4XfYzvZ5m7Z\n7L22knmhRY5SaofWett02i6EVVWzzhLUQmGJYC66Niui/lN6n1yhRCpnRCWVM2KSyhZJ5gpOfZF0\nrkAyWySdL5J02qVyZp/OFRlJ5UnnTTmVK5DJl6Y1IpoMpcDvMSLi9zh51s6xz2Phtyt1Xlvh89jl\nvOtKHraFzzbHHicf26332CZj283Tti2nznLytp38bTeP22MrbCe3267K8LbH5HkbFwZLmbaqnP9d\nyQOfazHUWpfzy0va5KBrJ+vczT8vlUxeusk/x5SdfPTCuAz1QqkqY905b7LaK1nshWKlzj2e6d/7\nkhSOnV2jvOxTv6xkXjSbdL51TUHam0LyVLOw6DEXYbPkeDYpFEuk80Uy+RKZfNEpG3HJFExdJl8k\nmy+RLRTLYpPNF8k657OFErlCiWyxRNY5nysYcRpJl8gXtFNnzuWLJfIFcyE7WeGaS5QySzyVUs7e\nqUeV136Ov5rocQeaikBorZ39HHd8DlmSwtEa9bNtQyNHh1KTpvRFAx6Tc9FoRMXNwXDtyv0eWRkj\nLE88tkXUtpjh1M+soZ1fzYWiJl+qCEq+WCr/mq7+9Vz+Ve38ii4UdfkXefWv8fKvdGdf0ji/6N3N\n+cVfcn/xm4t9SVePCnT5Yl994dfVMqGpEpOKnFTEx9SPESNnpKOojIAsd/TjjIzscr3CtiiPqixl\nRmFunde2yiMvdyTmcUZl7sjNY6nKiM6y8HosPJYi+Onp/z0tSeFYWRfgc2+5oHycyBY4NlTJvTjq\nbPv64vxy70SL8pV1/klzL9oaQ6xuCMiqF0GYI5RSzi0qCCI/4BYqS1I4xhPxezhjdR1nrK6bcM61\nKK8WlY7hNMeGUjxxaIh7n06PSeqzlMkVb2sMOdkXxu/JzcFY0xCQEYsgCEuaZSEcx6PaovziDRMz\nNPLFEt0jGTpGxuZedAylJxUWgBVRf1lM3PyL1fUmUGl1fZDmsE+WSAqCsGhZ9sJxIry2RXuzmQuZ\njHyxRM9oho7hNJ0jaTqH03SOmByM3V0xHtjdO+FWmM+2WFUOUXKClJzjVXWmTnIvBEFYqIhwnCJe\n2ypPrE+G1prBZI7uqiClrtE03SPGovypo8P0jHaTL07MvVgZ9ZeDlFbWVYSluhz0yW0xQRDmFxGO\nOUYpRUvE2INPFgMLZp5lKJUri0nPaJoeJ1CpZzTD3t44v3mhn2SuOOG10YCnLCatbrCSE7TUWlfJ\nwJB5F0EQZgsRjgWAZVWJC5OLC0A8k6c3lqE3ljXBSvEMvaPmuDee4fEDCfoT2QmjF4CGkHdMoNKK\nqkClVicLozXqJyK544IgnAARjkWE6xi7pTU6ZZtSSTOcypXFpC/mBiqZUKXeWJZDA0n649lJH7YK\neK1KoFKkEq7UEnWPfWWRC/vln48gLEfk//wlhmUpmiN+miN+zmTi8mMXrTWj6Xw5SKkvnmEgnqM/\nUQlYOjyY5MnDQwynJs+7CHptE6oU8dPiBCq54UrVQUuNTvhS0Cs5F4KwFBDhWKYopWhwUvK2rpx6\nBANm5dhQMmcEJZF1gpWcUKVkjsFkjp5Yht3dMQYTuSltI/weq5LU5whKU7nsLQctNYZ8NIZNqJLk\nWwjCwkOEQzghXtsqP+tyItz0PldQhhJOqJITrjSYyDGUzDKcynN0KMVQMkc8M3XGRdBrV5L6wmbf\nEPSWU/vqg06dG7rk1MliAEGYO0Q4hFmlOr1vffPxM8hdcoUSI6kcw6l8ObGvuuwGKw2n8uzpjjHq\nhC0Vxz95WUXQa5eFpS44Nq2v3glXqg95ndClSoJfXdAjt9QE4QSIcAg1x+exzNLhaYxoXNyRzUgq\nb1L8UiZ7fCSdZ9QtpypBS8eGUuxyypMta67GY6kJiX3lfdAELFXXRZwUv4jfQ51zLOIjLGVEOIRF\nSfXIZt1Ep5jjki+Wyol9lQQ/J7kvk69K76uEKh0cSBBzjk8kPGAe4Az7bKIBr5Pg5xmT3ucm+4X9\nHqJ+DyEnva96b8KWzF6S/ISFhAiHsOzw2lZ5Uv5kKJY0iYwRGTfBL5krlFP7ynVOWl8iUyif7xnN\nOIl+Jt3vOHfbJlBJ56tO8HNT+5wEP18lzS/gtQg6qX5Bn11O7HOT/tw2Aa9J+fN7LfweS0ZKwgkR\n4RCEGWJbykzCh7yn9D5aazL5kpPiZ9L6UrkCyVyR1LjEvlTOhCpVJ/i5+4FEjlQuRSZfKif6pfMn\nHhVNhd9jxMTvsRwxqaT6mX3VcVWyn29Myp9p67Urxz6PhdfJhfB6Kgl/Hmtc0p+T7jembFWyJETY\nTg7t5I64uSUmx6TkpATOLFWqJsKhlPpH4E1ADjgAvEdrPTJJu8NAHCgChenm4R4eSPLhe54zDrUN\nQdY0GGfalXWSpSEsHJRSZsTgs4FTi5Idj9aabKFUFpFM3giNm9qXqUr5yxRMol/GOeem+WULbtJf\nVdpfocRoOk82X3SS/0yCXznRr1Ca8UVopliKspDYSmHbVZGxlgk/si1zzqreW5TDkNxwpHJELArL\nOW8+oxK25JapCmCCSijTiRib/ufUVKUBlqqTAd0AqRJjY2R1JUa2EitbiZctOlGyRSesquiIgisU\nJvhq9v5eajXieAD4kNa6oJT6NPAh4INTtH2V1npgJm9eKGl+vrOHoXHJf5YyIU9rXDFx3Wkbgqyp\nD7K6IUBz2Ce/aIRFj1KqnG/eOM+f7abz5ZxIWFdU3CQ/s2lHZMyvX7euUDJtiyVN3rn4uRe9YqlU\nlfbnnKtK+ytncFddPN2La7FkLszVF+BiSVel/JXQRZPnrcddyEvj6lwmi37V6EnFpBw3WxU/6wqP\n5VQYkaqIm3LEzaNUVQJgRfDcTHUjjubhX5P8Z5UTAC0nGMuuPleVAuixKiO7Ny/0BECt9S+qDh8H\nbpjN99/SGmH7315FOlc0VucjabpH0nSNpOkazdA1kubZjhHu35WZaHnusRyr84rd+eqGIKsdR9o1\nDUEaQ5JZLghTYVsK27Ll4c1Fxptn0HYhzHHcAnx3inMa+IVSSgNf0lrfPpM3DvpstrRG2NIamfzN\nqyzPO0fSFdvzkTQ9oxmeODRETywz4XkBV1zch+JWua605WPjVCv/4wiCsBSZM+FQSj0IrJrk1Ee0\n1vc6bT4CFIBvTfE2L9NadymlWoEHlFLPa61/M8Xn3QrcCtDe3j7dPp7Q8rxY0vTHs2W7c9fqvGs0\nQ28sw7MdI/xiNEO2MNFmoz7oZWXdWEfalVEjKm5da52fkG8h6LcgCML0UHqyG3Xz8cFK3QzcBlyh\ntU5No/3HgYTW+p9O1Hbbtm16+/btp97JaaK1JpYu0BPLlB1oe2PGmbY3ZkSn3zESnGyCKuL3VKzN\n6wKsiBhBcd1p3a0x5JNUQEEQ5gSl1I7pLkCq1aqqqzGT4a+cSjSUUmHA0lrHnfJrgE/OYzenjVKV\n5ZmnrTq+5flIOl8WF1dM+qrKz3WM0B/PTvqQmW0pmsI+VlTZnLdEfWPtzyN+WiLGvFBERhCEuaBW\n90g+j1l/+IAzyfy41vo2pdQa4Mta69cDK4F7nPMe4Nta65/XqL+zguVc+JvCPk6f7CZeFclsoWx5\nPlBldd7vHiey7O+NTxncZCloChsRaYn4aa7eh82+KVypk9tlgiBMl1qtqtoyRX0X8HqnfBA4bz77\ntZAIO9YUG1qObxTo3ibrTxhBGUhkGXQsz43g5BhMZjl6NMVgYvKRDJgAp+YqQWkKmyyNprDf2Vfs\n0JtCPqIBj1hgCMIyRX5mLnKqb5NNtXqsmlSuwGDCWJ4PJrLO3pRdK/TBRI4XeuIMJnOTTvqDGdG4\n1uaNTq6Hm6lRrqu2PA9JvoYgLBVEOJYZIZ+HUJOHdU2hE7bVWpPKFU2ehpOpMeyUXUdaY32ep2M4\nxc5OUzeV2ICxszDZGT5jce7kaLgW6KbON6kNukee+heEBYEIhzAlSqnyLbPpCI1LOldkJG0EZSSd\nYzSVZzhVXc6NsTvf6Vign8hfKeyzK9kZVfkZZm/EpVzvlKOO5Xk04BG7GUGYJUQ4hFnH+C8FWV0f\nnNHrsoUio2lja16dp2GOC47VeeV850iaPd35skvtiQh4rbKIRANeok6uRjTgIeL3VpVNpkbEP7Ec\n9osACYIIh7Bg8HtsWqM2rdHpBzq5FEsm2CmWNiLi5mq4FuexTCVbI54pEM+a495YpmyHnsieWHxM\nP62yiJhsDbtcDvvsct7GmIwNn03IOV/O2vDbhH0eydoQFh0iHMKSwLZUeT7kZCmVNImcyc9IOMKS\nyBZNnkbWiE0yO7GcyJoFB0eHUk5dkWSuMKkJ3lQEvCZHIzgua8Otc7M23HyNgM9kaAR9ldwNv5Or\nUc7YcKzR3dwNv8eWZ3uEWUGEQxAcLEs58yOnlrMBlayNZK5AyhGSZFXGRjJbJJU3uRvJnGt7PjFr\noy+eMXbo+RKpXKGcuXGyeG1VztcweRuVssnbqGRtuBkbfq+Fz7ar6lT5nLcqh8PN1PDaqnzOzdrw\nVZXdfA2fU7adehG1xcOSFI6ukTRf+NX+suHgqnpjQhjxe8TVVpgXxmRtnHiV9IxwszYyeTdrw83X\ncMqFIplcsdzGZG6Ycq5QKtdnq+rcbI1UrsBwqlSuczM2coUSWed4rlAKvJYRENf6u9oi3BUZ107c\nzeOwqurczdiOj7Ugt8blcViWKtual/M3nL2b0aFUJaPD7aNbD0wjjaM6h6OSzQGObTsTbdtdK3dj\n9z7ODl5rczzOKr5YMq8rlEqUSpTr3K2kK9bz7pZ3LOvd+pmwJIVjJJXnH+/fO6E+5LPLzrWrqtxs\nzWbEZUVUXG2FhU111kbDPH+21iYbo1pUqjM28kUjTIWq45xz3s3dcLM0ck7GRr7oZmy45VIljMhN\nqSvqCRfDQml85obJ+DDBRxNDj0pV2RrFqoulrjpXqgpaKrkXdred8x9d9Wcx4c+HycXEzeEwBziZ\nHBVhqmR0VAlZVRtXMN321hThVB7LwrJcAbbK4mnyOKxyZkd1Toc72vvoDP4d1MzkcC7Ztm2b/u2j\nv6M3lqEnZlxse2MZerLQJCIAAAlDSURBVEaz9MYz9I6a+r5YllzxBK6245xsxdVWEISlyII3OZwP\ngj6bDS3h41p2aK0ZSeWNmMSyjptthr54trz/3cHkCV1tW6L+irttNFBxtHVMCJvDfrl/KwjCkmHJ\nCsd0UErR6HgwHc90sNrVti9mjAf74pmyCWF/PMuurhh9scykXlBKQVPIGAq2RB1jwbBTdvyhmh1X\n2+aw38mgFgRBWJgsa+GYLjNxtU3lCgzEc/QnKsIyEM8ykMyZfSLL08dGGJjCOh3MXEyzIyItZdPB\nSrk5UjEebAqL/5MgCPOLCMcsE/J5aG/20N58YouOdK5o3Gwdw8GBcaaDg8kcnSMZnuscZSiZm/R2\nmflMu+xmW+1g21hV1xjy0RSuGBLKrTNBEE4WEY4aEvTZrGsKTdtwMJYpOIaDxjrddbMdShrzQbe8\nrzfBcCpHaooRjVJQF/DSVOVk21jlblsf9JaPG0I+GsPGlFBuoQmCACIciwalKk9GbzxBRodLJl9k\n0BGV4VRFYIZSeUZSFZfb3liG57tjDJ/AaHCMs22Vq22D42brOtw2BH3lcl3QeEKJpYYgLB1EOJYw\nAa/N2oYgaxumbzaYyRcZcZxsh5NGYEbSjqNtKl+2Ux9N5zk6lOLZDtM2k5/6wTBLQTTgnWiVHqxy\ns3XdbR0Twmpn27DPlgc3BWEBIcIhjCHgtVlVb7OqfmZGg5l8cYyjrSs4rpPt+K17NE0sU2A0nT/h\n08iWMkufXWdbV1wiAU9ZXCL+Kmdbx9E26vcSCRijwajfS8BriQAJwiwgwiHMCu6TzCvrZu5sm8kX\ny9bo8cxYh9v4uPpYpkAim6cnliHRXyi73061cKAa21KEfbYZxfgrLrZh3+Qut6Gyy62pD/lsIn4P\nQZ+42grLm5oJh1Lq74BrgBLQB7zbyRwf3+5m4G+cw/+ttb5z/nopzAeu6LRGT/49MvmisUYvO9sa\nQUnmCmWH20Q2TzJbaWfOFeiNZcr1yWyBwgx8e0LVNumON1XY53GcbZ06r6d8znW/rZQ9BH3GwTbo\nrdS7zrYyQhIWIjWzHFFK1WmtY075A8CZWuvbxrVpArYD2zA2MDuAi7TWw8d7723btunt27fPTceF\nJY1rIJjKFY1Fuutk6+yT2cIYV1t3n865+4rLbSpnTAjduhn6yKGUWZDgCsl4m/TAOBt191y14+2Y\nssfG77XwO463fo/tOOJWnHBdh1yvrUS0lhmLwnLEFQ2HMBXvsGpeCzygtR4CUEo9AFwNfGfueygs\nR6oNBJvCvll732pH22pBSTvHrott2rVYH+d667bN5EtkC6ZuMJEb43JbvZ8NXCExlumqbJ3uc+zT\n3fpqO3X3vMdWeGwLb9lK3Zz3WOacWzZGe8YB13W/9bgOuZbCdl1yqxxxLaXKZn6u+V+1Q65lGcM/\nt95y3HFV2RCwyg13EnfcWqPHGTJW7yuuua55I2ONHKuccavNHydzxzXHjoHkYnLHVUr9H+BdwCjw\nqkmarAWOVR13OHXHZX9fYlb6JwizxRhH2+nHt58UrkiZzWR5lC3UHVfbrONsW22rXrZPLxTJFXXF\nUr1YJF/QZZfbiiOuaZMoFMxxoeKGW+12W3bGLZVmFG5VK1SVe61rr+5a25ZdbJ2K8Tpzxuo69nTH\nxtQZy3RdVcZx2R1npw6L4s8H5lg4lFIPApOZdHxEa32v1vojwEeUUh8C3g98bPxbTPLaSf9olVK3\nArc6hwml1ERf9dmnBRiYh8+ZL+T7LHyW2ndaUt9nz+L+Puun23BB2KorpdYD/6m1Pntc/VuBy7XW\nf+Qcfwn4tdZ6QdyqUkptn+49wcXA/2/vbl7kqMIoDv+OAY0YwYgRlAkki6CEGAbR/AF+xCgyEEVQ\nRBcaMIvgSvyIKJpRUAfJQkWIMCsN7oRg1CS4cSGBEUnUYJQgfiTgSgRBRAaPi6rIoDN213RX367h\nPNCLanqYcymat+tW3fdmPONvpY0p4+mmC0r9Y0mbFhxOAacX+dgRYLuktZLWAtvr9yIiopCS9zhe\nknQN1eO4PwC7ASTdAOy2vcv2L/Vju3P13+w7f6M8IiLKKPlU1d1LvP8ZsGvB8SwwO6pcDR0oHWDI\nMp7xt9LGlPF00Fjc44iIiO4odo8jIiK6KYVjAJKek3RO0on6dUfpTMMi6TFJlnRF6SyDkDQt6Yv6\n/ByVdHXpTIOQNCPpdD2m9yRdVjrToCTdI+mUpL/qe5ydJGmHpG8knZH0ZOk8bUrhGNx+25P164PS\nYYZB0nrgVuDH0lmGYMb2VtuTwPvAs6UDDegYsMX2VuBb4KnCeYbhK+Au4JPSQZZL0irgDeB2YDNw\nn6TNZVO1J4UjFrMfeJwlFlt2SZ+tbTrD9lHb8/XhcWCiZJ5hsP217VEs2G3TNuCM7e9s/wm8S9XE\ndUVK4RjcnnraYLZea9JpkqaAc7ZPls4yLJJelPQTcD/dv+JY6CHgw9IhAlhme6Suyn4cPfxf2xTg\nTWCa6lfsNPAq1Zd5rPUY016qhZadMYTWNmOl13jqzzwNzAPvjDLbcvUzpo7ruz3SSpDC0YPtW/r5\nnKS3qObQx95SY5J0HbAROFl3CZ0APpe0zfbPI4zYSL/nCDgIHGbMC0ev8dR71NwJ3OyOPE/f4Bx1\n1Vlg/YLjCeA/+wutFJmqGoCkqxYc7qS6yddZtr+0faXtDbY3UH0Zrh/notFLn61tOkPSDuAJYMr2\n76XzxD/mgE2SNkq6ELgXOFQ4U2tyxTGYVyRNUl2Sfg88UjZOLGLR1jYd9jpwEXCsvio8/u8N0LpG\n0k7gNWAdcFjSCdu3FY7ViO15SXuoeumtAmZtnyocqzVZOR4REY1kqioiIhpJ4YiIiEZSOCIiopEU\njoiIaCSFIyIiGknhiBghSR9J+lVSJxaLRiwmhSNitGaAB0qHiBhECkdECyTdWDe/XC3pknq/iS22\nPwZ+K50vYhBZOR7RAttzkg4BLwAXA2/b7nRLmojzUjgi2rOPqofRH8CjhbNEDE2mqiLaczmwBrgU\nWF04S8TQpHBEtOcA8AzVnhkvF84SMTSZqopogaQHgXnbB+v9qD+VdBPwPHAtsEbSWeBh20dKZo1o\nKt1xIyKikUxVRUREIykcERHRSApHREQ0ksIRERGNpHBEREQjKRwREdFICkdERDSSwhEREY38DVMB\ncgGyhQ9EAAAAAElFTkSuQmCC\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x10cf27b70>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"eta = 2\n",
|
|
"d2l.show_trace_2d(f_2d, d2l.train_2d(adagrad_2d))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 7.5.3 从零开始实现"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"features, labels = d2l.get_data_ch7()\n",
|
|
"\n",
|
|
"def init_adagrad_states():\n",
|
|
" s_w = torch.zeros((features.shape[1], 1), dtype=torch.float32)\n",
|
|
" s_b = torch.zeros(1, dtype=torch.float32)\n",
|
|
" return (s_w, s_b)\n",
|
|
"\n",
|
|
"def adagrad(params, states, hyperparams):\n",
|
|
" eps = 1e-6\n",
|
|
" for p, s in zip(params, states):\n",
|
|
" s.data += (p.grad.data**2)\n",
|
|
" p.data -= hyperparams['lr'] * p.grad.data / torch.sqrt(s + eps)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"loss: 0.242541, 0.047213 sec per epoch\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
|
|
"<svg height=\"184pt\" version=\"1.1\" viewBox=\"0 0 256 184\" width=\"256pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
" <defs>\n",
|
|
" <style type=\"text/css\">\n",
|
|
"*{stroke-linecap:butt;stroke-linejoin:round;}\n",
|
|
" </style>\n",
|
|
" </defs>\n",
|
|
" <g id=\"figure_1\">\n",
|
|
" <g id=\"patch_1\">\n",
|
|
" <path d=\"M 0 184.15625 \n",
|
|
"L 256.14375 184.15625 \n",
|
|
"L 256.14375 -0 \n",
|
|
"L 0 -0 \n",
|
|
"z\n",
|
|
"\" style=\"fill:none;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_1\">\n",
|
|
" <g id=\"patch_2\">\n",
|
|
" <path d=\"M 50.14375 146.6 \n",
|
|
"L 245.44375 146.6 \n",
|
|
"L 245.44375 10.7 \n",
|
|
"L 50.14375 10.7 \n",
|
|
"z\n",
|
|
"\" style=\"fill:#ffffff;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"matplotlib.axis_1\">\n",
|
|
" <g id=\"xtick_1\">\n",
|
|
" <g id=\"line2d_1\">\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 0 0 \n",
|
|
"L 0 3.5 \n",
|
|
"\" id=\"m2df722ce72\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"59.021023\" xlink:href=\"#m2df722ce72\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_1\">\n",
|
|
" <!-- 0.0 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 31.78125 66.40625 \n",
|
|
"Q 24.171875 66.40625 20.328125 58.90625 \n",
|
|
"Q 16.5 51.421875 16.5 36.375 \n",
|
|
"Q 16.5 21.390625 20.328125 13.890625 \n",
|
|
"Q 24.171875 6.390625 31.78125 6.390625 \n",
|
|
"Q 39.453125 6.390625 43.28125 13.890625 \n",
|
|
"Q 47.125 21.390625 47.125 36.375 \n",
|
|
"Q 47.125 51.421875 43.28125 58.90625 \n",
|
|
"Q 39.453125 66.40625 31.78125 66.40625 \n",
|
|
"z\n",
|
|
"M 31.78125 74.21875 \n",
|
|
"Q 44.046875 74.21875 50.515625 64.515625 \n",
|
|
"Q 56.984375 54.828125 56.984375 36.375 \n",
|
|
"Q 56.984375 17.96875 50.515625 8.265625 \n",
|
|
"Q 44.046875 -1.421875 31.78125 -1.421875 \n",
|
|
"Q 19.53125 -1.421875 13.0625 8.265625 \n",
|
|
"Q 6.59375 17.96875 6.59375 36.375 \n",
|
|
"Q 6.59375 54.828125 13.0625 64.515625 \n",
|
|
"Q 19.53125 74.21875 31.78125 74.21875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-30\"/>\n",
|
|
" <path d=\"M 10.6875 12.40625 \n",
|
|
"L 21 12.40625 \n",
|
|
"L 21 0 \n",
|
|
"L 10.6875 0 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-2e\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(51.06946 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_2\">\n",
|
|
" <g id=\"line2d_2\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"103.407386\" xlink:href=\"#m2df722ce72\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_2\">\n",
|
|
" <!-- 0.5 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 10.796875 72.90625 \n",
|
|
"L 49.515625 72.90625 \n",
|
|
"L 49.515625 64.59375 \n",
|
|
"L 19.828125 64.59375 \n",
|
|
"L 19.828125 46.734375 \n",
|
|
"Q 21.96875 47.46875 24.109375 47.828125 \n",
|
|
"Q 26.265625 48.1875 28.421875 48.1875 \n",
|
|
"Q 40.625 48.1875 47.75 41.5 \n",
|
|
"Q 54.890625 34.8125 54.890625 23.390625 \n",
|
|
"Q 54.890625 11.625 47.5625 5.09375 \n",
|
|
"Q 40.234375 -1.421875 26.90625 -1.421875 \n",
|
|
"Q 22.3125 -1.421875 17.546875 -0.640625 \n",
|
|
"Q 12.796875 0.140625 7.71875 1.703125 \n",
|
|
"L 7.71875 11.625 \n",
|
|
"Q 12.109375 9.234375 16.796875 8.0625 \n",
|
|
"Q 21.484375 6.890625 26.703125 6.890625 \n",
|
|
"Q 35.15625 6.890625 40.078125 11.328125 \n",
|
|
"Q 45.015625 15.765625 45.015625 23.390625 \n",
|
|
"Q 45.015625 31 40.078125 35.4375 \n",
|
|
"Q 35.15625 39.890625 26.703125 39.890625 \n",
|
|
"Q 22.75 39.890625 18.8125 39.015625 \n",
|
|
"Q 14.890625 38.140625 10.796875 36.28125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-35\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(95.455824 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_3\">\n",
|
|
" <g id=\"line2d_3\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"147.79375\" xlink:href=\"#m2df722ce72\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_3\">\n",
|
|
" <!-- 1.0 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 12.40625 8.296875 \n",
|
|
"L 28.515625 8.296875 \n",
|
|
"L 28.515625 63.921875 \n",
|
|
"L 10.984375 60.40625 \n",
|
|
"L 10.984375 69.390625 \n",
|
|
"L 28.421875 72.90625 \n",
|
|
"L 38.28125 72.90625 \n",
|
|
"L 38.28125 8.296875 \n",
|
|
"L 54.390625 8.296875 \n",
|
|
"L 54.390625 0 \n",
|
|
"L 12.40625 0 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-31\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(139.842187 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_4\">\n",
|
|
" <g id=\"line2d_4\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"192.180114\" xlink:href=\"#m2df722ce72\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_4\">\n",
|
|
" <!-- 1.5 -->\n",
|
|
" <g transform=\"translate(184.228551 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_5\">\n",
|
|
" <g id=\"line2d_5\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"236.566477\" xlink:href=\"#m2df722ce72\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_5\">\n",
|
|
" <!-- 2.0 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 19.1875 8.296875 \n",
|
|
"L 53.609375 8.296875 \n",
|
|
"L 53.609375 0 \n",
|
|
"L 7.328125 0 \n",
|
|
"L 7.328125 8.296875 \n",
|
|
"Q 12.9375 14.109375 22.625 23.890625 \n",
|
|
"Q 32.328125 33.6875 34.8125 36.53125 \n",
|
|
"Q 39.546875 41.84375 41.421875 45.53125 \n",
|
|
"Q 43.3125 49.21875 43.3125 52.78125 \n",
|
|
"Q 43.3125 58.59375 39.234375 62.25 \n",
|
|
"Q 35.15625 65.921875 28.609375 65.921875 \n",
|
|
"Q 23.96875 65.921875 18.8125 64.3125 \n",
|
|
"Q 13.671875 62.703125 7.8125 59.421875 \n",
|
|
"L 7.8125 69.390625 \n",
|
|
"Q 13.765625 71.78125 18.9375 73 \n",
|
|
"Q 24.125 74.21875 28.421875 74.21875 \n",
|
|
"Q 39.75 74.21875 46.484375 68.546875 \n",
|
|
"Q 53.21875 62.890625 53.21875 53.421875 \n",
|
|
"Q 53.21875 48.921875 51.53125 44.890625 \n",
|
|
"Q 49.859375 40.875 45.40625 35.40625 \n",
|
|
"Q 44.1875 33.984375 37.640625 27.21875 \n",
|
|
"Q 31.109375 20.453125 19.1875 8.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-32\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(228.614915 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_6\">\n",
|
|
" <!-- epoch -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 56.203125 29.59375 \n",
|
|
"L 56.203125 25.203125 \n",
|
|
"L 14.890625 25.203125 \n",
|
|
"Q 15.484375 15.921875 20.484375 11.0625 \n",
|
|
"Q 25.484375 6.203125 34.421875 6.203125 \n",
|
|
"Q 39.59375 6.203125 44.453125 7.46875 \n",
|
|
"Q 49.3125 8.734375 54.109375 11.28125 \n",
|
|
"L 54.109375 2.78125 \n",
|
|
"Q 49.265625 0.734375 44.1875 -0.34375 \n",
|
|
"Q 39.109375 -1.421875 33.890625 -1.421875 \n",
|
|
"Q 20.796875 -1.421875 13.15625 6.1875 \n",
|
|
"Q 5.515625 13.8125 5.515625 26.8125 \n",
|
|
"Q 5.515625 40.234375 12.765625 48.109375 \n",
|
|
"Q 20.015625 56 32.328125 56 \n",
|
|
"Q 43.359375 56 49.78125 48.890625 \n",
|
|
"Q 56.203125 41.796875 56.203125 29.59375 \n",
|
|
"z\n",
|
|
"M 47.21875 32.234375 \n",
|
|
"Q 47.125 39.59375 43.09375 43.984375 \n",
|
|
"Q 39.0625 48.390625 32.421875 48.390625 \n",
|
|
"Q 24.90625 48.390625 20.390625 44.140625 \n",
|
|
"Q 15.875 39.890625 15.1875 32.171875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-65\"/>\n",
|
|
" <path d=\"M 18.109375 8.203125 \n",
|
|
"L 18.109375 -20.796875 \n",
|
|
"L 9.078125 -20.796875 \n",
|
|
"L 9.078125 54.6875 \n",
|
|
"L 18.109375 54.6875 \n",
|
|
"L 18.109375 46.390625 \n",
|
|
"Q 20.953125 51.265625 25.265625 53.625 \n",
|
|
"Q 29.59375 56 35.59375 56 \n",
|
|
"Q 45.5625 56 51.78125 48.09375 \n",
|
|
"Q 58.015625 40.1875 58.015625 27.296875 \n",
|
|
"Q 58.015625 14.40625 51.78125 6.484375 \n",
|
|
"Q 45.5625 -1.421875 35.59375 -1.421875 \n",
|
|
"Q 29.59375 -1.421875 25.265625 0.953125 \n",
|
|
"Q 20.953125 3.328125 18.109375 8.203125 \n",
|
|
"z\n",
|
|
"M 48.6875 27.296875 \n",
|
|
"Q 48.6875 37.203125 44.609375 42.84375 \n",
|
|
"Q 40.53125 48.484375 33.40625 48.484375 \n",
|
|
"Q 26.265625 48.484375 22.1875 42.84375 \n",
|
|
"Q 18.109375 37.203125 18.109375 27.296875 \n",
|
|
"Q 18.109375 17.390625 22.1875 11.75 \n",
|
|
"Q 26.265625 6.109375 33.40625 6.109375 \n",
|
|
"Q 40.53125 6.109375 44.609375 11.75 \n",
|
|
"Q 48.6875 17.390625 48.6875 27.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-70\"/>\n",
|
|
" <path d=\"M 30.609375 48.390625 \n",
|
|
"Q 23.390625 48.390625 19.1875 42.75 \n",
|
|
"Q 14.984375 37.109375 14.984375 27.296875 \n",
|
|
"Q 14.984375 17.484375 19.15625 11.84375 \n",
|
|
"Q 23.34375 6.203125 30.609375 6.203125 \n",
|
|
"Q 37.796875 6.203125 41.984375 11.859375 \n",
|
|
"Q 46.1875 17.53125 46.1875 27.296875 \n",
|
|
"Q 46.1875 37.015625 41.984375 42.703125 \n",
|
|
"Q 37.796875 48.390625 30.609375 48.390625 \n",
|
|
"z\n",
|
|
"M 30.609375 56 \n",
|
|
"Q 42.328125 56 49.015625 48.375 \n",
|
|
"Q 55.71875 40.765625 55.71875 27.296875 \n",
|
|
"Q 55.71875 13.875 49.015625 6.21875 \n",
|
|
"Q 42.328125 -1.421875 30.609375 -1.421875 \n",
|
|
"Q 18.84375 -1.421875 12.171875 6.21875 \n",
|
|
"Q 5.515625 13.875 5.515625 27.296875 \n",
|
|
"Q 5.515625 40.765625 12.171875 48.375 \n",
|
|
"Q 18.84375 56 30.609375 56 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-6f\"/>\n",
|
|
" <path d=\"M 48.78125 52.59375 \n",
|
|
"L 48.78125 44.1875 \n",
|
|
"Q 44.96875 46.296875 41.140625 47.34375 \n",
|
|
"Q 37.3125 48.390625 33.40625 48.390625 \n",
|
|
"Q 24.65625 48.390625 19.8125 42.84375 \n",
|
|
"Q 14.984375 37.3125 14.984375 27.296875 \n",
|
|
"Q 14.984375 17.28125 19.8125 11.734375 \n",
|
|
"Q 24.65625 6.203125 33.40625 6.203125 \n",
|
|
"Q 37.3125 6.203125 41.140625 7.25 \n",
|
|
"Q 44.96875 8.296875 48.78125 10.40625 \n",
|
|
"L 48.78125 2.09375 \n",
|
|
"Q 45.015625 0.34375 40.984375 -0.53125 \n",
|
|
"Q 36.96875 -1.421875 32.421875 -1.421875 \n",
|
|
"Q 20.0625 -1.421875 12.78125 6.34375 \n",
|
|
"Q 5.515625 14.109375 5.515625 27.296875 \n",
|
|
"Q 5.515625 40.671875 12.859375 48.328125 \n",
|
|
"Q 20.21875 56 33.015625 56 \n",
|
|
"Q 37.15625 56 41.109375 55.140625 \n",
|
|
"Q 45.0625 54.296875 48.78125 52.59375 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-63\"/>\n",
|
|
" <path d=\"M 54.890625 33.015625 \n",
|
|
"L 54.890625 0 \n",
|
|
"L 45.90625 0 \n",
|
|
"L 45.90625 32.71875 \n",
|
|
"Q 45.90625 40.484375 42.875 44.328125 \n",
|
|
"Q 39.84375 48.1875 33.796875 48.1875 \n",
|
|
"Q 26.515625 48.1875 22.3125 43.546875 \n",
|
|
"Q 18.109375 38.921875 18.109375 30.90625 \n",
|
|
"L 18.109375 0 \n",
|
|
"L 9.078125 0 \n",
|
|
"L 9.078125 75.984375 \n",
|
|
"L 18.109375 75.984375 \n",
|
|
"L 18.109375 46.1875 \n",
|
|
"Q 21.34375 51.125 25.703125 53.5625 \n",
|
|
"Q 30.078125 56 35.796875 56 \n",
|
|
"Q 45.21875 56 50.046875 50.171875 \n",
|
|
"Q 54.890625 44.34375 54.890625 33.015625 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-68\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(132.565625 174.876562)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\"/>\n",
|
|
" <use x=\"61.523438\" xlink:href=\"#DejaVuSans-70\"/>\n",
|
|
" <use x=\"125\" xlink:href=\"#DejaVuSans-6f\"/>\n",
|
|
" <use x=\"186.181641\" xlink:href=\"#DejaVuSans-63\"/>\n",
|
|
" <use x=\"241.162109\" xlink:href=\"#DejaVuSans-68\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"matplotlib.axis_2\">\n",
|
|
" <g id=\"ytick_1\">\n",
|
|
" <g id=\"line2d_6\">\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 0 0 \n",
|
|
"L -3.5 0 \n",
|
|
"\" id=\"m696b6743a4\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"50.14375\" xlink:href=\"#m696b6743a4\" y=\"136.521935\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_7\">\n",
|
|
" <!-- 0.25 -->\n",
|
|
" <g transform=\"translate(20.878125 140.321154)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-32\"/>\n",
|
|
" <use x=\"159.033203\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_2\">\n",
|
|
" <g id=\"line2d_7\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"50.14375\" xlink:href=\"#m696b6743a4\" y=\"112.320456\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_8\">\n",
|
|
" <!-- 0.30 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 40.578125 39.3125 \n",
|
|
"Q 47.65625 37.796875 51.625 33 \n",
|
|
"Q 55.609375 28.21875 55.609375 21.1875 \n",
|
|
"Q 55.609375 10.40625 48.1875 4.484375 \n",
|
|
"Q 40.765625 -1.421875 27.09375 -1.421875 \n",
|
|
"Q 22.515625 -1.421875 17.65625 -0.515625 \n",
|
|
"Q 12.796875 0.390625 7.625 2.203125 \n",
|
|
"L 7.625 11.71875 \n",
|
|
"Q 11.71875 9.328125 16.59375 8.109375 \n",
|
|
"Q 21.484375 6.890625 26.8125 6.890625 \n",
|
|
"Q 36.078125 6.890625 40.9375 10.546875 \n",
|
|
"Q 45.796875 14.203125 45.796875 21.1875 \n",
|
|
"Q 45.796875 27.640625 41.28125 31.265625 \n",
|
|
"Q 36.765625 34.90625 28.71875 34.90625 \n",
|
|
"L 20.21875 34.90625 \n",
|
|
"L 20.21875 43.015625 \n",
|
|
"L 29.109375 43.015625 \n",
|
|
"Q 36.375 43.015625 40.234375 45.921875 \n",
|
|
"Q 44.09375 48.828125 44.09375 54.296875 \n",
|
|
"Q 44.09375 59.90625 40.109375 62.90625 \n",
|
|
"Q 36.140625 65.921875 28.71875 65.921875 \n",
|
|
"Q 24.65625 65.921875 20.015625 65.03125 \n",
|
|
"Q 15.375 64.15625 9.8125 62.3125 \n",
|
|
"L 9.8125 71.09375 \n",
|
|
"Q 15.4375 72.65625 20.34375 73.4375 \n",
|
|
"Q 25.25 74.21875 29.59375 74.21875 \n",
|
|
"Q 40.828125 74.21875 47.359375 69.109375 \n",
|
|
"Q 53.90625 64.015625 53.90625 55.328125 \n",
|
|
"Q 53.90625 49.265625 50.4375 45.09375 \n",
|
|
"Q 46.96875 40.921875 40.578125 39.3125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-33\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(20.878125 116.119675)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-33\"/>\n",
|
|
" <use x=\"159.033203\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_3\">\n",
|
|
" <g id=\"line2d_8\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"50.14375\" xlink:href=\"#m696b6743a4\" y=\"88.118976\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_9\">\n",
|
|
" <!-- 0.35 -->\n",
|
|
" <g transform=\"translate(20.878125 91.918195)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-33\"/>\n",
|
|
" <use x=\"159.033203\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_4\">\n",
|
|
" <g id=\"line2d_9\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"50.14375\" xlink:href=\"#m696b6743a4\" y=\"63.917497\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_10\">\n",
|
|
" <!-- 0.40 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 37.796875 64.3125 \n",
|
|
"L 12.890625 25.390625 \n",
|
|
"L 37.796875 25.390625 \n",
|
|
"z\n",
|
|
"M 35.203125 72.90625 \n",
|
|
"L 47.609375 72.90625 \n",
|
|
"L 47.609375 25.390625 \n",
|
|
"L 58.015625 25.390625 \n",
|
|
"L 58.015625 17.1875 \n",
|
|
"L 47.609375 17.1875 \n",
|
|
"L 47.609375 0 \n",
|
|
"L 37.796875 0 \n",
|
|
"L 37.796875 17.1875 \n",
|
|
"L 4.890625 17.1875 \n",
|
|
"L 4.890625 26.703125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-34\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(20.878125 67.716716)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-34\"/>\n",
|
|
" <use x=\"159.033203\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_5\">\n",
|
|
" <g id=\"line2d_10\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"50.14375\" xlink:href=\"#m696b6743a4\" y=\"39.716017\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_11\">\n",
|
|
" <!-- 0.45 -->\n",
|
|
" <g transform=\"translate(20.878125 43.515236)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-34\"/>\n",
|
|
" <use x=\"159.033203\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_6\">\n",
|
|
" <g id=\"line2d_11\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"50.14375\" xlink:href=\"#m696b6743a4\" y=\"15.514538\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_12\">\n",
|
|
" <!-- 0.50 -->\n",
|
|
" <g transform=\"translate(20.878125 19.313757)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
|
" <use x=\"159.033203\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_13\">\n",
|
|
" <!-- loss -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 9.421875 75.984375 \n",
|
|
"L 18.40625 75.984375 \n",
|
|
"L 18.40625 0 \n",
|
|
"L 9.421875 0 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-6c\"/>\n",
|
|
" <path d=\"M 44.28125 53.078125 \n",
|
|
"L 44.28125 44.578125 \n",
|
|
"Q 40.484375 46.53125 36.375 47.5 \n",
|
|
"Q 32.28125 48.484375 27.875 48.484375 \n",
|
|
"Q 21.1875 48.484375 17.84375 46.4375 \n",
|
|
"Q 14.5 44.390625 14.5 40.28125 \n",
|
|
"Q 14.5 37.15625 16.890625 35.375 \n",
|
|
"Q 19.28125 33.59375 26.515625 31.984375 \n",
|
|
"L 29.59375 31.296875 \n",
|
|
"Q 39.15625 29.25 43.1875 25.515625 \n",
|
|
"Q 47.21875 21.78125 47.21875 15.09375 \n",
|
|
"Q 47.21875 7.46875 41.1875 3.015625 \n",
|
|
"Q 35.15625 -1.421875 24.609375 -1.421875 \n",
|
|
"Q 20.21875 -1.421875 15.453125 -0.5625 \n",
|
|
"Q 10.6875 0.296875 5.421875 2 \n",
|
|
"L 5.421875 11.28125 \n",
|
|
"Q 10.40625 8.6875 15.234375 7.390625 \n",
|
|
"Q 20.0625 6.109375 24.8125 6.109375 \n",
|
|
"Q 31.15625 6.109375 34.5625 8.28125 \n",
|
|
"Q 37.984375 10.453125 37.984375 14.40625 \n",
|
|
"Q 37.984375 18.0625 35.515625 20.015625 \n",
|
|
"Q 33.0625 21.96875 24.703125 23.78125 \n",
|
|
"L 21.578125 24.515625 \n",
|
|
"Q 13.234375 26.265625 9.515625 29.90625 \n",
|
|
"Q 5.8125 33.546875 5.8125 39.890625 \n",
|
|
"Q 5.8125 47.609375 11.28125 51.796875 \n",
|
|
"Q 16.75 56 26.8125 56 \n",
|
|
"Q 31.78125 56 36.171875 55.265625 \n",
|
|
"Q 40.578125 54.546875 44.28125 53.078125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-73\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(14.798437 88.307812)rotate(-90)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\"/>\n",
|
|
" <use x=\"27.783203\" xlink:href=\"#DejaVuSans-6f\"/>\n",
|
|
" <use x=\"88.964844\" xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use x=\"141.064453\" xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_12\">\n",
|
|
" <path clip-path=\"url(#pa3a867d4b2)\" d=\"M 59.021023 16.877273 \n",
|
|
"L 64.939205 102.27139 \n",
|
|
"L 70.857386 129.592514 \n",
|
|
"L 76.775568 132.498341 \n",
|
|
"L 82.69375 135.053969 \n",
|
|
"L 88.611932 137.689259 \n",
|
|
"L 94.530114 138.467823 \n",
|
|
"L 100.448295 135.99794 \n",
|
|
"L 106.366477 138.132618 \n",
|
|
"L 112.284659 138.323824 \n",
|
|
"L 118.202841 138.446553 \n",
|
|
"L 124.121023 139.441611 \n",
|
|
"L 130.039205 138.880016 \n",
|
|
"L 135.957386 139.392717 \n",
|
|
"L 141.875568 139.555852 \n",
|
|
"L 147.79375 140.169154 \n",
|
|
"L 153.711932 139.295816 \n",
|
|
"L 159.630114 138.944793 \n",
|
|
"L 165.548295 139.864472 \n",
|
|
"L 171.466477 140.333341 \n",
|
|
"L 177.384659 138.929776 \n",
|
|
"L 183.302841 139.91809 \n",
|
|
"L 189.221023 140.414397 \n",
|
|
"L 195.139205 140.422727 \n",
|
|
"L 201.057386 139.806533 \n",
|
|
"L 206.975568 140.267728 \n",
|
|
"L 212.89375 140.147552 \n",
|
|
"L 218.811932 139.997076 \n",
|
|
"L 224.730114 139.542992 \n",
|
|
"L 230.648295 140.153416 \n",
|
|
"L 236.566477 140.132254 \n",
|
|
"\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_3\">\n",
|
|
" <path d=\"M 50.14375 146.6 \n",
|
|
"L 50.14375 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_4\">\n",
|
|
" <path d=\"M 245.44375 146.6 \n",
|
|
"L 245.44375 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_5\">\n",
|
|
" <path d=\"M 50.14375 146.6 \n",
|
|
"L 245.44375 146.6 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_6\">\n",
|
|
" <path d=\"M 50.14375 10.7 \n",
|
|
"L 245.44375 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <defs>\n",
|
|
" <clipPath id=\"pa3a867d4b2\">\n",
|
|
" <rect height=\"135.9\" width=\"195.3\" x=\"50.14375\" y=\"10.7\"/>\n",
|
|
" </clipPath>\n",
|
|
" </defs>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x119c72780>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"d2l.train_ch7(adagrad, init_adagrad_states(), {'lr': 0.1}, features, labels)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 7.5.4 简洁实现"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"loss: 0.243147, 0.040675 sec per epoch\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
|
|
"<svg height=\"184pt\" version=\"1.1\" viewBox=\"0 0 249 184\" width=\"249pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
" <defs>\n",
|
|
" <style type=\"text/css\">\n",
|
|
"*{stroke-linecap:butt;stroke-linejoin:round;}\n",
|
|
" </style>\n",
|
|
" </defs>\n",
|
|
" <g id=\"figure_1\">\n",
|
|
" <g id=\"patch_1\">\n",
|
|
" <path d=\"M 0 184.15625 \n",
|
|
"L 249.78125 184.15625 \n",
|
|
"L 249.78125 -0 \n",
|
|
"L 0 -0 \n",
|
|
"z\n",
|
|
"\" style=\"fill:none;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_1\">\n",
|
|
" <g id=\"patch_2\">\n",
|
|
" <path d=\"M 43.78125 146.6 \n",
|
|
"L 239.08125 146.6 \n",
|
|
"L 239.08125 10.7 \n",
|
|
"L 43.78125 10.7 \n",
|
|
"z\n",
|
|
"\" style=\"fill:#ffffff;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"matplotlib.axis_1\">\n",
|
|
" <g id=\"xtick_1\">\n",
|
|
" <g id=\"line2d_1\">\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 0 0 \n",
|
|
"L 0 3.5 \n",
|
|
"\" id=\"mf2ac7daa63\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.658523\" xlink:href=\"#mf2ac7daa63\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_1\">\n",
|
|
" <!-- 0.0 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 31.78125 66.40625 \n",
|
|
"Q 24.171875 66.40625 20.328125 58.90625 \n",
|
|
"Q 16.5 51.421875 16.5 36.375 \n",
|
|
"Q 16.5 21.390625 20.328125 13.890625 \n",
|
|
"Q 24.171875 6.390625 31.78125 6.390625 \n",
|
|
"Q 39.453125 6.390625 43.28125 13.890625 \n",
|
|
"Q 47.125 21.390625 47.125 36.375 \n",
|
|
"Q 47.125 51.421875 43.28125 58.90625 \n",
|
|
"Q 39.453125 66.40625 31.78125 66.40625 \n",
|
|
"z\n",
|
|
"M 31.78125 74.21875 \n",
|
|
"Q 44.046875 74.21875 50.515625 64.515625 \n",
|
|
"Q 56.984375 54.828125 56.984375 36.375 \n",
|
|
"Q 56.984375 17.96875 50.515625 8.265625 \n",
|
|
"Q 44.046875 -1.421875 31.78125 -1.421875 \n",
|
|
"Q 19.53125 -1.421875 13.0625 8.265625 \n",
|
|
"Q 6.59375 17.96875 6.59375 36.375 \n",
|
|
"Q 6.59375 54.828125 13.0625 64.515625 \n",
|
|
"Q 19.53125 74.21875 31.78125 74.21875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-30\"/>\n",
|
|
" <path d=\"M 10.6875 12.40625 \n",
|
|
"L 21 12.40625 \n",
|
|
"L 21 0 \n",
|
|
"L 10.6875 0 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-2e\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(44.70696 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_2\">\n",
|
|
" <g id=\"line2d_2\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"97.044886\" xlink:href=\"#mf2ac7daa63\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_2\">\n",
|
|
" <!-- 0.5 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 10.796875 72.90625 \n",
|
|
"L 49.515625 72.90625 \n",
|
|
"L 49.515625 64.59375 \n",
|
|
"L 19.828125 64.59375 \n",
|
|
"L 19.828125 46.734375 \n",
|
|
"Q 21.96875 47.46875 24.109375 47.828125 \n",
|
|
"Q 26.265625 48.1875 28.421875 48.1875 \n",
|
|
"Q 40.625 48.1875 47.75 41.5 \n",
|
|
"Q 54.890625 34.8125 54.890625 23.390625 \n",
|
|
"Q 54.890625 11.625 47.5625 5.09375 \n",
|
|
"Q 40.234375 -1.421875 26.90625 -1.421875 \n",
|
|
"Q 22.3125 -1.421875 17.546875 -0.640625 \n",
|
|
"Q 12.796875 0.140625 7.71875 1.703125 \n",
|
|
"L 7.71875 11.625 \n",
|
|
"Q 12.109375 9.234375 16.796875 8.0625 \n",
|
|
"Q 21.484375 6.890625 26.703125 6.890625 \n",
|
|
"Q 35.15625 6.890625 40.078125 11.328125 \n",
|
|
"Q 45.015625 15.765625 45.015625 23.390625 \n",
|
|
"Q 45.015625 31 40.078125 35.4375 \n",
|
|
"Q 35.15625 39.890625 26.703125 39.890625 \n",
|
|
"Q 22.75 39.890625 18.8125 39.015625 \n",
|
|
"Q 14.890625 38.140625 10.796875 36.28125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-35\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(89.093324 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_3\">\n",
|
|
" <g id=\"line2d_3\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"141.43125\" xlink:href=\"#mf2ac7daa63\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_3\">\n",
|
|
" <!-- 1.0 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 12.40625 8.296875 \n",
|
|
"L 28.515625 8.296875 \n",
|
|
"L 28.515625 63.921875 \n",
|
|
"L 10.984375 60.40625 \n",
|
|
"L 10.984375 69.390625 \n",
|
|
"L 28.421875 72.90625 \n",
|
|
"L 38.28125 72.90625 \n",
|
|
"L 38.28125 8.296875 \n",
|
|
"L 54.390625 8.296875 \n",
|
|
"L 54.390625 0 \n",
|
|
"L 12.40625 0 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-31\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(133.479688 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_4\">\n",
|
|
" <g id=\"line2d_4\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"185.817614\" xlink:href=\"#mf2ac7daa63\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_4\">\n",
|
|
" <!-- 1.5 -->\n",
|
|
" <g transform=\"translate(177.866051 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_5\">\n",
|
|
" <g id=\"line2d_5\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"230.203977\" xlink:href=\"#mf2ac7daa63\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_5\">\n",
|
|
" <!-- 2.0 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 19.1875 8.296875 \n",
|
|
"L 53.609375 8.296875 \n",
|
|
"L 53.609375 0 \n",
|
|
"L 7.328125 0 \n",
|
|
"L 7.328125 8.296875 \n",
|
|
"Q 12.9375 14.109375 22.625 23.890625 \n",
|
|
"Q 32.328125 33.6875 34.8125 36.53125 \n",
|
|
"Q 39.546875 41.84375 41.421875 45.53125 \n",
|
|
"Q 43.3125 49.21875 43.3125 52.78125 \n",
|
|
"Q 43.3125 58.59375 39.234375 62.25 \n",
|
|
"Q 35.15625 65.921875 28.609375 65.921875 \n",
|
|
"Q 23.96875 65.921875 18.8125 64.3125 \n",
|
|
"Q 13.671875 62.703125 7.8125 59.421875 \n",
|
|
"L 7.8125 69.390625 \n",
|
|
"Q 13.765625 71.78125 18.9375 73 \n",
|
|
"Q 24.125 74.21875 28.421875 74.21875 \n",
|
|
"Q 39.75 74.21875 46.484375 68.546875 \n",
|
|
"Q 53.21875 62.890625 53.21875 53.421875 \n",
|
|
"Q 53.21875 48.921875 51.53125 44.890625 \n",
|
|
"Q 49.859375 40.875 45.40625 35.40625 \n",
|
|
"Q 44.1875 33.984375 37.640625 27.21875 \n",
|
|
"Q 31.109375 20.453125 19.1875 8.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-32\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(222.252415 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_6\">\n",
|
|
" <!-- epoch -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 56.203125 29.59375 \n",
|
|
"L 56.203125 25.203125 \n",
|
|
"L 14.890625 25.203125 \n",
|
|
"Q 15.484375 15.921875 20.484375 11.0625 \n",
|
|
"Q 25.484375 6.203125 34.421875 6.203125 \n",
|
|
"Q 39.59375 6.203125 44.453125 7.46875 \n",
|
|
"Q 49.3125 8.734375 54.109375 11.28125 \n",
|
|
"L 54.109375 2.78125 \n",
|
|
"Q 49.265625 0.734375 44.1875 -0.34375 \n",
|
|
"Q 39.109375 -1.421875 33.890625 -1.421875 \n",
|
|
"Q 20.796875 -1.421875 13.15625 6.1875 \n",
|
|
"Q 5.515625 13.8125 5.515625 26.8125 \n",
|
|
"Q 5.515625 40.234375 12.765625 48.109375 \n",
|
|
"Q 20.015625 56 32.328125 56 \n",
|
|
"Q 43.359375 56 49.78125 48.890625 \n",
|
|
"Q 56.203125 41.796875 56.203125 29.59375 \n",
|
|
"z\n",
|
|
"M 47.21875 32.234375 \n",
|
|
"Q 47.125 39.59375 43.09375 43.984375 \n",
|
|
"Q 39.0625 48.390625 32.421875 48.390625 \n",
|
|
"Q 24.90625 48.390625 20.390625 44.140625 \n",
|
|
"Q 15.875 39.890625 15.1875 32.171875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-65\"/>\n",
|
|
" <path d=\"M 18.109375 8.203125 \n",
|
|
"L 18.109375 -20.796875 \n",
|
|
"L 9.078125 -20.796875 \n",
|
|
"L 9.078125 54.6875 \n",
|
|
"L 18.109375 54.6875 \n",
|
|
"L 18.109375 46.390625 \n",
|
|
"Q 20.953125 51.265625 25.265625 53.625 \n",
|
|
"Q 29.59375 56 35.59375 56 \n",
|
|
"Q 45.5625 56 51.78125 48.09375 \n",
|
|
"Q 58.015625 40.1875 58.015625 27.296875 \n",
|
|
"Q 58.015625 14.40625 51.78125 6.484375 \n",
|
|
"Q 45.5625 -1.421875 35.59375 -1.421875 \n",
|
|
"Q 29.59375 -1.421875 25.265625 0.953125 \n",
|
|
"Q 20.953125 3.328125 18.109375 8.203125 \n",
|
|
"z\n",
|
|
"M 48.6875 27.296875 \n",
|
|
"Q 48.6875 37.203125 44.609375 42.84375 \n",
|
|
"Q 40.53125 48.484375 33.40625 48.484375 \n",
|
|
"Q 26.265625 48.484375 22.1875 42.84375 \n",
|
|
"Q 18.109375 37.203125 18.109375 27.296875 \n",
|
|
"Q 18.109375 17.390625 22.1875 11.75 \n",
|
|
"Q 26.265625 6.109375 33.40625 6.109375 \n",
|
|
"Q 40.53125 6.109375 44.609375 11.75 \n",
|
|
"Q 48.6875 17.390625 48.6875 27.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-70\"/>\n",
|
|
" <path d=\"M 30.609375 48.390625 \n",
|
|
"Q 23.390625 48.390625 19.1875 42.75 \n",
|
|
"Q 14.984375 37.109375 14.984375 27.296875 \n",
|
|
"Q 14.984375 17.484375 19.15625 11.84375 \n",
|
|
"Q 23.34375 6.203125 30.609375 6.203125 \n",
|
|
"Q 37.796875 6.203125 41.984375 11.859375 \n",
|
|
"Q 46.1875 17.53125 46.1875 27.296875 \n",
|
|
"Q 46.1875 37.015625 41.984375 42.703125 \n",
|
|
"Q 37.796875 48.390625 30.609375 48.390625 \n",
|
|
"z\n",
|
|
"M 30.609375 56 \n",
|
|
"Q 42.328125 56 49.015625 48.375 \n",
|
|
"Q 55.71875 40.765625 55.71875 27.296875 \n",
|
|
"Q 55.71875 13.875 49.015625 6.21875 \n",
|
|
"Q 42.328125 -1.421875 30.609375 -1.421875 \n",
|
|
"Q 18.84375 -1.421875 12.171875 6.21875 \n",
|
|
"Q 5.515625 13.875 5.515625 27.296875 \n",
|
|
"Q 5.515625 40.765625 12.171875 48.375 \n",
|
|
"Q 18.84375 56 30.609375 56 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-6f\"/>\n",
|
|
" <path d=\"M 48.78125 52.59375 \n",
|
|
"L 48.78125 44.1875 \n",
|
|
"Q 44.96875 46.296875 41.140625 47.34375 \n",
|
|
"Q 37.3125 48.390625 33.40625 48.390625 \n",
|
|
"Q 24.65625 48.390625 19.8125 42.84375 \n",
|
|
"Q 14.984375 37.3125 14.984375 27.296875 \n",
|
|
"Q 14.984375 17.28125 19.8125 11.734375 \n",
|
|
"Q 24.65625 6.203125 33.40625 6.203125 \n",
|
|
"Q 37.3125 6.203125 41.140625 7.25 \n",
|
|
"Q 44.96875 8.296875 48.78125 10.40625 \n",
|
|
"L 48.78125 2.09375 \n",
|
|
"Q 45.015625 0.34375 40.984375 -0.53125 \n",
|
|
"Q 36.96875 -1.421875 32.421875 -1.421875 \n",
|
|
"Q 20.0625 -1.421875 12.78125 6.34375 \n",
|
|
"Q 5.515625 14.109375 5.515625 27.296875 \n",
|
|
"Q 5.515625 40.671875 12.859375 48.328125 \n",
|
|
"Q 20.21875 56 33.015625 56 \n",
|
|
"Q 37.15625 56 41.109375 55.140625 \n",
|
|
"Q 45.0625 54.296875 48.78125 52.59375 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-63\"/>\n",
|
|
" <path d=\"M 54.890625 33.015625 \n",
|
|
"L 54.890625 0 \n",
|
|
"L 45.90625 0 \n",
|
|
"L 45.90625 32.71875 \n",
|
|
"Q 45.90625 40.484375 42.875 44.328125 \n",
|
|
"Q 39.84375 48.1875 33.796875 48.1875 \n",
|
|
"Q 26.515625 48.1875 22.3125 43.546875 \n",
|
|
"Q 18.109375 38.921875 18.109375 30.90625 \n",
|
|
"L 18.109375 0 \n",
|
|
"L 9.078125 0 \n",
|
|
"L 9.078125 75.984375 \n",
|
|
"L 18.109375 75.984375 \n",
|
|
"L 18.109375 46.1875 \n",
|
|
"Q 21.34375 51.125 25.703125 53.5625 \n",
|
|
"Q 30.078125 56 35.796875 56 \n",
|
|
"Q 45.21875 56 50.046875 50.171875 \n",
|
|
"Q 54.890625 44.34375 54.890625 33.015625 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-68\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(126.203125 174.876562)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\"/>\n",
|
|
" <use x=\"61.523438\" xlink:href=\"#DejaVuSans-70\"/>\n",
|
|
" <use x=\"125\" xlink:href=\"#DejaVuSans-6f\"/>\n",
|
|
" <use x=\"186.181641\" xlink:href=\"#DejaVuSans-63\"/>\n",
|
|
" <use x=\"241.162109\" xlink:href=\"#DejaVuSans-68\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"matplotlib.axis_2\">\n",
|
|
" <g id=\"ytick_1\">\n",
|
|
" <g id=\"line2d_6\">\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 0 0 \n",
|
|
"L -3.5 0 \n",
|
|
"\" id=\"mfdf50de158\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"43.78125\" xlink:href=\"#mfdf50de158\" y=\"106.308536\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_7\">\n",
|
|
" <!-- 0.4 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 37.796875 64.3125 \n",
|
|
"L 12.890625 25.390625 \n",
|
|
"L 37.796875 25.390625 \n",
|
|
"z\n",
|
|
"M 35.203125 72.90625 \n",
|
|
"L 47.609375 72.90625 \n",
|
|
"L 47.609375 25.390625 \n",
|
|
"L 58.015625 25.390625 \n",
|
|
"L 58.015625 17.1875 \n",
|
|
"L 47.609375 17.1875 \n",
|
|
"L 47.609375 0 \n",
|
|
"L 37.796875 0 \n",
|
|
"L 37.796875 17.1875 \n",
|
|
"L 4.890625 17.1875 \n",
|
|
"L 4.890625 26.703125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-34\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(20.878125 110.107755)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-34\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_2\">\n",
|
|
" <g id=\"line2d_7\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"43.78125\" xlink:href=\"#mfdf50de158\" y=\"63.003508\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_8\">\n",
|
|
" <!-- 0.6 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 33.015625 40.375 \n",
|
|
"Q 26.375 40.375 22.484375 35.828125 \n",
|
|
"Q 18.609375 31.296875 18.609375 23.390625 \n",
|
|
"Q 18.609375 15.53125 22.484375 10.953125 \n",
|
|
"Q 26.375 6.390625 33.015625 6.390625 \n",
|
|
"Q 39.65625 6.390625 43.53125 10.953125 \n",
|
|
"Q 47.40625 15.53125 47.40625 23.390625 \n",
|
|
"Q 47.40625 31.296875 43.53125 35.828125 \n",
|
|
"Q 39.65625 40.375 33.015625 40.375 \n",
|
|
"z\n",
|
|
"M 52.59375 71.296875 \n",
|
|
"L 52.59375 62.3125 \n",
|
|
"Q 48.875 64.0625 45.09375 64.984375 \n",
|
|
"Q 41.3125 65.921875 37.59375 65.921875 \n",
|
|
"Q 27.828125 65.921875 22.671875 59.328125 \n",
|
|
"Q 17.53125 52.734375 16.796875 39.40625 \n",
|
|
"Q 19.671875 43.65625 24.015625 45.921875 \n",
|
|
"Q 28.375 48.1875 33.59375 48.1875 \n",
|
|
"Q 44.578125 48.1875 50.953125 41.515625 \n",
|
|
"Q 57.328125 34.859375 57.328125 23.390625 \n",
|
|
"Q 57.328125 12.15625 50.6875 5.359375 \n",
|
|
"Q 44.046875 -1.421875 33.015625 -1.421875 \n",
|
|
"Q 20.359375 -1.421875 13.671875 8.265625 \n",
|
|
"Q 6.984375 17.96875 6.984375 36.375 \n",
|
|
"Q 6.984375 53.65625 15.1875 63.9375 \n",
|
|
"Q 23.390625 74.21875 37.203125 74.21875 \n",
|
|
"Q 40.921875 74.21875 44.703125 73.484375 \n",
|
|
"Q 48.484375 72.75 52.59375 71.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-36\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(20.878125 66.802727)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-36\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_3\">\n",
|
|
" <g id=\"line2d_8\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"43.78125\" xlink:href=\"#mfdf50de158\" y=\"19.69848\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_9\">\n",
|
|
" <!-- 0.8 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 31.78125 34.625 \n",
|
|
"Q 24.75 34.625 20.71875 30.859375 \n",
|
|
"Q 16.703125 27.09375 16.703125 20.515625 \n",
|
|
"Q 16.703125 13.921875 20.71875 10.15625 \n",
|
|
"Q 24.75 6.390625 31.78125 6.390625 \n",
|
|
"Q 38.8125 6.390625 42.859375 10.171875 \n",
|
|
"Q 46.921875 13.96875 46.921875 20.515625 \n",
|
|
"Q 46.921875 27.09375 42.890625 30.859375 \n",
|
|
"Q 38.875 34.625 31.78125 34.625 \n",
|
|
"z\n",
|
|
"M 21.921875 38.8125 \n",
|
|
"Q 15.578125 40.375 12.03125 44.71875 \n",
|
|
"Q 8.5 49.078125 8.5 55.328125 \n",
|
|
"Q 8.5 64.0625 14.71875 69.140625 \n",
|
|
"Q 20.953125 74.21875 31.78125 74.21875 \n",
|
|
"Q 42.671875 74.21875 48.875 69.140625 \n",
|
|
"Q 55.078125 64.0625 55.078125 55.328125 \n",
|
|
"Q 55.078125 49.078125 51.53125 44.71875 \n",
|
|
"Q 48 40.375 41.703125 38.8125 \n",
|
|
"Q 48.828125 37.15625 52.796875 32.3125 \n",
|
|
"Q 56.78125 27.484375 56.78125 20.515625 \n",
|
|
"Q 56.78125 9.90625 50.3125 4.234375 \n",
|
|
"Q 43.84375 -1.421875 31.78125 -1.421875 \n",
|
|
"Q 19.734375 -1.421875 13.25 4.234375 \n",
|
|
"Q 6.78125 9.90625 6.78125 20.515625 \n",
|
|
"Q 6.78125 27.484375 10.78125 32.3125 \n",
|
|
"Q 14.796875 37.15625 21.921875 38.8125 \n",
|
|
"z\n",
|
|
"M 18.3125 54.390625 \n",
|
|
"Q 18.3125 48.734375 21.84375 45.5625 \n",
|
|
"Q 25.390625 42.390625 31.78125 42.390625 \n",
|
|
"Q 38.140625 42.390625 41.71875 45.5625 \n",
|
|
"Q 45.3125 48.734375 45.3125 54.390625 \n",
|
|
"Q 45.3125 60.0625 41.71875 63.234375 \n",
|
|
"Q 38.140625 66.40625 31.78125 66.40625 \n",
|
|
"Q 25.390625 66.40625 21.84375 63.234375 \n",
|
|
"Q 18.3125 60.0625 18.3125 54.390625 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-38\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(20.878125 23.497699)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-2e\"/>\n",
|
|
" <use x=\"95.410156\" xlink:href=\"#DejaVuSans-38\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_10\">\n",
|
|
" <!-- loss -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 9.421875 75.984375 \n",
|
|
"L 18.40625 75.984375 \n",
|
|
"L 18.40625 0 \n",
|
|
"L 9.421875 0 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-6c\"/>\n",
|
|
" <path d=\"M 44.28125 53.078125 \n",
|
|
"L 44.28125 44.578125 \n",
|
|
"Q 40.484375 46.53125 36.375 47.5 \n",
|
|
"Q 32.28125 48.484375 27.875 48.484375 \n",
|
|
"Q 21.1875 48.484375 17.84375 46.4375 \n",
|
|
"Q 14.5 44.390625 14.5 40.28125 \n",
|
|
"Q 14.5 37.15625 16.890625 35.375 \n",
|
|
"Q 19.28125 33.59375 26.515625 31.984375 \n",
|
|
"L 29.59375 31.296875 \n",
|
|
"Q 39.15625 29.25 43.1875 25.515625 \n",
|
|
"Q 47.21875 21.78125 47.21875 15.09375 \n",
|
|
"Q 47.21875 7.46875 41.1875 3.015625 \n",
|
|
"Q 35.15625 -1.421875 24.609375 -1.421875 \n",
|
|
"Q 20.21875 -1.421875 15.453125 -0.5625 \n",
|
|
"Q 10.6875 0.296875 5.421875 2 \n",
|
|
"L 5.421875 11.28125 \n",
|
|
"Q 10.40625 8.6875 15.234375 7.390625 \n",
|
|
"Q 20.0625 6.109375 24.8125 6.109375 \n",
|
|
"Q 31.15625 6.109375 34.5625 8.28125 \n",
|
|
"Q 37.984375 10.453125 37.984375 14.40625 \n",
|
|
"Q 37.984375 18.0625 35.515625 20.015625 \n",
|
|
"Q 33.0625 21.96875 24.703125 23.78125 \n",
|
|
"L 21.578125 24.515625 \n",
|
|
"Q 13.234375 26.265625 9.515625 29.90625 \n",
|
|
"Q 5.8125 33.546875 5.8125 39.890625 \n",
|
|
"Q 5.8125 47.609375 11.28125 51.796875 \n",
|
|
"Q 16.75 56 26.8125 56 \n",
|
|
"Q 31.78125 56 36.171875 55.265625 \n",
|
|
"Q 40.578125 54.546875 44.28125 53.078125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-73\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(14.798437 88.307812)rotate(-90)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\"/>\n",
|
|
" <use x=\"27.783203\" xlink:href=\"#DejaVuSans-6f\"/>\n",
|
|
" <use x=\"88.964844\" xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use x=\"141.064453\" xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_9\">\n",
|
|
" <path clip-path=\"url(#pfcc53c3e7e)\" d=\"M 52.658523 16.877273 \n",
|
|
"L 58.576705 106.017249 \n",
|
|
"L 64.494886 126.813145 \n",
|
|
"L 70.413068 132.34046 \n",
|
|
"L 76.33125 135.911227 \n",
|
|
"L 82.249432 136.290028 \n",
|
|
"L 88.167614 136.180889 \n",
|
|
"L 94.085795 138.84863 \n",
|
|
"L 100.003977 138.863784 \n",
|
|
"L 105.922159 138.249989 \n",
|
|
"L 111.840341 138.630165 \n",
|
|
"L 117.758523 139.682612 \n",
|
|
"L 123.676705 138.5522 \n",
|
|
"L 129.594886 139.09027 \n",
|
|
"L 135.513068 139.888736 \n",
|
|
"L 141.43125 140.0871 \n",
|
|
"L 147.349432 139.958437 \n",
|
|
"L 153.267614 139.784885 \n",
|
|
"L 159.185795 140.02689 \n",
|
|
"L 165.103977 140.159147 \n",
|
|
"L 171.022159 140.293104 \n",
|
|
"L 176.940341 140.206424 \n",
|
|
"L 182.858523 140.200097 \n",
|
|
"L 188.776705 139.985679 \n",
|
|
"L 194.694886 140.104771 \n",
|
|
"L 200.613068 140.422727 \n",
|
|
"L 206.53125 139.715103 \n",
|
|
"L 212.449432 140.403407 \n",
|
|
"L 218.367614 140.393324 \n",
|
|
"L 224.285795 140.294452 \n",
|
|
"L 230.203977 140.271241 \n",
|
|
"\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_3\">\n",
|
|
" <path d=\"M 43.78125 146.6 \n",
|
|
"L 43.78125 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_4\">\n",
|
|
" <path d=\"M 239.08125 146.6 \n",
|
|
"L 239.08125 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_5\">\n",
|
|
" <path d=\"M 43.78125 146.6 \n",
|
|
"L 239.08125 146.6 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_6\">\n",
|
|
" <path d=\"M 43.78125 10.7 \n",
|
|
"L 239.08125 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <defs>\n",
|
|
" <clipPath id=\"pfcc53c3e7e\">\n",
|
|
" <rect height=\"135.9\" width=\"195.3\" x=\"43.78125\" y=\"10.7\"/>\n",
|
|
" </clipPath>\n",
|
|
" </defs>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x11a1935f8>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"d2l.train_pytorch_ch7(torch.optim.Adagrad, {'lr': 0.1}, features, labels)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python [default]",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.6.3"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|