stylegan3/Build_Style_Archive.ipynb

557 lines
1.1 MiB
Plaintext
Raw Normal View History

2022-11-25 19:54:23 +01:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 19,
"id": "ec691ce5-5b12-427d-8335-c4779c0c46a1",
"metadata": {},
"outputs": [],
"source": [
"from runs import Run, Snapshot, get_runs_in_dir\n",
"import tabulate\n",
"import os\n",
"from IPython.display import Markdown as md\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib\n",
"import shutil\n",
"import jinja2\n",
"from tqdm.notebook import trange, tqdm"
]
},
{
"cell_type": "markdown",
"id": "388b8a60-cb43-4e82-838d-ee1e5f02819e",
"metadata": {},
"source": [
"# Build an archive of the various runs & snapshots\n",
"\n",
"This notebook can be used to generate a printable html archive, of all runs and their snapshots."
]
},
{
"cell_type": "markdown",
"id": "a6c0aba8-5cd9-4673-a294-bf868bfd85ab",
"metadata": {},
"source": [
"## Configuration"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "65386eb4-e8b1-47b5-9847-4e6b136e03cd",
"metadata": {},
"outputs": [],
"source": [
"\n",
"outdir = os.path.abspath('out/html')"
]
},
{
"cell_type": "markdown",
"id": "cf0c190a-b61f-4840-8096-1e56b9a50eb3",
"metadata": {},
"source": [
"## Output Run Index"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "5eed26e7-e283-4662-9c49-2d4ffa74f648",
"metadata": {},
"outputs": [],
"source": [
"palette = [\"#c99ae0\",\n",
"\"#6bd154\",\n",
"\"#bb79f1\",\n",
"\"#c2d436\",\n",
"\"#ec68d3\",\n",
"\"#82d086\",\n",
"\"#e87fb7\",\n",
"\"#4dd7c4\",\n",
"\"#c7ba5c\",\n",
"\"#64a6e7\"]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "7fe658a8-79d4-4f06-901a-04ec8270082d",
"metadata": {},
"outputs": [],
"source": [
"#see also https://github.com/matplotlib/matplotlib/blob/f6e0ee49c598f59c6e6cf4eefe473e4dc634a58a/lib/matplotlib/_cm.py#L859\n",
"palette = matplotlib.cm.datad['Accent']['listed']\n",
"palette = matplotlib.cm.datad['Set3']['listed']"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "7ab22d2b-70fe-4c38-b661-3fd5fb92adfb",
"metadata": {},
"outputs": [],
"source": [
"def get_rgb_for_idx(i):\n",
" return f\"rgb({palette[i][0]*255}, {palette[i][1]*255},{palette[i][2]*255})\""
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "652c367f-8e3b-498a-b941-85fc5ab41c21",
"metadata": {},
"outputs": [],
"source": [
"%run ThisPlaceDoesExist.ipynb"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "09752a92-0508-4ee5-a6b2-a903240a09ed",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<runs.Run at 0x7efd79998ac0>,\n",
" <runs.Run at 0x7efd79998ca0>,\n",
" <runs.Run at 0x7efd79998d90>,\n",
" <runs.Run at 0x7efd7972cdf0>,\n",
" <runs.Run at 0x7efd796ba5e0>,\n",
" <runs.Run at 0x7efd79998a90>,\n",
" <runs.Run at 0x7efd79998e20>,\n",
" <runs.Run at 0x7efd79998cd0>,\n",
" <runs.Run at 0x7efd79998d60>]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "aed41874-291b-446a-92a9-52a8eab40b95",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 8,
"id": "8529ef31-064d-45bd-b9d7-77991f0e0e0e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1800x1200 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"plot = plot_runs(runs, dpi=300, palette=palette)\n",
"plot.legend(bbox_to_anchor=(1,0), loc=\"lower left\")\n",
"# plot.show()\n",
"\n",
"plt.xlabel('Iterations')\n",
"plt.ylabel('Fréchet inception distance (FID)')\n",
"plt.savefig(os.path.join(outdir, 'runs.png'), bbox_inches='tight', transparent=True)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "505733a8-accc-4f2d-a560-b677f538f3c8",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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AAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWphQMAAAAAAAAAAAAAAAAAAAAAAAAFqYUDAAAAAAAAAAAAAAAAAAAAAAAABamFAwAAAAAAAAAAAAAAAAAAAAAAAAWdrz0BgDgC2++Gj/z1d+IiIgPPv+u+JH3fzA+/u73LbwrAAA
"text/plain": [
"<Figure size 6000x2700 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot = plot_stats([\n",
" 'Loss/D/loss',\n",
" 'Loss/G/loss',\n",
"], runs, palette=palette)\n",
"# plot.legend()\n",
"plt.savefig(os.path.join(outdir, 'run_losses.png'), bbox_inches='tight', transparent=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0646e27f-2d28-450a-90a3-38034a32b780",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 10,
"id": "5e930b94-bcf3-4535-a2f4-213033ea201b",
"metadata": {},
"outputs": [],
"source": [
"index_html = tabulate.tabulate([\n",
" {\n",
" # \"idx\": i,\n",
" # \"conditional\": run.dataset_is_conditional(),\n",
" **run.get_summary(),\n",
" \"nr\": f\"<a href='#run{run.as_nr}'>{run.as_nr}</a>\",\n",
" \n",
" \"page\": f\"<span class='tocitem' style='color:{get_rgb_for_idx(i)}' data-ref='#run{run.as_nr}'>&#129926;</span>\",\n",
" \n",
" } for i, run in enumerate(runs)\n",
" ], tablefmt='unsafehtml', headers=\"keys\", colalign=(\"left\",\"left\")\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "5158563d-46df-4827-b759-a1c2dc7fcd15",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead>\n",
"<tr><th>nr </th><th>dataset </th><th>conditional </th><th style=\"text-align: right;\"> resolution</th><th style=\"text-align: right;\"> gamma</th><th>duration </th><th style=\"text-align: right;\"> iterations</th><th style=\"text-align: right;\"> last_fid</th><th>page </th></tr>\n",
"</thead>\n",
"<tbody>\n",
"<tr><td><a href='#run00001'>00001</a></td><td>paris3 </td><td>True </td><td style=\"text-align: right;\"> 256</td><td style=\"text-align: right;\"> 8.2</td><td>3 days, 10:34:26 </td><td style=\"text-align: right;\"> 2600</td><td style=\"text-align: right;\"> 502.277 </td><td><span class='tocitem' style='color:rgb(141.0, 211.0,199.0)' data-ref='#run00001'>&#129926;</span></td></tr>\n",
"<tr><td><a href='#run00002'>00002</a></td><td>paris3 </td><td>True </td><td style=\"text-align: right;\"> 256</td><td style=\"text-align: right;\"> 2 </td><td>5 days, 3:43:08 </td><td style=\"text-align: right;\"> 6560</td><td style=\"text-align: right;\"> 190.346 </td><td><span class='tocitem' style='color:rgb(255.0, 255.0,179.0)' data-ref='#run00002'>&#129926;</span></td></tr>\n",
"<tr><td><a href='#run00003'>00003</a></td><td>paris3 </td><td>True </td><td style=\"text-align: right;\"> 256</td><td style=\"text-align: right;\"> 2 </td><td>18 days, 13:01:50</td><td style=\"text-align: right;\"> 25000</td><td style=\"text-align: right;\"> 42.9661</td><td><span class='tocitem' style='color:rgb(190.0, 186.0,218.0)' data-ref='#run00003'>&#129926;</span></td></tr>\n",
"<tr><td><a href='#run00004'>00004</a></td><td>paris3 </td><td>False </td><td style=\"text-align: right;\"> 256</td><td style=\"text-align: right;\"> 2 </td><td>15 days, 16:13:20</td><td style=\"text-align: right;\"> 22800</td><td style=\"text-align: right;\"> 15.6691</td><td><span class='tocitem' style='color:rgb(251.0, 128.0,114.0)' data-ref='#run00004'>&#129926;</span></td></tr>\n",
"<tr><td><a href='#run00009'>00009</a></td><td>paris3-1024.zip </td><td>False </td><td style=\"text-align: right;\"> 1024</td><td style=\"text-align: right;\"> 32 </td><td>0:00:00 </td><td style=\"text-align: right;\"> 0</td><td style=\"text-align: right;\"> 549.99 </td><td><span class='tocitem' style='color:rgb(128.0, 177.0,211.0)' data-ref='#run00009'>&#129926;</span></td></tr>\n",
"<tr><td><a href='#run00010'>00010</a></td><td>paris3-1024.zip </td><td>False </td><td style=\"text-align: right;\"> 1024</td><td style=\"text-align: right;\"> 32 </td><td>50 days, 3:15:24 </td><td style=\"text-align: right;\"> 15200</td><td style=\"text-align: right;\"> 33.2466</td><td><span class='tocitem' style='color:rgb(253.0, 180.0,98.0)' data-ref='#run00010'>&#129926;</span> </td></tr>\n",
"<tr><td><a href='#run00011'>00011</a></td><td>paris3-1024.zip </td><td>False </td><td style=\"text-align: right;\"> 1024</td><td style=\"text-align: right;\"> 10 </td><td>5 days, 18:48:04 </td><td style=\"text-align: right;\"> 1760</td><td style=\"text-align: right;\"> 200.356 </td><td><span class='tocitem' style='color:rgb(179.0, 222.0,105.0)' data-ref='#run00011'>&#129926;</span></td></tr>\n",
"<tr><td><a href='#run00014'>00014</a></td><td>paris3-cropped-256</td><td>False </td><td style=\"text-align: right;\"> 256</td><td style=\"text-align: right;\"> 8 </td><td>2 days, 20:08:22 </td><td style=\"text-align: right;\"> 4160</td><td style=\"text-align: right;\"> 20.1699</td><td><span class='tocitem' style='color:rgb(252.0, 205.0,229.0)' data-ref='#run00014'>&#129926;</span></td></tr>\n",
"<tr><td><a href='#run00016'>00016</a></td><td>paris3-cropped-256</td><td>False </td><td style=\"text-align: right;\"> 256</td><td style=\"text-align: right;\"> 8 </td><td>7 days, 18:18:10 </td><td style=\"text-align: right;\"> 11360</td><td style=\"text-align: right;\"> 17.0625</td><td><span class='tocitem' style='color:rgb(217.0, 217.0,217.0)' data-ref='#run00016'>&#129926;</span></td></tr>\n",
"</tbody>\n",
"</table>"
],
"text/plain": [
"'<table>\\n<thead>\\n<tr><th>nr </th><th>dataset </th><th>conditional </th><th style=\"text-align: right;\"> resolution</th><th style=\"text-align: right;\"> gamma</th><th>duration </th><th style=\"text-align: right;\"> iterations</th><th style=\"text-align: right;\"> last_fid</th><th>page </th></tr>\\n</thead>\\n<tbody>\\n<tr><td><a href=\\'#run00001\\'>00001</a></td><td>paris3 </td><td>True </td><td style=\"text-align: right;\"> 256</td><td style=\"text-align: right;\"> 8.2</td><td>3 days, 10:34:26 </td><td style=\"text-align: right;\"> 2600</td><td style=\"text-align: right;\"> 502.277 </td><td><span class=\\'tocitem\\' style=\\'color:rgb(141.0, 211.0,199.0)\\' data-ref=\\'#run00001\\'>&#129926;</span></td></tr>\\n<tr><td><a href=\\'#run00002\\'>00002</a></td><td>paris3 </td><td>True </td><td style=\"text-align: right;\"> 256</td><td style=\"text-align: right;\"> 2 </td><td>5 days, 3:43:08 </td><td style=\"text-align: right;\"> 6560</td><td style=\"text-align: right;\"> 190.346 </td><td><span class=\\'tocitem\\' style=\\'color:rgb(255.0, 255.0,179.0)\\' data-ref=\\'#run00002\\'>&#129926;</span></td></tr>\\n<tr><td><a href=\\'#run00003\\'>00003</a></td><td>paris3 </td><td>True </td><td style=\"text-align: right;\"> 256</td><td style=\"text-align: right;\"> 2 </td><td>18 days, 13:01:50</td><td style=\"text-align: right;\"> 25000</td><td style=\"text-align: right;\"> 42.9661</td><td><span class=\\'tocitem\\' style=\\'color:rgb(190.0, 186.0,218.0)\\' data-ref=\\'#run00003\\'>&#129926;</span></td></tr>\\n<tr><td><a href=\\'#run00004\\'>00004</a></td><td>paris3 </td><td>False </td><td style=\"text-align: right;\"> 256</td><td style=\"text-align: right;\"> 2 </td><td>15 days, 16:13:20</td><td style=\"text-align: right;\"> 22800</td><td style=\"text-align: right;\"> 15.6691</td><td><span class=\\'tocitem\\' style=\\'color:rgb(251.0, 128.0,114.0)\\' data-ref=\\'#run00004\\'>&#129926;</span></td></tr>\\n<tr><td><a href=\\'#run00009\\'>00009</a></td><td>paris3-1024.zip </td><td>False </td><td style=\"text-align: right;\"> 1024</td><td style=\"text-align: right;\"> 32 </td><td>0:00:00 </td><td style=\"text-align: right;\"> 0</td><td style=\"text-align: right;\"> 549.99 </td><td><span class=\\'tocitem\\' style=\\'color:rgb(128.0, 177.0,211.0)\\' data-ref=\\'#run00009\\'>&#129926;</span></td></tr>\\n<tr><td><a href=\\'#run00010\\'>00010</a></td><td>paris3-1024.zip </td><td>False </td><td style=\"text-align: right;\"> 1024</td><td style=\"text-align: right;\"> 32 </td><td>50 days, 3:15:24 </td><td style=\"text-align: right;\"> 15200</td><td style=\"text-align: right;\"> 33.2466</td><td><span class=\\'tocitem\\' style=\\'color:rgb(253.0, 180.0,98.0)\\' data-ref=\\'#run00010\\'>&#129926;</span> </td></tr>\\n<tr><td><a href=\\'#run00011\\'>00011</a></td><td>paris3-1024.zip </td><td>False </td><td style=\"text-align: right;\"> 1024</td><td style=\"text-align: right;\"> 10 </td><td>5 days, 18:48:04 </td><td style=\"text-align: right;\"> 1760</td><td style=\"text-align: right;\"> 200.356 </td><td><span class=\\'tocitem\\' style=\\'color:rgb(179.0, 222.0,105.0)\\' data-ref=\\'#run00011\\'>&#129926;</span></td></tr>\\n<tr><td><a href=\\'#run00014\\'>00014</a></td><td>paris3-cropped-256</td><td>False </td><td style=\"text-align: right;\"> 256</td><td style=\"text-align: right;\"> 8 </td><td>2 days, 20:08:22 </td><td style=\"text-align: right;\"> 4160</td><td style=\"text-align: right;\"> 20.1699</td><td><span class=\\'tocitem\\' style=\\'color:rgb(252.0, 205.0,229.0)\\' data-ref=\\'#run00014\\'>&#129926;</span></td></tr>\\n<tr><td><a href=\\'#run00016\\'>00016</a></td><td>paris3-cropped-256</td><td>False </td><td st
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"index_html"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "db1e8346-a8df-48ab-a184-7e9330b5c691",
"metadata": {},
"outputs": [],
"source": [
"jinja_env = jinja2.Environment(\n",
" loader=jinja2.FileSystemLoader(\"templates\"),\n",
" autoescape=jinja2.select_autoescape()\n",
")\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "90096383-ecaa-4c05-8d8b-f992e26c283b",
"metadata": {},
"outputs": [],
"source": [
"template = jinja_env.get_template(\"runs.j2\")\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "460fef2f-19a2-435b-959d-279215a5cd05",
"metadata": {},
"outputs": [],
"source": [
"template_vars = {\n",
" \"runs_graph\": \"runs.png\",\n",
" \"runs_losses_graph\": \"run_losses.png\",\n",
" \"runs_table\": index_html,\n",
" \"runs\": runs\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "361e549e-27a4-4ce8-9e7c-5a2906bcab5e",
"metadata": {},
"outputs": [],
"source": [
"with open(os.path.join(outdir, 'index.html'), 'w') as fp:\n",
" fp.write(template.render(**template_vars))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "74a7520c-30c3-42a8-a403-0f98c93ec48e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['00001-stylegan3-t--gpus1-batch32-gamma8.2',\n",
" '00002-stylegan3-t--gpus1-batch32-gamma2',\n",
" '00003-stylegan3-r--gpus1-batch32-gamma2',\n",
" '00004-stylegan3-r--gpus1-batch32-gamma2',\n",
" '00009-stylegan3-r-paris3-1024-gpus1-batch32-gamma32',\n",
" '00010-stylegan3-r-paris3-1024-gpus1-batch32-gamma32',\n",
" '00011-stylegan3-r-paris3-1024-gpus1-batch32-gamma10',\n",
" '00014-stylegan3-r-paris3-cropped-256-gpus1-batch32-gamma8',\n",
" '00016-stylegan3-r-paris3-cropped-256-gpus1-batch32-gamma8']"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[run.id for run in runs]"
]
},
{
"cell_type": "markdown",
"id": "02f0ca23-4476-4006-908e-82ad7dfec4c2",
"metadata": {},
"source": [
"Copy necessary auxilary files to the output directory:"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "9baf8011-5be8-46b2-ae90-89a859667a39",
"metadata": {},
"outputs": [],
"source": [
"files = [\n",
" \"templates/style.css\", \n",
" \"templates/pagedjs-interface.css\",\n",
"]\n",
"for src in files:\n",
" shutil.copy(src, outdir)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "0e8f4dce-4e55-4912-b4eb-ab3e9814aec1",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "eaf36ae74a43443eaa4f44e6c72037ba",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/14 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "385851a4ddad4908917d682b18e11b57",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/83 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d323ad82920145adb359429abe4e6056",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/314 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "82981dfc1b2a4f03ba32d492b450393c",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/115 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "83a006bc044348e09bf56aeacd19a14d",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/1 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "5792351f140748bab03db0328eda3336",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/96 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "5886550d2d784d59b10c1647c60e92dd",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/12 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "c10d4f572b9243a7a6a5d6d65fbe7f5b",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/27 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "66578f04d06545e08228a4a2961c11fe",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/72 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for run in runs:\n",
" nr = 7 if run.resolution > 512 else 8\n",
" for snapshot in tqdm(run.snapshots):\n",
" filename = os.path.join(outdir, 'imgs', snapshot.id + \".jpg\")\n",
" if not os.path.exists(filename):\n",
" img = snapshot.get_preview_img(nr,1)\n",
" img.save(filename)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "62ce4172-edd5-439f-a83a-7be7f2b7c4fe",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "65e7789d-7a3a-4fd9-8f7a-8df044a838e7",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "paris-stylegan3",
"language": "python",
"name": "paris-stylegan3"
},
"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.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}