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.
1337 lines
78 KiB
1337 lines
78 KiB
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# 7.6 RMSProp算法"
|
|
]
|
|
},
|
|
{
|
|
"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.6.1 算法"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"epoch 20, x1 -0.010599, x2 0.000000\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x1158e3908>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def rmsprop_2d(x1, x2, s1, s2):\n",
|
|
" g1, g2, eps = 0.2 * x1, 4 * x2, 1e-6\n",
|
|
" s1 = gamma * s1 + (1 - gamma) * g1 ** 2\n",
|
|
" s2 = gamma * s2 + (1 - gamma) * 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, gamma = 0.4, 0.9\n",
|
|
"d2l.show_trace_2d(f_2d, d2l.train_2d(rmsprop_2d))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 7.6.2 从零开始实现"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"features, labels = d2l.get_data_ch7()\n",
|
|
"\n",
|
|
"def init_rmsprop_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 rmsprop(params, states, hyperparams):\n",
|
|
" gamma, eps = hyperparams['gamma'], 1e-6\n",
|
|
" for p, s in zip(params, states):\n",
|
|
" s.data = gamma * s.data + (1 - gamma) * (p.grad.data)**2\n",
|
|
" p.data -= hyperparams['lr'] * p.grad.data / torch.sqrt(s + eps)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"loss: 0.242014, 0.053250 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=\"m4870beccf4\" 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=\"#m4870beccf4\" 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=\"#m4870beccf4\" 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=\"#m4870beccf4\" 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=\"#m4870beccf4\" 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=\"#m4870beccf4\" 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=\"mf7cd6ccbd2\" 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=\"#mf7cd6ccbd2\" y=\"136.457922\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_7\">\n",
|
|
" <!-- 0.25 -->\n",
|
|
" <g transform=\"translate(20.878125 140.257141)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=\"#mf7cd6ccbd2\" y=\"111.633364\"/>\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 115.432583)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=\"#mf7cd6ccbd2\" y=\"86.808807\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_9\">\n",
|
|
" <!-- 0.35 -->\n",
|
|
" <g transform=\"translate(20.878125 90.608026)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=\"#mf7cd6ccbd2\" y=\"61.984249\"/>\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 65.783468)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=\"#mf7cd6ccbd2\" y=\"37.159692\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_11\">\n",
|
|
" <!-- 0.45 -->\n",
|
|
" <g transform=\"translate(20.878125 40.95891)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=\"#mf7cd6ccbd2\" y=\"12.335134\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_12\">\n",
|
|
" <!-- 0.50 -->\n",
|
|
" <g transform=\"translate(20.878125 16.134353)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(#pfd2e0ebc5c)\" d=\"M 59.021023 16.877273 \n",
|
|
"L 64.939205 66.116608 \n",
|
|
"L 70.857386 82.503357 \n",
|
|
"L 76.775568 104.535804 \n",
|
|
"L 82.69375 115.597468 \n",
|
|
"L 88.611932 118.907998 \n",
|
|
"L 94.530114 126.991981 \n",
|
|
"L 100.448295 128.832944 \n",
|
|
"L 106.366477 132.113407 \n",
|
|
"L 112.284659 136.090567 \n",
|
|
"L 118.202841 134.404348 \n",
|
|
"L 124.121023 137.082027 \n",
|
|
"L 130.039205 138.309856 \n",
|
|
"L 135.957386 139.288199 \n",
|
|
"L 141.875568 138.12663 \n",
|
|
"L 147.79375 136.810369 \n",
|
|
"L 153.711932 140.154909 \n",
|
|
"L 159.630114 139.10518 \n",
|
|
"L 165.548295 136.015356 \n",
|
|
"L 171.466477 139.671282 \n",
|
|
"L 177.384659 139.669396 \n",
|
|
"L 183.302841 139.828511 \n",
|
|
"L 189.221023 138.834336 \n",
|
|
"L 195.139205 139.522303 \n",
|
|
"L 201.057386 138.533047 \n",
|
|
"L 206.975568 140.354737 \n",
|
|
"L 212.89375 139.107377 \n",
|
|
"L 218.811932 140.268502 \n",
|
|
"L 224.730114 139.639277 \n",
|
|
"L 230.648295 140.229388 \n",
|
|
"L 236.566477 140.422727 \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=\"pfd2e0ebc5c\">\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 0x1158cde10>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"d2l.train_ch7(rmsprop, init_rmsprop_states(), {'lr': 0.01, 'gamma': 0.9},\n",
|
|
" features, labels)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 7.6.3 简洁实现"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"loss: 0.243676, 0.043637 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=\"m830c3804ad\" 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=\"#m830c3804ad\" 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=\"#m830c3804ad\" 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=\"#m830c3804ad\" 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=\"#m830c3804ad\" 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=\"#m830c3804ad\" 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=\"m6ecf2c81ad\" 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=\"#m6ecf2c81ad\" y=\"116.912257\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_7\">\n",
|
|
" <!-- 0.3 -->\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 120.711475)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",
|
|
" </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=\"#m6ecf2c81ad\" y=\"76.115885\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_8\">\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 79.915104)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_3\">\n",
|
|
" <g id=\"line2d_8\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"43.78125\" xlink:href=\"#m6ecf2c81ad\" y=\"35.319514\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_9\">\n",
|
|
" <!-- 0.5 -->\n",
|
|
" <g transform=\"translate(20.878125 39.118733)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=\"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(#p7b8015720f)\" d=\"M 52.658523 16.877273 \n",
|
|
"L 58.576705 68.564943 \n",
|
|
"L 64.494886 90.458588 \n",
|
|
"L 70.413068 107.347551 \n",
|
|
"L 76.33125 121.207585 \n",
|
|
"L 82.249432 125.295875 \n",
|
|
"L 88.167614 131.96844 \n",
|
|
"L 94.085795 135.319684 \n",
|
|
"L 100.003977 136.900149 \n",
|
|
"L 105.922159 138.947547 \n",
|
|
"L 111.840341 138.05879 \n",
|
|
"L 117.758523 139.142632 \n",
|
|
"L 123.676705 139.32055 \n",
|
|
"L 129.594886 137.266989 \n",
|
|
"L 135.513068 138.103806 \n",
|
|
"L 141.43125 139.743798 \n",
|
|
"L 147.349432 139.374174 \n",
|
|
"L 153.267614 139.70314 \n",
|
|
"L 159.185795 140.25884 \n",
|
|
"L 165.103977 140.055864 \n",
|
|
"L 171.022159 139.814717 \n",
|
|
"L 176.940341 139.723183 \n",
|
|
"L 182.858523 139.231406 \n",
|
|
"L 188.776705 140.304105 \n",
|
|
"L 194.694886 139.683803 \n",
|
|
"L 200.613068 140.422727 \n",
|
|
"L 206.53125 140.298293 \n",
|
|
"L 212.449432 139.911928 \n",
|
|
"L 218.367614 140.169282 \n",
|
|
"L 224.285795 140.324087 \n",
|
|
"L 230.203977 139.890268 \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=\"p7b8015720f\">\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 0x1173fe1d0>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"d2l.train_pytorch_ch7(torch.optim.RMSprop, {'lr': 0.01, 'alpha': 0.9},\n",
|
|
" 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
|
|
}
|