5499 lines
280 KiB
Plaintext
5499 lines
280 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "8467bf5b-8c23-4084-adb3-a0e0c3b3e7a6",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 目录\n",
|
|
"\n",
|
|
"- 感知机分类器\n",
|
|
"- 逻辑回归分类器\n",
|
|
"- 图像分类数据集\n",
|
|
"- softmax回归的从零开始实现\n",
|
|
"- softmax回归的简洁实现"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "412d121a-f1f9-4150-ad97-39c5b0edc498",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## 感知机分类器"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "13474e54-4e85-4abf-abc0-bead50177068",
|
|
"metadata": {},
|
|
"source": [
|
|
"Perceptron是一个线性分类器。它的工作方式与没有隐藏层的神经网络相同(只有输入和输出)。\n",
|
|
"\n",
|
|
"\n",
|
|
"\n",
|
|
"首先,它对给定的数据集进行权重训练,然后通过网络对一个新项目进行分类。\n",
|
|
"\n",
|
|
"> 注意,在分类问题中,每个节点代表一个类别。最终的分类是具有最大输出值的类/节点。"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "d05ceed2-8d2e-4bc6-ac1c-da2bb67ecb89",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"### 实现\n",
|
|
"\n",
|
|
"`PerceptionLinearLearner` 用于训练(计算)给定数据集的权重。\n",
|
|
"\n",
|
|
"函数`predict`用于对一个新的项目进行分类:该函数计算项目与外层每个节点的计算权重的(代数)点积。然后,它选择一个最大的值,将项目归入相应的类别。"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "c3423455-3a8c-44e5-a9aa-592b7c6e285d",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n",
|
|
" \"http://www.w3.org/TR/html4/strict.dtd\">\n",
|
|
"<!--\n",
|
|
"generated by Pygments <https://pygments.org/>\n",
|
|
"Copyright 2006-2022 by the Pygments team.\n",
|
|
"Licensed under the BSD license, see LICENSE for details.\n",
|
|
"-->\n",
|
|
"<html>\n",
|
|
"<head>\n",
|
|
" <title></title>\n",
|
|
" <meta http-equiv=\"content-type\" content=\"text/html; charset=None\">\n",
|
|
" <style type=\"text/css\">\n",
|
|
"/*\n",
|
|
"generated by Pygments <https://pygments.org/>\n",
|
|
"Copyright 2006-2022 by the Pygments team.\n",
|
|
"Licensed under the BSD license, see LICENSE for details.\n",
|
|
"*/\n",
|
|
"pre { line-height: 125%; }\n",
|
|
"td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n",
|
|
"span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n",
|
|
"td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n",
|
|
"span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n",
|
|
"body .hll { background-color: #ffffcc }\n",
|
|
"body { background: #f8f8f8; }\n",
|
|
"body .c { color: #3D7B7B; font-style: italic } /* Comment */\n",
|
|
"body .err { border: 1px solid #FF0000 } /* Error */\n",
|
|
"body .k { color: #008000; font-weight: bold } /* Keyword */\n",
|
|
"body .o { color: #666666 } /* Operator */\n",
|
|
"body .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n",
|
|
"body .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n",
|
|
"body .cp { color: #9C6500 } /* Comment.Preproc */\n",
|
|
"body .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n",
|
|
"body .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n",
|
|
"body .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n",
|
|
"body .gd { color: #A00000 } /* Generic.Deleted */\n",
|
|
"body .ge { font-style: italic } /* Generic.Emph */\n",
|
|
"body .gr { color: #E40000 } /* Generic.Error */\n",
|
|
"body .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
|
|
"body .gi { color: #008400 } /* Generic.Inserted */\n",
|
|
"body .go { color: #717171 } /* Generic.Output */\n",
|
|
"body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
|
|
"body .gs { font-weight: bold } /* Generic.Strong */\n",
|
|
"body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
|
|
"body .gt { color: #0044DD } /* Generic.Traceback */\n",
|
|
"body .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
|
|
"body .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
|
|
"body .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
|
|
"body .kp { color: #008000 } /* Keyword.Pseudo */\n",
|
|
"body .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
|
|
"body .kt { color: #B00040 } /* Keyword.Type */\n",
|
|
"body .m { color: #666666 } /* Literal.Number */\n",
|
|
"body .s { color: #BA2121 } /* Literal.String */\n",
|
|
"body .na { color: #687822 } /* Name.Attribute */\n",
|
|
"body .nb { color: #008000 } /* Name.Builtin */\n",
|
|
"body .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
|
|
"body .no { color: #880000 } /* Name.Constant */\n",
|
|
"body .nd { color: #AA22FF } /* Name.Decorator */\n",
|
|
"body .ni { color: #717171; font-weight: bold } /* Name.Entity */\n",
|
|
"body .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n",
|
|
"body .nf { color: #0000FF } /* Name.Function */\n",
|
|
"body .nl { color: #767600 } /* Name.Label */\n",
|
|
"body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
|
|
"body .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
|
|
"body .nv { color: #19177C } /* Name.Variable */\n",
|
|
"body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
|
|
"body .w { color: #bbbbbb } /* Text.Whitespace */\n",
|
|
"body .mb { color: #666666 } /* Literal.Number.Bin */\n",
|
|
"body .mf { color: #666666 } /* Literal.Number.Float */\n",
|
|
"body .mh { color: #666666 } /* Literal.Number.Hex */\n",
|
|
"body .mi { color: #666666 } /* Literal.Number.Integer */\n",
|
|
"body .mo { color: #666666 } /* Literal.Number.Oct */\n",
|
|
"body .sa { color: #BA2121 } /* Literal.String.Affix */\n",
|
|
"body .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
|
|
"body .sc { color: #BA2121 } /* Literal.String.Char */\n",
|
|
"body .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
|
|
"body .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
|
|
"body .s2 { color: #BA2121 } /* Literal.String.Double */\n",
|
|
"body .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n",
|
|
"body .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
|
|
"body .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n",
|
|
"body .sx { color: #008000 } /* Literal.String.Other */\n",
|
|
"body .sr { color: #A45A77 } /* Literal.String.Regex */\n",
|
|
"body .s1 { color: #BA2121 } /* Literal.String.Single */\n",
|
|
"body .ss { color: #19177C } /* Literal.String.Symbol */\n",
|
|
"body .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
|
|
"body .fm { color: #0000FF } /* Name.Function.Magic */\n",
|
|
"body .vc { color: #19177C } /* Name.Variable.Class */\n",
|
|
"body .vg { color: #19177C } /* Name.Variable.Global */\n",
|
|
"body .vi { color: #19177C } /* Name.Variable.Instance */\n",
|
|
"body .vm { color: #19177C } /* Name.Variable.Magic */\n",
|
|
"body .il { color: #666666 } /* Literal.Number.Integer.Long */\n",
|
|
"\n",
|
|
" </style>\n",
|
|
"</head>\n",
|
|
"<body>\n",
|
|
"<h2></h2>\n",
|
|
"\n",
|
|
"<div class=\"highlight\"><pre><span></span><span class=\"k\">class</span> <span class=\"nc\">PerceptionLinearLearner</span><span class=\"p\">(</span><span class=\"n\">LinearClassifier</span><span class=\"p\">):</span>\n",
|
|
"<span class=\"w\"> </span><span class=\"sd\">"""</span>\n",
|
|
"<span class=\"sd\"> Perception linear classifier: hard threshold</span>\n",
|
|
"<span class=\"sd\"> """</span>\n",
|
|
" <span class=\"k\">def</span> <span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">dataset</span><span class=\"p\">,</span> <span class=\"n\">learning_rate</span><span class=\"o\">=</span><span class=\"mf\">0.01</span><span class=\"p\">,</span> <span class=\"n\">epochs</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">):</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">idx_i</span> <span class=\"o\">=</span> <span class=\"n\">dataset</span><span class=\"o\">.</span><span class=\"n\">inputs</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">idx_t</span> <span class=\"o\">=</span> <span class=\"n\">dataset</span><span class=\"o\">.</span><span class=\"n\">target</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">examples</span> <span class=\"o\">=</span> <span class=\"n\">dataset</span><span class=\"o\">.</span><span class=\"n\">examples</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">num_examples</span> <span class=\"o\">=</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">examples</span><span class=\"p\">)</span>\n",
|
|
" <span class=\"c1\"># initialize random weights</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">w</span> <span class=\"o\">=</span> <span class=\"n\">random_weights</span><span class=\"p\">(</span><span class=\"n\">min_value</span><span class=\"o\">=-</span><span class=\"mf\">0.5</span><span class=\"p\">,</span> <span class=\"n\">max_value</span><span class=\"o\">=</span><span class=\"mf\">0.5</span><span class=\"p\">,</span> <span class=\"n\">num_weights</span><span class=\"o\">=</span><span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">idx_i</span><span class=\"p\">)</span> <span class=\"o\">+</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n",
|
|
" <span class=\"c1\"># learning loop</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">learn</span><span class=\"p\">(</span><span class=\"n\">learning_rate</span><span class=\"p\">,</span> <span class=\"n\">epochs</span><span class=\"p\">)</span>\n",
|
|
" \n",
|
|
" <span class=\"k\">def</span> <span class=\"nf\">learn</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">learning_rate</span><span class=\"p\">,</span> <span class=\"n\">epochs</span><span class=\"p\">):</span>\n",
|
|
"<span class=\"w\"> </span><span class=\"sd\">""" learning loop """</span>\n",
|
|
" <span class=\"k\">def</span> <span class=\"nf\">loss</span><span class=\"p\">(</span><span class=\"n\">example</span><span class=\"p\">,</span> <span class=\"n\">w</span><span class=\"p\">,</span> <span class=\"n\">idx_i</span><span class=\"p\">,</span> <span class=\"n\">idx_t</span><span class=\"p\">):</span>\n",
|
|
"<span class=\"w\"> </span><span class=\"sd\">""" error: difference between estimation and true value """</span>\n",
|
|
" <span class=\"k\">raise</span> <span class=\"ne\">NotImplementedError</span>\n",
|
|
" \n",
|
|
" <span class=\"k\">def</span> <span class=\"nf\">update</span><span class=\"p\">(</span><span class=\"n\">w</span><span class=\"p\">,</span> <span class=\"n\">learning_rate</span><span class=\"p\">,</span> <span class=\"n\">err</span><span class=\"p\">,</span> <span class=\"n\">X_col</span><span class=\"p\">,</span> <span class=\"n\">num_examples</span><span class=\"p\">):</span>\n",
|
|
"<span class=\"w\"> </span><span class=\"sd\">""" update weights """</span>\n",
|
|
" <span class=\"k\">raise</span> <span class=\"ne\">NotImplementedError</span>\n",
|
|
"\n",
|
|
" <span class=\"k\">def</span> <span class=\"nf\">homogeneous</span><span class=\"p\">(</span><span class=\"n\">num_examples</span><span class=\"p\">):</span>\n",
|
|
"<span class=\"w\"> </span><span class=\"sd\">""" build homogeneous coordinates """</span>\n",
|
|
" <span class=\"k\">raise</span> <span class=\"ne\">NotImplementedError</span>\n",
|
|
"\n",
|
|
" <span class=\"k\">raise</span> <span class=\"ne\">NotImplementedError</span>\n",
|
|
"\n",
|
|
" <span class=\"k\">def</span> <span class=\"nf\">predict</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">x</span><span class=\"p\">):</span>\n",
|
|
"<span class=\"w\"> </span><span class=\"sd\">""" make prediction """</span>\n",
|
|
" <span class=\"k\">return</span> <span class=\"nb\">int</span><span class=\"p\">(</span><span class=\"n\">np</span><span class=\"o\">.</span><span class=\"n\">dot</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">w</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">]</span> <span class=\"o\">+</span> <span class=\"n\">x</span><span class=\"p\">))</span>\n",
|
|
"</pre></div>\n",
|
|
"</body>\n",
|
|
"</html>\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"import sys\n",
|
|
"sys.path.insert(1, '../')\n",
|
|
"from utils.dataset4learners import *\n",
|
|
"from LinearClassifier_3 import *\n",
|
|
"\n",
|
|
"psource(PerceptionLinearLearner)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "8c4fac32-dfa4-46d4-a2c4-8e5724f1def3",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### 实现要点\n",
|
|
"\n",
|
|
"```py\n",
|
|
"def learn(self, learning_rate, epochs):\n",
|
|
" \"\"\" learning loop \"\"\"\n",
|
|
" def loss(example, w, idx_i, idx_t):\n",
|
|
" \"\"\" error: difference between estimation and true value \"\"\"\n",
|
|
" x = example的齐次坐标表示\n",
|
|
" y = w * x,即预测值\n",
|
|
" t = 真实值\n",
|
|
" return y - t\n",
|
|
"\n",
|
|
" def update(w, learning_rate, err, X_col, num_examples):\n",
|
|
" \"\"\" update weights \"\"\"\n",
|
|
" 遍历w[i]:\n",
|
|
" w[i] = w[i] - 学习率 * 误差值 * 自变量X[i] / 样本数量)\n",
|
|
"\n",
|
|
" def homogeneous(num_examples):\n",
|
|
" \"\"\" build homogeneous coordinates \"\"\"\n",
|
|
" return 齐次坐标表示\n",
|
|
"\n",
|
|
" X_col = 齐次坐标表示\n",
|
|
" for epoch in range(epochs):\n",
|
|
" err = []\n",
|
|
" # pass over all examples\n",
|
|
" for example in self.examples:\n",
|
|
" err.append(loss(example, w, idx_i, idx_t))\n",
|
|
"\n",
|
|
" # update weights\n",
|
|
" update(w, 学习率, err, X_col, 样本数量)\n",
|
|
"```"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "d8f78b41-5136-4563-8359-67c1dae52642",
|
|
"metadata": {},
|
|
"source": [
|
|
"> 注意,Perceptron是一个单层的神经网络,在后面课程中讲授。"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "ca1d7196-b054-4718-9402-c0a377fc53a6",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 例子\n",
|
|
"\n",
|
|
"我们将在`iris`数据集上训练感知机。\n",
|
|
"\n",
|
|
"尽管`BackPropagationLearner`使用的是整数索引而不是字符串,我们需要将类名转换成整数。"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c37147ed-40e7-4b05-83e3-5c4db4c0a039",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"```py\n",
|
|
"iris = DataSet(name=\"iris\")\n",
|
|
"iris.classes_to_numbers()\n",
|
|
"\n",
|
|
"perceptron = PerceptionLinearLearner(iris)\n",
|
|
"print(perceptron.predict([5, 3, 1, 0.1]))\n",
|
|
"```"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "debca21b-5262-49ac-8502-8e692e9d26af",
|
|
"metadata": {},
|
|
"source": [
|
|
"正确的输出是0,这意味着该物品属于第一类,\"setosa\"。注意Perceptron算法并不完美,可能会产生错误的分类。"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c6ab0a90-bf04-497b-9795-31e62155054d",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## 逻辑回归分类器"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "55e14e99-4e16-4ef2-a652-43a51364c144",
|
|
"metadata": {},
|
|
"source": [
|
|
"逻辑回归将感知机采用的硬性阈值函数改为柔性阈值,可以更好地对分界区域的不确定性建模。\n",
|
|
"\n",
|
|
"### 实现\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "360a50d6-647e-4e48-8b66-5feb22db7dd0",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n",
|
|
" \"http://www.w3.org/TR/html4/strict.dtd\">\n",
|
|
"<!--\n",
|
|
"generated by Pygments <https://pygments.org/>\n",
|
|
"Copyright 2006-2022 by the Pygments team.\n",
|
|
"Licensed under the BSD license, see LICENSE for details.\n",
|
|
"-->\n",
|
|
"<html>\n",
|
|
"<head>\n",
|
|
" <title></title>\n",
|
|
" <meta http-equiv=\"content-type\" content=\"text/html; charset=None\">\n",
|
|
" <style type=\"text/css\">\n",
|
|
"/*\n",
|
|
"generated by Pygments <https://pygments.org/>\n",
|
|
"Copyright 2006-2022 by the Pygments team.\n",
|
|
"Licensed under the BSD license, see LICENSE for details.\n",
|
|
"*/\n",
|
|
"pre { line-height: 125%; }\n",
|
|
"td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n",
|
|
"span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n",
|
|
"td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n",
|
|
"span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n",
|
|
"body .hll { background-color: #ffffcc }\n",
|
|
"body { background: #f8f8f8; }\n",
|
|
"body .c { color: #3D7B7B; font-style: italic } /* Comment */\n",
|
|
"body .err { border: 1px solid #FF0000 } /* Error */\n",
|
|
"body .k { color: #008000; font-weight: bold } /* Keyword */\n",
|
|
"body .o { color: #666666 } /* Operator */\n",
|
|
"body .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n",
|
|
"body .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n",
|
|
"body .cp { color: #9C6500 } /* Comment.Preproc */\n",
|
|
"body .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n",
|
|
"body .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n",
|
|
"body .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n",
|
|
"body .gd { color: #A00000 } /* Generic.Deleted */\n",
|
|
"body .ge { font-style: italic } /* Generic.Emph */\n",
|
|
"body .gr { color: #E40000 } /* Generic.Error */\n",
|
|
"body .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
|
|
"body .gi { color: #008400 } /* Generic.Inserted */\n",
|
|
"body .go { color: #717171 } /* Generic.Output */\n",
|
|
"body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
|
|
"body .gs { font-weight: bold } /* Generic.Strong */\n",
|
|
"body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
|
|
"body .gt { color: #0044DD } /* Generic.Traceback */\n",
|
|
"body .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
|
|
"body .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
|
|
"body .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
|
|
"body .kp { color: #008000 } /* Keyword.Pseudo */\n",
|
|
"body .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
|
|
"body .kt { color: #B00040 } /* Keyword.Type */\n",
|
|
"body .m { color: #666666 } /* Literal.Number */\n",
|
|
"body .s { color: #BA2121 } /* Literal.String */\n",
|
|
"body .na { color: #687822 } /* Name.Attribute */\n",
|
|
"body .nb { color: #008000 } /* Name.Builtin */\n",
|
|
"body .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
|
|
"body .no { color: #880000 } /* Name.Constant */\n",
|
|
"body .nd { color: #AA22FF } /* Name.Decorator */\n",
|
|
"body .ni { color: #717171; font-weight: bold } /* Name.Entity */\n",
|
|
"body .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n",
|
|
"body .nf { color: #0000FF } /* Name.Function */\n",
|
|
"body .nl { color: #767600 } /* Name.Label */\n",
|
|
"body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
|
|
"body .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
|
|
"body .nv { color: #19177C } /* Name.Variable */\n",
|
|
"body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
|
|
"body .w { color: #bbbbbb } /* Text.Whitespace */\n",
|
|
"body .mb { color: #666666 } /* Literal.Number.Bin */\n",
|
|
"body .mf { color: #666666 } /* Literal.Number.Float */\n",
|
|
"body .mh { color: #666666 } /* Literal.Number.Hex */\n",
|
|
"body .mi { color: #666666 } /* Literal.Number.Integer */\n",
|
|
"body .mo { color: #666666 } /* Literal.Number.Oct */\n",
|
|
"body .sa { color: #BA2121 } /* Literal.String.Affix */\n",
|
|
"body .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
|
|
"body .sc { color: #BA2121 } /* Literal.String.Char */\n",
|
|
"body .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
|
|
"body .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
|
|
"body .s2 { color: #BA2121 } /* Literal.String.Double */\n",
|
|
"body .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n",
|
|
"body .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
|
|
"body .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n",
|
|
"body .sx { color: #008000 } /* Literal.String.Other */\n",
|
|
"body .sr { color: #A45A77 } /* Literal.String.Regex */\n",
|
|
"body .s1 { color: #BA2121 } /* Literal.String.Single */\n",
|
|
"body .ss { color: #19177C } /* Literal.String.Symbol */\n",
|
|
"body .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
|
|
"body .fm { color: #0000FF } /* Name.Function.Magic */\n",
|
|
"body .vc { color: #19177C } /* Name.Variable.Class */\n",
|
|
"body .vg { color: #19177C } /* Name.Variable.Global */\n",
|
|
"body .vi { color: #19177C } /* Name.Variable.Instance */\n",
|
|
"body .vm { color: #19177C } /* Name.Variable.Magic */\n",
|
|
"body .il { color: #666666 } /* Literal.Number.Integer.Long */\n",
|
|
"\n",
|
|
" </style>\n",
|
|
"</head>\n",
|
|
"<body>\n",
|
|
"<h2></h2>\n",
|
|
"\n",
|
|
"<div class=\"highlight\"><pre><span></span><span class=\"k\">class</span> <span class=\"nc\">LogisticLinearLeaner</span><span class=\"p\">(</span><span class=\"n\">LinearClassifier</span><span class=\"p\">):</span>\n",
|
|
" <span class=\"k\">def</span> <span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">dataset</span><span class=\"p\">,</span> <span class=\"n\">learning_rate</span><span class=\"o\">=</span><span class=\"mf\">0.01</span><span class=\"p\">,</span> <span class=\"n\">epochs</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">):</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">idx_i</span> <span class=\"o\">=</span> <span class=\"n\">dataset</span><span class=\"o\">.</span><span class=\"n\">inputs</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">idx_t</span> <span class=\"o\">=</span> <span class=\"n\">dataset</span><span class=\"o\">.</span><span class=\"n\">target</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">examples</span> <span class=\"o\">=</span> <span class=\"n\">dataset</span><span class=\"o\">.</span><span class=\"n\">examples</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">num_examples</span> <span class=\"o\">=</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">examples</span><span class=\"p\">)</span>\n",
|
|
" <span class=\"c1\"># initialize random weights</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">w</span> <span class=\"o\">=</span> <span class=\"n\">random_weights</span><span class=\"p\">(</span><span class=\"n\">min_value</span><span class=\"o\">=-</span><span class=\"mf\">0.5</span><span class=\"p\">,</span> <span class=\"n\">max_value</span><span class=\"o\">=</span><span class=\"mf\">0.5</span><span class=\"p\">,</span> <span class=\"n\">num_weights</span><span class=\"o\">=</span><span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">idx_i</span><span class=\"p\">)</span> <span class=\"o\">+</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n",
|
|
" <span class=\"c1\"># learning loop</span>\n",
|
|
" <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">learn</span><span class=\"p\">(</span><span class=\"n\">learning_rate</span><span class=\"p\">,</span> <span class=\"n\">epochs</span><span class=\"p\">)</span>\n",
|
|
" \n",
|
|
" <span class=\"k\">def</span> <span class=\"nf\">learn</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">learning_rate</span><span class=\"p\">,</span> <span class=\"n\">epochs</span><span class=\"p\">):</span>\n",
|
|
"<span class=\"w\"> </span><span class=\"sd\">""" learning loop """</span>\n",
|
|
" <span class=\"k\">def</span> <span class=\"nf\">loss</span><span class=\"p\">(</span><span class=\"n\">example</span><span class=\"p\">,</span> <span class=\"n\">w</span><span class=\"p\">,</span> <span class=\"n\">idx_i</span><span class=\"p\">,</span> <span class=\"n\">idx_t</span><span class=\"p\">,</span> <span class=\"n\">h</span><span class=\"p\">):</span>\n",
|
|
"<span class=\"w\"> </span><span class=\"sd\">""" error: difference between estimation and true value """</span>\n",
|
|
" <span class=\"k\">raise</span> <span class=\"ne\">NotImplementedError</span>\n",
|
|
" \n",
|
|
" <span class=\"k\">def</span> <span class=\"nf\">update</span><span class=\"p\">(</span><span class=\"n\">w</span><span class=\"p\">,</span> <span class=\"n\">learning_rate</span><span class=\"p\">,</span> <span class=\"n\">err</span><span class=\"p\">,</span> <span class=\"n\">h</span><span class=\"p\">,</span> <span class=\"n\">X_col</span><span class=\"p\">,</span> <span class=\"n\">num_examples</span><span class=\"p\">):</span>\n",
|
|
"<span class=\"w\"> </span><span class=\"sd\">""" update weights """</span>\n",
|
|
" <span class=\"k\">raise</span> <span class=\"ne\">NotImplementedError</span>\n",
|
|
"\n",
|
|
" <span class=\"k\">def</span> <span class=\"nf\">homogeneous</span><span class=\"p\">(</span><span class=\"n\">num_examples</span><span class=\"p\">):</span>\n",
|
|
"<span class=\"w\"> </span><span class=\"sd\">""" build homogeneous coordinates """</span>\n",
|
|
" <span class=\"k\">raise</span> <span class=\"ne\">NotImplementedError</span>\n",
|
|
"\n",
|
|
" <span class=\"k\">raise</span> <span class=\"ne\">NotImplementedError</span>\n",
|
|
"\n",
|
|
" <span class=\"k\">def</span> <span class=\"nf\">predict</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">x</span><span class=\"p\">):</span>\n",
|
|
"<span class=\"w\"> </span><span class=\"sd\">""" make prediction """</span>\n",
|
|
" <span class=\"k\">return</span> <span class=\"nb\">int</span><span class=\"p\">(</span><span class=\"n\">np</span><span class=\"o\">.</span><span class=\"n\">dot</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">w</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">]</span> <span class=\"o\">+</span> <span class=\"n\">x</span><span class=\"p\">))</span>\n",
|
|
"</pre></div>\n",
|
|
"</body>\n",
|
|
"</html>\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"psource(LogisticLinearLeaner)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "64d23b34-7203-4abe-bb3b-b3e65f192d62",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### 实现要点\n",
|
|
"\n",
|
|
"```py\n",
|
|
"def learn(self, learning_rate, epochs):\n",
|
|
" \"\"\" learning loop \"\"\"\n",
|
|
" def loss(example, w, idx_i, idx_t, h):\n",
|
|
" \"\"\" error: difference between estimation and true value \"\"\"\n",
|
|
" x = example的齐次坐标表示\n",
|
|
" y = Sigmoid(w * x),即预测值\n",
|
|
" h.append(Sigmoid().derivative(y)):收集梯度值\n",
|
|
" t = 真实值\n",
|
|
" return y - t\n",
|
|
"\n",
|
|
" def update(w, learning_rate, err, h, X_col, num_examples):\n",
|
|
" \"\"\" update weights \"\"\"\n",
|
|
" 遍历w[i]:\n",
|
|
" w[i] = w[i] - 学习率 * 误差值err[i] * 梯度值h[i] / 样本数量)\n",
|
|
"\n",
|
|
" def homogeneous(num_examples):\n",
|
|
" \"\"\" build homogeneous coordinates \"\"\"\n",
|
|
" 同感知机\n",
|
|
"\n",
|
|
" 同感知机\n",
|
|
"```"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "34dde5da-d093-4021-ae8b-7a38cd5b11dc",
|
|
"metadata": {},
|
|
"source": [
|
|
"该算法首先为输入变量分配一些随机权重,然后根据计算的误差更新每个变量的权重。最后用更新后的权重进行预测。"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2b3f1358-fe11-4499-8fc1-f8a7fb6ef826",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"```py\n",
|
|
"iris = DataSet(name=\"iris\")\n",
|
|
"iris.classes_to_numbers()\n",
|
|
"\n",
|
|
"logisticer = LogisticLinearLeaner(iris)\n",
|
|
"print(logisticer.predict([5, 3, 1, 0.1]))\n",
|
|
"```"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b0e066c5-554b-4286-ae5f-1f71dd7b95a8",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "-"
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## 图像分类数据集"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "19b612e3-6ede-4ffa-a9dd-14a0480a2c8f",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "-"
|
|
}
|
|
},
|
|
"source": [
|
|
"MNIST数据集是图像分类中广泛使用的数据集之一,但作为基准数据集过于简单。\n",
|
|
"\n",
|
|
"我们将使用类似但更复杂的Fashion-MNIST数据集"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "451140a0-6c93-45e0-8e19-8ffb51099e77",
|
|
"metadata": {
|
|
"origin_pos": 2,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"%matplotlib inline\n",
|
|
"import torch\n",
|
|
"import torchvision\n",
|
|
"from torch.utils import data\n",
|
|
"from torchvision import transforms\n",
|
|
"from d2l import torch as d2l\n",
|
|
"\n",
|
|
"d2l.use_svg_display()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b5386450-4cdd-4c05-9524-25505b67f22c",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"通过框架中的内置函数将Fashion-MNIST数据集下载并读取到内存中"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"id": "af7b66a6-a2ca-4ec3-981e-8acaf5880cbe",
|
|
"metadata": {
|
|
"origin_pos": 9,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz\n",
|
|
"Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz to ../data/FashionMNIST/raw/train-images-idx3-ubyte.gz\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"100.0%\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Extracting ../data/FashionMNIST/raw/train-images-idx3-ubyte.gz to ../data/FashionMNIST/raw\n",
|
|
"\n",
|
|
"Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz\n",
|
|
"Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz to ../data/FashionMNIST/raw/train-labels-idx1-ubyte.gz\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"100.0%\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Extracting ../data/FashionMNIST/raw/train-labels-idx1-ubyte.gz to ../data/FashionMNIST/raw\n",
|
|
"\n",
|
|
"Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz\n",
|
|
"Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz to ../data/FashionMNIST/raw/t10k-images-idx3-ubyte.gz\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"100.0%\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Extracting ../data/FashionMNIST/raw/t10k-images-idx3-ubyte.gz to ../data/FashionMNIST/raw\n",
|
|
"\n",
|
|
"Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz\n",
|
|
"Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz to ../data/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"100.0%\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Extracting ../data/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz to ../data/FashionMNIST/raw\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(60000, 10000)"
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# 通过ToTensor实例将图像数据从PIL类型变换成32位浮点数格式,\n",
|
|
"# 并除以255使得所有像素的数值均在0到1之间\n",
|
|
"trans = transforms.ToTensor()\n",
|
|
"mnist_train = torchvision.datasets.FashionMNIST(\n",
|
|
" root=\"../data\", train=True, transform=trans, download=True)\n",
|
|
"mnist_test = torchvision.datasets.FashionMNIST(\n",
|
|
" root=\"../data\", train=False, transform=trans, download=True)\n",
|
|
"\n",
|
|
"len(mnist_train), len(mnist_test)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"id": "e5de50d6-1fe0-407d-87a9-8eec3c6c475d",
|
|
"metadata": {
|
|
"origin_pos": 12,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"torch.Size([1, 28, 28])"
|
|
]
|
|
},
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"mnist_train[0][0].shape"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "87d0348b-ec5d-4299-9d8c-08987de460f1",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"两个可视化数据集的函数"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"id": "0557638e-71b8-40ce-95e6-5d61038f1ffc",
|
|
"metadata": {
|
|
"origin_pos": 17,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def get_fashion_mnist_labels(labels): \n",
|
|
" \"\"\"返回Fashion-MNIST数据集的文本标签\"\"\"\n",
|
|
" text_labels = ['t-shirt', 'trouser', 'pullover', 'dress', 'coat',\n",
|
|
" 'sandal', 'shirt', 'sneaker', 'bag', 'ankle boot']\n",
|
|
" return [text_labels[int(i)] for i in labels]\n",
|
|
"\n",
|
|
"def show_images(imgs, num_rows, num_cols, titles=None, scale=1.5): \n",
|
|
" \"\"\"绘制图像列表\"\"\"\n",
|
|
" figsize = (num_cols * scale, num_rows * scale)\n",
|
|
" _, axes = d2l.plt.subplots(num_rows, num_cols, figsize=figsize)\n",
|
|
" axes = axes.flatten()\n",
|
|
" for i, (ax, img) in enumerate(zip(axes, imgs)):\n",
|
|
" if torch.is_tensor(img):\n",
|
|
" ax.imshow(img.numpy()) # 图片张量\n",
|
|
" else:\n",
|
|
" ax.imshow(img) # PIL图片\n",
|
|
" ax.axes.get_xaxis().set_visible(False)\n",
|
|
" ax.axes.get_yaxis().set_visible(False)\n",
|
|
" if titles:\n",
|
|
" ax.set_title(titles[i])\n",
|
|
" return axes"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "0c9255c0-c447-4232-a1e8-9cbdd63f2a62",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"几个样本的图像及其相应的标签"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"id": "6bd5a31f-a289-4ab2-9ee5-bbe8322ac216",
|
|
"metadata": {
|
|
"origin_pos": 20,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"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",
|
|
"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"771.2pt\" height=\"194.804163pt\" viewBox=\"0 0 771.2 194.804163\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
|
|
" <metadata>\n",
|
|
" <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
|
|
" <cc:Work>\n",
|
|
" <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
|
|
" <dc:date>2023-02-26T14:13:22.029419</dc:date>\n",
|
|
" <dc:format>image/svg+xml</dc:format>\n",
|
|
" <dc:creator>\n",
|
|
" <cc:Agent>\n",
|
|
" <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
|
|
" </cc:Agent>\n",
|
|
" </dc:creator>\n",
|
|
" </cc:Work>\n",
|
|
" </rdf:RDF>\n",
|
|
" </metadata>\n",
|
|
" <defs>\n",
|
|
" <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
|
|
" </defs>\n",
|
|
" <g id=\"figure_1\">\n",
|
|
" <g id=\"patch_1\">\n",
|
|
" <path d=\"M 0 194.804163 \n",
|
|
"L 771.2 194.804163 \n",
|
|
"L 771.2 0 \n",
|
|
"L 0 0 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_1\">\n",
|
|
" <g id=\"patch_2\">\n",
|
|
" <path d=\"M 10.7 93.384163 \n",
|
|
"L 81.766038 93.384163 \n",
|
|
"L 81.766038 22.318125 \n",
|
|
"L 10.7 22.318125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pef1c58d2f6)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image7275a4812d\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"10.7\" y=\"-22.104163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_3\">\n",
|
|
" <path d=\"M 10.7 93.384163 \n",
|
|
"L 10.7 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_4\">\n",
|
|
" <path d=\"M 81.766038 93.384163 \n",
|
|
"L 81.766038 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_5\">\n",
|
|
" <path d=\"M 10.7 93.384163 \n",
|
|
"L 81.766038 93.384163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_6\">\n",
|
|
" <path d=\"M 10.7 22.318125 \n",
|
|
"L 81.766038 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_1\">\n",
|
|
" <!-- ankle boot -->\n",
|
|
" <g transform=\"translate(14.509894 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-61\" d=\"M 2194 1759 \n",
|
|
"Q 1497 1759 1228 1600 \n",
|
|
"Q 959 1441 959 1056 \n",
|
|
"Q 959 750 1161 570 \n",
|
|
"Q 1363 391 1709 391 \n",
|
|
"Q 2188 391 2477 730 \n",
|
|
"Q 2766 1069 2766 1631 \n",
|
|
"L 2766 1759 \n",
|
|
"L 2194 1759 \n",
|
|
"z\n",
|
|
"M 3341 1997 \n",
|
|
"L 3341 0 \n",
|
|
"L 2766 0 \n",
|
|
"L 2766 531 \n",
|
|
"Q 2569 213 2275 61 \n",
|
|
"Q 1981 -91 1556 -91 \n",
|
|
"Q 1019 -91 701 211 \n",
|
|
"Q 384 513 384 1019 \n",
|
|
"Q 384 1609 779 1909 \n",
|
|
"Q 1175 2209 1959 2209 \n",
|
|
"L 2766 2209 \n",
|
|
"L 2766 2266 \n",
|
|
"Q 2766 2663 2505 2880 \n",
|
|
"Q 2244 3097 1772 3097 \n",
|
|
"Q 1472 3097 1187 3025 \n",
|
|
"Q 903 2953 641 2809 \n",
|
|
"L 641 3341 \n",
|
|
"Q 956 3463 1253 3523 \n",
|
|
"Q 1550 3584 1831 3584 \n",
|
|
"Q 2591 3584 2966 3190 \n",
|
|
"Q 3341 2797 3341 1997 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6e\" d=\"M 3513 2113 \n",
|
|
"L 3513 0 \n",
|
|
"L 2938 0 \n",
|
|
"L 2938 2094 \n",
|
|
"Q 2938 2591 2744 2837 \n",
|
|
"Q 2550 3084 2163 3084 \n",
|
|
"Q 1697 3084 1428 2787 \n",
|
|
"Q 1159 2491 1159 1978 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1366 3272 1645 3428 \n",
|
|
"Q 1925 3584 2291 3584 \n",
|
|
"Q 2894 3584 3203 3211 \n",
|
|
"Q 3513 2838 3513 2113 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6b\" d=\"M 581 4863 \n",
|
|
"L 1159 4863 \n",
|
|
"L 1159 1991 \n",
|
|
"L 2875 3500 \n",
|
|
"L 3609 3500 \n",
|
|
"L 1753 1863 \n",
|
|
"L 3688 0 \n",
|
|
"L 2938 0 \n",
|
|
"L 1159 1709 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 4863 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
|
|
"L 1178 4863 \n",
|
|
"L 1178 0 \n",
|
|
"L 603 0 \n",
|
|
"L 603 4863 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-65\" d=\"M 3597 1894 \n",
|
|
"L 3597 1613 \n",
|
|
"L 953 1613 \n",
|
|
"Q 991 1019 1311 708 \n",
|
|
"Q 1631 397 2203 397 \n",
|
|
"Q 2534 397 2845 478 \n",
|
|
"Q 3156 559 3463 722 \n",
|
|
"L 3463 178 \n",
|
|
"Q 3153 47 2828 -22 \n",
|
|
"Q 2503 -91 2169 -91 \n",
|
|
"Q 1331 -91 842 396 \n",
|
|
"Q 353 884 353 1716 \n",
|
|
"Q 353 2575 817 3079 \n",
|
|
"Q 1281 3584 2069 3584 \n",
|
|
"Q 2775 3584 3186 3129 \n",
|
|
"Q 3597 2675 3597 1894 \n",
|
|
"z\n",
|
|
"M 3022 2063 \n",
|
|
"Q 3016 2534 2758 2815 \n",
|
|
"Q 2500 3097 2075 3097 \n",
|
|
"Q 1594 3097 1305 2825 \n",
|
|
"Q 1016 2553 972 2059 \n",
|
|
"L 3022 2063 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-20\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-62\" d=\"M 3116 1747 \n",
|
|
"Q 3116 2381 2855 2742 \n",
|
|
"Q 2594 3103 2138 3103 \n",
|
|
"Q 1681 3103 1420 2742 \n",
|
|
"Q 1159 2381 1159 1747 \n",
|
|
"Q 1159 1113 1420 752 \n",
|
|
"Q 1681 391 2138 391 \n",
|
|
"Q 2594 391 2855 752 \n",
|
|
"Q 3116 1113 3116 1747 \n",
|
|
"z\n",
|
|
"M 1159 2969 \n",
|
|
"Q 1341 3281 1617 3432 \n",
|
|
"Q 1894 3584 2278 3584 \n",
|
|
"Q 2916 3584 3314 3078 \n",
|
|
"Q 3713 2572 3713 1747 \n",
|
|
"Q 3713 922 3314 415 \n",
|
|
"Q 2916 -91 2278 -91 \n",
|
|
"Q 1894 -91 1617 61 \n",
|
|
"Q 1341 213 1159 525 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 4863 \n",
|
|
"L 1159 4863 \n",
|
|
"L 1159 2969 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6f\" d=\"M 1959 3097 \n",
|
|
"Q 1497 3097 1228 2736 \n",
|
|
"Q 959 2375 959 1747 \n",
|
|
"Q 959 1119 1226 758 \n",
|
|
"Q 1494 397 1959 397 \n",
|
|
"Q 2419 397 2687 759 \n",
|
|
"Q 2956 1122 2956 1747 \n",
|
|
"Q 2956 2369 2687 2733 \n",
|
|
"Q 2419 3097 1959 3097 \n",
|
|
"z\n",
|
|
"M 1959 3584 \n",
|
|
"Q 2709 3584 3137 3096 \n",
|
|
"Q 3566 2609 3566 1747 \n",
|
|
"Q 3566 888 3137 398 \n",
|
|
"Q 2709 -91 1959 -91 \n",
|
|
"Q 1206 -91 779 398 \n",
|
|
"Q 353 888 353 1747 \n",
|
|
"Q 353 2609 779 3096 \n",
|
|
"Q 1206 3584 1959 3584 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-74\" d=\"M 1172 4494 \n",
|
|
"L 1172 3500 \n",
|
|
"L 2356 3500 \n",
|
|
"L 2356 3053 \n",
|
|
"L 1172 3053 \n",
|
|
"L 1172 1153 \n",
|
|
"Q 1172 725 1289 603 \n",
|
|
"Q 1406 481 1766 481 \n",
|
|
"L 2356 481 \n",
|
|
"L 2356 0 \n",
|
|
"L 1766 0 \n",
|
|
"Q 1100 0 847 248 \n",
|
|
"Q 594 497 594 1153 \n",
|
|
"L 594 3053 \n",
|
|
"L 172 3053 \n",
|
|
"L 172 3500 \n",
|
|
"L 594 3500 \n",
|
|
"L 594 4494 \n",
|
|
"L 1172 4494 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"61.279297\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6b\" x=\"124.658203\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"182.568359\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"210.351562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-20\" x=\"271.875\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-62\" x=\"303.662109\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"367.138672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"428.320312\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"489.501953\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_2\">\n",
|
|
" <g id=\"patch_7\">\n",
|
|
" <path d=\"M 95.979245 93.384163 \n",
|
|
"L 167.045283 93.384163 \n",
|
|
"L 167.045283 22.318125 \n",
|
|
"L 95.979245 22.318125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pf787c6d293)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"iVBORw0KGgoAAAANSUhEUgAAAGMAAABjCAYAAACPO76VAAAId0lEQVR4nO2dXWxUVRCAz713/7qlv/QPSwEFKoaKRkNLMPxo9IWoQEKCP9E3jZD4gA+amJiG+OADQZ8x/hFilAd9wYAaRYhBiBUQESsktDX8lra0pe3+772+nTMzzb3srstmDPM9zc3s7r3b6ZmZM2fOWetJa4unyoFlGdnz/8gLe1bit0VdczEZRjov7CpfbCM60zbWeRa+tszzWDnLT6XsLH5bps4om3/D76vfd9z/2UrEvv1LhEohxmCEGIMRobJ9UkCcgPR0XUTXm5pOa3ksPwfpVlYNaDmicPwIW+a6zs4X/JgJEk9iIGgcmH4A6drD41p+Z8GzSFe/D1zYDr6JW/jzQGRkMEKMwYjyuakCuTRVj6/rGrU8nq1GuqFUt5azHnYFc5y0lmMkJ6WvzXvmfy7t4q8cdzJaHstgNzkaqdFyYrBW+VKiW6LIyGCEGIMRYgxGlC9mFFgOebTpkq8O+m+llLKV+RwaB2CciNv4fXmF01cXxIyEG0G6KPicMYVjhgPSZytPSiwQi+gKTPMpMjIYIcZgRMVTW0oWpJrQLc16HXFTjmdcCHVLlCC9A+7pBrzOKk/2GoiMDEaIMRghxmBExau2taEUug7y0zCGhInThiWOmIXLIVNurKBnUUopG6SveVLRhWmvFbDoqCy60ihV2/89YgxGVHwGTkm5pgnBIb4gauV8dTTVhaRd3NgA3Q1Nn+HsPOeSWT64v6S2dxliDEaIMRhR8XII9fUuSCdp1RbGCTcgRmQ9/DVg2kuhsQeWSmwLx5O4bVYTQ4ngkks5kJHBCDEGIyrupuhMOu35P0KQu4HMcn1Bs3ripmBqS3XV0E3hwgHCsvH9vKDZegAyMhghxmCEGIMRFY8ZTeEpdD2QbAa6aaSDpRLaqAbjSYqUP2hcgqt5U3lc0YXxJWrnlB+RifJsYwlCRgYjxBiMKGPVFtg1YHGFLgRBJnNV6Bq6DZrmQvcSlMoqhWfZ1IWNgf7eKgc/G0x1nWyAm6KLSyUiI4MRYgxGiDEYUfHU9sj4/ei6KTKj5aC9EzQuwBhC40AxwFJKg5NAOlgqkZW+uwwxBiPK5qZg5XJW1RLsBo2QWS5MH+niDnQhtJEALhLRqm1Q08Gs11r+vVkZ8NrAArJdnoUnGRmMEGMwQozBiLLFDC/vn/s5tWZ7Fu21hT6bNiQEVW2DtpjRxliop6+tCyW1TLeYueB/1XOkIeGuQozBCDEGI0qPGWS7rR2NatlN4biQ7bpXy0viR5Cuf2aelhfFRpHuWqbefD6dO9ymbA4J6jJpCJlyzKVUI1aar6QytQH3o/GyxCZwGRmMEGMwonQ3RYYfdU0IMGzvi9xAqjNTHVqe3Ujg3w1WaINbMdB9HUhX5/8+L+ffyFAMMjIYIcZghBiDEWUrh4TaWrWcXNGBdNdfNfEk5WG/DFPWyVwc6a4BR11NSiVReiJwgdAy/Y2MOWEtS+LQSM6cxBbtvlnS/YpBRgYjxBiMsIo5C/3y26u1vHzDeaTb2tKn5aUkfe1wTIr66WQX0g2l5mp517xfkC4LmuGyZPkwBa5jpIksblNXCA6M9LB7C1umijuQxbpPbj6m5fboONLBFP1qtgHp+m6ZisOx71Yg3cJe/B3xcwpsEGMwQozBiKJS21C38ZtvtR9CuhPJxVr+J9OEdK3hSS3PcXDZBDY3b3j5NaRLNhvfn2wkjc8gLIRncNijWW8oZfT5CK6+puvB1mPS3Lxx21EtT5N9HTBFp1uf19X/reXFm0eQ7mgvbu5Gz+2rESqOGIMRRbmp1l1mteX6Xv+zwensGG7dagMuSymlrjgmLQz9eBLpalaZtLCuH39mosPMjqv7hpDOIgtfXhrM3knD2cSTneZ++08g3fmXTFVhfSNO5WE6SysHcD/I3v4epFuk/lB+yMhghBiDEWIMRhQVM6xjv2u5JzqGdCM5E0Mm8tiHJjzQHEbSzpbwLXA1F+kOfvWZlq/k8d6JdYd2aHnww++Rbu3Zzej62+UHtBy3caNa78iwlk/sx2WUtQ0XtExXHeGqJF2hbA6Z7dWx4/h89SBkZDBCjMGIkheX3ruxBl331JhfGRvO4tV7uKW4Jopn4PCEBEVcwZo3tmt5ej7+v+ncbaqfXYPbka7pLPaFT8Vf1zLtmY1fN2mvo05hHThVZzDdgu8BTnoIkz0nG6uvaHnfzziVDyqRy8hghBiDEWIMRpQcM745hKf5Tzz3l5bpKTewCWAULPIrhY+IuPomjkPVV00Maf01iXS3Xlil5XnHsc4jJY/IhLlHPor3Z2TqzZ/gxs7VSBezP9cy3bsxmjXfY0lsGOl+SJqqtXfynCoUGRmMEGMwomQ3Nf8w7mMa22JmmuOkigl/LSyRx8O9JWJm4F9u34109zhwWzD+v5lyTToZJz90mybNC/CdNWQGnnCNCxvI4T/HoSlTNaYzcHiaQ9jCqe2On57XcqfqU4UiI4MRYgxGiDEYUXLMCB3Gq3IHx4x/3TAXr2admVmg5Vm/SAy2iu1JrkU62hcLgZXSmXwU6UIBR+CUegIPfRZ4hjs9Xa7zo4C9KkH3KOldwh1BjMGIonptg3CazMJQ8gu8oLJt4REtR4ibGAI9VrA9XymlpoH7yRH3VgXS5aVVeAZ8OYN3rULX6HqF75KF5+y2kkaKenBQWO+5Z5CubVN/wfeAyMhghBiDEWIMRhQXM0rc+Z9f/4iWL27F2fTOx7/WcsrDpYpFYdOn2uLgc9IfjuJ0tlA+nmxD1zCevFKHfzj+WNr8r247/SLStb9vKtOwUeO/ICODEWIMRpQttS3VhSG6H0SXDR+Yhf0/DyxDupZToJEgjdNlK4MrrKMPmSqy8zTu9xobMj2zy94dRLr8MN4Od6eRkcEIMQYjxBiM+BfNwYvJUVcYSwAAAABJRU5ErkJggg==\" id=\"image8678538340\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"95.979245\" y=\"-22.104163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_8\">\n",
|
|
" <path d=\"M 95.979245 93.384163 \n",
|
|
"L 95.979245 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_9\">\n",
|
|
" <path d=\"M 167.045283 93.384163 \n",
|
|
"L 167.045283 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_10\">\n",
|
|
" <path d=\"M 95.979245 93.384163 \n",
|
|
"L 167.045283 93.384163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_11\">\n",
|
|
" <path d=\"M 95.979245 22.318125 \n",
|
|
"L 167.045283 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_2\">\n",
|
|
" <!-- t-shirt -->\n",
|
|
" <g transform=\"translate(113.581639 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-2d\" d=\"M 313 2009 \n",
|
|
"L 1997 2009 \n",
|
|
"L 1997 1497 \n",
|
|
"L 313 1497 \n",
|
|
"L 313 2009 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-73\" d=\"M 2834 3397 \n",
|
|
"L 2834 2853 \n",
|
|
"Q 2591 2978 2328 3040 \n",
|
|
"Q 2066 3103 1784 3103 \n",
|
|
"Q 1356 3103 1142 2972 \n",
|
|
"Q 928 2841 928 2578 \n",
|
|
"Q 928 2378 1081 2264 \n",
|
|
"Q 1234 2150 1697 2047 \n",
|
|
"L 1894 2003 \n",
|
|
"Q 2506 1872 2764 1633 \n",
|
|
"Q 3022 1394 3022 966 \n",
|
|
"Q 3022 478 2636 193 \n",
|
|
"Q 2250 -91 1575 -91 \n",
|
|
"Q 1294 -91 989 -36 \n",
|
|
"Q 684 19 347 128 \n",
|
|
"L 347 722 \n",
|
|
"Q 666 556 975 473 \n",
|
|
"Q 1284 391 1588 391 \n",
|
|
"Q 1994 391 2212 530 \n",
|
|
"Q 2431 669 2431 922 \n",
|
|
"Q 2431 1156 2273 1281 \n",
|
|
"Q 2116 1406 1581 1522 \n",
|
|
"L 1381 1569 \n",
|
|
"Q 847 1681 609 1914 \n",
|
|
"Q 372 2147 372 2553 \n",
|
|
"Q 372 3047 722 3315 \n",
|
|
"Q 1072 3584 1716 3584 \n",
|
|
"Q 2034 3584 2315 3537 \n",
|
|
"Q 2597 3491 2834 3397 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-68\" d=\"M 3513 2113 \n",
|
|
"L 3513 0 \n",
|
|
"L 2938 0 \n",
|
|
"L 2938 2094 \n",
|
|
"Q 2938 2591 2744 2837 \n",
|
|
"Q 2550 3084 2163 3084 \n",
|
|
"Q 1697 3084 1428 2787 \n",
|
|
"Q 1159 2491 1159 1978 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 4863 \n",
|
|
"L 1159 4863 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1366 3272 1645 3428 \n",
|
|
"Q 1925 3584 2291 3584 \n",
|
|
"Q 2894 3584 3203 3211 \n",
|
|
"Q 3513 2838 3513 2113 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-69\" d=\"M 603 3500 \n",
|
|
"L 1178 3500 \n",
|
|
"L 1178 0 \n",
|
|
"L 603 0 \n",
|
|
"L 603 3500 \n",
|
|
"z\n",
|
|
"M 603 4863 \n",
|
|
"L 1178 4863 \n",
|
|
"L 1178 4134 \n",
|
|
"L 603 4134 \n",
|
|
"L 603 4863 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-72\" d=\"M 2631 2963 \n",
|
|
"Q 2534 3019 2420 3045 \n",
|
|
"Q 2306 3072 2169 3072 \n",
|
|
"Q 1681 3072 1420 2755 \n",
|
|
"Q 1159 2438 1159 1844 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1341 3275 1631 3429 \n",
|
|
"Q 1922 3584 2338 3584 \n",
|
|
"Q 2397 3584 2469 3576 \n",
|
|
"Q 2541 3569 2628 3553 \n",
|
|
"L 2631 2963 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-2d\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"75.292969\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-68\" x=\"127.392578\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"190.771484\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"218.554688\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"259.667969\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_3\">\n",
|
|
" <g id=\"patch_12\">\n",
|
|
" <path d=\"M 181.258491 93.384163 \n",
|
|
"L 252.324528 93.384163 \n",
|
|
"L 252.324528 22.318125 \n",
|
|
"L 181.258491 22.318125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#p00f3733b23)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"iVBORw0KGgoAAAANSUhEUgAAAGMAAABjCAYAAACPO76VAAAFTklEQVR4nO2dv48bRRTHd9d2zvE5F/kuOYIgOqSIAghKQoWEohRcT0EoKaBBVBRUdPwTNCBFES0dQlT0SCkoKPJDFAQugYDulJMT+2zvepcG7bzvszy+S9azT7rvp5rJ293Zy9fvzdvZmdl4O75eRCGJY6wXh2u++eI5qGdbm2V53FvBJtQlT+70XXP3H4AtHwzmNyrv9ZD3+TwkS2+BHBqKYQiKYYhm8BZV7E1WV8vy/ntvgu3gjPutpKtgigrxM0qmC5p8a6Msx9MNsHUf5mV5/fvbYJv2+1FI6BmGoBiGiEOnto21Naj/+elFdzM5Hts88FxIHJtk+Cfo1BZOa2B9dMalr7r9ra/vleXp7p7nZqqBnmEIimEIimGI4Kntk3dfg7qM0yv7GOwhvqtRlFiks4XqB3SXkWTz76fzyB2ddrGR0eVXynLrJ/YZxwqKYYjgYSprYyhIUlcuVCiST9baBqFpQXI+bcn0FQ+WT/Ktp2jLuq6Rlr+JSqBnGIJiGIJiGCJ4n9HdGUF9+EKnLOvhCJnOFvpnc4RBHN1PgE2YcvW/MTzr+oyTh2/umaFnGIJiGCJ4mGqM1ZsgEYp0mJgJWxXgu2bewvx5/e5ozpHLgZ5hCIphCIphiOB9RjxOPUaszqSzS0AOs+RqzKP5ZOyOW/6t0DMsQTEMET5MpSq1Ff4fa5N6aTTvvKOQNzEWxmIelw5T0RJSax/0DENQDENQDEPUntrK4Qk9+ayYW6mOoiH6EP2mcehS2wXTeSuBnmEIimGI2pcEyPRVTzqAtFelmfB0rs/TlxHLwWLdPrzBUifuPfZfuGLoGYagGIagGIYI32dkFSWJC/oJOFT0E4Ve+ixTa31rE88I8xKgZxiCYhii9tQW0ldt8oUieewRQpYGU128UDEN8dztoGcYgmIYgmIYInifUQyG+A9yNMIzHOKbnDDzhtB3rBrzgFRXZ70HnMR2bKEYhqAYhgjfZ2Tz1wE/66S1mfM8fY9Grt2At35RFEU5nzOOLRTDEOEnJKhR05mR0iWjR22bo7D7ZfqgZxiCYhiCYhgifJ/RwUW8U7E/cKJfrPnCuQz9+jhVlzNLdBost8SYrM3fzNK7GXFF0DMMQTEMEX5XnUf/QD2eXnAV75My1r1rNxQyNOlJbFnblZsDTHtDhCYJPcMQFMMQFMMQ4WeHKHzbR8i0U28O7LuGb/RXbx4pd4Zr79U7NELPMATFMISpMJV1MLWU+9zqKbJywpt3slsUeSe5eUcAAkPPMATFMATFMET9fYZINWOdvnrW9EFdn+dJl3X/Iq+z6HNBy4aeYQiKYYjaw9QJsf94qh6A4QlcnefbC933mR9fuGuEnVo7Az3DEBTDEBTDELX3GTDXNcbfRt6YH/zb+y7Y60/DpZ1E1T1bUgiTvk5o6BmGoBiGqD1M6Q0cJZ1dl9vqzy70z7tbl1+hjKIoWruP+eupB+4xf3gW/2R4In+OJcxVQM8wBMUwBMUwRO19hvxqZOdfjPX9LXd72x//DLY3Og/L8nrjKdjujF6C+s27b5flzW9xru+4J/4Lal6qQc8wBMUwRO1hKpm42JCtYG557aNbZfnqqXtgu9reLcu9RgdsF1q/Qv3ilZ2y/HnxAdg2vnPnTrr1/jbpGYagGIagGIYI/2m4Xg/qk9Oun/jwsx/B9jhzy7hu/v0O2L5K3eyzQXoCbOdW+1A/3XKv8L689APYvui/X5bXb7HPIP9DMQwRb8fXa33ubG6dL8u/ffIy2F795q+ynP3+RyXt5deuQH3vdbeObPPGL2ArxuMoJPQMQ1AMQ1AMQ/wHXZZSPwAsKAQAAAAASUVORK5CYII=\" id=\"imagee755aad0fa\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"181.258491\" y=\"-22.104163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_13\">\n",
|
|
" <path d=\"M 181.258491 93.384163 \n",
|
|
"L 181.258491 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_14\">\n",
|
|
" <path d=\"M 252.324528 93.384163 \n",
|
|
"L 252.324528 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_15\">\n",
|
|
" <path d=\"M 181.258491 93.384163 \n",
|
|
"L 252.324528 93.384163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_16\">\n",
|
|
" <path d=\"M 181.258491 22.318125 \n",
|
|
"L 252.324528 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_3\">\n",
|
|
" <!-- t-shirt -->\n",
|
|
" <g transform=\"translate(198.860884 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-2d\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"75.292969\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-68\" x=\"127.392578\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"190.771484\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"218.554688\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"259.667969\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_4\">\n",
|
|
" <g id=\"patch_17\">\n",
|
|
" <path d=\"M 266.537736 93.384163 \n",
|
|
"L 337.603774 93.384163 \n",
|
|
"L 337.603774 22.318125 \n",
|
|
"L 266.537736 22.318125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pbc92d3c31a)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image5c1bfcae40\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"266.537736\" y=\"-22.104163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_18\">\n",
|
|
" <path d=\"M 266.537736 93.384163 \n",
|
|
"L 266.537736 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_19\">\n",
|
|
" <path d=\"M 337.603774 93.384163 \n",
|
|
"L 337.603774 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_20\">\n",
|
|
" <path d=\"M 266.537736 93.384163 \n",
|
|
"L 337.603774 93.384163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_21\">\n",
|
|
" <path d=\"M 266.537736 22.318125 \n",
|
|
"L 337.603774 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_4\">\n",
|
|
" <!-- dress -->\n",
|
|
" <g transform=\"translate(285.987005 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-64\" d=\"M 2906 2969 \n",
|
|
"L 2906 4863 \n",
|
|
"L 3481 4863 \n",
|
|
"L 3481 0 \n",
|
|
"L 2906 0 \n",
|
|
"L 2906 525 \n",
|
|
"Q 2725 213 2448 61 \n",
|
|
"Q 2172 -91 1784 -91 \n",
|
|
"Q 1150 -91 751 415 \n",
|
|
"Q 353 922 353 1747 \n",
|
|
"Q 353 2572 751 3078 \n",
|
|
"Q 1150 3584 1784 3584 \n",
|
|
"Q 2172 3584 2448 3432 \n",
|
|
"Q 2725 3281 2906 2969 \n",
|
|
"z\n",
|
|
"M 947 1747 \n",
|
|
"Q 947 1113 1208 752 \n",
|
|
"Q 1469 391 1925 391 \n",
|
|
"Q 2381 391 2643 752 \n",
|
|
"Q 2906 1113 2906 1747 \n",
|
|
"Q 2906 2381 2643 2742 \n",
|
|
"Q 2381 3103 1925 3103 \n",
|
|
"Q 1469 3103 1208 2742 \n",
|
|
"Q 947 2381 947 1747 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-64\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"63.476562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"102.339844\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"163.863281\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"215.962891\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_5\">\n",
|
|
" <g id=\"patch_22\">\n",
|
|
" <path d=\"M 351.816981 93.384163 \n",
|
|
"L 422.883019 93.384163 \n",
|
|
"L 422.883019 22.318125 \n",
|
|
"L 351.816981 22.318125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pe60f3122fc)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image904376a493\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"351.816981\" y=\"-22.104163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_23\">\n",
|
|
" <path d=\"M 351.816981 93.384163 \n",
|
|
"L 351.816981 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_24\">\n",
|
|
" <path d=\"M 422.883019 93.384163 \n",
|
|
"L 422.883019 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_25\">\n",
|
|
" <path d=\"M 351.816981 93.384163 \n",
|
|
"L 422.883019 93.384163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_26\">\n",
|
|
" <path d=\"M 351.816981 22.318125 \n",
|
|
"L 422.883019 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_5\">\n",
|
|
" <!-- t-shirt -->\n",
|
|
" <g transform=\"translate(369.419375 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-2d\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"75.292969\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-68\" x=\"127.392578\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"190.771484\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"218.554688\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"259.667969\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_6\">\n",
|
|
" <g id=\"patch_27\">\n",
|
|
" <path d=\"M 437.096226 93.384163 \n",
|
|
"L 508.162264 93.384163 \n",
|
|
"L 508.162264 22.318125 \n",
|
|
"L 437.096226 22.318125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#p09112f5768)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image514cbb4ba6\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"437.096226\" y=\"-22.104163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_28\">\n",
|
|
" <path d=\"M 437.096226 93.384163 \n",
|
|
"L 437.096226 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_29\">\n",
|
|
" <path d=\"M 508.162264 93.384163 \n",
|
|
"L 508.162264 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_30\">\n",
|
|
" <path d=\"M 437.096226 93.384163 \n",
|
|
"L 508.162264 93.384163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_31\">\n",
|
|
" <path d=\"M 437.096226 22.318125 \n",
|
|
"L 508.162264 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_6\">\n",
|
|
" <!-- pullover -->\n",
|
|
" <g transform=\"translate(448.302995 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-70\" d=\"M 1159 525 \n",
|
|
"L 1159 -1331 \n",
|
|
"L 581 -1331 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2969 \n",
|
|
"Q 1341 3281 1617 3432 \n",
|
|
"Q 1894 3584 2278 3584 \n",
|
|
"Q 2916 3584 3314 3078 \n",
|
|
"Q 3713 2572 3713 1747 \n",
|
|
"Q 3713 922 3314 415 \n",
|
|
"Q 2916 -91 2278 -91 \n",
|
|
"Q 1894 -91 1617 61 \n",
|
|
"Q 1341 213 1159 525 \n",
|
|
"z\n",
|
|
"M 3116 1747 \n",
|
|
"Q 3116 2381 2855 2742 \n",
|
|
"Q 2594 3103 2138 3103 \n",
|
|
"Q 1681 3103 1420 2742 \n",
|
|
"Q 1159 2381 1159 1747 \n",
|
|
"Q 1159 1113 1420 752 \n",
|
|
"Q 1681 391 2138 391 \n",
|
|
"Q 2594 391 2855 752 \n",
|
|
"Q 3116 1113 3116 1747 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-75\" d=\"M 544 1381 \n",
|
|
"L 544 3500 \n",
|
|
"L 1119 3500 \n",
|
|
"L 1119 1403 \n",
|
|
"Q 1119 906 1312 657 \n",
|
|
"Q 1506 409 1894 409 \n",
|
|
"Q 2359 409 2629 706 \n",
|
|
"Q 2900 1003 2900 1516 \n",
|
|
"L 2900 3500 \n",
|
|
"L 3475 3500 \n",
|
|
"L 3475 0 \n",
|
|
"L 2900 0 \n",
|
|
"L 2900 538 \n",
|
|
"Q 2691 219 2414 64 \n",
|
|
"Q 2138 -91 1772 -91 \n",
|
|
"Q 1169 -91 856 284 \n",
|
|
"Q 544 659 544 1381 \n",
|
|
"z\n",
|
|
"M 1991 3584 \n",
|
|
"L 1991 3584 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-76\" d=\"M 191 3500 \n",
|
|
"L 800 3500 \n",
|
|
"L 1894 563 \n",
|
|
"L 2988 3500 \n",
|
|
"L 3597 3500 \n",
|
|
"L 2284 0 \n",
|
|
"L 1503 0 \n",
|
|
"L 191 3500 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-70\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-75\" x=\"63.476562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"126.855469\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"154.638672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"182.421875\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-76\" x=\"243.603516\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"302.783203\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"364.306641\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_7\">\n",
|
|
" <g id=\"patch_32\">\n",
|
|
" <path d=\"M 522.375472 93.384163 \n",
|
|
"L 593.441509 93.384163 \n",
|
|
"L 593.441509 22.318125 \n",
|
|
"L 522.375472 22.318125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#p8630f2911a)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"imagebf668b53e5\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"522.375472\" y=\"-22.104163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_33\">\n",
|
|
" <path d=\"M 522.375472 93.384163 \n",
|
|
"L 522.375472 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_34\">\n",
|
|
" <path d=\"M 593.441509 93.384163 \n",
|
|
"L 593.441509 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_35\">\n",
|
|
" <path d=\"M 522.375472 93.384163 \n",
|
|
"L 593.441509 93.384163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_36\">\n",
|
|
" <path d=\"M 522.375472 22.318125 \n",
|
|
"L 593.441509 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_7\">\n",
|
|
" <!-- sneaker -->\n",
|
|
" <g transform=\"translate(534.196303 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"52.099609\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"115.478516\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"177.001953\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6b\" x=\"238.28125\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"292.566406\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"354.089844\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_8\">\n",
|
|
" <g id=\"patch_37\">\n",
|
|
" <path d=\"M 607.654717 93.384163 \n",
|
|
"L 678.720755 93.384163 \n",
|
|
"L 678.720755 22.318125 \n",
|
|
"L 607.654717 22.318125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pcb13e0e68b)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image55bf55e8b2\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"607.654717\" y=\"-22.104163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_38\">\n",
|
|
" <path d=\"M 607.654717 93.384163 \n",
|
|
"L 607.654717 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_39\">\n",
|
|
" <path d=\"M 678.720755 93.384163 \n",
|
|
"L 678.720755 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_40\">\n",
|
|
" <path d=\"M 607.654717 93.384163 \n",
|
|
"L 678.720755 93.384163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_41\">\n",
|
|
" <path d=\"M 607.654717 22.318125 \n",
|
|
"L 678.720755 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_8\">\n",
|
|
" <!-- pullover -->\n",
|
|
" <g transform=\"translate(618.861486 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-70\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-75\" x=\"63.476562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"126.855469\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"154.638672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"182.421875\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-76\" x=\"243.603516\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"302.783203\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"364.306641\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_9\">\n",
|
|
" <g id=\"patch_42\">\n",
|
|
" <path d=\"M 692.933962 93.384163 \n",
|
|
"L 764 93.384163 \n",
|
|
"L 764 22.318125 \n",
|
|
"L 692.933962 22.318125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pd2ac2e25cd)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"imageda2bb1e56c\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"692.933962\" y=\"-22.104163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_43\">\n",
|
|
" <path d=\"M 692.933962 93.384163 \n",
|
|
"L 692.933962 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_44\">\n",
|
|
" <path d=\"M 764 93.384163 \n",
|
|
"L 764 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_45\">\n",
|
|
" <path d=\"M 692.933962 93.384163 \n",
|
|
"L 764 93.384163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_46\">\n",
|
|
" <path d=\"M 692.933962 22.318125 \n",
|
|
"L 764 22.318125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_9\">\n",
|
|
" <!-- sandal -->\n",
|
|
" <g transform=\"translate(708.709169 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"52.099609\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"113.378906\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-64\" x=\"176.757812\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"240.234375\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"301.513672\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_10\">\n",
|
|
" <g id=\"patch_47\">\n",
|
|
" <path d=\"M 10.7 184.104163 \n",
|
|
"L 81.766038 184.104163 \n",
|
|
"L 81.766038 113.038125 \n",
|
|
"L 10.7 113.038125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#peede70c1f4)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image02ee80581b\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"10.7\" y=\"-112.824163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_48\">\n",
|
|
" <path d=\"M 10.7 184.104163 \n",
|
|
"L 10.7 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_49\">\n",
|
|
" <path d=\"M 81.766038 184.104163 \n",
|
|
"L 81.766038 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_50\">\n",
|
|
" <path d=\"M 10.7 184.104163 \n",
|
|
"L 81.766038 184.104163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_51\">\n",
|
|
" <path d=\"M 10.7 113.038125 \n",
|
|
"L 81.766038 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_10\">\n",
|
|
" <!-- sandal -->\n",
|
|
" <g transform=\"translate(26.475206 107.038125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"52.099609\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"113.378906\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-64\" x=\"176.757812\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"240.234375\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"301.513672\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_11\">\n",
|
|
" <g id=\"patch_52\">\n",
|
|
" <path d=\"M 95.979245 184.104163 \n",
|
|
"L 167.045283 184.104163 \n",
|
|
"L 167.045283 113.038125 \n",
|
|
"L 95.979245 113.038125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pe2d0e8b452)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image2954324854\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"95.979245\" y=\"-112.824163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_53\">\n",
|
|
" <path d=\"M 95.979245 184.104163 \n",
|
|
"L 95.979245 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_54\">\n",
|
|
" <path d=\"M 167.045283 184.104163 \n",
|
|
"L 167.045283 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_55\">\n",
|
|
" <path d=\"M 95.979245 184.104163 \n",
|
|
"L 167.045283 184.104163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_56\">\n",
|
|
" <path d=\"M 95.979245 113.038125 \n",
|
|
"L 167.045283 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_11\">\n",
|
|
" <!-- t-shirt -->\n",
|
|
" <g transform=\"translate(113.581639 107.038125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-2d\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"75.292969\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-68\" x=\"127.392578\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"190.771484\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"218.554688\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"259.667969\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_12\">\n",
|
|
" <g id=\"patch_57\">\n",
|
|
" <path d=\"M 181.258491 184.104163 \n",
|
|
"L 252.324528 184.104163 \n",
|
|
"L 252.324528 113.038125 \n",
|
|
"L 181.258491 113.038125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pdae72a5e48)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image638e3eb6ba\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"181.258491\" y=\"-112.824163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_58\">\n",
|
|
" <path d=\"M 181.258491 184.104163 \n",
|
|
"L 181.258491 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_59\">\n",
|
|
" <path d=\"M 252.324528 184.104163 \n",
|
|
"L 252.324528 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_60\">\n",
|
|
" <path d=\"M 181.258491 184.104163 \n",
|
|
"L 252.324528 184.104163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_61\">\n",
|
|
" <path d=\"M 181.258491 113.038125 \n",
|
|
"L 252.324528 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_12\">\n",
|
|
" <!-- ankle boot -->\n",
|
|
" <g transform=\"translate(185.068384 107.038125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"61.279297\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6b\" x=\"124.658203\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"182.568359\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"210.351562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-20\" x=\"271.875\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-62\" x=\"303.662109\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"367.138672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"428.320312\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"489.501953\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_13\">\n",
|
|
" <g id=\"patch_62\">\n",
|
|
" <path d=\"M 266.537736 184.104163 \n",
|
|
"L 337.603774 184.104163 \n",
|
|
"L 337.603774 113.038125 \n",
|
|
"L 266.537736 113.038125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#p40a678bcb1)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image94c95ffc31\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"266.537736\" y=\"-112.824163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_63\">\n",
|
|
" <path d=\"M 266.537736 184.104163 \n",
|
|
"L 266.537736 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_64\">\n",
|
|
" <path d=\"M 337.603774 184.104163 \n",
|
|
"L 337.603774 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_65\">\n",
|
|
" <path d=\"M 266.537736 184.104163 \n",
|
|
"L 337.603774 184.104163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_66\">\n",
|
|
" <path d=\"M 266.537736 113.038125 \n",
|
|
"L 337.603774 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_13\">\n",
|
|
" <!-- sandal -->\n",
|
|
" <g transform=\"translate(282.312942 107.038125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"52.099609\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"113.378906\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-64\" x=\"176.757812\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"240.234375\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"301.513672\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_14\">\n",
|
|
" <g id=\"patch_67\">\n",
|
|
" <path d=\"M 351.816981 184.104163 \n",
|
|
"L 422.883019 184.104163 \n",
|
|
"L 422.883019 113.038125 \n",
|
|
"L 351.816981 113.038125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#p04fe5c3211)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image14d6fdb318\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"351.816981\" y=\"-112.824163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_68\">\n",
|
|
" <path d=\"M 351.816981 184.104163 \n",
|
|
"L 351.816981 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_69\">\n",
|
|
" <path d=\"M 422.883019 184.104163 \n",
|
|
"L 422.883019 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_70\">\n",
|
|
" <path d=\"M 351.816981 184.104163 \n",
|
|
"L 422.883019 184.104163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_71\">\n",
|
|
" <path d=\"M 351.816981 113.038125 \n",
|
|
"L 422.883019 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_14\">\n",
|
|
" <!-- sandal -->\n",
|
|
" <g transform=\"translate(367.592188 107.038125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"52.099609\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"113.378906\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-64\" x=\"176.757812\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"240.234375\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"301.513672\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_15\">\n",
|
|
" <g id=\"patch_72\">\n",
|
|
" <path d=\"M 437.096226 184.104163 \n",
|
|
"L 508.162264 184.104163 \n",
|
|
"L 508.162264 113.038125 \n",
|
|
"L 437.096226 113.038125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#p6a98b83f3c)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"iVBORw0KGgoAAAANSUhEUgAAAGMAAABjCAYAAACPO76VAAAEs0lEQVR4nO2cTW9UVRjH770zt9N5odCXqbRFwJiWigYTEcWXFbJgxcJI/ABuxI2JWxNdEYLxA5i4dOEHMF3JxhgFXxZqjKQ2IaZkSIzQaafjdKb35bggOc95TrkTRKh/zf+3eu48955zh1/Pc849tyU8Hb5mAgJB9G/fABEoAwjKAIIygKAMICgDCMoAgjKAoAwgKAMIygCCMoCgDCAoAwjKAIIygKAMICgDCMoAgjKAoAwgKAMIygCCMoCgDCAoAwjKAIIygKAMICgDCMoAoux/UJqalIOJfd7ZJYnTTKXCJLWxcc8LgiD0zlUY+fMQU63o63r9wv6CaMjPURTq4zC8+3lezpS8Np0+THVEpUws3zFM88LmTUn3nVfknzxurenuiu+S7DaUAURZlaUgCLJbt+XAjR8QYUWXoiCT8hPVajo1GMh1XqkJG/XiTtJUHZq+tJM7bd5J/vO/ovs7LbjfwkxOqBxHBhCUAQRlAFH2a/gf51+wcfsZXXvnHr23OWS9V1XHjVGp06dmflW5bib9j8e6/Zl43cb74w2VGw2Tu8ZBEARH4o5up9yw8cDoc3u5HNeiWOWuJ5K7ke5Vud+Spo0To5fyLhupngdfbizb+J0L51WOIwMIygCi3Hr1sPrgg7c/tvGbS2+o3NpX+20cb3oNbckCr+Kt9cKufLDUnC68bjDhPSk77Yyv6CfwpOo+OevrjNdM0pAPMm9lnToVNfdv3CEb9a6bcspd4nWYy3Flckulfp6btfH0FV2WOTKAoAwgKAOIcMf/qhM5y7TnnlSpzmOyTOtPaI/bYxKnNd1k3HXru76BZEzOrd3UtXfzhNRb09a7pvVVaWj+7IrKHaitq+MvPjkRFOGuPEveTsm2s5ot97zr6nLf/nwSb8j3GPHm1s5x2YlevNRVOY4MICgDCMoAYsebviB31vNXf1KpsatOHOniX3LeCprZpsp1H5fiu+XNNckeiTcW9fbL+NdSjNvH9HNGvyk1++m9LZVb+VM/y/Rmi58fIudxoTevt0qCUK5LR/TbvGzgvvX0nnPmnO9R0W0enZJni/ymnog4MoCgDCDC09E5PYZDx4/xXrQ/gLdiPqUn5m3cuqirZimS/tstvWsar0uZqLR1mYg39X2aM20bdzp6RznvS58jv+v+K2vSbuRVsM6ClM36Ab1+7d6St5CfvvKRyn3ZW7Dx5af2qBxHBhCUAQRlAFHeMQ+YIb9wNoxhvyg2ZK7JrslWxszren87O3nUxp2z+ucmPyjbCvnCtspV63rb+vY3svVv9ul58OBlOR797Erhffo84sTpqeMqd+bD7218qKzv5a3rz9q4GSyrHEcGEJQBxM5d24feo/827/66j44t2nj1fb0b0F/VS8aXTv5i428/1zvRh96799J0P9x490V1PP2DrJErS9+pHEcGEJQBBGUAsftzxm7gzUvdc8/beGxZ/zJc/uO1wusexvbPMDgygKAMIP6fZeo/CkcGEJQBBGUAQRlAUAYQlAEEZQBBGUBQBhCUAQRlAEEZQFAGEJQBBGUAQRlAUAYQlAEEZQBBGUBQBhCUAQRlAEEZQFAGEJQBBGUAQRlAUAYQlAEEZQDxF4s3GsdfThmkAAAAAElFTkSuQmCC\" id=\"image103699977b\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"437.096226\" y=\"-112.824163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_73\">\n",
|
|
" <path d=\"M 437.096226 184.104163 \n",
|
|
"L 437.096226 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_74\">\n",
|
|
" <path d=\"M 508.162264 184.104163 \n",
|
|
"L 508.162264 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_75\">\n",
|
|
" <path d=\"M 437.096226 184.104163 \n",
|
|
"L 508.162264 184.104163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_76\">\n",
|
|
" <path d=\"M 437.096226 113.038125 \n",
|
|
"L 508.162264 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_15\">\n",
|
|
" <!-- sneaker -->\n",
|
|
" <g transform=\"translate(448.917058 107.038125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"52.099609\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"115.478516\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"177.001953\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6b\" x=\"238.28125\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"292.566406\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"354.089844\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_16\">\n",
|
|
" <g id=\"patch_77\">\n",
|
|
" <path d=\"M 522.375472 184.104163 \n",
|
|
"L 593.441509 184.104163 \n",
|
|
"L 593.441509 113.038125 \n",
|
|
"L 522.375472 113.038125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pcfc42a970c)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image955c2cb3df\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"522.375472\" y=\"-112.824163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_78\">\n",
|
|
" <path d=\"M 522.375472 184.104163 \n",
|
|
"L 522.375472 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_79\">\n",
|
|
" <path d=\"M 593.441509 184.104163 \n",
|
|
"L 593.441509 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_80\">\n",
|
|
" <path d=\"M 522.375472 184.104163 \n",
|
|
"L 593.441509 184.104163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_81\">\n",
|
|
" <path d=\"M 522.375472 113.038125 \n",
|
|
"L 593.441509 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_16\">\n",
|
|
" <!-- ankle boot -->\n",
|
|
" <g transform=\"translate(526.185366 107.038125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"61.279297\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6b\" x=\"124.658203\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"182.568359\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"210.351562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-20\" x=\"271.875\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-62\" x=\"303.662109\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"367.138672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"428.320312\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"489.501953\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_17\">\n",
|
|
" <g id=\"patch_82\">\n",
|
|
" <path d=\"M 607.654717 184.104163 \n",
|
|
"L 678.720755 184.104163 \n",
|
|
"L 678.720755 113.038125 \n",
|
|
"L 607.654717 113.038125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#peb9575f27a)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"imagef624671199\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"607.654717\" y=\"-112.824163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_83\">\n",
|
|
" <path d=\"M 607.654717 184.104163 \n",
|
|
"L 607.654717 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_84\">\n",
|
|
" <path d=\"M 678.720755 184.104163 \n",
|
|
"L 678.720755 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_85\">\n",
|
|
" <path d=\"M 607.654717 184.104163 \n",
|
|
"L 678.720755 184.104163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_86\">\n",
|
|
" <path d=\"M 607.654717 113.038125 \n",
|
|
"L 678.720755 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_17\">\n",
|
|
" <!-- trouser -->\n",
|
|
" <g transform=\"translate(621.746173 107.038125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"78.072266\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-75\" x=\"139.253906\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"202.632812\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"254.732422\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"316.255859\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_18\">\n",
|
|
" <g id=\"patch_87\">\n",
|
|
" <path d=\"M 692.933962 184.104163 \n",
|
|
"L 764 184.104163 \n",
|
|
"L 764 113.038125 \n",
|
|
"L 692.933962 113.038125 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pa5f1087718)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image8e14f5b500\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"692.933962\" y=\"-112.824163\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_88\">\n",
|
|
" <path d=\"M 692.933962 184.104163 \n",
|
|
"L 692.933962 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_89\">\n",
|
|
" <path d=\"M 764 184.104163 \n",
|
|
"L 764 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_90\">\n",
|
|
" <path d=\"M 692.933962 184.104163 \n",
|
|
"L 764 184.104163 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_91\">\n",
|
|
" <path d=\"M 692.933962 113.038125 \n",
|
|
"L 764 113.038125 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_18\">\n",
|
|
" <!-- t-shirt -->\n",
|
|
" <g transform=\"translate(710.536356 107.038125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-2d\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"75.292969\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-68\" x=\"127.392578\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"190.771484\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"218.554688\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"259.667969\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <defs>\n",
|
|
" <clipPath id=\"pef1c58d2f6\">\n",
|
|
" <rect x=\"10.7\" y=\"22.318125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pf787c6d293\">\n",
|
|
" <rect x=\"95.979245\" y=\"22.318125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"p00f3733b23\">\n",
|
|
" <rect x=\"181.258491\" y=\"22.318125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pbc92d3c31a\">\n",
|
|
" <rect x=\"266.537736\" y=\"22.318125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pe60f3122fc\">\n",
|
|
" <rect x=\"351.816981\" y=\"22.318125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"p09112f5768\">\n",
|
|
" <rect x=\"437.096226\" y=\"22.318125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"p8630f2911a\">\n",
|
|
" <rect x=\"522.375472\" y=\"22.318125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pcb13e0e68b\">\n",
|
|
" <rect x=\"607.654717\" y=\"22.318125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pd2ac2e25cd\">\n",
|
|
" <rect x=\"692.933962\" y=\"22.318125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"peede70c1f4\">\n",
|
|
" <rect x=\"10.7\" y=\"113.038125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pe2d0e8b452\">\n",
|
|
" <rect x=\"95.979245\" y=\"113.038125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pdae72a5e48\">\n",
|
|
" <rect x=\"181.258491\" y=\"113.038125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"p40a678bcb1\">\n",
|
|
" <rect x=\"266.537736\" y=\"113.038125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"p04fe5c3211\">\n",
|
|
" <rect x=\"351.816981\" y=\"113.038125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"p6a98b83f3c\">\n",
|
|
" <rect x=\"437.096226\" y=\"113.038125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pcfc42a970c\">\n",
|
|
" <rect x=\"522.375472\" y=\"113.038125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"peb9575f27a\">\n",
|
|
" <rect x=\"607.654717\" y=\"113.038125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pa5f1087718\">\n",
|
|
" <rect x=\"692.933962\" y=\"113.038125\" width=\"71.066038\" height=\"71.066038\"/>\n",
|
|
" </clipPath>\n",
|
|
" </defs>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<Figure size 1350x300 with 18 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"X, y = next(iter(data.DataLoader(mnist_train, batch_size=18)))\n",
|
|
"show_images(X.reshape(18, 28, 28), 2, 9, titles=get_fashion_mnist_labels(y));"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9ce47a48-d8e3-46a6-8e2b-009c4e299341",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"读取一小批量数据,大小为`batch_size`"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"id": "b15b88d6-d561-4971-9c20-b30d2618da04",
|
|
"metadata": {
|
|
"origin_pos": 27,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"'20.21 sec'"
|
|
]
|
|
},
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"batch_size = 256\n",
|
|
"\n",
|
|
"def get_dataloader_workers(): \n",
|
|
" \"\"\"使用4个进程来读取数据\"\"\"\n",
|
|
" return 4\n",
|
|
"\n",
|
|
"train_iter = data.DataLoader(mnist_train, batch_size, shuffle=True,\n",
|
|
" num_workers=get_dataloader_workers())\n",
|
|
"\n",
|
|
"timer = d2l.Timer()\n",
|
|
"for X, y in train_iter:\n",
|
|
" continue\n",
|
|
"f'{timer.stop():.2f} sec'"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "1e0a3486-8788-4a87-b9b9-cb327ba7d2ca",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"定义`load_data_fashion_mnist`函数"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"id": "5f88e2a1-88b6-49c3-a8b8-2ac9602a71a8",
|
|
"metadata": {
|
|
"origin_pos": 33,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def load_data_fashion_mnist(batch_size, resize=None): \n",
|
|
" \"\"\"下载Fashion-MNIST数据集,然后将其加载到内存中\"\"\"\n",
|
|
" trans = [transforms.ToTensor()]\n",
|
|
" if resize:\n",
|
|
" trans.insert(0, transforms.Resize(resize))\n",
|
|
" trans = transforms.Compose(trans)\n",
|
|
" mnist_train = torchvision.datasets.FashionMNIST(\n",
|
|
" root=\"../data\", train=True, transform=trans, download=True)\n",
|
|
" mnist_test = torchvision.datasets.FashionMNIST(\n",
|
|
" root=\"../data\", train=False, transform=trans, download=True)\n",
|
|
" return (data.DataLoader(mnist_train, batch_size, shuffle=True,\n",
|
|
" num_workers=get_dataloader_workers()),\n",
|
|
" data.DataLoader(mnist_test, batch_size, shuffle=False,\n",
|
|
" num_workers=get_dataloader_workers()))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"id": "b60ce5c6-c1e3-4d51-9d2a-d35e114773ed",
|
|
"metadata": {
|
|
"origin_pos": 33,
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
},
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"torch.Size([32, 1, 64, 64]) torch.float32 torch.Size([32]) torch.int64\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"train_iter, test_iter = load_data_fashion_mnist(32, resize=64)\n",
|
|
"for X, y in train_iter:\n",
|
|
" print(X.shape, X.dtype, y.shape, y.dtype)\n",
|
|
" break"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2b3bc703-261c-4f28-8b13-10599cdfb648",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "-"
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## softmax回归的从零开始实现"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "461c158e-d492-4138-a1dc-a6dee27856c3",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "-"
|
|
}
|
|
},
|
|
"source": [
|
|
"就像我们从零开始实现线性回归一样,你应该知道实现softmax回归的细节"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"id": "7c6ea6a5-00d4-4032-8b69-a23295a1c3b3",
|
|
"metadata": {
|
|
"origin_pos": 4,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import torch\n",
|
|
"from IPython import display\n",
|
|
"from d2l import torch as d2l\n",
|
|
"\n",
|
|
"batch_size = 256\n",
|
|
"train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "79517ad9-cddb-4ee2-9f61-43e0b6bb3341",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"将展平每个图像,把它们看作长度为784的向量。\n",
|
|
"因为我们的数据集有10个类别,所以网络输出维度为10"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"id": "bf6ec527-910e-42ce-b24c-c72da6fa9c74",
|
|
"metadata": {
|
|
"origin_pos": 7,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"num_inputs = 784\n",
|
|
"num_outputs = 10\n",
|
|
"\n",
|
|
"W = torch.normal(0, 0.01, size=(num_inputs, num_outputs), requires_grad=True)\n",
|
|
"b = torch.zeros(num_outputs, requires_grad=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2499dc12-833a-4851-b5de-859d86f428c5",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"给定一个矩阵`X`,我们可以对所有元素求和"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"id": "e7fbccdf-9d88-4244-963a-33ebe05ba5ae",
|
|
"metadata": {
|
|
"origin_pos": 10,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(tensor([[5., 7., 9.]]),\n",
|
|
" tensor([[ 6.],\n",
|
|
" [15.]]))"
|
|
]
|
|
},
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"X = torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])\n",
|
|
"X.sum(0, keepdim=True), X.sum(1, keepdim=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "7338e047-94ed-438d-a0b0-2477692b0c45",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"实现softmax\n",
|
|
"\n",
|
|
"$$\n",
|
|
"\\mathrm{softmax}(\\mathbf{X})_{ij} = \\frac{\\exp(\\mathbf{X}_{ij})}{\\sum_k \\exp(\\mathbf{X}_{ik})}.\n",
|
|
"$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"id": "073aadb5-9a24-44e3-ac4b-3bae84a3a9e2",
|
|
"metadata": {
|
|
"origin_pos": 14,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def softmax(X):\n",
|
|
" X_exp = torch.exp(X)\n",
|
|
" partition = X_exp.sum(1, keepdim=True)\n",
|
|
" return X_exp / partition # 广播机制"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "17706f99-24f6-446f-9f4a-a17368170e3f",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"我们将每个元素变成一个非负数。\n",
|
|
"此外,依据概率原理,每行总和为1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"id": "2ff371fa-6e82-4540-8c7d-0bba75225e1f",
|
|
"metadata": {
|
|
"origin_pos": 16,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(tensor([[0.3532, 0.0347, 0.0805, 0.0395, 0.4921],\n",
|
|
" [0.6108, 0.0814, 0.1468, 0.0484, 0.1126]]),\n",
|
|
" tensor([1., 1.]))"
|
|
]
|
|
},
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"X = torch.normal(0, 1, (2, 5))\n",
|
|
"X_prob = softmax(X)\n",
|
|
"X_prob, X_prob.sum(1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "02ba4bf7-0785-4958-afbf-9519f33ed8af",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"实现softmax回归模型"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"id": "ec1c7adf-b253-48cb-8abc-395098c3635e",
|
|
"metadata": {
|
|
"origin_pos": 19,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def net(X):\n",
|
|
" return softmax(torch.matmul(X.reshape((-1, W.shape[0])), W) + b)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "e1ee288d-3e6e-41de-b4f5-c020e83bd14e",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"创建一个数据样本`y_hat`,其中包含2个样本在3个类别的预测概率,\n",
|
|
"以及它们对应的标签`y`。\n",
|
|
"使用`y`作为`y_hat`中概率的索引"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"id": "83632ade-00af-4692-887f-cd13041c814d",
|
|
"metadata": {
|
|
"origin_pos": 21,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"tensor([0.1000, 0.5000])"
|
|
]
|
|
},
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"y = torch.tensor([0, 2]) # 在第二个样本中,第三类是正确的预测\n",
|
|
"y_hat = torch.tensor([[0.1, 0.3, 0.6], [0.3, 0.2, 0.5]])\n",
|
|
"y_hat[[0, 1], y] # 使用y作为y_hat中概率的索引"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c40efbc6-376d-4557-8b46-35c6aff4f979",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "-"
|
|
}
|
|
},
|
|
"source": [
|
|
"实现交叉熵损失函数"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"id": "f070bea1-2b36-402e-828f-29d2446b0c56",
|
|
"metadata": {
|
|
"origin_pos": 24,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"tensor([2.3026, 0.6931])"
|
|
]
|
|
},
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"def cross_entropy(y_hat, y):\n",
|
|
" \"\"\" 避免低效的for循环 \"\"\"\n",
|
|
" return - torch.log(y_hat[range(len(y_hat)), y])\n",
|
|
"\n",
|
|
"cross_entropy(y_hat, y) # 损失函数,越低越好"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9374a06e-27ed-42fa-a1c9-0c6d90dd4a48",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"将预测类别与真实`y`元素进行比较"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"id": "97a56aa3-f780-4f32-98ca-086d6e1024f0",
|
|
"metadata": {
|
|
"origin_pos": 29,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"0.5"
|
|
]
|
|
},
|
|
"execution_count": 23,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"def accuracy(y_hat, y): \n",
|
|
" \"\"\"计算预测正确的数量\"\"\"\n",
|
|
" if len(y_hat.shape) > 1 and y_hat.shape[1] > 1:\n",
|
|
" y_hat = y_hat.argmax(axis=1)\n",
|
|
" cmp = y_hat.type(y.dtype) == y # 数据类型转成一致\n",
|
|
" return float(cmp.type(y.dtype).sum())\n",
|
|
"\n",
|
|
"accuracy(y_hat, y) / len(y)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "585af5a4-d317-42ee-a5f1-255a594856fa",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"我们可以评估在任意模型`net`的精度"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 24,
|
|
"id": "540c6f10-7592-4fd3-8221-0ef56f88a0bf",
|
|
"metadata": {
|
|
"origin_pos": 32,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def evaluate_accuracy(net, data_iter): \n",
|
|
" \"\"\"计算在指定数据集上模型的精度\"\"\"\n",
|
|
" if isinstance(net, torch.nn.Module):\n",
|
|
" net.eval() # 将模型设置为评估模式\n",
|
|
" metric = Accumulator(2) # 正确预测数、预测总数\n",
|
|
" with torch.no_grad():\n",
|
|
" for X, y in data_iter:\n",
|
|
" metric.add(accuracy(net(X), y), y.numel())\n",
|
|
" return metric[0] / metric[1]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "d7593436-0ca0-4fc3-ae2c-7d7311ddb9f6",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"`Accumulator`实例中创建了2个变量,\n",
|
|
"分别用于存储正确预测的数量和预测的总数量"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"id": "bb38e91c-b8aa-4912-862e-9080a0bbda66",
|
|
"metadata": {
|
|
"origin_pos": 36,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"0.1004"
|
|
]
|
|
},
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"class Accumulator: \n",
|
|
" \"\"\"在n个变量上累加\"\"\"\n",
|
|
" def __init__(self, n):\n",
|
|
" self.data = [0.0] * n\n",
|
|
"\n",
|
|
" def add(self, *args):\n",
|
|
" self.data = [a + float(b) for a, b in zip(self.data, args)]\n",
|
|
"\n",
|
|
" def reset(self):\n",
|
|
" self.data = [0.0] * len(self.data)\n",
|
|
"\n",
|
|
" def __getitem__(self, idx):\n",
|
|
" return self.data[idx]\n",
|
|
"\n",
|
|
"evaluate_accuracy(net, test_iter) # 随机权重初始化,随机猜测应该接近0.1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9ca7e9be-2270-481f-b0c9-882b79efed78",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"Softmax回归的训练"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 26,
|
|
"id": "c4c903ea-72eb-49a9-9888-8e8d5fd6f8a6",
|
|
"metadata": {
|
|
"origin_pos": 39,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def train_epoch_ch3(net, train_iter, loss, updater): \n",
|
|
" \"\"\"训练模型一个迭代周期(定义见第3章)\"\"\"\n",
|
|
" if isinstance(net, torch.nn.Module):\n",
|
|
" net.train() # 将模型设置为训练模式\n",
|
|
" metric = Accumulator(3) # 训练损失总和、训练准确度总和、样本数\n",
|
|
" for X, y in train_iter:\n",
|
|
" # 计算梯度并更新参数\n",
|
|
" y_hat = net(X)\n",
|
|
" l = loss(y_hat, y)\n",
|
|
" if isinstance(updater, torch.optim.Optimizer):\n",
|
|
" # 使用PyTorch内置的优化器和损失函数\n",
|
|
" updater.zero_grad()\n",
|
|
" l.mean().backward()\n",
|
|
" updater.step()\n",
|
|
" else: # 使用定制的优化器和损失函数\n",
|
|
" l.sum().backward()\n",
|
|
" updater(X.shape[0])\n",
|
|
" metric.add(float(l.sum()), accuracy(y_hat, y), y.numel())\n",
|
|
" # 返回训练损失和训练精度\n",
|
|
" return metric[0] / metric[2], metric[1] / metric[2]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "dd06ef05-3914-4ecd-ba5e-59c4fea740c0",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"定义一个在动画中绘制数据的实用程序类"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"id": "3ecf8ca6-1797-497d-abc3-867a591bf464",
|
|
"metadata": {
|
|
"origin_pos": 42,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"class Animator: \n",
|
|
" \"\"\"在动画中绘制数据\"\"\"\n",
|
|
" def __init__(self, xlabel=None, ylabel=None, legend=None, xlim=None,\n",
|
|
" ylim=None, xscale='linear', yscale='linear',\n",
|
|
" fmts=('-', 'm--', 'g-.', 'r:'), nrows=1, ncols=1,\n",
|
|
" figsize=(3.5, 2.5)):\n",
|
|
" if legend is None:\n",
|
|
" legend = [] # 增量地绘制多条线\n",
|
|
" d2l.use_svg_display()\n",
|
|
" self.fig, self.axes = d2l.plt.subplots(nrows, ncols, figsize=figsize)\n",
|
|
" if nrows * ncols == 1:\n",
|
|
" self.axes = [self.axes, ]\n",
|
|
" # 使用lambda函数捕获参数\n",
|
|
" self.config_axes = lambda: d2l.set_axes(\n",
|
|
" self.axes[0], xlabel, ylabel, xlim, ylim, xscale, yscale, legend)\n",
|
|
" self.X, self.Y, self.fmts = None, None, fmts\n",
|
|
"\n",
|
|
" def add(self, x, y):\n",
|
|
" # 向图表中添加多个数据点\n",
|
|
" if not hasattr(y, \"__len__\"):\n",
|
|
" y = [y]\n",
|
|
" n = len(y)\n",
|
|
" if not hasattr(x, \"__len__\"):\n",
|
|
" x = [x] * n\n",
|
|
" if not self.X:\n",
|
|
" self.X = [[] for _ in range(n)]\n",
|
|
" if not self.Y:\n",
|
|
" self.Y = [[] for _ in range(n)]\n",
|
|
" for i, (a, b) in enumerate(zip(x, y)):\n",
|
|
" if a is not None and b is not None:\n",
|
|
" self.X[i].append(a)\n",
|
|
" self.Y[i].append(b)\n",
|
|
" self.axes[0].cla()\n",
|
|
" for x, y, fmt in zip(self.X, self.Y, self.fmts):\n",
|
|
" self.axes[0].plot(x, y, fmt)\n",
|
|
" self.config_axes()\n",
|
|
" display.display(self.fig)\n",
|
|
" display.clear_output(wait=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "91290f6c-081c-430f-8563-73166defe322",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"训练函数"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"id": "500cf101-f3cb-44c5-abc6-bbfb770e7953",
|
|
"metadata": {
|
|
"origin_pos": 44,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def train_ch3(net, train_iter, test_iter, loss, num_epochs, updater): \n",
|
|
" \"\"\"训练模型(定义见第3章)\"\"\"\n",
|
|
" animator = Animator(xlabel='epoch', xlim=[1, num_epochs], ylim=[0.3, 0.9],\n",
|
|
" legend=['train loss', 'train acc', 'test acc'])\n",
|
|
" for epoch in range(num_epochs):\n",
|
|
" train_metrics = train_epoch_ch3(net, train_iter, loss, updater)\n",
|
|
" test_acc = evaluate_accuracy(net, test_iter)\n",
|
|
" animator.add(epoch + 1, train_metrics + (test_acc,))\n",
|
|
" train_loss, train_acc = train_metrics\n",
|
|
" assert train_loss < 0.5, train_loss\n",
|
|
" assert train_acc <= 1 and train_acc > 0.7, train_acc\n",
|
|
" assert test_acc <= 1 and test_acc > 0.7, test_acc"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "09e83970-88ed-4d77-a10a-92fad6a89449",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"小批量随机梯度下降来优化模型的损失函数"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"id": "ed05114c-e815-44c4-bcce-10880f11286a",
|
|
"metadata": {
|
|
"origin_pos": 46,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"lr = 0.1\n",
|
|
"\n",
|
|
"def updater(batch_size):\n",
|
|
" return d2l.sgd([W, b], lr, batch_size)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "6e153647-c2d1-4497-a261-42dfc29ccfd9",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"训练模型10个迭代周期"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 30,
|
|
"id": "cc4149fd-a083-4a50-a164-d71513ea5edb",
|
|
"metadata": {
|
|
"origin_pos": 49,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"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",
|
|
"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"238.965625pt\" height=\"183.35625pt\" viewBox=\"0 0 238.965625 183.35625\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
|
|
" <metadata>\n",
|
|
" <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
|
|
" <cc:Work>\n",
|
|
" <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
|
|
" <dc:date>2023-02-26T14:17:07.123256</dc:date>\n",
|
|
" <dc:format>image/svg+xml</dc:format>\n",
|
|
" <dc:creator>\n",
|
|
" <cc:Agent>\n",
|
|
" <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
|
|
" </cc:Agent>\n",
|
|
" </dc:creator>\n",
|
|
" </cc:Work>\n",
|
|
" </rdf:RDF>\n",
|
|
" </metadata>\n",
|
|
" <defs>\n",
|
|
" <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
|
|
" </defs>\n",
|
|
" <g id=\"figure_1\">\n",
|
|
" <g id=\"patch_1\">\n",
|
|
" <path d=\"M 0 183.35625 \n",
|
|
"L 238.965625 183.35625 \n",
|
|
"L 238.965625 0 \n",
|
|
"L 0 0 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_1\">\n",
|
|
" <g id=\"patch_2\">\n",
|
|
" <path d=\"M 30.103125 145.8 \n",
|
|
"L 225.403125 145.8 \n",
|
|
"L 225.403125 7.2 \n",
|
|
"L 30.103125 7.2 \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",
|
|
" <path d=\"M 51.803125 145.8 \n",
|
|
"L 51.803125 7.2 \n",
|
|
"\" clip-path=\"url(#p76b91bb5ea)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_2\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"m01d936e218\" d=\"M 0 0 \n",
|
|
"L 0 3.5 \n",
|
|
"\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#m01d936e218\" x=\"51.803125\" y=\"145.8\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_1\">\n",
|
|
" <!-- 2 -->\n",
|
|
" <g transform=\"translate(48.621875 160.398438)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
|
|
"L 3431 531 \n",
|
|
"L 3431 0 \n",
|
|
"L 469 0 \n",
|
|
"L 469 531 \n",
|
|
"Q 828 903 1448 1529 \n",
|
|
"Q 2069 2156 2228 2338 \n",
|
|
"Q 2531 2678 2651 2914 \n",
|
|
"Q 2772 3150 2772 3378 \n",
|
|
"Q 2772 3750 2511 3984 \n",
|
|
"Q 2250 4219 1831 4219 \n",
|
|
"Q 1534 4219 1204 4116 \n",
|
|
"Q 875 4013 500 3803 \n",
|
|
"L 500 4441 \n",
|
|
"Q 881 4594 1212 4672 \n",
|
|
"Q 1544 4750 1819 4750 \n",
|
|
"Q 2544 4750 2975 4387 \n",
|
|
"Q 3406 4025 3406 3419 \n",
|
|
"Q 3406 3131 3298 2873 \n",
|
|
"Q 3191 2616 2906 2266 \n",
|
|
"Q 2828 2175 2409 1742 \n",
|
|
"Q 1991 1309 1228 531 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_2\">\n",
|
|
" <g id=\"line2d_3\">\n",
|
|
" <path d=\"M 95.203125 145.8 \n",
|
|
"L 95.203125 7.2 \n",
|
|
"\" clip-path=\"url(#p76b91bb5ea)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_4\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#m01d936e218\" x=\"95.203125\" y=\"145.8\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_2\">\n",
|
|
" <!-- 4 -->\n",
|
|
" <g transform=\"translate(92.021875 160.398438)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-34\" d=\"M 2419 4116 \n",
|
|
"L 825 1625 \n",
|
|
"L 2419 1625 \n",
|
|
"L 2419 4116 \n",
|
|
"z\n",
|
|
"M 2253 4666 \n",
|
|
"L 3047 4666 \n",
|
|
"L 3047 1625 \n",
|
|
"L 3713 1625 \n",
|
|
"L 3713 1100 \n",
|
|
"L 3047 1100 \n",
|
|
"L 3047 0 \n",
|
|
"L 2419 0 \n",
|
|
"L 2419 1100 \n",
|
|
"L 313 1100 \n",
|
|
"L 313 1709 \n",
|
|
"L 2253 4666 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_3\">\n",
|
|
" <g id=\"line2d_5\">\n",
|
|
" <path d=\"M 138.603125 145.8 \n",
|
|
"L 138.603125 7.2 \n",
|
|
"\" clip-path=\"url(#p76b91bb5ea)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_6\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#m01d936e218\" x=\"138.603125\" y=\"145.8\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_3\">\n",
|
|
" <!-- 6 -->\n",
|
|
" <g transform=\"translate(135.421875 160.398438)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-36\" d=\"M 2113 2584 \n",
|
|
"Q 1688 2584 1439 2293 \n",
|
|
"Q 1191 2003 1191 1497 \n",
|
|
"Q 1191 994 1439 701 \n",
|
|
"Q 1688 409 2113 409 \n",
|
|
"Q 2538 409 2786 701 \n",
|
|
"Q 3034 994 3034 1497 \n",
|
|
"Q 3034 2003 2786 2293 \n",
|
|
"Q 2538 2584 2113 2584 \n",
|
|
"z\n",
|
|
"M 3366 4563 \n",
|
|
"L 3366 3988 \n",
|
|
"Q 3128 4100 2886 4159 \n",
|
|
"Q 2644 4219 2406 4219 \n",
|
|
"Q 1781 4219 1451 3797 \n",
|
|
"Q 1122 3375 1075 2522 \n",
|
|
"Q 1259 2794 1537 2939 \n",
|
|
"Q 1816 3084 2150 3084 \n",
|
|
"Q 2853 3084 3261 2657 \n",
|
|
"Q 3669 2231 3669 1497 \n",
|
|
"Q 3669 778 3244 343 \n",
|
|
"Q 2819 -91 2113 -91 \n",
|
|
"Q 1303 -91 875 529 \n",
|
|
"Q 447 1150 447 2328 \n",
|
|
"Q 447 3434 972 4092 \n",
|
|
"Q 1497 4750 2381 4750 \n",
|
|
"Q 2619 4750 2861 4703 \n",
|
|
"Q 3103 4656 3366 4563 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-36\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_4\">\n",
|
|
" <g id=\"line2d_7\">\n",
|
|
" <path d=\"M 182.003125 145.8 \n",
|
|
"L 182.003125 7.2 \n",
|
|
"\" clip-path=\"url(#p76b91bb5ea)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_8\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#m01d936e218\" x=\"182.003125\" y=\"145.8\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_4\">\n",
|
|
" <!-- 8 -->\n",
|
|
" <g transform=\"translate(178.821875 160.398438)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-38\" d=\"M 2034 2216 \n",
|
|
"Q 1584 2216 1326 1975 \n",
|
|
"Q 1069 1734 1069 1313 \n",
|
|
"Q 1069 891 1326 650 \n",
|
|
"Q 1584 409 2034 409 \n",
|
|
"Q 2484 409 2743 651 \n",
|
|
"Q 3003 894 3003 1313 \n",
|
|
"Q 3003 1734 2745 1975 \n",
|
|
"Q 2488 2216 2034 2216 \n",
|
|
"z\n",
|
|
"M 1403 2484 \n",
|
|
"Q 997 2584 770 2862 \n",
|
|
"Q 544 3141 544 3541 \n",
|
|
"Q 544 4100 942 4425 \n",
|
|
"Q 1341 4750 2034 4750 \n",
|
|
"Q 2731 4750 3128 4425 \n",
|
|
"Q 3525 4100 3525 3541 \n",
|
|
"Q 3525 3141 3298 2862 \n",
|
|
"Q 3072 2584 2669 2484 \n",
|
|
"Q 3125 2378 3379 2068 \n",
|
|
"Q 3634 1759 3634 1313 \n",
|
|
"Q 3634 634 3220 271 \n",
|
|
"Q 2806 -91 2034 -91 \n",
|
|
"Q 1263 -91 848 271 \n",
|
|
"Q 434 634 434 1313 \n",
|
|
"Q 434 1759 690 2068 \n",
|
|
"Q 947 2378 1403 2484 \n",
|
|
"z\n",
|
|
"M 1172 3481 \n",
|
|
"Q 1172 3119 1398 2916 \n",
|
|
"Q 1625 2713 2034 2713 \n",
|
|
"Q 2441 2713 2670 2916 \n",
|
|
"Q 2900 3119 2900 3481 \n",
|
|
"Q 2900 3844 2670 4047 \n",
|
|
"Q 2441 4250 2034 4250 \n",
|
|
"Q 1625 4250 1398 4047 \n",
|
|
"Q 1172 3844 1172 3481 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-38\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_5\">\n",
|
|
" <g id=\"line2d_9\">\n",
|
|
" <path d=\"M 225.403125 145.8 \n",
|
|
"L 225.403125 7.2 \n",
|
|
"\" clip-path=\"url(#p76b91bb5ea)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_10\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#m01d936e218\" x=\"225.403125\" y=\"145.8\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_5\">\n",
|
|
" <!-- 10 -->\n",
|
|
" <g transform=\"translate(219.040625 160.398438)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
|
|
"L 1825 531 \n",
|
|
"L 1825 4091 \n",
|
|
"L 703 3866 \n",
|
|
"L 703 4441 \n",
|
|
"L 1819 4666 \n",
|
|
"L 2450 4666 \n",
|
|
"L 2450 531 \n",
|
|
"L 3481 531 \n",
|
|
"L 3481 0 \n",
|
|
"L 794 0 \n",
|
|
"L 794 531 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
|
|
"Q 1547 4250 1301 3770 \n",
|
|
"Q 1056 3291 1056 2328 \n",
|
|
"Q 1056 1369 1301 889 \n",
|
|
"Q 1547 409 2034 409 \n",
|
|
"Q 2525 409 2770 889 \n",
|
|
"Q 3016 1369 3016 2328 \n",
|
|
"Q 3016 3291 2770 3770 \n",
|
|
"Q 2525 4250 2034 4250 \n",
|
|
"z\n",
|
|
"M 2034 4750 \n",
|
|
"Q 2819 4750 3233 4129 \n",
|
|
"Q 3647 3509 3647 2328 \n",
|
|
"Q 3647 1150 3233 529 \n",
|
|
"Q 2819 -91 2034 -91 \n",
|
|
"Q 1250 -91 836 529 \n",
|
|
"Q 422 1150 422 2328 \n",
|
|
"Q 422 3509 836 4129 \n",
|
|
"Q 1250 4750 2034 4750 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_6\">\n",
|
|
" <!-- epoch -->\n",
|
|
" <g transform=\"translate(112.525 174.076563)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-65\" d=\"M 3597 1894 \n",
|
|
"L 3597 1613 \n",
|
|
"L 953 1613 \n",
|
|
"Q 991 1019 1311 708 \n",
|
|
"Q 1631 397 2203 397 \n",
|
|
"Q 2534 397 2845 478 \n",
|
|
"Q 3156 559 3463 722 \n",
|
|
"L 3463 178 \n",
|
|
"Q 3153 47 2828 -22 \n",
|
|
"Q 2503 -91 2169 -91 \n",
|
|
"Q 1331 -91 842 396 \n",
|
|
"Q 353 884 353 1716 \n",
|
|
"Q 353 2575 817 3079 \n",
|
|
"Q 1281 3584 2069 3584 \n",
|
|
"Q 2775 3584 3186 3129 \n",
|
|
"Q 3597 2675 3597 1894 \n",
|
|
"z\n",
|
|
"M 3022 2063 \n",
|
|
"Q 3016 2534 2758 2815 \n",
|
|
"Q 2500 3097 2075 3097 \n",
|
|
"Q 1594 3097 1305 2825 \n",
|
|
"Q 1016 2553 972 2059 \n",
|
|
"L 3022 2063 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-70\" d=\"M 1159 525 \n",
|
|
"L 1159 -1331 \n",
|
|
"L 581 -1331 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2969 \n",
|
|
"Q 1341 3281 1617 3432 \n",
|
|
"Q 1894 3584 2278 3584 \n",
|
|
"Q 2916 3584 3314 3078 \n",
|
|
"Q 3713 2572 3713 1747 \n",
|
|
"Q 3713 922 3314 415 \n",
|
|
"Q 2916 -91 2278 -91 \n",
|
|
"Q 1894 -91 1617 61 \n",
|
|
"Q 1341 213 1159 525 \n",
|
|
"z\n",
|
|
"M 3116 1747 \n",
|
|
"Q 3116 2381 2855 2742 \n",
|
|
"Q 2594 3103 2138 3103 \n",
|
|
"Q 1681 3103 1420 2742 \n",
|
|
"Q 1159 2381 1159 1747 \n",
|
|
"Q 1159 1113 1420 752 \n",
|
|
"Q 1681 391 2138 391 \n",
|
|
"Q 2594 391 2855 752 \n",
|
|
"Q 3116 1113 3116 1747 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6f\" d=\"M 1959 3097 \n",
|
|
"Q 1497 3097 1228 2736 \n",
|
|
"Q 959 2375 959 1747 \n",
|
|
"Q 959 1119 1226 758 \n",
|
|
"Q 1494 397 1959 397 \n",
|
|
"Q 2419 397 2687 759 \n",
|
|
"Q 2956 1122 2956 1747 \n",
|
|
"Q 2956 2369 2687 2733 \n",
|
|
"Q 2419 3097 1959 3097 \n",
|
|
"z\n",
|
|
"M 1959 3584 \n",
|
|
"Q 2709 3584 3137 3096 \n",
|
|
"Q 3566 2609 3566 1747 \n",
|
|
"Q 3566 888 3137 398 \n",
|
|
"Q 2709 -91 1959 -91 \n",
|
|
"Q 1206 -91 779 398 \n",
|
|
"Q 353 888 353 1747 \n",
|
|
"Q 353 2609 779 3096 \n",
|
|
"Q 1206 3584 1959 3584 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-63\" d=\"M 3122 3366 \n",
|
|
"L 3122 2828 \n",
|
|
"Q 2878 2963 2633 3030 \n",
|
|
"Q 2388 3097 2138 3097 \n",
|
|
"Q 1578 3097 1268 2742 \n",
|
|
"Q 959 2388 959 1747 \n",
|
|
"Q 959 1106 1268 751 \n",
|
|
"Q 1578 397 2138 397 \n",
|
|
"Q 2388 397 2633 464 \n",
|
|
"Q 2878 531 3122 666 \n",
|
|
"L 3122 134 \n",
|
|
"Q 2881 22 2623 -34 \n",
|
|
"Q 2366 -91 2075 -91 \n",
|
|
"Q 1284 -91 818 406 \n",
|
|
"Q 353 903 353 1747 \n",
|
|
"Q 353 2603 823 3093 \n",
|
|
"Q 1294 3584 2113 3584 \n",
|
|
"Q 2378 3584 2631 3529 \n",
|
|
"Q 2884 3475 3122 3366 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-68\" d=\"M 3513 2113 \n",
|
|
"L 3513 0 \n",
|
|
"L 2938 0 \n",
|
|
"L 2938 2094 \n",
|
|
"Q 2938 2591 2744 2837 \n",
|
|
"Q 2550 3084 2163 3084 \n",
|
|
"Q 1697 3084 1428 2787 \n",
|
|
"Q 1159 2491 1159 1978 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 4863 \n",
|
|
"L 1159 4863 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1366 3272 1645 3428 \n",
|
|
"Q 1925 3584 2291 3584 \n",
|
|
"Q 2894 3584 3203 3211 \n",
|
|
"Q 3513 2838 3513 2113 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-70\" x=\"61.523438\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"125\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\" x=\"186.181641\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-68\" x=\"241.162109\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"matplotlib.axis_2\">\n",
|
|
" <g id=\"ytick_1\">\n",
|
|
" <g id=\"line2d_11\">\n",
|
|
" <path d=\"M 30.103125 122.7 \n",
|
|
"L 225.403125 122.7 \n",
|
|
"\" clip-path=\"url(#p76b91bb5ea)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_12\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"ma564e6261a\" d=\"M 0 0 \n",
|
|
"L -3.5 0 \n",
|
|
"\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#ma564e6261a\" x=\"30.103125\" y=\"122.7\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_7\">\n",
|
|
" <!-- 0.4 -->\n",
|
|
" <g transform=\"translate(7.2 126.499219)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-2e\" d=\"M 684 794 \n",
|
|
"L 1344 794 \n",
|
|
"L 1344 0 \n",
|
|
"L 684 0 \n",
|
|
"L 684 794 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-34\" x=\"95.410156\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_2\">\n",
|
|
" <g id=\"line2d_13\">\n",
|
|
" <path d=\"M 30.103125 76.5 \n",
|
|
"L 225.403125 76.5 \n",
|
|
"\" clip-path=\"url(#p76b91bb5ea)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_14\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#ma564e6261a\" x=\"30.103125\" y=\"76.5\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_8\">\n",
|
|
" <!-- 0.6 -->\n",
|
|
" <g transform=\"translate(7.2 80.299219)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-36\" x=\"95.410156\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_3\">\n",
|
|
" <g id=\"line2d_15\">\n",
|
|
" <path d=\"M 30.103125 30.3 \n",
|
|
"L 225.403125 30.3 \n",
|
|
"\" clip-path=\"url(#p76b91bb5ea)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_16\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#ma564e6261a\" x=\"30.103125\" y=\"30.3\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_9\">\n",
|
|
" <!-- 0.8 -->\n",
|
|
" <g transform=\"translate(7.2 34.099219)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-38\" x=\"95.410156\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_17\">\n",
|
|
" <path d=\"M 30.103125 33.033828 \n",
|
|
"L 51.803125 83.202745 \n",
|
|
"L 73.503125 93.778653 \n",
|
|
"L 95.203125 99.644395 \n",
|
|
"L 116.903125 102.952155 \n",
|
|
"L 138.603125 105.613518 \n",
|
|
"L 160.303125 107.413535 \n",
|
|
"L 182.003125 109.338917 \n",
|
|
"L 203.703125 110.679115 \n",
|
|
"L 225.403125 111.596554 \n",
|
|
"\" clip-path=\"url(#p76b91bb5ea)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_18\">\n",
|
|
" <path d=\"M 30.103125 42.4891 \n",
|
|
"L 51.803125 27.35475 \n",
|
|
"L 73.503125 24.4557 \n",
|
|
"L 95.203125 22.67315 \n",
|
|
"L 116.903125 21.80305 \n",
|
|
"L 138.603125 20.906 \n",
|
|
"L 160.303125 20.2592 \n",
|
|
"L 182.003125 19.83185 \n",
|
|
"L 203.703125 19.66245 \n",
|
|
"L 225.403125 19.18505 \n",
|
|
"\" clip-path=\"url(#p76b91bb5ea)\" style=\"fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #bf00bf; stroke-width: 1.5\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_19\">\n",
|
|
" <path d=\"M 30.103125 33.2799 \n",
|
|
"L 51.803125 26.9736 \n",
|
|
"L 73.503125 25.5183 \n",
|
|
"L 95.203125 25.3566 \n",
|
|
"L 116.903125 24.525 \n",
|
|
"L 138.603125 25.4259 \n",
|
|
"L 160.303125 24.6636 \n",
|
|
"L 182.003125 23.9013 \n",
|
|
"L 203.703125 22.4229 \n",
|
|
"L 225.403125 23.2776 \n",
|
|
"\" clip-path=\"url(#p76b91bb5ea)\" style=\"fill: none; stroke-dasharray: 9.6,2.4,1.5,2.4; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_3\">\n",
|
|
" <path d=\"M 30.103125 145.8 \n",
|
|
"L 30.103125 7.2 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_4\">\n",
|
|
" <path d=\"M 225.403125 145.8 \n",
|
|
"L 225.403125 7.2 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_5\">\n",
|
|
" <path d=\"M 30.103125 145.8 \n",
|
|
"L 225.403125 145.8 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_6\">\n",
|
|
" <path d=\"M 30.103125 7.2 \n",
|
|
"L 225.403125 7.2 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"legend_1\">\n",
|
|
" <g id=\"patch_7\">\n",
|
|
" <path d=\"M 140.634375 100.017188 \n",
|
|
"L 218.403125 100.017188 \n",
|
|
"Q 220.403125 100.017188 220.403125 98.017188 \n",
|
|
"L 220.403125 54.982812 \n",
|
|
"Q 220.403125 52.982812 218.403125 52.982812 \n",
|
|
"L 140.634375 52.982812 \n",
|
|
"Q 138.634375 52.982812 138.634375 54.982812 \n",
|
|
"L 138.634375 98.017188 \n",
|
|
"Q 138.634375 100.017188 140.634375 100.017188 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_20\">\n",
|
|
" <path d=\"M 142.634375 61.08125 \n",
|
|
"L 152.634375 61.08125 \n",
|
|
"L 162.634375 61.08125 \n",
|
|
"\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_10\">\n",
|
|
" <!-- train loss -->\n",
|
|
" <g transform=\"translate(170.634375 64.58125)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-74\" d=\"M 1172 4494 \n",
|
|
"L 1172 3500 \n",
|
|
"L 2356 3500 \n",
|
|
"L 2356 3053 \n",
|
|
"L 1172 3053 \n",
|
|
"L 1172 1153 \n",
|
|
"Q 1172 725 1289 603 \n",
|
|
"Q 1406 481 1766 481 \n",
|
|
"L 2356 481 \n",
|
|
"L 2356 0 \n",
|
|
"L 1766 0 \n",
|
|
"Q 1100 0 847 248 \n",
|
|
"Q 594 497 594 1153 \n",
|
|
"L 594 3053 \n",
|
|
"L 172 3053 \n",
|
|
"L 172 3500 \n",
|
|
"L 594 3500 \n",
|
|
"L 594 4494 \n",
|
|
"L 1172 4494 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-72\" d=\"M 2631 2963 \n",
|
|
"Q 2534 3019 2420 3045 \n",
|
|
"Q 2306 3072 2169 3072 \n",
|
|
"Q 1681 3072 1420 2755 \n",
|
|
"Q 1159 2438 1159 1844 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1341 3275 1631 3429 \n",
|
|
"Q 1922 3584 2338 3584 \n",
|
|
"Q 2397 3584 2469 3576 \n",
|
|
"Q 2541 3569 2628 3553 \n",
|
|
"L 2631 2963 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-61\" d=\"M 2194 1759 \n",
|
|
"Q 1497 1759 1228 1600 \n",
|
|
"Q 959 1441 959 1056 \n",
|
|
"Q 959 750 1161 570 \n",
|
|
"Q 1363 391 1709 391 \n",
|
|
"Q 2188 391 2477 730 \n",
|
|
"Q 2766 1069 2766 1631 \n",
|
|
"L 2766 1759 \n",
|
|
"L 2194 1759 \n",
|
|
"z\n",
|
|
"M 3341 1997 \n",
|
|
"L 3341 0 \n",
|
|
"L 2766 0 \n",
|
|
"L 2766 531 \n",
|
|
"Q 2569 213 2275 61 \n",
|
|
"Q 1981 -91 1556 -91 \n",
|
|
"Q 1019 -91 701 211 \n",
|
|
"Q 384 513 384 1019 \n",
|
|
"Q 384 1609 779 1909 \n",
|
|
"Q 1175 2209 1959 2209 \n",
|
|
"L 2766 2209 \n",
|
|
"L 2766 2266 \n",
|
|
"Q 2766 2663 2505 2880 \n",
|
|
"Q 2244 3097 1772 3097 \n",
|
|
"Q 1472 3097 1187 3025 \n",
|
|
"Q 903 2953 641 2809 \n",
|
|
"L 641 3341 \n",
|
|
"Q 956 3463 1253 3523 \n",
|
|
"Q 1550 3584 1831 3584 \n",
|
|
"Q 2591 3584 2966 3190 \n",
|
|
"Q 3341 2797 3341 1997 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-69\" d=\"M 603 3500 \n",
|
|
"L 1178 3500 \n",
|
|
"L 1178 0 \n",
|
|
"L 603 0 \n",
|
|
"L 603 3500 \n",
|
|
"z\n",
|
|
"M 603 4863 \n",
|
|
"L 1178 4863 \n",
|
|
"L 1178 4134 \n",
|
|
"L 603 4134 \n",
|
|
"L 603 4863 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6e\" d=\"M 3513 2113 \n",
|
|
"L 3513 0 \n",
|
|
"L 2938 0 \n",
|
|
"L 2938 2094 \n",
|
|
"Q 2938 2591 2744 2837 \n",
|
|
"Q 2550 3084 2163 3084 \n",
|
|
"Q 1697 3084 1428 2787 \n",
|
|
"Q 1159 2491 1159 1978 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1366 3272 1645 3428 \n",
|
|
"Q 1925 3584 2291 3584 \n",
|
|
"Q 2894 3584 3203 3211 \n",
|
|
"Q 3513 2838 3513 2113 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-20\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
|
|
"L 1178 4863 \n",
|
|
"L 1178 0 \n",
|
|
"L 603 0 \n",
|
|
"L 603 4863 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-73\" d=\"M 2834 3397 \n",
|
|
"L 2834 2853 \n",
|
|
"Q 2591 2978 2328 3040 \n",
|
|
"Q 2066 3103 1784 3103 \n",
|
|
"Q 1356 3103 1142 2972 \n",
|
|
"Q 928 2841 928 2578 \n",
|
|
"Q 928 2378 1081 2264 \n",
|
|
"Q 1234 2150 1697 2047 \n",
|
|
"L 1894 2003 \n",
|
|
"Q 2506 1872 2764 1633 \n",
|
|
"Q 3022 1394 3022 966 \n",
|
|
"Q 3022 478 2636 193 \n",
|
|
"Q 2250 -91 1575 -91 \n",
|
|
"Q 1294 -91 989 -36 \n",
|
|
"Q 684 19 347 128 \n",
|
|
"L 347 722 \n",
|
|
"Q 666 556 975 473 \n",
|
|
"Q 1284 391 1588 391 \n",
|
|
"Q 1994 391 2212 530 \n",
|
|
"Q 2431 669 2431 922 \n",
|
|
"Q 2431 1156 2273 1281 \n",
|
|
"Q 2116 1406 1581 1522 \n",
|
|
"L 1381 1569 \n",
|
|
"Q 847 1681 609 1914 \n",
|
|
"Q 372 2147 372 2553 \n",
|
|
"Q 372 3047 722 3315 \n",
|
|
"Q 1072 3584 1716 3584 \n",
|
|
"Q 2034 3584 2315 3537 \n",
|
|
"Q 2597 3491 2834 3397 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"80.322266\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"141.601562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"169.384766\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-20\" x=\"232.763672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"264.550781\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"292.333984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"353.515625\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"405.615234\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_21\">\n",
|
|
" <path d=\"M 142.634375 75.759375 \n",
|
|
"L 152.634375 75.759375 \n",
|
|
"L 162.634375 75.759375 \n",
|
|
"\" style=\"fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #bf00bf; stroke-width: 1.5\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_11\">\n",
|
|
" <!-- train acc -->\n",
|
|
" <g transform=\"translate(170.634375 79.259375)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"80.322266\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"141.601562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"169.384766\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-20\" x=\"232.763672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"264.550781\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\" x=\"325.830078\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\" x=\"380.810547\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_22\">\n",
|
|
" <path d=\"M 142.634375 90.4375 \n",
|
|
"L 152.634375 90.4375 \n",
|
|
"L 162.634375 90.4375 \n",
|
|
"\" style=\"fill: none; stroke-dasharray: 9.6,2.4,1.5,2.4; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_12\">\n",
|
|
" <!-- test acc -->\n",
|
|
" <g transform=\"translate(170.634375 93.9375)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"100.732422\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"152.832031\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-20\" x=\"192.041016\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"223.828125\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\" x=\"285.107422\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\" x=\"340.087891\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <defs>\n",
|
|
" <clipPath id=\"p76b91bb5ea\">\n",
|
|
" <rect x=\"30.103125\" y=\"7.2\" width=\"195.3\" height=\"138.6\"/>\n",
|
|
" </clipPath>\n",
|
|
" </defs>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<Figure size 350x250 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"num_epochs = 10\n",
|
|
"train_ch3(net, train_iter, test_iter, cross_entropy, num_epochs, updater)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2ec84ab6-8482-46a9-ab68-522f2faba21c",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"对图像进行分类预测"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"id": "f5909439-a31c-4ade-aab8-5bb3edb9fa23",
|
|
"metadata": {
|
|
"origin_pos": 51,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [
|
|
{
|
|
"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",
|
|
"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"687.5pt\" height=\"117.689543pt\" viewBox=\"0 0 687.5 117.689543\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
|
|
" <metadata>\n",
|
|
" <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
|
|
" <cc:Work>\n",
|
|
" <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
|
|
" <dc:date>2023-02-26T14:17:16.183922</dc:date>\n",
|
|
" <dc:format>image/svg+xml</dc:format>\n",
|
|
" <dc:creator>\n",
|
|
" <cc:Agent>\n",
|
|
" <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
|
|
" </cc:Agent>\n",
|
|
" </dc:creator>\n",
|
|
" </cc:Work>\n",
|
|
" </rdf:RDF>\n",
|
|
" </metadata>\n",
|
|
" <defs>\n",
|
|
" <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
|
|
" </defs>\n",
|
|
" <g id=\"figure_1\">\n",
|
|
" <g id=\"patch_1\">\n",
|
|
" <path d=\"M 0 117.689543 \n",
|
|
"L 687.5 117.689543 \n",
|
|
"L 687.5 0 \n",
|
|
"L 0 0 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_1\">\n",
|
|
" <g id=\"patch_2\">\n",
|
|
" <path d=\"M 10.7 106.989543 \n",
|
|
"L 81.934043 106.989543 \n",
|
|
"L 81.934043 35.7555 \n",
|
|
"L 10.7 35.7555 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pa6a0bcff3d)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image1cc93e68a1\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"10.7\" y=\"-35.709543\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_3\">\n",
|
|
" <path d=\"M 10.7 106.989543 \n",
|
|
"L 10.7 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_4\">\n",
|
|
" <path d=\"M 81.934043 106.989543 \n",
|
|
"L 81.934043 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_5\">\n",
|
|
" <path d=\"M 10.7 106.989543 \n",
|
|
"L 81.934043 106.989543 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_6\">\n",
|
|
" <path d=\"M 10.7 35.7555 \n",
|
|
"L 81.934043 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_1\">\n",
|
|
" <!-- ankle boot -->\n",
|
|
" <g transform=\"translate(14.593896 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-61\" d=\"M 2194 1759 \n",
|
|
"Q 1497 1759 1228 1600 \n",
|
|
"Q 959 1441 959 1056 \n",
|
|
"Q 959 750 1161 570 \n",
|
|
"Q 1363 391 1709 391 \n",
|
|
"Q 2188 391 2477 730 \n",
|
|
"Q 2766 1069 2766 1631 \n",
|
|
"L 2766 1759 \n",
|
|
"L 2194 1759 \n",
|
|
"z\n",
|
|
"M 3341 1997 \n",
|
|
"L 3341 0 \n",
|
|
"L 2766 0 \n",
|
|
"L 2766 531 \n",
|
|
"Q 2569 213 2275 61 \n",
|
|
"Q 1981 -91 1556 -91 \n",
|
|
"Q 1019 -91 701 211 \n",
|
|
"Q 384 513 384 1019 \n",
|
|
"Q 384 1609 779 1909 \n",
|
|
"Q 1175 2209 1959 2209 \n",
|
|
"L 2766 2209 \n",
|
|
"L 2766 2266 \n",
|
|
"Q 2766 2663 2505 2880 \n",
|
|
"Q 2244 3097 1772 3097 \n",
|
|
"Q 1472 3097 1187 3025 \n",
|
|
"Q 903 2953 641 2809 \n",
|
|
"L 641 3341 \n",
|
|
"Q 956 3463 1253 3523 \n",
|
|
"Q 1550 3584 1831 3584 \n",
|
|
"Q 2591 3584 2966 3190 \n",
|
|
"Q 3341 2797 3341 1997 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6e\" d=\"M 3513 2113 \n",
|
|
"L 3513 0 \n",
|
|
"L 2938 0 \n",
|
|
"L 2938 2094 \n",
|
|
"Q 2938 2591 2744 2837 \n",
|
|
"Q 2550 3084 2163 3084 \n",
|
|
"Q 1697 3084 1428 2787 \n",
|
|
"Q 1159 2491 1159 1978 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1366 3272 1645 3428 \n",
|
|
"Q 1925 3584 2291 3584 \n",
|
|
"Q 2894 3584 3203 3211 \n",
|
|
"Q 3513 2838 3513 2113 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6b\" d=\"M 581 4863 \n",
|
|
"L 1159 4863 \n",
|
|
"L 1159 1991 \n",
|
|
"L 2875 3500 \n",
|
|
"L 3609 3500 \n",
|
|
"L 1753 1863 \n",
|
|
"L 3688 0 \n",
|
|
"L 2938 0 \n",
|
|
"L 1159 1709 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 4863 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
|
|
"L 1178 4863 \n",
|
|
"L 1178 0 \n",
|
|
"L 603 0 \n",
|
|
"L 603 4863 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-65\" d=\"M 3597 1894 \n",
|
|
"L 3597 1613 \n",
|
|
"L 953 1613 \n",
|
|
"Q 991 1019 1311 708 \n",
|
|
"Q 1631 397 2203 397 \n",
|
|
"Q 2534 397 2845 478 \n",
|
|
"Q 3156 559 3463 722 \n",
|
|
"L 3463 178 \n",
|
|
"Q 3153 47 2828 -22 \n",
|
|
"Q 2503 -91 2169 -91 \n",
|
|
"Q 1331 -91 842 396 \n",
|
|
"Q 353 884 353 1716 \n",
|
|
"Q 353 2575 817 3079 \n",
|
|
"Q 1281 3584 2069 3584 \n",
|
|
"Q 2775 3584 3186 3129 \n",
|
|
"Q 3597 2675 3597 1894 \n",
|
|
"z\n",
|
|
"M 3022 2063 \n",
|
|
"Q 3016 2534 2758 2815 \n",
|
|
"Q 2500 3097 2075 3097 \n",
|
|
"Q 1594 3097 1305 2825 \n",
|
|
"Q 1016 2553 972 2059 \n",
|
|
"L 3022 2063 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-20\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-62\" d=\"M 3116 1747 \n",
|
|
"Q 3116 2381 2855 2742 \n",
|
|
"Q 2594 3103 2138 3103 \n",
|
|
"Q 1681 3103 1420 2742 \n",
|
|
"Q 1159 2381 1159 1747 \n",
|
|
"Q 1159 1113 1420 752 \n",
|
|
"Q 1681 391 2138 391 \n",
|
|
"Q 2594 391 2855 752 \n",
|
|
"Q 3116 1113 3116 1747 \n",
|
|
"z\n",
|
|
"M 1159 2969 \n",
|
|
"Q 1341 3281 1617 3432 \n",
|
|
"Q 1894 3584 2278 3584 \n",
|
|
"Q 2916 3584 3314 3078 \n",
|
|
"Q 3713 2572 3713 1747 \n",
|
|
"Q 3713 922 3314 415 \n",
|
|
"Q 2916 -91 2278 -91 \n",
|
|
"Q 1894 -91 1617 61 \n",
|
|
"Q 1341 213 1159 525 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 4863 \n",
|
|
"L 1159 4863 \n",
|
|
"L 1159 2969 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6f\" d=\"M 1959 3097 \n",
|
|
"Q 1497 3097 1228 2736 \n",
|
|
"Q 959 2375 959 1747 \n",
|
|
"Q 959 1119 1226 758 \n",
|
|
"Q 1494 397 1959 397 \n",
|
|
"Q 2419 397 2687 759 \n",
|
|
"Q 2956 1122 2956 1747 \n",
|
|
"Q 2956 2369 2687 2733 \n",
|
|
"Q 2419 3097 1959 3097 \n",
|
|
"z\n",
|
|
"M 1959 3584 \n",
|
|
"Q 2709 3584 3137 3096 \n",
|
|
"Q 3566 2609 3566 1747 \n",
|
|
"Q 3566 888 3137 398 \n",
|
|
"Q 2709 -91 1959 -91 \n",
|
|
"Q 1206 -91 779 398 \n",
|
|
"Q 353 888 353 1747 \n",
|
|
"Q 353 2609 779 3096 \n",
|
|
"Q 1206 3584 1959 3584 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-74\" d=\"M 1172 4494 \n",
|
|
"L 1172 3500 \n",
|
|
"L 2356 3500 \n",
|
|
"L 2356 3053 \n",
|
|
"L 1172 3053 \n",
|
|
"L 1172 1153 \n",
|
|
"Q 1172 725 1289 603 \n",
|
|
"Q 1406 481 1766 481 \n",
|
|
"L 2356 481 \n",
|
|
"L 2356 0 \n",
|
|
"L 1766 0 \n",
|
|
"Q 1100 0 847 248 \n",
|
|
"Q 594 497 594 1153 \n",
|
|
"L 594 3053 \n",
|
|
"L 172 3053 \n",
|
|
"L 172 3500 \n",
|
|
"L 594 3500 \n",
|
|
"L 594 4494 \n",
|
|
"L 1172 4494 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"61.279297\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6b\" x=\"124.658203\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"182.568359\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"210.351562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-20\" x=\"271.875\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-62\" x=\"303.662109\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"367.138672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"428.320312\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"489.501953\"/>\n",
|
|
" </g>\n",
|
|
" <!-- ankle boot -->\n",
|
|
" <g transform=\"translate(14.593896 29.7555)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"61.279297\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6b\" x=\"124.658203\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"182.568359\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"210.351562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-20\" x=\"271.875\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-62\" x=\"303.662109\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"367.138672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"428.320312\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"489.501953\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_2\">\n",
|
|
" <g id=\"patch_7\">\n",
|
|
" <path d=\"M 96.180851 106.989543 \n",
|
|
"L 167.414894 106.989543 \n",
|
|
"L 167.414894 35.7555 \n",
|
|
"L 96.180851 35.7555 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#p33535287fb)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image9ab4882d06\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"96.180851\" y=\"-35.709543\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_8\">\n",
|
|
" <path d=\"M 96.180851 106.989543 \n",
|
|
"L 96.180851 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_9\">\n",
|
|
" <path d=\"M 167.414894 106.989543 \n",
|
|
"L 167.414894 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_10\">\n",
|
|
" <path d=\"M 96.180851 106.989543 \n",
|
|
"L 167.414894 106.989543 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_11\">\n",
|
|
" <path d=\"M 96.180851 35.7555 \n",
|
|
"L 167.414894 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_2\">\n",
|
|
" <!-- pullover -->\n",
|
|
" <g transform=\"translate(107.471622 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-70\" d=\"M 1159 525 \n",
|
|
"L 1159 -1331 \n",
|
|
"L 581 -1331 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2969 \n",
|
|
"Q 1341 3281 1617 3432 \n",
|
|
"Q 1894 3584 2278 3584 \n",
|
|
"Q 2916 3584 3314 3078 \n",
|
|
"Q 3713 2572 3713 1747 \n",
|
|
"Q 3713 922 3314 415 \n",
|
|
"Q 2916 -91 2278 -91 \n",
|
|
"Q 1894 -91 1617 61 \n",
|
|
"Q 1341 213 1159 525 \n",
|
|
"z\n",
|
|
"M 3116 1747 \n",
|
|
"Q 3116 2381 2855 2742 \n",
|
|
"Q 2594 3103 2138 3103 \n",
|
|
"Q 1681 3103 1420 2742 \n",
|
|
"Q 1159 2381 1159 1747 \n",
|
|
"Q 1159 1113 1420 752 \n",
|
|
"Q 1681 391 2138 391 \n",
|
|
"Q 2594 391 2855 752 \n",
|
|
"Q 3116 1113 3116 1747 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-75\" d=\"M 544 1381 \n",
|
|
"L 544 3500 \n",
|
|
"L 1119 3500 \n",
|
|
"L 1119 1403 \n",
|
|
"Q 1119 906 1312 657 \n",
|
|
"Q 1506 409 1894 409 \n",
|
|
"Q 2359 409 2629 706 \n",
|
|
"Q 2900 1003 2900 1516 \n",
|
|
"L 2900 3500 \n",
|
|
"L 3475 3500 \n",
|
|
"L 3475 0 \n",
|
|
"L 2900 0 \n",
|
|
"L 2900 538 \n",
|
|
"Q 2691 219 2414 64 \n",
|
|
"Q 2138 -91 1772 -91 \n",
|
|
"Q 1169 -91 856 284 \n",
|
|
"Q 544 659 544 1381 \n",
|
|
"z\n",
|
|
"M 1991 3584 \n",
|
|
"L 1991 3584 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-76\" d=\"M 191 3500 \n",
|
|
"L 800 3500 \n",
|
|
"L 1894 563 \n",
|
|
"L 2988 3500 \n",
|
|
"L 3597 3500 \n",
|
|
"L 2284 0 \n",
|
|
"L 1503 0 \n",
|
|
"L 191 3500 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-72\" d=\"M 2631 2963 \n",
|
|
"Q 2534 3019 2420 3045 \n",
|
|
"Q 2306 3072 2169 3072 \n",
|
|
"Q 1681 3072 1420 2755 \n",
|
|
"Q 1159 2438 1159 1844 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1341 3275 1631 3429 \n",
|
|
"Q 1922 3584 2338 3584 \n",
|
|
"Q 2397 3584 2469 3576 \n",
|
|
"Q 2541 3569 2628 3553 \n",
|
|
"L 2631 2963 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-70\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-75\" x=\"63.476562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"126.855469\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"154.638672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"182.421875\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-76\" x=\"243.603516\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"302.783203\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"364.306641\"/>\n",
|
|
" </g>\n",
|
|
" <!-- pullover -->\n",
|
|
" <g transform=\"translate(107.471622 29.7555)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-70\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-75\" x=\"63.476562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"126.855469\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"154.638672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"182.421875\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-76\" x=\"243.603516\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"302.783203\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"364.306641\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_3\">\n",
|
|
" <g id=\"patch_12\">\n",
|
|
" <path d=\"M 181.661702 106.989543 \n",
|
|
"L 252.895745 106.989543 \n",
|
|
"L 252.895745 35.7555 \n",
|
|
"L 181.661702 35.7555 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pb7b6a8a13d)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image02ffba575a\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"181.661702\" y=\"-35.709543\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_13\">\n",
|
|
" <path d=\"M 181.661702 106.989543 \n",
|
|
"L 181.661702 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_14\">\n",
|
|
" <path d=\"M 252.895745 106.989543 \n",
|
|
"L 252.895745 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_15\">\n",
|
|
" <path d=\"M 181.661702 106.989543 \n",
|
|
"L 252.895745 106.989543 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_16\">\n",
|
|
" <path d=\"M 181.661702 35.7555 \n",
|
|
"L 252.895745 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_3\">\n",
|
|
" <!-- trouser -->\n",
|
|
" <g transform=\"translate(195.837161 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-73\" d=\"M 2834 3397 \n",
|
|
"L 2834 2853 \n",
|
|
"Q 2591 2978 2328 3040 \n",
|
|
"Q 2066 3103 1784 3103 \n",
|
|
"Q 1356 3103 1142 2972 \n",
|
|
"Q 928 2841 928 2578 \n",
|
|
"Q 928 2378 1081 2264 \n",
|
|
"Q 1234 2150 1697 2047 \n",
|
|
"L 1894 2003 \n",
|
|
"Q 2506 1872 2764 1633 \n",
|
|
"Q 3022 1394 3022 966 \n",
|
|
"Q 3022 478 2636 193 \n",
|
|
"Q 2250 -91 1575 -91 \n",
|
|
"Q 1294 -91 989 -36 \n",
|
|
"Q 684 19 347 128 \n",
|
|
"L 347 722 \n",
|
|
"Q 666 556 975 473 \n",
|
|
"Q 1284 391 1588 391 \n",
|
|
"Q 1994 391 2212 530 \n",
|
|
"Q 2431 669 2431 922 \n",
|
|
"Q 2431 1156 2273 1281 \n",
|
|
"Q 2116 1406 1581 1522 \n",
|
|
"L 1381 1569 \n",
|
|
"Q 847 1681 609 1914 \n",
|
|
"Q 372 2147 372 2553 \n",
|
|
"Q 372 3047 722 3315 \n",
|
|
"Q 1072 3584 1716 3584 \n",
|
|
"Q 2034 3584 2315 3537 \n",
|
|
"Q 2597 3491 2834 3397 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"78.072266\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-75\" x=\"139.253906\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"202.632812\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"254.732422\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"316.255859\"/>\n",
|
|
" </g>\n",
|
|
" <!-- trouser -->\n",
|
|
" <g transform=\"translate(195.837161 29.7555)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"78.072266\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-75\" x=\"139.253906\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"202.632812\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"254.732422\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"316.255859\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_4\">\n",
|
|
" <g id=\"patch_17\">\n",
|
|
" <path d=\"M 267.142553 106.989543 \n",
|
|
"L 338.376596 106.989543 \n",
|
|
"L 338.376596 35.7555 \n",
|
|
"L 267.142553 35.7555 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pfebfef2648)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image427541796f\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"267.142553\" y=\"-35.709543\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_18\">\n",
|
|
" <path d=\"M 267.142553 106.989543 \n",
|
|
"L 267.142553 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_19\">\n",
|
|
" <path d=\"M 338.376596 106.989543 \n",
|
|
"L 338.376596 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_20\">\n",
|
|
" <path d=\"M 267.142553 106.989543 \n",
|
|
"L 338.376596 106.989543 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_21\">\n",
|
|
" <path d=\"M 267.142553 35.7555 \n",
|
|
"L 338.376596 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_4\">\n",
|
|
" <!-- trouser -->\n",
|
|
" <g transform=\"translate(281.318012 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"78.072266\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-75\" x=\"139.253906\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"202.632812\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"254.732422\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"316.255859\"/>\n",
|
|
" </g>\n",
|
|
" <!-- trouser -->\n",
|
|
" <g transform=\"translate(281.318012 29.7555)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"78.072266\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-75\" x=\"139.253906\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"202.632812\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"254.732422\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"316.255859\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_5\">\n",
|
|
" <g id=\"patch_22\">\n",
|
|
" <path d=\"M 352.623404 106.989543 \n",
|
|
"L 423.857447 106.989543 \n",
|
|
"L 423.857447 35.7555 \n",
|
|
"L 352.623404 35.7555 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#p55a2ff9c21)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image0bae98a160\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"352.623404\" y=\"-35.709543\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_23\">\n",
|
|
" <path d=\"M 352.623404 106.989543 \n",
|
|
"L 352.623404 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_24\">\n",
|
|
" <path d=\"M 423.857447 106.989543 \n",
|
|
"L 423.857447 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_25\">\n",
|
|
" <path d=\"M 352.623404 106.989543 \n",
|
|
"L 423.857447 106.989543 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_26\">\n",
|
|
" <path d=\"M 352.623404 35.7555 \n",
|
|
"L 423.857447 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_5\">\n",
|
|
" <!-- shirt -->\n",
|
|
" <g transform=\"translate(374.826676 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-68\" d=\"M 3513 2113 \n",
|
|
"L 3513 0 \n",
|
|
"L 2938 0 \n",
|
|
"L 2938 2094 \n",
|
|
"Q 2938 2591 2744 2837 \n",
|
|
"Q 2550 3084 2163 3084 \n",
|
|
"Q 1697 3084 1428 2787 \n",
|
|
"Q 1159 2491 1159 1978 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 4863 \n",
|
|
"L 1159 4863 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1366 3272 1645 3428 \n",
|
|
"Q 1925 3584 2291 3584 \n",
|
|
"Q 2894 3584 3203 3211 \n",
|
|
"Q 3513 2838 3513 2113 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-69\" d=\"M 603 3500 \n",
|
|
"L 1178 3500 \n",
|
|
"L 1178 0 \n",
|
|
"L 603 0 \n",
|
|
"L 603 3500 \n",
|
|
"z\n",
|
|
"M 603 4863 \n",
|
|
"L 1178 4863 \n",
|
|
"L 1178 4134 \n",
|
|
"L 603 4134 \n",
|
|
"L 603 4863 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-68\" x=\"52.099609\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"115.478516\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"143.261719\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"184.375\"/>\n",
|
|
" </g>\n",
|
|
" <!-- shirt -->\n",
|
|
" <g transform=\"translate(374.826676 29.7555)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-68\" x=\"52.099609\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"115.478516\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"143.261719\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"184.375\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_6\">\n",
|
|
" <g id=\"patch_27\">\n",
|
|
" <path d=\"M 438.104255 106.989543 \n",
|
|
"L 509.338298 106.989543 \n",
|
|
"L 509.338298 35.7555 \n",
|
|
"L 438.104255 35.7555 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#pcd88ffaac0)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"iVBORw0KGgoAAAANSUhEUgAAAGMAAABjCAYAAACPO76VAAAG+klEQVR4nO2dXWwUVRTHZ2ZnP7tfXVpoYRFKrAUJIhBMDAESJBHxI4Zoog8kYCK+GBN9NT7og4kvRhM1xpj4YiQYv1CCMSAmAlGMoCICrUp0gbTdfu7Sbnc7OzO+3Xv/k+yylu7sSXp+T2fyb+YOnL0fc+bcc/Wd+mOuRhR901ph9z/dhpqlC3vl4SpoweNna95z/Kl74Xp066ywjUIQtGXfOcKOHv6pgSe+NYymt8A0DDuDEOwMQpitfoB6XHtR2kc2vgnatCsffW/hOdBWHq9z0z1jcHlm/QfCHrIDoD3efUDe8/DNnvbW4Z5BCHYGIfwfpnQdr93aK+uN3VeF/UlhE2g94bywb/um3HDzhakIXKtD05+zi0GzRqIN33c+4J5BCHYGIdgZhPB9ztADuHx0qzKUUXlwM2g72uV6cthKgXa62Cts4+QvDbefTszA9VA1odjYhp6e1fyEewYh2BmE8H2Ycm27ppZ7AH8btiuvO8wboH08vEFq2kDD7S+NF+F63I4L++7Iv/isE6GG7zsfcM8gBDuDEOwMQvgfDqkT/nhiyw9wXXbll7cus4C3ObpoTs0vjeF9Zl251LZcz3+H4wndNBnuGYRgZxCi5R+XAr2rhL06+j1oA+VuYUd0C7QlpyeE7WiNkzAxwltywsKedGL4bBUephYs7AxCsDMI0fI549LzHcJOB0qgBXUZOrk80w2ac/7ynNrrCY/U1MoOJrFV09Uaf9kcuGcQgp1BiJYPUzs3/SHsCzPLQcuY08LOhsZBO691zam9PQmM8L4ytEPYSRM/PPEb+AKGnUEIdgYhWj5nDM4khd1mVkBbpSSqvXppF2jd2qU5tTdi4+/v6EW5B6Q3mwfNKPv7W+WeQQh2BiH8z5syscmYKXOTZmx8A44ZctiKH8ScJrhnEBMHXAvznczsMmGfLN0OWvCqjNqOZjBq60T+Tzz41uGeQQh2BiHYGYTwfc4YfuYeuM7ocokaNjBK+ldFhjySn50DDdIa3Ppj+/T6pcJ+KH4ItNeVn6Pj4G/TLGJecLPhnkEIdgYhfB+mJtfiUDRWlpUPTAPzcPcvuSDs4z17QbMH/pYXnm0GWhXbyO2Wv7mDxfWgmdMyMjs5EgctWDstuClwzyAEO4MQ7AxC+B+1DWKubXFWhiMqdgY0S1nATm7oBC2hzBmuVT9xoKdvUNiFKoY8rITyPAF8Nivt76TBPYMQ7AxCsDMI4fucEYxjeDsWlAnNlqeqzYeFdcLOP4JfARNqVMOpP7bv6pIZKKNWArTqIjnf9K0YAi13YkXd+8433DMIwc4ghO/DVGc7biFuD8v82nwJh5BcRS51X9v8KWjvaau0RtneJvNyvyxsBC3eIRPlVqeGQbvq8DC1YGFnEIKdQQjf54yIiaGLroicQ0ZnMISdL8s5ZPviQdDev2u3sG+2V2NDSP7mvnAxmXlZquD9c0Gg8QJv8wL3DEKwMwjh+zA1MoU1zbd1ymFK13HPRdmWj3fDwYhq/wvyPr37sA1rJxaXDOq/Ss3Ft/xQQL69pzz7M1x/8xG4Z1CCnUEIdgYhfJ8zpq9gAnPfGrlk/dq6E7TumFwGHyvdAdobWw4K+20Ntdx+TGqzlSS3ilP7nxwzMKLMc8YChp1BCN+HqdQAvgEvf1QeoVAsYZ3yaEZ+eOov4bL34U51CzEOU/vWYRGxvC0jw2rVBU3TtBtKQoSh4/DmKZjQdLhnEIKdQQh2BiF8nzMylzGxoE2psJaM1Q6TGjqGQ07MyK9wqVNYPHJb/Fu47rfk9uakpxJb1JTtR3SMKNthf0/N455BCHYGIXwfpsI5rI6TNWvnyTqaXAYvDmENc/UIh5ezX4E24in8mLNkYsOEJ9fWVraOqVudNU3T7LDmK9wzCMHOIAQ7gxC+zxnVK//AdVmpjb4mg0lkhrI/wxvGSBhyiXpkah1oqYCnoprCdBUngoryNbHTxHnJCXO5igULO4MQLS/+9e64PCz9yY4fQXvnuizmWIjikjSibCVYHsTlsvdUsYoSfvUWGMvGJ4Ud8gyF0UGukLBgYWcQgp1BiJbPGZ8f2irsl57Fyjmn09eEHTHw/Aw1dHFsYi1o3rIXa9pk0kNHcAo0dal7agq/GHadwfml2XDPIAQ7gxAtH6ZWfiQPYP/tAGq3hWSyQsH2VDZQTg5LB/GoB28RMfVtPT+bBC031S7s38fwWIjUibP1Hn3e4Z5BCHYGIdgZhGj5nOFOy/E+gGUg4dg2b9RWPRJoexK3kY1UcV5QT8L0Jjbcv+SisH8u4FbjMc1fuGcQgp1BiJYPU/aoHAzeGr4PNLU2enEW83DTIfkB6dz1LGjRML6t93XIoxiGPVUYQsrbesDwfkya0PyEewYh2BmEYGcQ4j/0gsnhCsf9QgAAAABJRU5ErkJggg==\" id=\"image635271faab\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"438.104255\" y=\"-35.709543\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_28\">\n",
|
|
" <path d=\"M 438.104255 106.989543 \n",
|
|
"L 438.104255 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_29\">\n",
|
|
" <path d=\"M 509.338298 106.989543 \n",
|
|
"L 509.338298 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_30\">\n",
|
|
" <path d=\"M 438.104255 106.989543 \n",
|
|
"L 509.338298 106.989543 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_31\">\n",
|
|
" <path d=\"M 438.104255 35.7555 \n",
|
|
"L 509.338298 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_6\">\n",
|
|
" <!-- trouser -->\n",
|
|
" <g transform=\"translate(452.279714 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"78.072266\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-75\" x=\"139.253906\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"202.632812\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"254.732422\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"316.255859\"/>\n",
|
|
" </g>\n",
|
|
" <!-- trouser -->\n",
|
|
" <g transform=\"translate(452.279714 29.7555)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"78.072266\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-75\" x=\"139.253906\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"202.632812\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"254.732422\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"316.255859\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_7\">\n",
|
|
" <g id=\"patch_32\">\n",
|
|
" <path d=\"M 523.585106 106.989543 \n",
|
|
"L 594.819149 106.989543 \n",
|
|
"L 594.819149 35.7555 \n",
|
|
"L 523.585106 35.7555 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#p9c7515ed64)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image00fb878a86\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"523.585106\" y=\"-35.709543\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_33\">\n",
|
|
" <path d=\"M 523.585106 106.989543 \n",
|
|
"L 523.585106 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_34\">\n",
|
|
" <path d=\"M 594.819149 106.989543 \n",
|
|
"L 594.819149 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_35\">\n",
|
|
" <path d=\"M 523.585106 106.989543 \n",
|
|
"L 594.819149 106.989543 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_36\">\n",
|
|
" <path d=\"M 523.585106 35.7555 \n",
|
|
"L 594.819149 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_7\">\n",
|
|
" <!-- coat -->\n",
|
|
" <g transform=\"translate(546.202753 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-63\" d=\"M 3122 3366 \n",
|
|
"L 3122 2828 \n",
|
|
"Q 2878 2963 2633 3030 \n",
|
|
"Q 2388 3097 2138 3097 \n",
|
|
"Q 1578 3097 1268 2742 \n",
|
|
"Q 959 2388 959 1747 \n",
|
|
"Q 959 1106 1268 751 \n",
|
|
"Q 1578 397 2138 397 \n",
|
|
"Q 2388 397 2633 464 \n",
|
|
"Q 2878 531 3122 666 \n",
|
|
"L 3122 134 \n",
|
|
"Q 2881 22 2623 -34 \n",
|
|
"Q 2366 -91 2075 -91 \n",
|
|
"Q 1284 -91 818 406 \n",
|
|
"Q 353 903 353 1747 \n",
|
|
"Q 353 2603 823 3093 \n",
|
|
"Q 1294 3584 2113 3584 \n",
|
|
"Q 2378 3584 2631 3529 \n",
|
|
"Q 2884 3475 3122 3366 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"54.980469\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"116.162109\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"177.441406\"/>\n",
|
|
" </g>\n",
|
|
" <!-- coat -->\n",
|
|
" <g transform=\"translate(546.202753 29.7555)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"54.980469\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"116.162109\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"177.441406\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_8\">\n",
|
|
" <g id=\"patch_37\">\n",
|
|
" <path d=\"M 609.065957 106.989543 \n",
|
|
"L 680.3 106.989543 \n",
|
|
"L 680.3 35.7555 \n",
|
|
"L 609.065957 35.7555 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g clip-path=\"url(#p1e94fdfb3f)\">\n",
|
|
" <image xlink:href=\"data:image/png;base64,\n",
|
|
"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\" id=\"image2dd5a441da\" transform=\"scale(1 -1)translate(0 -71.28)\" x=\"609.065957\" y=\"-35.709543\" width=\"71.28\" height=\"71.28\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_38\">\n",
|
|
" <path d=\"M 609.065957 106.989543 \n",
|
|
"L 609.065957 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_39\">\n",
|
|
" <path d=\"M 680.3 106.989543 \n",
|
|
"L 680.3 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_40\">\n",
|
|
" <path d=\"M 609.065957 106.989543 \n",
|
|
"L 680.3 106.989543 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_41\">\n",
|
|
" <path d=\"M 609.065957 35.7555 \n",
|
|
"L 680.3 35.7555 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_8\">\n",
|
|
" <!-- shirt -->\n",
|
|
" <g transform=\"translate(631.269229 16.318125)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-68\" x=\"52.099609\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"115.478516\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"143.261719\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"184.375\"/>\n",
|
|
" </g>\n",
|
|
" <!-- shirt -->\n",
|
|
" <g transform=\"translate(631.269229 29.7555)scale(0.12 -0.12)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-68\" x=\"52.099609\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"115.478516\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"143.261719\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"184.375\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <defs>\n",
|
|
" <clipPath id=\"pa6a0bcff3d\">\n",
|
|
" <rect x=\"10.7\" y=\"35.7555\" width=\"71.234043\" height=\"71.234043\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"p33535287fb\">\n",
|
|
" <rect x=\"96.180851\" y=\"35.7555\" width=\"71.234043\" height=\"71.234043\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pb7b6a8a13d\">\n",
|
|
" <rect x=\"181.661702\" y=\"35.7555\" width=\"71.234043\" height=\"71.234043\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pfebfef2648\">\n",
|
|
" <rect x=\"267.142553\" y=\"35.7555\" width=\"71.234043\" height=\"71.234043\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"p55a2ff9c21\">\n",
|
|
" <rect x=\"352.623404\" y=\"35.7555\" width=\"71.234043\" height=\"71.234043\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"pcd88ffaac0\">\n",
|
|
" <rect x=\"438.104255\" y=\"35.7555\" width=\"71.234043\" height=\"71.234043\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"p9c7515ed64\">\n",
|
|
" <rect x=\"523.585106\" y=\"35.7555\" width=\"71.234043\" height=\"71.234043\"/>\n",
|
|
" </clipPath>\n",
|
|
" <clipPath id=\"p1e94fdfb3f\">\n",
|
|
" <rect x=\"609.065957\" y=\"35.7555\" width=\"71.234043\" height=\"71.234043\"/>\n",
|
|
" </clipPath>\n",
|
|
" </defs>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<Figure size 1200x150 with 8 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def predict_ch3(net, test_iter, n=8): \n",
|
|
" \"\"\"预测标签(定义见第3章)\"\"\"\n",
|
|
" for X, y in test_iter:\n",
|
|
" break\n",
|
|
" trues = d2l.get_fashion_mnist_labels(y)\n",
|
|
" preds = d2l.get_fashion_mnist_labels(net(X).argmax(axis=1))\n",
|
|
" titles = [true +'\\n' + pred for true, pred in zip(trues, preds)]\n",
|
|
" d2l.show_images(\n",
|
|
" X[0:n].reshape((n, 28, 28)), 1, n, titles=titles[0:n])\n",
|
|
"\n",
|
|
"predict_ch3(net, test_iter)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "fb05ae93-ca43-4978-b77b-cca182c45c8f",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "-"
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## softmax回归的简洁实现"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "a7da7eb8-6bad-4d17-83a7-24ec09779ef0",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "-"
|
|
}
|
|
},
|
|
"source": [
|
|
"通过深度学习框架的高级API能够使实现softmax回归变得更加容易"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 32,
|
|
"id": "b598a5ff-1618-4bc3-a8aa-c627a3d3caa7",
|
|
"metadata": {
|
|
"origin_pos": 4,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import torch\n",
|
|
"from torch import nn\n",
|
|
"from d2l import torch as d2l\n",
|
|
"\n",
|
|
"batch_size = 256\n",
|
|
"train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "dd341874-7652-4afe-aa0a-41207311318f",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"Softmax回归的输出层是一个全连接层"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 33,
|
|
"id": "ee566c3d-2669-4149-bdcb-d9832ed4c4d5",
|
|
"metadata": {
|
|
"origin_pos": 7,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# PyTorch不会隐式地调整输入的形状。因此,\n",
|
|
"# 我们在线性层前定义了展平层(flatten),来调整网络输入的形状\n",
|
|
"net = nn.Sequential(nn.Flatten(), nn.Linear(784, 10))\n",
|
|
"\n",
|
|
"def init_weights(m):\n",
|
|
" if type(m) == nn.Linear:\n",
|
|
" nn.init.normal_(m.weight, std=0.01)\n",
|
|
"\n",
|
|
"net.apply(init_weights);"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "1330ec1d-3c66-46a0-8422-948553a33c41",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"在交叉熵损失函数中传递未规范化的预测,并同时计算softmax及其对数"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 34,
|
|
"id": "fcac843e-7436-4e88-bdf3-480bdfa12f26",
|
|
"metadata": {
|
|
"origin_pos": 11,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"loss = nn.CrossEntropyLoss(reduction='none')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "1c7344bf-3aa5-4a19-8b25-b0296f9e238d",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "-"
|
|
}
|
|
},
|
|
"source": [
|
|
"使用学习率为0.1的小批量随机梯度下降作为优化算法"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 35,
|
|
"id": "3c5df7de-6a41-4069-bab3-3b518da1f30f",
|
|
"metadata": {
|
|
"origin_pos": 15,
|
|
"tab": [
|
|
"pytorch"
|
|
]
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"trainer = torch.optim.SGD(net.parameters(), lr=0.1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "eef015d8-1fbc-4dd1-b1c0-5bbb46ec6d34",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
}
|
|
},
|
|
"source": [
|
|
"调用\n",
|
|
"之前\n",
|
|
"定义的训练函数来训练模型"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 36,
|
|
"id": "2b28c827-05cd-4c4b-9dd7-db27d8067a27",
|
|
"metadata": {
|
|
"origin_pos": 18,
|
|
"tab": [
|
|
"pytorch"
|
|
],
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"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",
|
|
"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"238.965625pt\" height=\"183.35625pt\" viewBox=\"0 0 238.965625 183.35625\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
|
|
" <metadata>\n",
|
|
" <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
|
|
" <cc:Work>\n",
|
|
" <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
|
|
" <dc:date>2023-02-26T14:19:54.955113</dc:date>\n",
|
|
" <dc:format>image/svg+xml</dc:format>\n",
|
|
" <dc:creator>\n",
|
|
" <cc:Agent>\n",
|
|
" <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
|
|
" </cc:Agent>\n",
|
|
" </dc:creator>\n",
|
|
" </cc:Work>\n",
|
|
" </rdf:RDF>\n",
|
|
" </metadata>\n",
|
|
" <defs>\n",
|
|
" <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
|
|
" </defs>\n",
|
|
" <g id=\"figure_1\">\n",
|
|
" <g id=\"patch_1\">\n",
|
|
" <path d=\"M 0 183.35625 \n",
|
|
"L 238.965625 183.35625 \n",
|
|
"L 238.965625 0 \n",
|
|
"L 0 0 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_1\">\n",
|
|
" <g id=\"patch_2\">\n",
|
|
" <path d=\"M 30.103125 145.8 \n",
|
|
"L 225.403125 145.8 \n",
|
|
"L 225.403125 7.2 \n",
|
|
"L 30.103125 7.2 \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",
|
|
" <path d=\"M 51.803125 145.8 \n",
|
|
"L 51.803125 7.2 \n",
|
|
"\" clip-path=\"url(#p835ed163fd)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_2\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"mbc28a799b7\" d=\"M 0 0 \n",
|
|
"L 0 3.5 \n",
|
|
"\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#mbc28a799b7\" x=\"51.803125\" y=\"145.8\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_1\">\n",
|
|
" <!-- 2 -->\n",
|
|
" <g transform=\"translate(48.621875 160.398438)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
|
|
"L 3431 531 \n",
|
|
"L 3431 0 \n",
|
|
"L 469 0 \n",
|
|
"L 469 531 \n",
|
|
"Q 828 903 1448 1529 \n",
|
|
"Q 2069 2156 2228 2338 \n",
|
|
"Q 2531 2678 2651 2914 \n",
|
|
"Q 2772 3150 2772 3378 \n",
|
|
"Q 2772 3750 2511 3984 \n",
|
|
"Q 2250 4219 1831 4219 \n",
|
|
"Q 1534 4219 1204 4116 \n",
|
|
"Q 875 4013 500 3803 \n",
|
|
"L 500 4441 \n",
|
|
"Q 881 4594 1212 4672 \n",
|
|
"Q 1544 4750 1819 4750 \n",
|
|
"Q 2544 4750 2975 4387 \n",
|
|
"Q 3406 4025 3406 3419 \n",
|
|
"Q 3406 3131 3298 2873 \n",
|
|
"Q 3191 2616 2906 2266 \n",
|
|
"Q 2828 2175 2409 1742 \n",
|
|
"Q 1991 1309 1228 531 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_2\">\n",
|
|
" <g id=\"line2d_3\">\n",
|
|
" <path d=\"M 95.203125 145.8 \n",
|
|
"L 95.203125 7.2 \n",
|
|
"\" clip-path=\"url(#p835ed163fd)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_4\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#mbc28a799b7\" x=\"95.203125\" y=\"145.8\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_2\">\n",
|
|
" <!-- 4 -->\n",
|
|
" <g transform=\"translate(92.021875 160.398438)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-34\" d=\"M 2419 4116 \n",
|
|
"L 825 1625 \n",
|
|
"L 2419 1625 \n",
|
|
"L 2419 4116 \n",
|
|
"z\n",
|
|
"M 2253 4666 \n",
|
|
"L 3047 4666 \n",
|
|
"L 3047 1625 \n",
|
|
"L 3713 1625 \n",
|
|
"L 3713 1100 \n",
|
|
"L 3047 1100 \n",
|
|
"L 3047 0 \n",
|
|
"L 2419 0 \n",
|
|
"L 2419 1100 \n",
|
|
"L 313 1100 \n",
|
|
"L 313 1709 \n",
|
|
"L 2253 4666 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_3\">\n",
|
|
" <g id=\"line2d_5\">\n",
|
|
" <path d=\"M 138.603125 145.8 \n",
|
|
"L 138.603125 7.2 \n",
|
|
"\" clip-path=\"url(#p835ed163fd)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_6\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#mbc28a799b7\" x=\"138.603125\" y=\"145.8\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_3\">\n",
|
|
" <!-- 6 -->\n",
|
|
" <g transform=\"translate(135.421875 160.398438)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-36\" d=\"M 2113 2584 \n",
|
|
"Q 1688 2584 1439 2293 \n",
|
|
"Q 1191 2003 1191 1497 \n",
|
|
"Q 1191 994 1439 701 \n",
|
|
"Q 1688 409 2113 409 \n",
|
|
"Q 2538 409 2786 701 \n",
|
|
"Q 3034 994 3034 1497 \n",
|
|
"Q 3034 2003 2786 2293 \n",
|
|
"Q 2538 2584 2113 2584 \n",
|
|
"z\n",
|
|
"M 3366 4563 \n",
|
|
"L 3366 3988 \n",
|
|
"Q 3128 4100 2886 4159 \n",
|
|
"Q 2644 4219 2406 4219 \n",
|
|
"Q 1781 4219 1451 3797 \n",
|
|
"Q 1122 3375 1075 2522 \n",
|
|
"Q 1259 2794 1537 2939 \n",
|
|
"Q 1816 3084 2150 3084 \n",
|
|
"Q 2853 3084 3261 2657 \n",
|
|
"Q 3669 2231 3669 1497 \n",
|
|
"Q 3669 778 3244 343 \n",
|
|
"Q 2819 -91 2113 -91 \n",
|
|
"Q 1303 -91 875 529 \n",
|
|
"Q 447 1150 447 2328 \n",
|
|
"Q 447 3434 972 4092 \n",
|
|
"Q 1497 4750 2381 4750 \n",
|
|
"Q 2619 4750 2861 4703 \n",
|
|
"Q 3103 4656 3366 4563 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-36\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_4\">\n",
|
|
" <g id=\"line2d_7\">\n",
|
|
" <path d=\"M 182.003125 145.8 \n",
|
|
"L 182.003125 7.2 \n",
|
|
"\" clip-path=\"url(#p835ed163fd)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_8\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#mbc28a799b7\" x=\"182.003125\" y=\"145.8\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_4\">\n",
|
|
" <!-- 8 -->\n",
|
|
" <g transform=\"translate(178.821875 160.398438)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-38\" d=\"M 2034 2216 \n",
|
|
"Q 1584 2216 1326 1975 \n",
|
|
"Q 1069 1734 1069 1313 \n",
|
|
"Q 1069 891 1326 650 \n",
|
|
"Q 1584 409 2034 409 \n",
|
|
"Q 2484 409 2743 651 \n",
|
|
"Q 3003 894 3003 1313 \n",
|
|
"Q 3003 1734 2745 1975 \n",
|
|
"Q 2488 2216 2034 2216 \n",
|
|
"z\n",
|
|
"M 1403 2484 \n",
|
|
"Q 997 2584 770 2862 \n",
|
|
"Q 544 3141 544 3541 \n",
|
|
"Q 544 4100 942 4425 \n",
|
|
"Q 1341 4750 2034 4750 \n",
|
|
"Q 2731 4750 3128 4425 \n",
|
|
"Q 3525 4100 3525 3541 \n",
|
|
"Q 3525 3141 3298 2862 \n",
|
|
"Q 3072 2584 2669 2484 \n",
|
|
"Q 3125 2378 3379 2068 \n",
|
|
"Q 3634 1759 3634 1313 \n",
|
|
"Q 3634 634 3220 271 \n",
|
|
"Q 2806 -91 2034 -91 \n",
|
|
"Q 1263 -91 848 271 \n",
|
|
"Q 434 634 434 1313 \n",
|
|
"Q 434 1759 690 2068 \n",
|
|
"Q 947 2378 1403 2484 \n",
|
|
"z\n",
|
|
"M 1172 3481 \n",
|
|
"Q 1172 3119 1398 2916 \n",
|
|
"Q 1625 2713 2034 2713 \n",
|
|
"Q 2441 2713 2670 2916 \n",
|
|
"Q 2900 3119 2900 3481 \n",
|
|
"Q 2900 3844 2670 4047 \n",
|
|
"Q 2441 4250 2034 4250 \n",
|
|
"Q 1625 4250 1398 4047 \n",
|
|
"Q 1172 3844 1172 3481 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-38\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_5\">\n",
|
|
" <g id=\"line2d_9\">\n",
|
|
" <path d=\"M 225.403125 145.8 \n",
|
|
"L 225.403125 7.2 \n",
|
|
"\" clip-path=\"url(#p835ed163fd)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_10\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#mbc28a799b7\" x=\"225.403125\" y=\"145.8\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_5\">\n",
|
|
" <!-- 10 -->\n",
|
|
" <g transform=\"translate(219.040625 160.398438)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
|
|
"L 1825 531 \n",
|
|
"L 1825 4091 \n",
|
|
"L 703 3866 \n",
|
|
"L 703 4441 \n",
|
|
"L 1819 4666 \n",
|
|
"L 2450 4666 \n",
|
|
"L 2450 531 \n",
|
|
"L 3481 531 \n",
|
|
"L 3481 0 \n",
|
|
"L 794 0 \n",
|
|
"L 794 531 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
|
|
"Q 1547 4250 1301 3770 \n",
|
|
"Q 1056 3291 1056 2328 \n",
|
|
"Q 1056 1369 1301 889 \n",
|
|
"Q 1547 409 2034 409 \n",
|
|
"Q 2525 409 2770 889 \n",
|
|
"Q 3016 1369 3016 2328 \n",
|
|
"Q 3016 3291 2770 3770 \n",
|
|
"Q 2525 4250 2034 4250 \n",
|
|
"z\n",
|
|
"M 2034 4750 \n",
|
|
"Q 2819 4750 3233 4129 \n",
|
|
"Q 3647 3509 3647 2328 \n",
|
|
"Q 3647 1150 3233 529 \n",
|
|
"Q 2819 -91 2034 -91 \n",
|
|
"Q 1250 -91 836 529 \n",
|
|
"Q 422 1150 422 2328 \n",
|
|
"Q 422 3509 836 4129 \n",
|
|
"Q 1250 4750 2034 4750 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_6\">\n",
|
|
" <!-- epoch -->\n",
|
|
" <g transform=\"translate(112.525 174.076563)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-65\" d=\"M 3597 1894 \n",
|
|
"L 3597 1613 \n",
|
|
"L 953 1613 \n",
|
|
"Q 991 1019 1311 708 \n",
|
|
"Q 1631 397 2203 397 \n",
|
|
"Q 2534 397 2845 478 \n",
|
|
"Q 3156 559 3463 722 \n",
|
|
"L 3463 178 \n",
|
|
"Q 3153 47 2828 -22 \n",
|
|
"Q 2503 -91 2169 -91 \n",
|
|
"Q 1331 -91 842 396 \n",
|
|
"Q 353 884 353 1716 \n",
|
|
"Q 353 2575 817 3079 \n",
|
|
"Q 1281 3584 2069 3584 \n",
|
|
"Q 2775 3584 3186 3129 \n",
|
|
"Q 3597 2675 3597 1894 \n",
|
|
"z\n",
|
|
"M 3022 2063 \n",
|
|
"Q 3016 2534 2758 2815 \n",
|
|
"Q 2500 3097 2075 3097 \n",
|
|
"Q 1594 3097 1305 2825 \n",
|
|
"Q 1016 2553 972 2059 \n",
|
|
"L 3022 2063 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-70\" d=\"M 1159 525 \n",
|
|
"L 1159 -1331 \n",
|
|
"L 581 -1331 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2969 \n",
|
|
"Q 1341 3281 1617 3432 \n",
|
|
"Q 1894 3584 2278 3584 \n",
|
|
"Q 2916 3584 3314 3078 \n",
|
|
"Q 3713 2572 3713 1747 \n",
|
|
"Q 3713 922 3314 415 \n",
|
|
"Q 2916 -91 2278 -91 \n",
|
|
"Q 1894 -91 1617 61 \n",
|
|
"Q 1341 213 1159 525 \n",
|
|
"z\n",
|
|
"M 3116 1747 \n",
|
|
"Q 3116 2381 2855 2742 \n",
|
|
"Q 2594 3103 2138 3103 \n",
|
|
"Q 1681 3103 1420 2742 \n",
|
|
"Q 1159 2381 1159 1747 \n",
|
|
"Q 1159 1113 1420 752 \n",
|
|
"Q 1681 391 2138 391 \n",
|
|
"Q 2594 391 2855 752 \n",
|
|
"Q 3116 1113 3116 1747 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6f\" d=\"M 1959 3097 \n",
|
|
"Q 1497 3097 1228 2736 \n",
|
|
"Q 959 2375 959 1747 \n",
|
|
"Q 959 1119 1226 758 \n",
|
|
"Q 1494 397 1959 397 \n",
|
|
"Q 2419 397 2687 759 \n",
|
|
"Q 2956 1122 2956 1747 \n",
|
|
"Q 2956 2369 2687 2733 \n",
|
|
"Q 2419 3097 1959 3097 \n",
|
|
"z\n",
|
|
"M 1959 3584 \n",
|
|
"Q 2709 3584 3137 3096 \n",
|
|
"Q 3566 2609 3566 1747 \n",
|
|
"Q 3566 888 3137 398 \n",
|
|
"Q 2709 -91 1959 -91 \n",
|
|
"Q 1206 -91 779 398 \n",
|
|
"Q 353 888 353 1747 \n",
|
|
"Q 353 2609 779 3096 \n",
|
|
"Q 1206 3584 1959 3584 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-63\" d=\"M 3122 3366 \n",
|
|
"L 3122 2828 \n",
|
|
"Q 2878 2963 2633 3030 \n",
|
|
"Q 2388 3097 2138 3097 \n",
|
|
"Q 1578 3097 1268 2742 \n",
|
|
"Q 959 2388 959 1747 \n",
|
|
"Q 959 1106 1268 751 \n",
|
|
"Q 1578 397 2138 397 \n",
|
|
"Q 2388 397 2633 464 \n",
|
|
"Q 2878 531 3122 666 \n",
|
|
"L 3122 134 \n",
|
|
"Q 2881 22 2623 -34 \n",
|
|
"Q 2366 -91 2075 -91 \n",
|
|
"Q 1284 -91 818 406 \n",
|
|
"Q 353 903 353 1747 \n",
|
|
"Q 353 2603 823 3093 \n",
|
|
"Q 1294 3584 2113 3584 \n",
|
|
"Q 2378 3584 2631 3529 \n",
|
|
"Q 2884 3475 3122 3366 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-68\" d=\"M 3513 2113 \n",
|
|
"L 3513 0 \n",
|
|
"L 2938 0 \n",
|
|
"L 2938 2094 \n",
|
|
"Q 2938 2591 2744 2837 \n",
|
|
"Q 2550 3084 2163 3084 \n",
|
|
"Q 1697 3084 1428 2787 \n",
|
|
"Q 1159 2491 1159 1978 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 4863 \n",
|
|
"L 1159 4863 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1366 3272 1645 3428 \n",
|
|
"Q 1925 3584 2291 3584 \n",
|
|
"Q 2894 3584 3203 3211 \n",
|
|
"Q 3513 2838 3513 2113 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-70\" x=\"61.523438\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"125\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\" x=\"186.181641\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-68\" x=\"241.162109\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"matplotlib.axis_2\">\n",
|
|
" <g id=\"ytick_1\">\n",
|
|
" <g id=\"line2d_11\">\n",
|
|
" <path d=\"M 30.103125 122.7 \n",
|
|
"L 225.403125 122.7 \n",
|
|
"\" clip-path=\"url(#p835ed163fd)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_12\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"m20aaf3fba7\" d=\"M 0 0 \n",
|
|
"L -3.5 0 \n",
|
|
"\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#m20aaf3fba7\" x=\"30.103125\" y=\"122.7\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_7\">\n",
|
|
" <!-- 0.4 -->\n",
|
|
" <g transform=\"translate(7.2 126.499219)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-2e\" d=\"M 684 794 \n",
|
|
"L 1344 794 \n",
|
|
"L 1344 0 \n",
|
|
"L 684 0 \n",
|
|
"L 684 794 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-34\" x=\"95.410156\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_2\">\n",
|
|
" <g id=\"line2d_13\">\n",
|
|
" <path d=\"M 30.103125 76.5 \n",
|
|
"L 225.403125 76.5 \n",
|
|
"\" clip-path=\"url(#p835ed163fd)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_14\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#m20aaf3fba7\" x=\"30.103125\" y=\"76.5\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_8\">\n",
|
|
" <!-- 0.6 -->\n",
|
|
" <g transform=\"translate(7.2 80.299219)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-36\" x=\"95.410156\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_3\">\n",
|
|
" <g id=\"line2d_15\">\n",
|
|
" <path d=\"M 30.103125 30.3 \n",
|
|
"L 225.403125 30.3 \n",
|
|
"\" clip-path=\"url(#p835ed163fd)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_16\">\n",
|
|
" <g>\n",
|
|
" <use xlink:href=\"#m20aaf3fba7\" x=\"30.103125\" y=\"30.3\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_9\">\n",
|
|
" <!-- 0.8 -->\n",
|
|
" <g transform=\"translate(7.2 34.099219)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-38\" x=\"95.410156\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_17\">\n",
|
|
" <path d=\"M 30.103125 33.499223 \n",
|
|
"L 51.803125 83.298778 \n",
|
|
"L 73.503125 93.926612 \n",
|
|
"L 95.203125 99.466388 \n",
|
|
"L 116.903125 103.053081 \n",
|
|
"L 138.603125 105.52014 \n",
|
|
"L 160.303125 107.566415 \n",
|
|
"L 182.003125 109.164661 \n",
|
|
"L 203.703125 110.762762 \n",
|
|
"L 225.403125 111.743753 \n",
|
|
"\" clip-path=\"url(#p835ed163fd)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_18\">\n",
|
|
" <path d=\"M 30.103125 42.24655 \n",
|
|
"L 51.803125 26.9967 \n",
|
|
"L 73.503125 24.55965 \n",
|
|
"L 95.203125 22.908 \n",
|
|
"L 116.903125 21.7684 \n",
|
|
"L 138.603125 21.0831 \n",
|
|
"L 160.303125 20.57105 \n",
|
|
"L 182.003125 20.0128 \n",
|
|
"L 203.703125 19.44685 \n",
|
|
"L 225.403125 19.01565 \n",
|
|
"\" clip-path=\"url(#p835ed163fd)\" style=\"fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #bf00bf; stroke-width: 1.5\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_19\">\n",
|
|
" <path d=\"M 30.103125 36.1212 \n",
|
|
"L 51.803125 28.6137 \n",
|
|
"L 73.503125 25.7724 \n",
|
|
"L 95.203125 25.2411 \n",
|
|
"L 116.903125 25.6107 \n",
|
|
"L 138.603125 26.6271 \n",
|
|
"L 160.303125 23.2083 \n",
|
|
"L 182.003125 25.3335 \n",
|
|
"L 203.703125 23.0466 \n",
|
|
"L 225.403125 22.7694 \n",
|
|
"\" clip-path=\"url(#p835ed163fd)\" style=\"fill: none; stroke-dasharray: 9.6,2.4,1.5,2.4; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_3\">\n",
|
|
" <path d=\"M 30.103125 145.8 \n",
|
|
"L 30.103125 7.2 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_4\">\n",
|
|
" <path d=\"M 225.403125 145.8 \n",
|
|
"L 225.403125 7.2 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_5\">\n",
|
|
" <path d=\"M 30.103125 145.8 \n",
|
|
"L 225.403125 145.8 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_6\">\n",
|
|
" <path d=\"M 30.103125 7.2 \n",
|
|
"L 225.403125 7.2 \n",
|
|
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"legend_1\">\n",
|
|
" <g id=\"patch_7\">\n",
|
|
" <path d=\"M 140.634375 100.017188 \n",
|
|
"L 218.403125 100.017188 \n",
|
|
"Q 220.403125 100.017188 220.403125 98.017188 \n",
|
|
"L 220.403125 54.982812 \n",
|
|
"Q 220.403125 52.982812 218.403125 52.982812 \n",
|
|
"L 140.634375 52.982812 \n",
|
|
"Q 138.634375 52.982812 138.634375 54.982812 \n",
|
|
"L 138.634375 98.017188 \n",
|
|
"Q 138.634375 100.017188 140.634375 100.017188 \n",
|
|
"z\n",
|
|
"\" style=\"fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_20\">\n",
|
|
" <path d=\"M 142.634375 61.08125 \n",
|
|
"L 152.634375 61.08125 \n",
|
|
"L 162.634375 61.08125 \n",
|
|
"\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_10\">\n",
|
|
" <!-- train loss -->\n",
|
|
" <g transform=\"translate(170.634375 64.58125)scale(0.1 -0.1)\">\n",
|
|
" <defs>\n",
|
|
" <path id=\"DejaVuSans-74\" d=\"M 1172 4494 \n",
|
|
"L 1172 3500 \n",
|
|
"L 2356 3500 \n",
|
|
"L 2356 3053 \n",
|
|
"L 1172 3053 \n",
|
|
"L 1172 1153 \n",
|
|
"Q 1172 725 1289 603 \n",
|
|
"Q 1406 481 1766 481 \n",
|
|
"L 2356 481 \n",
|
|
"L 2356 0 \n",
|
|
"L 1766 0 \n",
|
|
"Q 1100 0 847 248 \n",
|
|
"Q 594 497 594 1153 \n",
|
|
"L 594 3053 \n",
|
|
"L 172 3053 \n",
|
|
"L 172 3500 \n",
|
|
"L 594 3500 \n",
|
|
"L 594 4494 \n",
|
|
"L 1172 4494 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-72\" d=\"M 2631 2963 \n",
|
|
"Q 2534 3019 2420 3045 \n",
|
|
"Q 2306 3072 2169 3072 \n",
|
|
"Q 1681 3072 1420 2755 \n",
|
|
"Q 1159 2438 1159 1844 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1341 3275 1631 3429 \n",
|
|
"Q 1922 3584 2338 3584 \n",
|
|
"Q 2397 3584 2469 3576 \n",
|
|
"Q 2541 3569 2628 3553 \n",
|
|
"L 2631 2963 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-61\" d=\"M 2194 1759 \n",
|
|
"Q 1497 1759 1228 1600 \n",
|
|
"Q 959 1441 959 1056 \n",
|
|
"Q 959 750 1161 570 \n",
|
|
"Q 1363 391 1709 391 \n",
|
|
"Q 2188 391 2477 730 \n",
|
|
"Q 2766 1069 2766 1631 \n",
|
|
"L 2766 1759 \n",
|
|
"L 2194 1759 \n",
|
|
"z\n",
|
|
"M 3341 1997 \n",
|
|
"L 3341 0 \n",
|
|
"L 2766 0 \n",
|
|
"L 2766 531 \n",
|
|
"Q 2569 213 2275 61 \n",
|
|
"Q 1981 -91 1556 -91 \n",
|
|
"Q 1019 -91 701 211 \n",
|
|
"Q 384 513 384 1019 \n",
|
|
"Q 384 1609 779 1909 \n",
|
|
"Q 1175 2209 1959 2209 \n",
|
|
"L 2766 2209 \n",
|
|
"L 2766 2266 \n",
|
|
"Q 2766 2663 2505 2880 \n",
|
|
"Q 2244 3097 1772 3097 \n",
|
|
"Q 1472 3097 1187 3025 \n",
|
|
"Q 903 2953 641 2809 \n",
|
|
"L 641 3341 \n",
|
|
"Q 956 3463 1253 3523 \n",
|
|
"Q 1550 3584 1831 3584 \n",
|
|
"Q 2591 3584 2966 3190 \n",
|
|
"Q 3341 2797 3341 1997 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-69\" d=\"M 603 3500 \n",
|
|
"L 1178 3500 \n",
|
|
"L 1178 0 \n",
|
|
"L 603 0 \n",
|
|
"L 603 3500 \n",
|
|
"z\n",
|
|
"M 603 4863 \n",
|
|
"L 1178 4863 \n",
|
|
"L 1178 4134 \n",
|
|
"L 603 4134 \n",
|
|
"L 603 4863 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6e\" d=\"M 3513 2113 \n",
|
|
"L 3513 0 \n",
|
|
"L 2938 0 \n",
|
|
"L 2938 2094 \n",
|
|
"Q 2938 2591 2744 2837 \n",
|
|
"Q 2550 3084 2163 3084 \n",
|
|
"Q 1697 3084 1428 2787 \n",
|
|
"Q 1159 2491 1159 1978 \n",
|
|
"L 1159 0 \n",
|
|
"L 581 0 \n",
|
|
"L 581 3500 \n",
|
|
"L 1159 3500 \n",
|
|
"L 1159 2956 \n",
|
|
"Q 1366 3272 1645 3428 \n",
|
|
"Q 1925 3584 2291 3584 \n",
|
|
"Q 2894 3584 3203 3211 \n",
|
|
"Q 3513 2838 3513 2113 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-20\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
|
|
"L 1178 4863 \n",
|
|
"L 1178 0 \n",
|
|
"L 603 0 \n",
|
|
"L 603 4863 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" <path id=\"DejaVuSans-73\" d=\"M 2834 3397 \n",
|
|
"L 2834 2853 \n",
|
|
"Q 2591 2978 2328 3040 \n",
|
|
"Q 2066 3103 1784 3103 \n",
|
|
"Q 1356 3103 1142 2972 \n",
|
|
"Q 928 2841 928 2578 \n",
|
|
"Q 928 2378 1081 2264 \n",
|
|
"Q 1234 2150 1697 2047 \n",
|
|
"L 1894 2003 \n",
|
|
"Q 2506 1872 2764 1633 \n",
|
|
"Q 3022 1394 3022 966 \n",
|
|
"Q 3022 478 2636 193 \n",
|
|
"Q 2250 -91 1575 -91 \n",
|
|
"Q 1294 -91 989 -36 \n",
|
|
"Q 684 19 347 128 \n",
|
|
"L 347 722 \n",
|
|
"Q 666 556 975 473 \n",
|
|
"Q 1284 391 1588 391 \n",
|
|
"Q 1994 391 2212 530 \n",
|
|
"Q 2431 669 2431 922 \n",
|
|
"Q 2431 1156 2273 1281 \n",
|
|
"Q 2116 1406 1581 1522 \n",
|
|
"L 1381 1569 \n",
|
|
"Q 847 1681 609 1914 \n",
|
|
"Q 372 2147 372 2553 \n",
|
|
"Q 372 3047 722 3315 \n",
|
|
"Q 1072 3584 1716 3584 \n",
|
|
"Q 2034 3584 2315 3537 \n",
|
|
"Q 2597 3491 2834 3397 \n",
|
|
"z\n",
|
|
"\" transform=\"scale(0.015625)\"/>\n",
|
|
" </defs>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"80.322266\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"141.601562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"169.384766\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-20\" x=\"232.763672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6c\" x=\"264.550781\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6f\" x=\"292.333984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"353.515625\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"405.615234\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_21\">\n",
|
|
" <path d=\"M 142.634375 75.759375 \n",
|
|
"L 152.634375 75.759375 \n",
|
|
"L 162.634375 75.759375 \n",
|
|
"\" style=\"fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #bf00bf; stroke-width: 1.5\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_11\">\n",
|
|
" <!-- train acc -->\n",
|
|
" <g transform=\"translate(170.634375 79.259375)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"80.322266\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-69\" x=\"141.601562\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-6e\" x=\"169.384766\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-20\" x=\"232.763672\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"264.550781\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\" x=\"325.830078\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\" x=\"380.810547\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_22\">\n",
|
|
" <path d=\"M 142.634375 90.4375 \n",
|
|
"L 152.634375 90.4375 \n",
|
|
"L 162.634375 90.4375 \n",
|
|
"\" style=\"fill: none; stroke-dasharray: 9.6,2.4,1.5,2.4; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_12\">\n",
|
|
" <!-- test acc -->\n",
|
|
" <g transform=\"translate(170.634375 93.9375)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\" x=\"39.208984\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-73\" x=\"100.732422\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\" x=\"152.832031\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-20\" x=\"192.041016\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-61\" x=\"223.828125\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\" x=\"285.107422\"/>\n",
|
|
" <use xlink:href=\"#DejaVuSans-63\" x=\"340.087891\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <defs>\n",
|
|
" <clipPath id=\"p835ed163fd\">\n",
|
|
" <rect x=\"30.103125\" y=\"7.2\" width=\"195.3\" height=\"138.6\"/>\n",
|
|
" </clipPath>\n",
|
|
" </defs>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<Figure size 350x250 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"num_epochs = 10\n",
|
|
"d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"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.8.16"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|