You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2178 lines
469 KiB
2178 lines
469 KiB
3 years ago
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"# 9.11 样式迁移"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 1,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"cuda 1.1.0\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"%matplotlib inline\n",
|
||
|
"import time\n",
|
||
|
"import torch\n",
|
||
|
"import torch.nn.functional as F\n",
|
||
|
"import torchvision\n",
|
||
|
"import numpy as np\n",
|
||
|
"from PIL import Image\n",
|
||
|
"\n",
|
||
|
"import sys\n",
|
||
|
"sys.path.append(\"..\") \n",
|
||
|
"import d2lzh_pytorch as d2l\n",
|
||
|
"device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') # 均已测试\n",
|
||
|
"\n",
|
||
|
"print(device, torch.__version__)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## 9.11.2 读取内容图像和样式图像"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 2,
|
||
|
"metadata": {},
|
||
|
"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",
|
||
|
"<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
|
||
|
"<svg height=\"164pt\" version=\"1.1\" viewBox=\"0 0 250 164\" width=\"250pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||
|
" <defs>\n",
|
||
|
" <style type=\"text/css\">\n",
|
||
|
"*{stroke-linecap:butt;stroke-linejoin:round;}\n",
|
||
|
" </style>\n",
|
||
|
" </defs>\n",
|
||
|
" <g id=\"figure_1\">\n",
|
||
|
" <g id=\"patch_1\">\n",
|
||
|
" <path d=\"M 0 164.997876 \n",
|
||
|
"L 250.345337 164.997876 \n",
|
||
|
"L 250.345337 0 \n",
|
||
|
"L 0 0 \n",
|
||
|
"z\n",
|
||
|
"\" style=\"fill:none;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"axes_1\">\n",
|
||
|
" <g id=\"patch_2\">\n",
|
||
|
" <path d=\"M 39.65 141.119751 \n",
|
||
|
"L 234.95 141.119751 \n",
|
||
|
"L 234.95 10.951538 \n",
|
||
|
"L 39.65 10.951538 \n",
|
||
|
"z\n",
|
||
|
"\" style=\"fill:#ffffff;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g clip-path=\"url(#p7d956d7cff)\">\n",
|
||
|
" <image height=\"131\" id=\"image06db6ac630\" transform=\"scale(1 -1)translate(0 -131)\" width=\"196\" x=\"39.65\" xlink:href=\"data:image/png;base64,\n",
|
||
|
"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
|
||
|
" </g>\n",
|
||
|
" <g id=\"matplotlib.axis_1\">\n",
|
||
|
" <g id=\"xtick_1\">\n",
|
||
|
" <g id=\"line2d_1\">\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 0 0 \n",
|
||
|
"L 0 3.5 \n",
|
||
|
"\" id=\"m24ffdc010b\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.697681\" xlink:href=\"#m24ffdc010b\" y=\"141.119751\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_1\">\n",
|
||
|
" <!-- 0 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 31.78125 66.40625 \n",
|
||
|
"Q 24.171875 66.40625 20.328125 58.90625 \n",
|
||
|
"Q 16.5 51.421875 16.5 36.375 \n",
|
||
|
"Q 16.5 21.390625 20.328125 13.890625 \n",
|
||
|
"Q 24.171875 6.390625 31.78125 6.390625 \n",
|
||
|
"Q 39.453125 6.390625 43.28125 13.890625 \n",
|
||
|
"Q 47.125 21.390625 47.125 36.375 \n",
|
||
|
"Q 47.125 51.421875 43.28125 58.90625 \n",
|
||
|
"Q 39.453125 66.40625 31.78125 66.40625 \n",
|
||
|
"z\n",
|
||
|
"M 31.78125 74.21875 \n",
|
||
|
"Q 44.046875 74.21875 50.515625 64.515625 \n",
|
||
|
"Q 56.984375 54.828125 56.984375 36.375 \n",
|
||
|
"Q 56.984375 17.96875 50.515625 8.265625 \n",
|
||
|
"Q 44.046875 -1.421875 31.78125 -1.421875 \n",
|
||
|
"Q 19.53125 -1.421875 13.0625 8.265625 \n",
|
||
|
"Q 6.59375 17.96875 6.59375 36.375 \n",
|
||
|
"Q 6.59375 54.828125 13.0625 64.515625 \n",
|
||
|
"Q 19.53125 74.21875 31.78125 74.21875 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-30\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(36.516431 155.718188)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_2\">\n",
|
||
|
" <g id=\"line2d_2\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"87.378345\" xlink:href=\"#m24ffdc010b\" y=\"141.119751\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_2\">\n",
|
||
|
" <!-- 500 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 10.796875 72.90625 \n",
|
||
|
"L 49.515625 72.90625 \n",
|
||
|
"L 49.515625 64.59375 \n",
|
||
|
"L 19.828125 64.59375 \n",
|
||
|
"L 19.828125 46.734375 \n",
|
||
|
"Q 21.96875 47.46875 24.109375 47.828125 \n",
|
||
|
"Q 26.265625 48.1875 28.421875 48.1875 \n",
|
||
|
"Q 40.625 48.1875 47.75 41.5 \n",
|
||
|
"Q 54.890625 34.8125 54.890625 23.390625 \n",
|
||
|
"Q 54.890625 11.625 47.5625 5.09375 \n",
|
||
|
"Q 40.234375 -1.421875 26.90625 -1.421875 \n",
|
||
|
"Q 22.3125 -1.421875 17.546875 -0.640625 \n",
|
||
|
"Q 12.796875 0.140625 7.71875 1.703125 \n",
|
||
|
"L 7.71875 11.625 \n",
|
||
|
"Q 12.109375 9.234375 16.796875 8.0625 \n",
|
||
|
"Q 21.484375 6.890625 26.703125 6.890625 \n",
|
||
|
"Q 35.15625 6.890625 40.078125 11.328125 \n",
|
||
|
"Q 45.015625 15.765625 45.015625 23.390625 \n",
|
||
|
"Q 45.015625 31 40.078125 35.4375 \n",
|
||
|
"Q 35.15625 39.890625 26.703125 39.890625 \n",
|
||
|
"Q 22.75 39.890625 18.8125 39.015625 \n",
|
||
|
"Q 14.890625 38.140625 10.796875 36.28125 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-35\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(77.834595 155.718188)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_3\">\n",
|
||
|
" <g id=\"line2d_3\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"135.059009\" xlink:href=\"#m24ffdc010b\" y=\"141.119751\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_3\">\n",
|
||
|
" <!-- 1000 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 12.40625 8.296875 \n",
|
||
|
"L 28.515625 8.296875 \n",
|
||
|
"L 28.515625 63.921875 \n",
|
||
|
"L 10.984375 60.40625 \n",
|
||
|
"L 10.984375 69.390625 \n",
|
||
|
"L 28.421875 72.90625 \n",
|
||
|
"L 38.28125 72.90625 \n",
|
||
|
"L 38.28125 8.296875 \n",
|
||
|
"L 54.390625 8.296875 \n",
|
||
|
"L 54.390625 0 \n",
|
||
|
"L 12.40625 0 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-31\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(122.334009 155.718188)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"190.869141\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_4\">\n",
|
||
|
" <g id=\"line2d_4\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"182.739673\" xlink:href=\"#m24ffdc010b\" y=\"141.119751\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_4\">\n",
|
||
|
" <!-- 1500 -->\n",
|
||
|
" <g transform=\"translate(170.014673 155.718188)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"190.869141\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_5\">\n",
|
||
|
" <g id=\"line2d_5\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"230.420337\" xlink:href=\"#m24ffdc010b\" y=\"141.119751\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_5\">\n",
|
||
|
" <!-- 2000 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 19.1875 8.296875 \n",
|
||
|
"L 53.609375 8.296875 \n",
|
||
|
"L 53.609375 0 \n",
|
||
|
"L 7.328125 0 \n",
|
||
|
"L 7.328125 8.296875 \n",
|
||
|
"Q 12.9375 14.109375 22.625 23.890625 \n",
|
||
|
"Q 32.328125 33.6875 34.8125 36.53125 \n",
|
||
|
"Q 39.546875 41.84375 41.421875 45.53125 \n",
|
||
|
"Q 43.3125 49.21875 43.3125 52.78125 \n",
|
||
|
"Q 43.3125 58.59375 39.234375 62.25 \n",
|
||
|
"Q 35.15625 65.921875 28.609375 65.921875 \n",
|
||
|
"Q 23.96875 65.921875 18.8125 64.3125 \n",
|
||
|
"Q 13.671875 62.703125 7.8125 59.421875 \n",
|
||
|
"L 7.8125 69.390625 \n",
|
||
|
"Q 13.765625 71.78125 18.9375 73 \n",
|
||
|
"Q 24.125 74.21875 28.421875 74.21875 \n",
|
||
|
"Q 39.75 74.21875 46.484375 68.546875 \n",
|
||
|
"Q 53.21875 62.890625 53.21875 53.421875 \n",
|
||
|
"Q 53.21875 48.921875 51.53125 44.890625 \n",
|
||
|
"Q 49.859375 40.875 45.40625 35.40625 \n",
|
||
|
"Q 44.1875 33.984375 37.640625 27.21875 \n",
|
||
|
"Q 31.109375 20.453125 19.1875 8.296875 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-32\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(217.695337 155.718188)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"190.869141\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"matplotlib.axis_2\">\n",
|
||
|
" <g id=\"ytick_1\">\n",
|
||
|
" <g id=\"line2d_6\">\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 0 0 \n",
|
||
|
"L -3.5 0 \n",
|
||
|
"\" id=\"md0e3ab2543\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#md0e3ab2543\" y=\"10.999219\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_6\">\n",
|
||
|
" <!-- 0 -->\n",
|
||
|
" <g transform=\"translate(26.2875 14.798438)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_2\">\n",
|
||
|
" <g id=\"line2d_7\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#md0e3ab2543\" y=\"34.839551\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_7\">\n",
|
||
|
" <!-- 250 -->\n",
|
||
|
" <g transform=\"translate(13.5625 38.63877)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_3\">\n",
|
||
|
" <g id=\"line2d_8\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#md0e3ab2543\" y=\"58.679883\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_8\">\n",
|
||
|
" <!-- 500 -->\n",
|
||
|
" <g transform=\"translate(13.5625 62.479102)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_4\">\n",
|
||
|
" <g id=\"line2d_9\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#md0e3ab2543\" y=\"82.520215\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_9\">\n",
|
||
|
" <!-- 750 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 8.203125 72.90625 \n",
|
||
|
"L 55.078125 72.90625 \n",
|
||
|
"L 55.078125 68.703125 \n",
|
||
|
"L 28.609375 0 \n",
|
||
|
"L 18.3125 0 \n",
|
||
|
"L 43.21875 64.59375 \n",
|
||
|
"L 8.203125 64.59375 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-37\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(13.5625 86.319434)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-37\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_5\">\n",
|
||
|
" <g id=\"line2d_10\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#md0e3ab2543\" y=\"106.360547\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_10\">\n",
|
||
|
" <!-- 1000 -->\n",
|
||
|
" <g transform=\"translate(7.2 110.159766)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"190.869141\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_6\">\n",
|
||
|
" <g id=\"line2d_11\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#md0e3ab2543\" y=\"130.200879\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_11\">\n",
|
||
|
" <!-- 1250 -->\n",
|
||
|
" <g transform=\"translate(7.2 134.000098)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"190.869141\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_3\">\n",
|
||
|
" <path d=\"M 39.65 141.119751 \n",
|
||
|
"L 39.65 10.951538 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_4\">\n",
|
||
|
" <path d=\"M 234.95 141.119751 \n",
|
||
|
"L 234.95 10.951538 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_5\">\n",
|
||
|
" <path d=\"M 39.65 141.119751 \n",
|
||
|
"L 234.95 141.119751 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_6\">\n",
|
||
|
" <path d=\"M 39.65 10.951538 \n",
|
||
|
"L 234.95 10.951538 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <defs>\n",
|
||
|
" <clipPath id=\"p7d956d7cff\">\n",
|
||
|
" <rect height=\"130.168213\" width=\"195.3\" x=\"39.65\" y=\"10.951538\"/>\n",
|
||
|
" </clipPath>\n",
|
||
|
" </defs>\n",
|
||
|
"</svg>\n"
|
||
|
],
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x7f01a40b5f60>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"d2l.set_figsize()\n",
|
||
|
"content_img = Image.open('../../data/rainier.jpg')\n",
|
||
|
"d2l.plt.imshow(content_img);"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 3,
|
||
|
"metadata": {},
|
||
|
"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",
|
||
|
"<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
|
||
|
"<svg height=\"170pt\" version=\"1.1\" viewBox=\"0 0 244 170\" width=\"244pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||
|
" <defs>\n",
|
||
|
" <style type=\"text/css\">\n",
|
||
|
"*{stroke-linecap:butt;stroke-linejoin:round;}\n",
|
||
|
" </style>\n",
|
||
|
" </defs>\n",
|
||
|
" <g id=\"figure_1\">\n",
|
||
|
" <g id=\"patch_1\">\n",
|
||
|
" <path d=\"M 0 170.720719 \n",
|
||
|
"L 244.80025 170.720719 \n",
|
||
|
"L 244.80025 0 \n",
|
||
|
"L 0 0 \n",
|
||
|
"z\n",
|
||
|
"\" style=\"fill:none;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"axes_1\">\n",
|
||
|
" <g id=\"patch_2\">\n",
|
||
|
" <path d=\"M 39.65 146.842594 \n",
|
||
|
"L 234.10025 146.842594 \n",
|
||
|
"L 234.10025 10.942594 \n",
|
||
|
"L 39.65 10.942594 \n",
|
||
|
"z\n",
|
||
|
"\" style=\"fill:#ffffff;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g clip-path=\"url(#p7f02f47f9e)\">\n",
|
||
|
" <image height=\"136\" id=\"image5e4c500195\" transform=\"scale(1 -1)translate(0 -136)\" width=\"195\" x=\"39.65\" xlink:href=\"data:image/png;base64,\n",
|
||
|
"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
|
||
|
" </g>\n",
|
||
|
" <g id=\"matplotlib.axis_1\">\n",
|
||
|
" <g id=\"xtick_1\">\n",
|
||
|
" <g id=\"line2d_1\">\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 0 0 \n",
|
||
|
"L 0 3.5 \n",
|
||
|
"\" id=\"m4ce845f5af\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.706625\" xlink:href=\"#m4ce845f5af\" y=\"146.842594\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_1\">\n",
|
||
|
" <!-- 0 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 31.78125 66.40625 \n",
|
||
|
"Q 24.171875 66.40625 20.328125 58.90625 \n",
|
||
|
"Q 16.5 51.421875 16.5 36.375 \n",
|
||
|
"Q 16.5 21.390625 20.328125 13.890625 \n",
|
||
|
"Q 24.171875 6.390625 31.78125 6.390625 \n",
|
||
|
"Q 39.453125 6.390625 43.28125 13.890625 \n",
|
||
|
"Q 47.125 21.390625 47.125 36.375 \n",
|
||
|
"Q 47.125 51.421875 43.28125 58.90625 \n",
|
||
|
"Q 39.453125 66.40625 31.78125 66.40625 \n",
|
||
|
"z\n",
|
||
|
"M 31.78125 74.21875 \n",
|
||
|
"Q 44.046875 74.21875 50.515625 64.515625 \n",
|
||
|
"Q 56.984375 54.828125 56.984375 36.375 \n",
|
||
|
"Q 56.984375 17.96875 50.515625 8.265625 \n",
|
||
|
"Q 44.046875 -1.421875 31.78125 -1.421875 \n",
|
||
|
"Q 19.53125 -1.421875 13.0625 8.265625 \n",
|
||
|
"Q 6.59375 17.96875 6.59375 36.375 \n",
|
||
|
"Q 6.59375 54.828125 13.0625 64.515625 \n",
|
||
|
"Q 19.53125 74.21875 31.78125 74.21875 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-30\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(36.525375 161.441031)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_2\">\n",
|
||
|
" <g id=\"line2d_2\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"96.331625\" xlink:href=\"#m4ce845f5af\" y=\"146.842594\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_2\">\n",
|
||
|
" <!-- 500 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 10.796875 72.90625 \n",
|
||
|
"L 49.515625 72.90625 \n",
|
||
|
"L 49.515625 64.59375 \n",
|
||
|
"L 19.828125 64.59375 \n",
|
||
|
"L 19.828125 46.734375 \n",
|
||
|
"Q 21.96875 47.46875 24.109375 47.828125 \n",
|
||
|
"Q 26.265625 48.1875 28.421875 48.1875 \n",
|
||
|
"Q 40.625 48.1875 47.75 41.5 \n",
|
||
|
"Q 54.890625 34.8125 54.890625 23.390625 \n",
|
||
|
"Q 54.890625 11.625 47.5625 5.09375 \n",
|
||
|
"Q 40.234375 -1.421875 26.90625 -1.421875 \n",
|
||
|
"Q 22.3125 -1.421875 17.546875 -0.640625 \n",
|
||
|
"Q 12.796875 0.140625 7.71875 1.703125 \n",
|
||
|
"L 7.71875 11.625 \n",
|
||
|
"Q 12.109375 9.234375 16.796875 8.0625 \n",
|
||
|
"Q 21.484375 6.890625 26.703125 6.890625 \n",
|
||
|
"Q 35.15625 6.890625 40.078125 11.328125 \n",
|
||
|
"Q 45.015625 15.765625 45.015625 23.390625 \n",
|
||
|
"Q 45.015625 31 40.078125 35.4375 \n",
|
||
|
"Q 35.15625 39.890625 26.703125 39.890625 \n",
|
||
|
"Q 22.75 39.890625 18.8125 39.015625 \n",
|
||
|
"Q 14.890625 38.140625 10.796875 36.28125 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-35\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(86.787875 161.441031)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_3\">\n",
|
||
|
" <g id=\"line2d_3\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"152.956625\" xlink:href=\"#m4ce845f5af\" y=\"146.842594\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_3\">\n",
|
||
|
" <!-- 1000 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 12.40625 8.296875 \n",
|
||
|
"L 28.515625 8.296875 \n",
|
||
|
"L 28.515625 63.921875 \n",
|
||
|
"L 10.984375 60.40625 \n",
|
||
|
"L 10.984375 69.390625 \n",
|
||
|
"L 28.421875 72.90625 \n",
|
||
|
"L 38.28125 72.90625 \n",
|
||
|
"L 38.28125 8.296875 \n",
|
||
|
"L 54.390625 8.296875 \n",
|
||
|
"L 54.390625 0 \n",
|
||
|
"L 12.40625 0 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-31\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(140.231625 161.441031)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"190.869141\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_4\">\n",
|
||
|
" <g id=\"line2d_4\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"209.581625\" xlink:href=\"#m4ce845f5af\" y=\"146.842594\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_4\">\n",
|
||
|
" <!-- 1500 -->\n",
|
||
|
" <g transform=\"translate(196.856625 161.441031)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"190.869141\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"matplotlib.axis_2\">\n",
|
||
|
" <g id=\"ytick_1\">\n",
|
||
|
" <g id=\"line2d_5\">\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 0 0 \n",
|
||
|
"L -3.5 0 \n",
|
||
|
"\" id=\"m3493a24b30\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#m3493a24b30\" y=\"10.999219\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_5\">\n",
|
||
|
" <!-- 0 -->\n",
|
||
|
" <g transform=\"translate(26.2875 14.798437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_2\">\n",
|
||
|
" <g id=\"line2d_6\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#m3493a24b30\" y=\"33.649219\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_6\">\n",
|
||
|
" <!-- 200 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 19.1875 8.296875 \n",
|
||
|
"L 53.609375 8.296875 \n",
|
||
|
"L 53.609375 0 \n",
|
||
|
"L 7.328125 0 \n",
|
||
|
"L 7.328125 8.296875 \n",
|
||
|
"Q 12.9375 14.109375 22.625 23.890625 \n",
|
||
|
"Q 32.328125 33.6875 34.8125 36.53125 \n",
|
||
|
"Q 39.546875 41.84375 41.421875 45.53125 \n",
|
||
|
"Q 43.3125 49.21875 43.3125 52.78125 \n",
|
||
|
"Q 43.3125 58.59375 39.234375 62.25 \n",
|
||
|
"Q 35.15625 65.921875 28.609375 65.921875 \n",
|
||
|
"Q 23.96875 65.921875 18.8125 64.3125 \n",
|
||
|
"Q 13.671875 62.703125 7.8125 59.421875 \n",
|
||
|
"L 7.8125 69.390625 \n",
|
||
|
"Q 13.765625 71.78125 18.9375 73 \n",
|
||
|
"Q 24.125 74.21875 28.421875 74.21875 \n",
|
||
|
"Q 39.75 74.21875 46.484375 68.546875 \n",
|
||
|
"Q 53.21875 62.890625 53.21875 53.421875 \n",
|
||
|
"Q 53.21875 48.921875 51.53125 44.890625 \n",
|
||
|
"Q 49.859375 40.875 45.40625 35.40625 \n",
|
||
|
"Q 44.1875 33.984375 37.640625 27.21875 \n",
|
||
|
"Q 31.109375 20.453125 19.1875 8.296875 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-32\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(13.5625 37.448437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_3\">\n",
|
||
|
" <g id=\"line2d_7\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#m3493a24b30\" y=\"56.299219\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_7\">\n",
|
||
|
" <!-- 400 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 37.796875 64.3125 \n",
|
||
|
"L 12.890625 25.390625 \n",
|
||
|
"L 37.796875 25.390625 \n",
|
||
|
"z\n",
|
||
|
"M 35.203125 72.90625 \n",
|
||
|
"L 47.609375 72.90625 \n",
|
||
|
"L 47.609375 25.390625 \n",
|
||
|
"L 58.015625 25.390625 \n",
|
||
|
"L 58.015625 17.1875 \n",
|
||
|
"L 47.609375 17.1875 \n",
|
||
|
"L 47.609375 0 \n",
|
||
|
"L 37.796875 0 \n",
|
||
|
"L 37.796875 17.1875 \n",
|
||
|
"L 4.890625 17.1875 \n",
|
||
|
"L 4.890625 26.703125 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-34\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(13.5625 60.098437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_4\">\n",
|
||
|
" <g id=\"line2d_8\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#m3493a24b30\" y=\"78.949219\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_8\">\n",
|
||
|
" <!-- 600 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 33.015625 40.375 \n",
|
||
|
"Q 26.375 40.375 22.484375 35.828125 \n",
|
||
|
"Q 18.609375 31.296875 18.609375 23.390625 \n",
|
||
|
"Q 18.609375 15.53125 22.484375 10.953125 \n",
|
||
|
"Q 26.375 6.390625 33.015625 6.390625 \n",
|
||
|
"Q 39.65625 6.390625 43.53125 10.953125 \n",
|
||
|
"Q 47.40625 15.53125 47.40625 23.390625 \n",
|
||
|
"Q 47.40625 31.296875 43.53125 35.828125 \n",
|
||
|
"Q 39.65625 40.375 33.015625 40.375 \n",
|
||
|
"z\n",
|
||
|
"M 52.59375 71.296875 \n",
|
||
|
"L 52.59375 62.3125 \n",
|
||
|
"Q 48.875 64.0625 45.09375 64.984375 \n",
|
||
|
"Q 41.3125 65.921875 37.59375 65.921875 \n",
|
||
|
"Q 27.828125 65.921875 22.671875 59.328125 \n",
|
||
|
"Q 17.53125 52.734375 16.796875 39.40625 \n",
|
||
|
"Q 19.671875 43.65625 24.015625 45.921875 \n",
|
||
|
"Q 28.375 48.1875 33.59375 48.1875 \n",
|
||
|
"Q 44.578125 48.1875 50.953125 41.515625 \n",
|
||
|
"Q 57.328125 34.859375 57.328125 23.390625 \n",
|
||
|
"Q 57.328125 12.15625 50.6875 5.359375 \n",
|
||
|
"Q 44.046875 -1.421875 33.015625 -1.421875 \n",
|
||
|
"Q 20.359375 -1.421875 13.671875 8.265625 \n",
|
||
|
"Q 6.984375 17.96875 6.984375 36.375 \n",
|
||
|
"Q 6.984375 53.65625 15.1875 63.9375 \n",
|
||
|
"Q 23.390625 74.21875 37.203125 74.21875 \n",
|
||
|
"Q 40.921875 74.21875 44.703125 73.484375 \n",
|
||
|
"Q 48.484375 72.75 52.59375 71.296875 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-36\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(13.5625 82.748437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-36\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_5\">\n",
|
||
|
" <g id=\"line2d_9\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#m3493a24b30\" y=\"101.599219\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_9\">\n",
|
||
|
" <!-- 800 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 31.78125 34.625 \n",
|
||
|
"Q 24.75 34.625 20.71875 30.859375 \n",
|
||
|
"Q 16.703125 27.09375 16.703125 20.515625 \n",
|
||
|
"Q 16.703125 13.921875 20.71875 10.15625 \n",
|
||
|
"Q 24.75 6.390625 31.78125 6.390625 \n",
|
||
|
"Q 38.8125 6.390625 42.859375 10.171875 \n",
|
||
|
"Q 46.921875 13.96875 46.921875 20.515625 \n",
|
||
|
"Q 46.921875 27.09375 42.890625 30.859375 \n",
|
||
|
"Q 38.875 34.625 31.78125 34.625 \n",
|
||
|
"z\n",
|
||
|
"M 21.921875 38.8125 \n",
|
||
|
"Q 15.578125 40.375 12.03125 44.71875 \n",
|
||
|
"Q 8.5 49.078125 8.5 55.328125 \n",
|
||
|
"Q 8.5 64.0625 14.71875 69.140625 \n",
|
||
|
"Q 20.953125 74.21875 31.78125 74.21875 \n",
|
||
|
"Q 42.671875 74.21875 48.875 69.140625 \n",
|
||
|
"Q 55.078125 64.0625 55.078125 55.328125 \n",
|
||
|
"Q 55.078125 49.078125 51.53125 44.71875 \n",
|
||
|
"Q 48 40.375 41.703125 38.8125 \n",
|
||
|
"Q 48.828125 37.15625 52.796875 32.3125 \n",
|
||
|
"Q 56.78125 27.484375 56.78125 20.515625 \n",
|
||
|
"Q 56.78125 9.90625 50.3125 4.234375 \n",
|
||
|
"Q 43.84375 -1.421875 31.78125 -1.421875 \n",
|
||
|
"Q 19.734375 -1.421875 13.25 4.234375 \n",
|
||
|
"Q 6.78125 9.90625 6.78125 20.515625 \n",
|
||
|
"Q 6.78125 27.484375 10.78125 32.3125 \n",
|
||
|
"Q 14.796875 37.15625 21.921875 38.8125 \n",
|
||
|
"z\n",
|
||
|
"M 18.3125 54.390625 \n",
|
||
|
"Q 18.3125 48.734375 21.84375 45.5625 \n",
|
||
|
"Q 25.390625 42.390625 31.78125 42.390625 \n",
|
||
|
"Q 38.140625 42.390625 41.71875 45.5625 \n",
|
||
|
"Q 45.3125 48.734375 45.3125 54.390625 \n",
|
||
|
"Q 45.3125 60.0625 41.71875 63.234375 \n",
|
||
|
"Q 38.140625 66.40625 31.78125 66.40625 \n",
|
||
|
"Q 25.390625 66.40625 21.84375 63.234375 \n",
|
||
|
"Q 18.3125 60.0625 18.3125 54.390625 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-38\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(13.5625 105.398437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-38\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_6\">\n",
|
||
|
" <g id=\"line2d_10\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#m3493a24b30\" y=\"124.249219\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_10\">\n",
|
||
|
" <!-- 1000 -->\n",
|
||
|
" <g transform=\"translate(7.2 128.048437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"190.869141\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_7\">\n",
|
||
|
" <g id=\"line2d_11\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"39.65\" xlink:href=\"#m3493a24b30\" y=\"146.899219\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_11\">\n",
|
||
|
" <!-- 1200 -->\n",
|
||
|
" <g transform=\"translate(7.2 150.698437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"190.869141\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_3\">\n",
|
||
|
" <path d=\"M 39.65 146.842594 \n",
|
||
|
"L 39.65 10.942594 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_4\">\n",
|
||
|
" <path d=\"M 234.10025 146.842594 \n",
|
||
|
"L 234.10025 10.942594 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_5\">\n",
|
||
|
" <path d=\"M 39.65 146.842594 \n",
|
||
|
"L 234.10025 146.842594 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_6\">\n",
|
||
|
" <path d=\"M 39.65 10.942594 \n",
|
||
|
"L 234.10025 10.942594 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <defs>\n",
|
||
|
" <clipPath id=\"p7f02f47f9e\">\n",
|
||
|
" <rect height=\"135.9\" width=\"194.45025\" x=\"39.65\" y=\"10.942594\"/>\n",
|
||
|
" </clipPath>\n",
|
||
|
" </defs>\n",
|
||
|
"</svg>\n"
|
||
|
],
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x7f013512fe48>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"d2l.set_figsize()\n",
|
||
|
"style_img = Image.open('../../data/autumn_oak.jpg')\n",
|
||
|
"d2l.plt.imshow(style_img);"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## 9.11.3. 预处理和后处理图像"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 4,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"rgb_mean = np.array([0.485, 0.456, 0.406])\n",
|
||
|
"rgb_std = np.array([0.229, 0.224, 0.225])\n",
|
||
|
"\n",
|
||
|
"def preprocess(PIL_img, image_shape):\n",
|
||
|
" process = torchvision.transforms.Compose([\n",
|
||
|
" torchvision.transforms.Resize(image_shape),\n",
|
||
|
" torchvision.transforms.ToTensor(),\n",
|
||
|
" torchvision.transforms.Normalize(mean=rgb_mean, std=rgb_std)])\n",
|
||
|
"\n",
|
||
|
" return process(PIL_img).unsqueeze(dim = 0) # (batch_size, 3, H, W)\n",
|
||
|
"\n",
|
||
|
"def postprocess(img_tensor):\n",
|
||
|
" inv_normalize = torchvision.transforms.Normalize(\n",
|
||
|
" mean= -rgb_mean / rgb_std,\n",
|
||
|
" std= 1/rgb_std)\n",
|
||
|
" to_PIL_image = torchvision.transforms.ToPILImage()\n",
|
||
|
" return to_PIL_image(inv_normalize(img_tensor[0].cpu()).clamp(0, 1))"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## 9.11.4 抽取特征"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 5,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"/data1/tangss/PyTorch_pretrainedmodels\r\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"!echo $TORCH_HOME # 将会把预训练好的模型下载到此处(没有输出的话默认是.cache/torch)\n",
|
||
|
"pretrained_net = torchvision.models.vgg19(pretrained=True, progress=True)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 6,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"VGG(\n",
|
||
|
" (features): Sequential(\n",
|
||
|
" (0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (1): ReLU(inplace)\n",
|
||
|
" (2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (3): ReLU(inplace)\n",
|
||
|
" (4): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
|
||
|
" (5): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (6): ReLU(inplace)\n",
|
||
|
" (7): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (8): ReLU(inplace)\n",
|
||
|
" (9): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
|
||
|
" (10): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (11): ReLU(inplace)\n",
|
||
|
" (12): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (13): ReLU(inplace)\n",
|
||
|
" (14): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (15): ReLU(inplace)\n",
|
||
|
" (16): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (17): ReLU(inplace)\n",
|
||
|
" (18): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
|
||
|
" (19): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (20): ReLU(inplace)\n",
|
||
|
" (21): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (22): ReLU(inplace)\n",
|
||
|
" (23): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (24): ReLU(inplace)\n",
|
||
|
" (25): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (26): ReLU(inplace)\n",
|
||
|
" (27): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
|
||
|
" (28): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (29): ReLU(inplace)\n",
|
||
|
" (30): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (31): ReLU(inplace)\n",
|
||
|
" (32): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (33): ReLU(inplace)\n",
|
||
|
" (34): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
|
||
|
" (35): ReLU(inplace)\n",
|
||
|
" (36): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
|
||
|
" )\n",
|
||
|
" (avgpool): AdaptiveAvgPool2d(output_size=(7, 7))\n",
|
||
|
" (classifier): Sequential(\n",
|
||
|
" (0): Linear(in_features=25088, out_features=4096, bias=True)\n",
|
||
|
" (1): ReLU(inplace)\n",
|
||
|
" (2): Dropout(p=0.5)\n",
|
||
|
" (3): Linear(in_features=4096, out_features=4096, bias=True)\n",
|
||
|
" (4): ReLU(inplace)\n",
|
||
|
" (5): Dropout(p=0.5)\n",
|
||
|
" (6): Linear(in_features=4096, out_features=1000, bias=True)\n",
|
||
|
" )\n",
|
||
|
")"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 6,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"pretrained_net"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 7,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"style_layers, content_layers = [0, 5, 10, 19, 28], [25]"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 8,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"net_list = []\n",
|
||
|
"for i in range(max(content_layers + style_layers) + 1):\n",
|
||
|
" net_list.append(pretrained_net.features[i])\n",
|
||
|
"net = torch.nn.Sequential(*net_list)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 9,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"def extract_features(X, content_layers, style_layers):\n",
|
||
|
" contents = []\n",
|
||
|
" styles = []\n",
|
||
|
" for i in range(len(net)):\n",
|
||
|
" X = net[i](X)\n",
|
||
|
" if i in style_layers:\n",
|
||
|
" styles.append(X)\n",
|
||
|
" if i in content_layers:\n",
|
||
|
" contents.append(X)\n",
|
||
|
" return contents, styles"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 10,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"def get_contents(image_shape, device):\n",
|
||
|
" content_X = preprocess(content_img, image_shape).to(device)\n",
|
||
|
" contents_Y, _ = extract_features(content_X, content_layers, style_layers)\n",
|
||
|
" return content_X, contents_Y\n",
|
||
|
"\n",
|
||
|
"def get_styles(image_shape, device):\n",
|
||
|
" style_X = preprocess(style_img, image_shape).to(device)\n",
|
||
|
" _, styles_Y = extract_features(style_X, content_layers, style_layers)\n",
|
||
|
" return style_X, styles_Y"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## 9.11.5 定义损失函数\n",
|
||
|
"### 9.11.5.1 内容损失"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 11,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"def content_loss(Y_hat, Y):\n",
|
||
|
" return F.mse_loss(Y_hat, Y)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"### 9.11.5.2 样式损失"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 12,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"def gram(X):\n",
|
||
|
" num_channels, n = X.shape[1], X.shape[2] * X.shape[3]\n",
|
||
|
" X = X.view(num_channels, n)\n",
|
||
|
" return torch.matmul(X, X.t()) / (num_channels * n)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 13,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"def style_loss(Y_hat, gram_Y):\n",
|
||
|
" return F.mse_loss(gram(Y_hat), gram_Y)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"### 9.11.5.3 总变差损失"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 14,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"def tv_loss(Y_hat):\n",
|
||
|
" return 0.5 * (F.l1_loss(Y_hat[:, :, 1:, :], Y_hat[:, :, :-1, :]) + \n",
|
||
|
" F.l1_loss(Y_hat[:, :, :, 1:], Y_hat[:, :, :, :-1]))"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"### 9.11.5.4 损失函数"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 15,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"content_weight, style_weight, tv_weight = 1, 1e3, 10\n",
|
||
|
"\n",
|
||
|
"def compute_loss(X, contents_Y_hat, styles_Y_hat, contents_Y, styles_Y_gram):\n",
|
||
|
" # 分别计算内容损失、样式损失和总变差损失\n",
|
||
|
" contents_l = [content_loss(Y_hat, Y) * content_weight for Y_hat, Y in zip(\n",
|
||
|
" contents_Y_hat, contents_Y)]\n",
|
||
|
" styles_l = [style_loss(Y_hat, Y) * style_weight for Y_hat, Y in zip(\n",
|
||
|
" styles_Y_hat, styles_Y_gram)]\n",
|
||
|
" tv_l = tv_loss(X) * tv_weight\n",
|
||
|
" # 对所有损失求和\n",
|
||
|
" l = sum(styles_l) + sum(contents_l) + tv_l\n",
|
||
|
" return contents_l, styles_l, tv_l, l"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## 9.11.6 创建和初始化合成图像"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 16,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"class GeneratedImage(torch.nn.Module):\n",
|
||
|
" def __init__(self, img_shape):\n",
|
||
|
" super(GeneratedImage, self).__init__()\n",
|
||
|
" self.weight = torch.nn.Parameter(torch.rand(*img_shape))\n",
|
||
|
"\n",
|
||
|
" def forward(self):\n",
|
||
|
" return self.weight"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 17,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"def get_inits(X, device, lr, styles_Y):\n",
|
||
|
" gen_img = GeneratedImage(X.shape).to(device)\n",
|
||
|
" gen_img.weight.data = X.data\n",
|
||
|
" optimizer = torch.optim.Adam(gen_img.parameters(), lr=lr)\n",
|
||
|
" styles_Y_gram = [gram(Y) for Y in styles_Y]\n",
|
||
|
" return gen_img(), styles_Y_gram, optimizer"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## 9.11.7 训练"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 18,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"def train(X, contents_Y, styles_Y, device, lr, max_epochs, lr_decay_epoch):\n",
|
||
|
" print(\"training on \", device)\n",
|
||
|
" X, styles_Y_gram, optimizer = get_inits(X, device, lr, styles_Y)\n",
|
||
|
" scheduler = torch.optim.lr_scheduler.StepLR(optimizer, lr_decay_epoch, gamma=0.1)\n",
|
||
|
" for i in range(max_epochs):\n",
|
||
|
" start = time.time()\n",
|
||
|
" \n",
|
||
|
" contents_Y_hat, styles_Y_hat = extract_features(\n",
|
||
|
" X, content_layers, style_layers)\n",
|
||
|
" contents_l, styles_l, tv_l, l = compute_loss(\n",
|
||
|
" X, contents_Y_hat, styles_Y_hat, contents_Y, styles_Y_gram)\n",
|
||
|
" \n",
|
||
|
" optimizer.zero_grad()\n",
|
||
|
" l.backward(retain_graph = True)\n",
|
||
|
" optimizer.step()\n",
|
||
|
" scheduler.step()\n",
|
||
|
" \n",
|
||
|
" if i % 50 == 0 and i != 0:\n",
|
||
|
" print('epoch %3d, content loss %.2f, style loss %.2f, '\n",
|
||
|
" 'TV loss %.2f, %.2f sec'\n",
|
||
|
" % (i, sum(contents_l).item(), sum(styles_l).item(), tv_l.item(),\n",
|
||
|
" time.time() - start))\n",
|
||
|
" return X.detach()"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 19,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"training on cuda\n",
|
||
|
"epoch 50, content loss 0.24, style loss 1.11, TV loss 1.33, 0.07 sec\n",
|
||
|
"epoch 100, content loss 0.24, style loss 0.81, TV loss 1.20, 0.07 sec\n",
|
||
|
"epoch 150, content loss 0.24, style loss 0.72, TV loss 1.12, 0.07 sec\n",
|
||
|
"epoch 200, content loss 0.24, style loss 0.68, TV loss 1.06, 0.07 sec\n",
|
||
|
"epoch 250, content loss 0.23, style loss 0.68, TV loss 1.05, 0.07 sec\n",
|
||
|
"epoch 300, content loss 0.23, style loss 0.67, TV loss 1.04, 0.07 sec\n",
|
||
|
"epoch 350, content loss 0.23, style loss 0.67, TV loss 1.04, 0.07 sec\n",
|
||
|
"epoch 400, content loss 0.23, style loss 0.67, TV loss 1.03, 0.07 sec\n",
|
||
|
"epoch 450, content loss 0.23, style loss 0.67, TV loss 1.03, 0.07 sec\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"image_shape = (150, 225)\n",
|
||
|
"net = net.to(device)\n",
|
||
|
"content_X, contents_Y = get_contents(image_shape, device)\n",
|
||
|
"style_X, styles_Y = get_styles(image_shape, device)\n",
|
||
|
"output = train(content_X, contents_Y, styles_Y, device, 0.01, 500, 200)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 20,
|
||
|
"metadata": {},
|
||
|
"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",
|
||
|
"<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
|
||
|
"<svg height=\"164pt\" version=\"1.1\" viewBox=\"0 0 239 164\" width=\"239pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||
|
" <defs>\n",
|
||
|
" <style type=\"text/css\">\n",
|
||
|
"*{stroke-linecap:butt;stroke-linejoin:round;}\n",
|
||
|
" </style>\n",
|
||
|
" </defs>\n",
|
||
|
" <g id=\"figure_1\">\n",
|
||
|
" <g id=\"patch_1\">\n",
|
||
|
" <path d=\"M 0 164.778125 \n",
|
||
|
"L 239.2875 164.778125 \n",
|
||
|
"L 239.2875 0 \n",
|
||
|
"L 0 0 \n",
|
||
|
"z\n",
|
||
|
"\" style=\"fill:none;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"axes_1\">\n",
|
||
|
" <g id=\"patch_2\">\n",
|
||
|
" <path d=\"M 33.2875 140.9 \n",
|
||
|
"L 228.5875 140.9 \n",
|
||
|
"L 228.5875 10.7 \n",
|
||
|
"L 33.2875 10.7 \n",
|
||
|
"z\n",
|
||
|
"\" style=\"fill:#ffffff;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g clip-path=\"url(#p62234c442f)\">\n",
|
||
|
" <image height=\"131\" id=\"image2e58cf7ef3\" transform=\"scale(1 -1)translate(0 -131)\" width=\"196\" x=\"33.2875\" xlink:href=\"data:image/png;base64,\n",
|
||
|
"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
|
||
|
" </g>\n",
|
||
|
" <g id=\"matplotlib.axis_1\">\n",
|
||
|
" <g id=\"xtick_1\">\n",
|
||
|
" <g id=\"line2d_1\">\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 0 0 \n",
|
||
|
"L 0 3.5 \n",
|
||
|
"\" id=\"mb470c7d3e2\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.7215\" xlink:href=\"#mb470c7d3e2\" y=\"140.9\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_1\">\n",
|
||
|
" <!-- 0 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 31.78125 66.40625 \n",
|
||
|
"Q 24.171875 66.40625 20.328125 58.90625 \n",
|
||
|
"Q 16.5 51.421875 16.5 36.375 \n",
|
||
|
"Q 16.5 21.390625 20.328125 13.890625 \n",
|
||
|
"Q 24.171875 6.390625 31.78125 6.390625 \n",
|
||
|
"Q 39.453125 6.390625 43.28125 13.890625 \n",
|
||
|
"Q 47.125 21.390625 47.125 36.375 \n",
|
||
|
"Q 47.125 51.421875 43.28125 58.90625 \n",
|
||
|
"Q 39.453125 66.40625 31.78125 66.40625 \n",
|
||
|
"z\n",
|
||
|
"M 31.78125 74.21875 \n",
|
||
|
"Q 44.046875 74.21875 50.515625 64.515625 \n",
|
||
|
"Q 56.984375 54.828125 56.984375 36.375 \n",
|
||
|
"Q 56.984375 17.96875 50.515625 8.265625 \n",
|
||
|
"Q 44.046875 -1.421875 31.78125 -1.421875 \n",
|
||
|
"Q 19.53125 -1.421875 13.0625 8.265625 \n",
|
||
|
"Q 6.59375 17.96875 6.59375 36.375 \n",
|
||
|
"Q 6.59375 54.828125 13.0625 64.515625 \n",
|
||
|
"Q 19.53125 74.21875 31.78125 74.21875 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-30\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(30.54025 155.498437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_2\">\n",
|
||
|
" <g id=\"line2d_2\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"77.1215\" xlink:href=\"#mb470c7d3e2\" y=\"140.9\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_2\">\n",
|
||
|
" <!-- 50 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 10.796875 72.90625 \n",
|
||
|
"L 49.515625 72.90625 \n",
|
||
|
"L 49.515625 64.59375 \n",
|
||
|
"L 19.828125 64.59375 \n",
|
||
|
"L 19.828125 46.734375 \n",
|
||
|
"Q 21.96875 47.46875 24.109375 47.828125 \n",
|
||
|
"Q 26.265625 48.1875 28.421875 48.1875 \n",
|
||
|
"Q 40.625 48.1875 47.75 41.5 \n",
|
||
|
"Q 54.890625 34.8125 54.890625 23.390625 \n",
|
||
|
"Q 54.890625 11.625 47.5625 5.09375 \n",
|
||
|
"Q 40.234375 -1.421875 26.90625 -1.421875 \n",
|
||
|
"Q 22.3125 -1.421875 17.546875 -0.640625 \n",
|
||
|
"Q 12.796875 0.140625 7.71875 1.703125 \n",
|
||
|
"L 7.71875 11.625 \n",
|
||
|
"Q 12.109375 9.234375 16.796875 8.0625 \n",
|
||
|
"Q 21.484375 6.890625 26.703125 6.890625 \n",
|
||
|
"Q 35.15625 6.890625 40.078125 11.328125 \n",
|
||
|
"Q 45.015625 15.765625 45.015625 23.390625 \n",
|
||
|
"Q 45.015625 31 40.078125 35.4375 \n",
|
||
|
"Q 35.15625 39.890625 26.703125 39.890625 \n",
|
||
|
"Q 22.75 39.890625 18.8125 39.015625 \n",
|
||
|
"Q 14.890625 38.140625 10.796875 36.28125 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-35\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(70.759 155.498437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_3\">\n",
|
||
|
" <g id=\"line2d_3\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"120.5215\" xlink:href=\"#mb470c7d3e2\" y=\"140.9\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_3\">\n",
|
||
|
" <!-- 100 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 12.40625 8.296875 \n",
|
||
|
"L 28.515625 8.296875 \n",
|
||
|
"L 28.515625 63.921875 \n",
|
||
|
"L 10.984375 60.40625 \n",
|
||
|
"L 10.984375 69.390625 \n",
|
||
|
"L 28.421875 72.90625 \n",
|
||
|
"L 38.28125 72.90625 \n",
|
||
|
"L 38.28125 8.296875 \n",
|
||
|
"L 54.390625 8.296875 \n",
|
||
|
"L 54.390625 0 \n",
|
||
|
"L 12.40625 0 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-31\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(110.97775 155.498437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_4\">\n",
|
||
|
" <g id=\"line2d_4\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"163.9215\" xlink:href=\"#mb470c7d3e2\" y=\"140.9\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_4\">\n",
|
||
|
" <!-- 150 -->\n",
|
||
|
" <g transform=\"translate(154.37775 155.498437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_5\">\n",
|
||
|
" <g id=\"line2d_5\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"207.3215\" xlink:href=\"#mb470c7d3e2\" y=\"140.9\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_5\">\n",
|
||
|
" <!-- 200 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 19.1875 8.296875 \n",
|
||
|
"L 53.609375 8.296875 \n",
|
||
|
"L 53.609375 0 \n",
|
||
|
"L 7.328125 0 \n",
|
||
|
"L 7.328125 8.296875 \n",
|
||
|
"Q 12.9375 14.109375 22.625 23.890625 \n",
|
||
|
"Q 32.328125 33.6875 34.8125 36.53125 \n",
|
||
|
"Q 39.546875 41.84375 41.421875 45.53125 \n",
|
||
|
"Q 43.3125 49.21875 43.3125 52.78125 \n",
|
||
|
"Q 43.3125 58.59375 39.234375 62.25 \n",
|
||
|
"Q 35.15625 65.921875 28.609375 65.921875 \n",
|
||
|
"Q 23.96875 65.921875 18.8125 64.3125 \n",
|
||
|
"Q 13.671875 62.703125 7.8125 59.421875 \n",
|
||
|
"L 7.8125 69.390625 \n",
|
||
|
"Q 13.765625 71.78125 18.9375 73 \n",
|
||
|
"Q 24.125 74.21875 28.421875 74.21875 \n",
|
||
|
"Q 39.75 74.21875 46.484375 68.546875 \n",
|
||
|
"Q 53.21875 62.890625 53.21875 53.421875 \n",
|
||
|
"Q 53.21875 48.921875 51.53125 44.890625 \n",
|
||
|
"Q 49.859375 40.875 45.40625 35.40625 \n",
|
||
|
"Q 44.1875 33.984375 37.640625 27.21875 \n",
|
||
|
"Q 31.109375 20.453125 19.1875 8.296875 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-32\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(197.77775 155.498437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"matplotlib.axis_2\">\n",
|
||
|
" <g id=\"ytick_1\">\n",
|
||
|
" <g id=\"line2d_6\">\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 0 0 \n",
|
||
|
"L -3.5 0 \n",
|
||
|
"\" id=\"md1e851d1d9\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md1e851d1d9\" y=\"11.134\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_6\">\n",
|
||
|
" <!-- 0 -->\n",
|
||
|
" <g transform=\"translate(19.925 14.933219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_2\">\n",
|
||
|
" <g id=\"line2d_7\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md1e851d1d9\" y=\"32.834\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_7\">\n",
|
||
|
" <!-- 25 -->\n",
|
||
|
" <g transform=\"translate(13.5625 36.633219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_3\">\n",
|
||
|
" <g id=\"line2d_8\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md1e851d1d9\" y=\"54.534\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_8\">\n",
|
||
|
" <!-- 50 -->\n",
|
||
|
" <g transform=\"translate(13.5625 58.333219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_4\">\n",
|
||
|
" <g id=\"line2d_9\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md1e851d1d9\" y=\"76.234\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_9\">\n",
|
||
|
" <!-- 75 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 8.203125 72.90625 \n",
|
||
|
"L 55.078125 72.90625 \n",
|
||
|
"L 55.078125 68.703125 \n",
|
||
|
"L 28.609375 0 \n",
|
||
|
"L 18.3125 0 \n",
|
||
|
"L 43.21875 64.59375 \n",
|
||
|
"L 8.203125 64.59375 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-37\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(13.5625 80.033219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-37\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_5\">\n",
|
||
|
" <g id=\"line2d_10\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md1e851d1d9\" y=\"97.934\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_10\">\n",
|
||
|
" <!-- 100 -->\n",
|
||
|
" <g transform=\"translate(7.2 101.733219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_6\">\n",
|
||
|
" <g id=\"line2d_11\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md1e851d1d9\" y=\"119.634\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_11\">\n",
|
||
|
" <!-- 125 -->\n",
|
||
|
" <g transform=\"translate(7.2 123.433219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_7\">\n",
|
||
|
" <g id=\"line2d_12\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md1e851d1d9\" y=\"141.334\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_12\">\n",
|
||
|
" <!-- 150 -->\n",
|
||
|
" <g transform=\"translate(7.2 145.133219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_3\">\n",
|
||
|
" <path d=\"M 33.2875 140.9 \n",
|
||
|
"L 33.2875 10.7 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_4\">\n",
|
||
|
" <path d=\"M 228.5875 140.9 \n",
|
||
|
"L 228.5875 10.7 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_5\">\n",
|
||
|
" <path d=\"M 33.2875 140.9 \n",
|
||
|
"L 228.5875 140.9 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_6\">\n",
|
||
|
" <path d=\"M 33.2875 10.7 \n",
|
||
|
"L 228.5875 10.7 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <defs>\n",
|
||
|
" <clipPath id=\"p62234c442f\">\n",
|
||
|
" <rect height=\"130.2\" width=\"195.3\" x=\"33.2875\" y=\"10.7\"/>\n",
|
||
|
" </clipPath>\n",
|
||
|
" </defs>\n",
|
||
|
"</svg>\n"
|
||
|
],
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x7f01344b5048>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"d2l.plt.imshow(postprocess(output));"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 21,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"training on cuda\n",
|
||
|
"epoch 50, content loss 0.34, style loss 0.63, TV loss 0.79, 0.18 sec\n",
|
||
|
"epoch 100, content loss 0.30, style loss 0.50, TV loss 0.74, 0.18 sec\n",
|
||
|
"epoch 150, content loss 0.29, style loss 0.46, TV loss 0.72, 0.18 sec\n",
|
||
|
"epoch 200, content loss 0.28, style loss 0.43, TV loss 0.70, 0.18 sec\n",
|
||
|
"epoch 250, content loss 0.28, style loss 0.43, TV loss 0.69, 0.18 sec\n",
|
||
|
"epoch 300, content loss 0.27, style loss 0.42, TV loss 0.69, 0.18 sec\n",
|
||
|
"epoch 350, content loss 0.27, style loss 0.42, TV loss 0.69, 0.18 sec\n",
|
||
|
"epoch 400, content loss 0.27, style loss 0.42, TV loss 0.69, 0.18 sec\n",
|
||
|
"epoch 450, content loss 0.27, style loss 0.42, TV loss 0.69, 0.18 sec\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"image_shape = (300, 450)\n",
|
||
|
"_, content_Y = get_contents(image_shape, device)\n",
|
||
|
"_, style_Y = get_styles(image_shape, device)\n",
|
||
|
"X = preprocess(postprocess(output), image_shape).to(device)\n",
|
||
|
"big_output = train(X, content_Y, style_Y, device, 0.01, 500, 200)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 22,
|
||
|
"metadata": {},
|
||
|
"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",
|
||
|
"<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
|
||
|
"<svg height=\"294pt\" version=\"1.1\" viewBox=\"0 0 441 294\" width=\"441pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||
|
" <defs>\n",
|
||
|
" <style type=\"text/css\">\n",
|
||
|
"*{stroke-linecap:butt;stroke-linejoin:round;}\n",
|
||
|
" </style>\n",
|
||
|
" </defs>\n",
|
||
|
" <g id=\"figure_1\">\n",
|
||
|
" <g id=\"patch_1\">\n",
|
||
|
" <path d=\"M 0 294.978125 \n",
|
||
|
"L 441.06525 294.978125 \n",
|
||
|
"L 441.06525 0 \n",
|
||
|
"L 0 0 \n",
|
||
|
"z\n",
|
||
|
"\" style=\"fill:none;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"axes_1\">\n",
|
||
|
" <g id=\"patch_2\">\n",
|
||
|
" <path d=\"M 33.2875 271.1 \n",
|
||
|
"L 423.8875 271.1 \n",
|
||
|
"L 423.8875 10.7 \n",
|
||
|
"L 33.2875 10.7 \n",
|
||
|
"z\n",
|
||
|
"\" style=\"fill:#ffffff;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g clip-path=\"url(#p0e5a8d7f1e)\">\n",
|
||
|
" <image height=\"261\" id=\"imagec15d6a09ea\" transform=\"scale(1 -1)translate(0 -261)\" width=\"391\" x=\"33.2875\" xlink:href=\"data:image/png;base64,\n",
|
||
|
"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
|
||
|
" </g>\n",
|
||
|
" <g id=\"matplotlib.axis_1\">\n",
|
||
|
" <g id=\"xtick_1\">\n",
|
||
|
" <g id=\"line2d_1\">\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 0 0 \n",
|
||
|
"L 0 3.5 \n",
|
||
|
"\" id=\"m5a42cd0fe8\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.7215\" xlink:href=\"#m5a42cd0fe8\" y=\"271.1\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_1\">\n",
|
||
|
" <!-- 0 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 31.78125 66.40625 \n",
|
||
|
"Q 24.171875 66.40625 20.328125 58.90625 \n",
|
||
|
"Q 16.5 51.421875 16.5 36.375 \n",
|
||
|
"Q 16.5 21.390625 20.328125 13.890625 \n",
|
||
|
"Q 24.171875 6.390625 31.78125 6.390625 \n",
|
||
|
"Q 39.453125 6.390625 43.28125 13.890625 \n",
|
||
|
"Q 47.125 21.390625 47.125 36.375 \n",
|
||
|
"Q 47.125 51.421875 43.28125 58.90625 \n",
|
||
|
"Q 39.453125 66.40625 31.78125 66.40625 \n",
|
||
|
"z\n",
|
||
|
"M 31.78125 74.21875 \n",
|
||
|
"Q 44.046875 74.21875 50.515625 64.515625 \n",
|
||
|
"Q 56.984375 54.828125 56.984375 36.375 \n",
|
||
|
"Q 56.984375 17.96875 50.515625 8.265625 \n",
|
||
|
"Q 44.046875 -1.421875 31.78125 -1.421875 \n",
|
||
|
"Q 19.53125 -1.421875 13.0625 8.265625 \n",
|
||
|
"Q 6.59375 17.96875 6.59375 36.375 \n",
|
||
|
"Q 6.59375 54.828125 13.0625 64.515625 \n",
|
||
|
"Q 19.53125 74.21875 31.78125 74.21875 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-30\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(30.54025 285.698437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_2\">\n",
|
||
|
" <g id=\"line2d_2\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"77.1215\" xlink:href=\"#m5a42cd0fe8\" y=\"271.1\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_2\">\n",
|
||
|
" <!-- 50 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 10.796875 72.90625 \n",
|
||
|
"L 49.515625 72.90625 \n",
|
||
|
"L 49.515625 64.59375 \n",
|
||
|
"L 19.828125 64.59375 \n",
|
||
|
"L 19.828125 46.734375 \n",
|
||
|
"Q 21.96875 47.46875 24.109375 47.828125 \n",
|
||
|
"Q 26.265625 48.1875 28.421875 48.1875 \n",
|
||
|
"Q 40.625 48.1875 47.75 41.5 \n",
|
||
|
"Q 54.890625 34.8125 54.890625 23.390625 \n",
|
||
|
"Q 54.890625 11.625 47.5625 5.09375 \n",
|
||
|
"Q 40.234375 -1.421875 26.90625 -1.421875 \n",
|
||
|
"Q 22.3125 -1.421875 17.546875 -0.640625 \n",
|
||
|
"Q 12.796875 0.140625 7.71875 1.703125 \n",
|
||
|
"L 7.71875 11.625 \n",
|
||
|
"Q 12.109375 9.234375 16.796875 8.0625 \n",
|
||
|
"Q 21.484375 6.890625 26.703125 6.890625 \n",
|
||
|
"Q 35.15625 6.890625 40.078125 11.328125 \n",
|
||
|
"Q 45.015625 15.765625 45.015625 23.390625 \n",
|
||
|
"Q 45.015625 31 40.078125 35.4375 \n",
|
||
|
"Q 35.15625 39.890625 26.703125 39.890625 \n",
|
||
|
"Q 22.75 39.890625 18.8125 39.015625 \n",
|
||
|
"Q 14.890625 38.140625 10.796875 36.28125 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-35\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(70.759 285.698437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_3\">\n",
|
||
|
" <g id=\"line2d_3\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"120.5215\" xlink:href=\"#m5a42cd0fe8\" y=\"271.1\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_3\">\n",
|
||
|
" <!-- 100 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 12.40625 8.296875 \n",
|
||
|
"L 28.515625 8.296875 \n",
|
||
|
"L 28.515625 63.921875 \n",
|
||
|
"L 10.984375 60.40625 \n",
|
||
|
"L 10.984375 69.390625 \n",
|
||
|
"L 28.421875 72.90625 \n",
|
||
|
"L 38.28125 72.90625 \n",
|
||
|
"L 38.28125 8.296875 \n",
|
||
|
"L 54.390625 8.296875 \n",
|
||
|
"L 54.390625 0 \n",
|
||
|
"L 12.40625 0 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-31\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(110.97775 285.698437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_4\">\n",
|
||
|
" <g id=\"line2d_4\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"163.9215\" xlink:href=\"#m5a42cd0fe8\" y=\"271.1\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_4\">\n",
|
||
|
" <!-- 150 -->\n",
|
||
|
" <g transform=\"translate(154.37775 285.698437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_5\">\n",
|
||
|
" <g id=\"line2d_5\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"207.3215\" xlink:href=\"#m5a42cd0fe8\" y=\"271.1\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_5\">\n",
|
||
|
" <!-- 200 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 19.1875 8.296875 \n",
|
||
|
"L 53.609375 8.296875 \n",
|
||
|
"L 53.609375 0 \n",
|
||
|
"L 7.328125 0 \n",
|
||
|
"L 7.328125 8.296875 \n",
|
||
|
"Q 12.9375 14.109375 22.625 23.890625 \n",
|
||
|
"Q 32.328125 33.6875 34.8125 36.53125 \n",
|
||
|
"Q 39.546875 41.84375 41.421875 45.53125 \n",
|
||
|
"Q 43.3125 49.21875 43.3125 52.78125 \n",
|
||
|
"Q 43.3125 58.59375 39.234375 62.25 \n",
|
||
|
"Q 35.15625 65.921875 28.609375 65.921875 \n",
|
||
|
"Q 23.96875 65.921875 18.8125 64.3125 \n",
|
||
|
"Q 13.671875 62.703125 7.8125 59.421875 \n",
|
||
|
"L 7.8125 69.390625 \n",
|
||
|
"Q 13.765625 71.78125 18.9375 73 \n",
|
||
|
"Q 24.125 74.21875 28.421875 74.21875 \n",
|
||
|
"Q 39.75 74.21875 46.484375 68.546875 \n",
|
||
|
"Q 53.21875 62.890625 53.21875 53.421875 \n",
|
||
|
"Q 53.21875 48.921875 51.53125 44.890625 \n",
|
||
|
"Q 49.859375 40.875 45.40625 35.40625 \n",
|
||
|
"Q 44.1875 33.984375 37.640625 27.21875 \n",
|
||
|
"Q 31.109375 20.453125 19.1875 8.296875 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-32\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(197.77775 285.698437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_6\">\n",
|
||
|
" <g id=\"line2d_6\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"250.7215\" xlink:href=\"#m5a42cd0fe8\" y=\"271.1\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_6\">\n",
|
||
|
" <!-- 250 -->\n",
|
||
|
" <g transform=\"translate(241.17775 285.698437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_7\">\n",
|
||
|
" <g id=\"line2d_7\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"294.1215\" xlink:href=\"#m5a42cd0fe8\" y=\"271.1\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_7\">\n",
|
||
|
" <!-- 300 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 40.578125 39.3125 \n",
|
||
|
"Q 47.65625 37.796875 51.625 33 \n",
|
||
|
"Q 55.609375 28.21875 55.609375 21.1875 \n",
|
||
|
"Q 55.609375 10.40625 48.1875 4.484375 \n",
|
||
|
"Q 40.765625 -1.421875 27.09375 -1.421875 \n",
|
||
|
"Q 22.515625 -1.421875 17.65625 -0.515625 \n",
|
||
|
"Q 12.796875 0.390625 7.625 2.203125 \n",
|
||
|
"L 7.625 11.71875 \n",
|
||
|
"Q 11.71875 9.328125 16.59375 8.109375 \n",
|
||
|
"Q 21.484375 6.890625 26.8125 6.890625 \n",
|
||
|
"Q 36.078125 6.890625 40.9375 10.546875 \n",
|
||
|
"Q 45.796875 14.203125 45.796875 21.1875 \n",
|
||
|
"Q 45.796875 27.640625 41.28125 31.265625 \n",
|
||
|
"Q 36.765625 34.90625 28.71875 34.90625 \n",
|
||
|
"L 20.21875 34.90625 \n",
|
||
|
"L 20.21875 43.015625 \n",
|
||
|
"L 29.109375 43.015625 \n",
|
||
|
"Q 36.375 43.015625 40.234375 45.921875 \n",
|
||
|
"Q 44.09375 48.828125 44.09375 54.296875 \n",
|
||
|
"Q 44.09375 59.90625 40.109375 62.90625 \n",
|
||
|
"Q 36.140625 65.921875 28.71875 65.921875 \n",
|
||
|
"Q 24.65625 65.921875 20.015625 65.03125 \n",
|
||
|
"Q 15.375 64.15625 9.8125 62.3125 \n",
|
||
|
"L 9.8125 71.09375 \n",
|
||
|
"Q 15.4375 72.65625 20.34375 73.4375 \n",
|
||
|
"Q 25.25 74.21875 29.59375 74.21875 \n",
|
||
|
"Q 40.828125 74.21875 47.359375 69.109375 \n",
|
||
|
"Q 53.90625 64.015625 53.90625 55.328125 \n",
|
||
|
"Q 53.90625 49.265625 50.4375 45.09375 \n",
|
||
|
"Q 46.96875 40.921875 40.578125 39.3125 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-33\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(284.57775 285.698437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-33\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_8\">\n",
|
||
|
" <g id=\"line2d_8\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"337.5215\" xlink:href=\"#m5a42cd0fe8\" y=\"271.1\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_8\">\n",
|
||
|
" <!-- 350 -->\n",
|
||
|
" <g transform=\"translate(327.97775 285.698437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-33\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_9\">\n",
|
||
|
" <g id=\"line2d_9\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"380.9215\" xlink:href=\"#m5a42cd0fe8\" y=\"271.1\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_9\">\n",
|
||
|
" <!-- 400 -->\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 37.796875 64.3125 \n",
|
||
|
"L 12.890625 25.390625 \n",
|
||
|
"L 37.796875 25.390625 \n",
|
||
|
"z\n",
|
||
|
"M 35.203125 72.90625 \n",
|
||
|
"L 47.609375 72.90625 \n",
|
||
|
"L 47.609375 25.390625 \n",
|
||
|
"L 58.015625 25.390625 \n",
|
||
|
"L 58.015625 17.1875 \n",
|
||
|
"L 47.609375 17.1875 \n",
|
||
|
"L 47.609375 0 \n",
|
||
|
"L 37.796875 0 \n",
|
||
|
"L 37.796875 17.1875 \n",
|
||
|
"L 4.890625 17.1875 \n",
|
||
|
"L 4.890625 26.703125 \n",
|
||
|
"z\n",
|
||
|
"\" id=\"DejaVuSans-34\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g transform=\"translate(371.37775 285.698437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"xtick_10\">\n",
|
||
|
" <g id=\"line2d_10\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"424.3215\" xlink:href=\"#m5a42cd0fe8\" y=\"271.1\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_10\">\n",
|
||
|
" <!-- 450 -->\n",
|
||
|
" <g transform=\"translate(414.77775 285.698437)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"matplotlib.axis_2\">\n",
|
||
|
" <g id=\"ytick_1\">\n",
|
||
|
" <g id=\"line2d_11\">\n",
|
||
|
" <defs>\n",
|
||
|
" <path d=\"M 0 0 \n",
|
||
|
"L -3.5 0 \n",
|
||
|
"\" id=\"mf0b1e77c0c\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
||
|
" </defs>\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mf0b1e77c0c\" y=\"11.134\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_11\">\n",
|
||
|
" <!-- 0 -->\n",
|
||
|
" <g transform=\"translate(19.925 14.933219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_2\">\n",
|
||
|
" <g id=\"line2d_12\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mf0b1e77c0c\" y=\"54.534\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_12\">\n",
|
||
|
" <!-- 50 -->\n",
|
||
|
" <g transform=\"translate(13.5625 58.333219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_3\">\n",
|
||
|
" <g id=\"line2d_13\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mf0b1e77c0c\" y=\"97.934\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_13\">\n",
|
||
|
" <!-- 100 -->\n",
|
||
|
" <g transform=\"translate(7.2 101.733219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_4\">\n",
|
||
|
" <g id=\"line2d_14\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mf0b1e77c0c\" y=\"141.334\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_14\">\n",
|
||
|
" <!-- 150 -->\n",
|
||
|
" <g transform=\"translate(7.2 145.133219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_5\">\n",
|
||
|
" <g id=\"line2d_15\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mf0b1e77c0c\" y=\"184.734\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_15\">\n",
|
||
|
" <!-- 200 -->\n",
|
||
|
" <g transform=\"translate(7.2 188.533219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_6\">\n",
|
||
|
" <g id=\"line2d_16\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mf0b1e77c0c\" y=\"228.134\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_16\">\n",
|
||
|
" <!-- 250 -->\n",
|
||
|
" <g transform=\"translate(7.2 231.933219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-35\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"ytick_7\">\n",
|
||
|
" <g id=\"line2d_17\">\n",
|
||
|
" <g>\n",
|
||
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mf0b1e77c0c\" y=\"271.534\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"text_17\">\n",
|
||
|
" <!-- 300 -->\n",
|
||
|
" <g transform=\"translate(7.2 275.333219)scale(0.1 -0.1)\">\n",
|
||
|
" <use xlink:href=\"#DejaVuSans-33\"/>\n",
|
||
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_3\">\n",
|
||
|
" <path d=\"M 33.2875 271.1 \n",
|
||
|
"L 33.2875 10.7 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_4\">\n",
|
||
|
" <path d=\"M 423.8875 271.1 \n",
|
||
|
"L 423.8875 10.7 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_5\">\n",
|
||
|
" <path d=\"M 33.2875 271.1 \n",
|
||
|
"L 423.8875 271.1 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" <g id=\"patch_6\">\n",
|
||
|
" <path d=\"M 33.2875 10.7 \n",
|
||
|
"L 423.8875 10.7 \n",
|
||
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" </g>\n",
|
||
|
" <defs>\n",
|
||
|
" <clipPath id=\"p0e5a8d7f1e\">\n",
|
||
|
" <rect height=\"260.4\" width=\"390.6\" x=\"33.2875\" y=\"10.7\"/>\n",
|
||
|
" </clipPath>\n",
|
||
|
" </defs>\n",
|
||
|
"</svg>\n"
|
||
|
],
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x7f0130079cc0>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"d2l.set_figsize((7, 5))\n",
|
||
|
"d2l.plt.imshow(postprocess(big_output));"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": []
|
||
|
}
|
||
|
],
|
||
|
"metadata": {
|
||
|
"kernelspec": {
|
||
|
"display_name": "Python [default]",
|
||
|
"language": "python",
|
||
|
"name": "python3"
|
||
|
},
|
||
|
"language_info": {
|
||
|
"codemirror_mode": {
|
||
|
"name": "ipython",
|
||
|
"version": 3
|
||
|
},
|
||
|
"file_extension": ".py",
|
||
|
"mimetype": "text/x-python",
|
||
|
"name": "python",
|
||
|
"nbconvert_exporter": "python",
|
||
|
"pygments_lexer": "ipython3",
|
||
|
"version": "3.6.2"
|
||
|
}
|
||
|
},
|
||
|
"nbformat": 4,
|
||
|
"nbformat_minor": 2
|
||
|
}
|