mirror of
https://github.com/andatoshiki/toshiki-notebook.git
synced 2026-06-06 09:16:45 +00:00
44 lines
63 KiB
HTML
44 lines
63 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US" dir="ltr">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>クラウドで行う科学計算・機械学習 | Toshiki's Note</title>
|
||
<meta name="description" content="Toshiki's web notebook served via Vitepress!">
|
||
<link rel="preload stylesheet" href="/assets/style.d3f1db94.css" as="style">
|
||
|
||
<script type="module" src="/assets/app.11c168a7.js"></script>
|
||
<link rel="preload" href="/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
|
||
<link rel="modulepreload" href="/assets/chunks/framework.b7580407.js">
|
||
<link rel="modulepreload" href="/assets/chunks/theme.c3ca1c74.js">
|
||
<link rel="modulepreload" href="/assets/chunks/commonjsHelpers.725317a4.js">
|
||
<link rel="modulepreload" href="/assets/chunks/PageInfo.vue_vue_type_script_setup_true_lang.250b3e56.js">
|
||
<link rel="modulepreload" href="/assets/chunks/cnn.a8836fd9.js">
|
||
<link rel="modulepreload" href="/assets/development_aws_scientific-computing.md.d3ec5923.lean.js">
|
||
<link rel="stylesheet" href="https://cdnjs.toshiki.dev/ajax/libs/KaTeX/0.16.0/katex.min.css">
|
||
<link rel="stylesheet" href="https://cdnjs.toshiki.dev/ajax/libs/font-awesome/6.3.0/css/all.min.css">
|
||
<link rel="icon" href="https://r2.toshiki.dev/cdn/toshiki-notebook-favicon/favicon.ico">
|
||
<meta name="author" content="Anda Toshiki">
|
||
<meta name="keywords" content="Toshiki, Anda Toshiki, andatoshiki, GitHub, GitHub action, Vitepress, Vite, Notebook, Knowledge base, Programming, Programming Notes, Academic, Personal, Notebook, Productivity, Journal, Note-taking, Markdown, Notepad, Organization, Tutorial">
|
||
<meta name="google-site-verification" content="lm7PNJiYSPEx1dMast1Xptc0Vk0cU06o-daZSsIgr2I">
|
||
<meta name="HandheldFriendly" content="True">
|
||
<meta name="MobileOptimized" content="320">
|
||
<meta name="theme-color" content="#3c8772">
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:locale" content="en-US">
|
||
<meta property="og:title" content="Toshiki's Note">
|
||
<meta property="og:description" content="Toshiki's web notebook served via Vitepress!">
|
||
<meta property="og:site" content="https://note.toshiki.dev">
|
||
<meta property="og:site_name" content="Toshiki's Note">
|
||
<meta property="og:image" content="https://note.toshiki.dev/og-cover.png">
|
||
<script>function siteruntime(){window.setTimeout("siteruntime()",1e3),X=new Date("8/24/2021 10:28:00"),Y=new Date,T=Y.getTime()-X.getTime(),M=24*60*60*1e3,a=T/M,A=Math.floor(a),b=(a-A)*24,B=Math.floor(b),c=(b-B)*60,C=Math.floor((b-B)*60),D=Math.floor((c-C)*60),siteruntime_span.innerHTML="This site has been running for: "+A+" day(s) "+B+" hour(s) "+C+" minute(s) "+D+" second(s)"}siteruntime();</script>
|
||
<script async defer data-website-id="" src=""></script>
|
||
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
||
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
||
</head>
|
||
<body>
|
||
<div id="app"><div class="Layout" data-v-f6284a77><!--[--><!--]--><!--[--><span tabindex="-1" data-v-315fcc9b></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-315fcc9b> Skip to content </a><!--]--><!----><header class="VPNav" data-v-f6284a77 data-v-ff202323><div class="VPNavBar has-sidebar" data-v-ff202323 data-v-57f83237><div class="container" data-v-57f83237><div class="title" data-v-57f83237><div class="VPNavBarTitle has-sidebar" data-v-57f83237 data-v-87c32abd><a class="title" href="/" data-v-87c32abd><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logos/logo.png" alt data-v-6ebf9bdf><!--]--><!--[-->Toshiki's Note<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-57f83237><div class="curtain" data-v-57f83237></div><div class="content-body" data-v-57f83237><!--[--><!--]--><div class="VPNavBarSearch search" data-v-57f83237><!--[--><!----><div id="docsearch"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg class="DocSearch-Search-Icon" width="20" height="20" viewBox="0 0 20 20" aria-label="search icon"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-57f83237 data-v-183ec936><span id="main-nav-aria-label" class="visually-hidden" data-v-183ec936>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/development/" tabindex="0" data-v-183ec936 data-v-416f44b0><!--[--><span data-v-416f44b0>Development</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup active" data-v-183ec936 data-v-62bba1f9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-62bba1f9><span class="text" data-v-62bba1f9><!----><span data-v-62bba1f9>Academic</span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-62bba1f9><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-62bba1f9><div class="VPMenu" data-v-62bba1f9 data-v-17c3596a><div class="items" data-v-17c3596a><!--[--><!--[--><div class="VPMenuGroup" data-v-17c3596a data-v-b9d0e57b><p class="title" data-v-b9d0e57b>K-12</p><!--[--><!--[--><div class="VPMenuLink" data-v-b9d0e57b data-v-ec5470f2><a class="VPLink link" href="/academic/chemistry/index" data-v-ec5470f2><!--[-->Chemistry<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b9d0e57b data-v-ec5470f2><a class="VPLink link" href="/discrete-math/index" data-v-ec5470f2><!--[-->Discrete Math.<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b9d0e57b data-v-ec5470f2><a class="VPLink link" href="/academic/literature/index" data-v-ec5470f2><!--[-->Literature<!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-17c3596a data-v-b9d0e57b><p class="title" data-v-b9d0e57b>Tools</p><!--[--><!--[--><div class="VPMenuLink" data-v-b9d0e57b data-v-ec5470f2><a class="VPLink link" href="/academic/physics/ipho-formulas-jpn/1" data-v-ec5470f2><!--[-->Formulas for IPhO JPN.<!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuLink" data-v-17c3596a data-v-ec5470f2><span class="VPLink" data-v-ec5470f2><!--[--><!--]--></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-17c3596a data-v-ec5470f2><span class="VPLink" data-v-ec5470f2><!--[--><!--]--></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-17c3596a data-v-ec5470f2><span class="VPLink" data-v-ec5470f2><!--[--><!--]--></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-17c3596a data-v-ec5470f2><span class="VPLink" data-v-ec5470f2><!--[--><!--]--></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-17c3596a data-v-ec5470f2><span class="VPLink" data-v-ec5470f2><!--[--><!--]--></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-17c3596a data-v-ec5470f2><span class="VPLink" data-v-ec5470f2><!--[--><!--]--></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-17c3596a data-v-ec5470f2><span class="VPLink" data-v-ec5470f2><!--[--><!--]--></span></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-183ec936 data-v-62bba1f9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-62bba1f9><span class="text" data-v-62bba1f9><!----><span data-v-62bba1f9>Application</span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-62bba1f9><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-62bba1f9><div class="VPMenu" data-v-62bba1f9 data-v-17c3596a><div class="items" data-v-17c3596a><!--[--><!--[--><div class="VPMenuGroup" data-v-17c3596a data-v-b9d0e57b><p class="title" data-v-b9d0e57b>Personal projects</p><!--[--><!--[--><div class="VPMenuLink" data-v-b9d0e57b data-v-ec5470f2><a class="VPLink link" href="/application/markdown-it-katex/how-to-use" data-v-ec5470f2><!--[-->markdown-it-katex<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b9d0e57b data-v-ec5470f2><a class="VPLink link" href="/application/vitepress-plugin-shiki-twoslash/index" data-v-ec5470f2><!--[-->vitepress-plugin-shiki-twoslash<!--]--></a></div><!--]--><!--]--></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-183ec936 data-v-62bba1f9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-62bba1f9><span class="text" data-v-62bba1f9><!----><span data-v-62bba1f9>Save</span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-62bba1f9><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-62bba1f9><div class="VPMenu" data-v-62bba1f9 data-v-17c3596a><div class="items" data-v-17c3596a><!--[--><!--[--><div class="VPMenuLink" data-v-17c3596a data-v-ec5470f2><a class="VPLink link" href="/save/reading/index" data-v-ec5470f2><!--[-->Reading<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-17c3596a data-v-ec5470f2><a class="VPLink link" href="/academic/vocabulary/index" data-v-ec5470f2><!--[-->Vocabulary<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-57f83237 data-v-dc7cad42><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-dc7cad42 data-v-65b67168 data-v-56eb52d1><span class="check" data-v-56eb52d1><span class="icon" data-v-56eb52d1><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-65b67168><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-65b67168><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-57f83237 data-v-aaebde08 data-v-8a65be56><!--[--><a class="VPSocialLink no-icon" href="https://github.com/andatoshiki" aria-label="github" target="_blank" rel="noopener" data-v-8a65be56 data-v-1b61e2c7><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink no-icon" href="https://twitter.com/andatoshiki" aria-label="twitter" target="_blank" rel="noopener" data-v-8a65be56 data-v-1b61e2c7><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M21.543 7.104c.015.211.015.423.015.636 0 6.507-4.954 14.01-14.01 14.01v-.003A13.94 13.94 0 0 1 0 19.539a9.88 9.88 0 0 0 7.287-2.041 4.93 4.93 0 0 1-4.6-3.42 4.916 4.916 0 0 0 2.223-.084A4.926 4.926 0 0 1 .96 9.167v-.062a4.887 4.887 0 0 0 2.235.616A4.928 4.928 0 0 1 1.67 3.148 13.98 13.98 0 0 0 11.82 8.292a4.929 4.929 0 0 1 8.39-4.49 9.868 9.868 0 0 0 3.128-1.196 4.941 4.941 0 0 1-2.165 2.724A9.828 9.828 0 0 0 24 4.555a10.019 10.019 0 0 1-2.457 2.549z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-57f83237 data-v-e5c8c6ca data-v-62bba1f9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-62bba1f9><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-62bba1f9><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-62bba1f9><div class="VPMenu" data-v-62bba1f9 data-v-17c3596a><!----><!--[--><!--[--><!----><div class="group" data-v-e5c8c6ca><div class="item appearance" data-v-e5c8c6ca><p class="label" data-v-e5c8c6ca>Appearance</p><div class="appearance-action" data-v-e5c8c6ca><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-e5c8c6ca data-v-65b67168 data-v-56eb52d1><span class="check" data-v-56eb52d1><span class="icon" data-v-56eb52d1><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-65b67168><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-65b67168><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-e5c8c6ca><div class="item social-links" data-v-e5c8c6ca><div class="VPSocialLinks social-links-list" data-v-e5c8c6ca data-v-8a65be56><!--[--><a class="VPSocialLink no-icon" href="https://github.com/andatoshiki" aria-label="github" target="_blank" rel="noopener" data-v-8a65be56 data-v-1b61e2c7><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink no-icon" href="https://twitter.com/andatoshiki" aria-label="twitter" target="_blank" rel="noopener" data-v-8a65be56 data-v-1b61e2c7><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M21.543 7.104c.015.211.015.423.015.636 0 6.507-4.954 14.01-14.01 14.01v-.003A13.94 13.94 0 0 1 0 19.539a9.88 9.88 0 0 0 7.287-2.041 4.93 4.93 0 0 1-4.6-3.42 4.916 4.916 0 0 0 2.223-.084A4.926 4.926 0 0 1 .96 9.167v-.062a4.887 4.887 0 0 0 2.235.616A4.928 4.928 0 0 1 1.67 3.148 13.98 13.98 0 0 0 11.82 8.292a4.929 4.929 0 0 1 8.39-4.49 9.868 9.868 0 0 0 3.128-1.196 4.941 4.941 0 0 1-2.165 2.724A9.828 9.828 0 0 0 24 4.555a10.019 10.019 0 0 1-2.457 2.549z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-57f83237 data-v-f865e4ad><span class="container" data-v-f865e4ad><span class="top" data-v-f865e4ad></span><span class="middle" data-v-f865e4ad></span><span class="bottom" data-v-f865e4ad></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav reached-top" data-v-f6284a77 data-v-a41c4a1c><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a41c4a1c><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-a41c4a1c><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-a41c4a1c>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a41c4a1c data-v-44ae7a43><button data-v-44ae7a43>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-f6284a77 data-v-7ab77f34><div class="curtain" data-v-7ab77f34></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-7ab77f34><span class="visually-hidden" id="sidebar-aria-label" data-v-7ab77f34> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-7ab77f34><section class="VPSidebarItem level-0 collapsible" data-v-7ab77f34 data-v-1b9f5c6f><div class="item" role="button" tabindex="0" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><h2 class="text" data-v-1b9f5c6f>Notes & Issues</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-1b9f5c6f><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-1b9f5c6f><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-1b9f5c6f><!--[--><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/file-naming-convention" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>File Naming Convention</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/rclone-for-r2" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>RClone for R2</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-7ab77f34><section class="VPSidebarItem level-0 collapsible has-active" data-v-7ab77f34 data-v-1b9f5c6f><div class="item" role="button" tabindex="0" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><h2 class="text" data-v-1b9f5c6f>コードで学ぶAWS入門</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-1b9f5c6f><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-1b9f5c6f><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-1b9f5c6f><!--[--><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/index" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>背景</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/main" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>はじめに!</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/cloud" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>クラウド概論</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/aws-get-started" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>AWS 入門</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/handson-ec2" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>Hands-on 1: 初めての EC2 インスタンスを起動する</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/scientific-computing" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>クラウドで行う科学計算・機械学習</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/handson-ec2" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>Hands-on 2: AWS でディープラーニングを実践</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/docker-system" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>Docker 入門</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/handson-qabot" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>Hands-on 3: AWS で自動質問回答ボットを走らせる</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/aws-batch" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>Hands-on 4: AWS Batch を使って機械学習のハイパーパラメータサーチを並列化する</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/webserver" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>Web サービスの作り方</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/serverless" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>Serverless architecture</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/handson-serverless" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>Hands-on 5: サーバーレス入門</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/handson-bashoutter" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>Hands-on 6: Bashoutter</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/closing" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>まとめ</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/appendix" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>ppendix: 環境構築</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-1b9f5c6f data-v-1b9f5c6f><div class="item" data-v-1b9f5c6f><div class="indicator" data-v-1b9f5c6f></div><a class="VPLink link link" href="/development/aws/acknowledgement" data-v-1b9f5c6f><!--[--><p class="text" data-v-1b9f5c6f>謝辞</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-f6284a77 data-v-f3ed2c70><div class="VPDoc has-sidebar has-aside" data-v-f3ed2c70 data-v-39e6c32d><!--[--><!--]--><div class="container" data-v-39e6c32d><div class="aside" data-v-39e6c32d><div class="aside-curtain" data-v-39e6c32d></div><div class="aside-container" data-v-39e6c32d><div class="aside-content" data-v-39e6c32d><div class="VPDocAside" data-v-39e6c32d data-v-f5b3965e><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" role="navigation" data-v-f5b3965e data-v-99fa007f><div class="content" data-v-99fa007f><div class="outline-marker" data-v-99fa007f></div><div class="outline-title" role="heading" aria-level="2" data-v-99fa007f>TOC</div><nav aria-labelledby="doc-outline-aria-label" data-v-99fa007f><span class="visually-hidden" id="doc-outline-aria-label" data-v-99fa007f> Table of Contents for current page </span><ul class="root" data-v-99fa007f data-v-29e3fa2f><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-f5b3965e></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--[--><!--[--><!--[--><div class="VPDocAsideSponsors"><div class="VPSponsors vp-sponsor aside"><!--[--><section class="vp-sponsor-section"><!----><div class="VPSponsorsGrid vp-sponsor-grid medium"><!--[--><div class="vp-sponsor-grid-item"><a class="vp-sponsor-grid-link" target="_blank" rel="sponsored noopener"><article class="vp-sponsor-grid-box"><h4 class="visually-hidden"></h4><img class="vp-sponsor-grid-image" src="https://jsd.toshiki.dev/gh/andatoshiki/toshiki-notebook@master/assets/logo/sponsor/telegram.png"></article></a></div><!--]--></div></section><!--]--></div></div><!--]--><!--]--><!--]--><!--]--></div></div></div></div><div class="content" data-v-39e6c32d><div class="content-container" data-v-39e6c32d><!--[--><!--]--><!----><main class="main" data-v-39e6c32d><div style="position:relative;" class="vp-doc _development_aws_scientific-computing" data-v-39e6c32d><div><h1 id="クラウドで行う科学計算・機械学習" tabindex="-1">クラウドで行う科学計算・機械学習 <a class="header-anchor" href="#クラウドで行う科学計算・機械学習" aria-label="Permalink to "クラウドで行う科学計算・機械学習""></a></h1><div><section class="border-b-1 border-[var(--vp-c-divider)] w-full border-b-solid mt-[24px] pb-[12px] flex gap-[12px] mb-[12px] flex-wrap max-w-[85%]"><div class="flex gap-[4px] items-center"><svg style="display:inline-block;" viewBox="0 0 16 16" width="1.2em" height="1.2em"><path fill="currentColor" d="M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16Zm.847-8.145a2.502 2.502 0 1 0-1.694 0C5.471 8.261 4 9.775 4 11c0 .395.145.995 1 .995h6c.855 0 1-.6 1-.995c0-1.224-1.47-2.74-3.153-3.145Z"></path></svg> Author:<span>Anda Toshiki</span></div><!----><div class="flex gap-[4px] items-center"><svg style="display:inline-block;" viewBox="0 0 15 15" width="1.2em" height="1.2em"><path fill="currentColor" fill-rule="evenodd" d="M1.903 7.297c0 3.044 2.207 5.118 4.686 5.547a.521.521 0 1 1-.178 1.027C3.5 13.367.861 10.913.861 7.297c0-1.537.699-2.745 1.515-3.663c.585-.658 1.254-1.193 1.792-1.602H2.532a.5.5 0 0 1 0-1h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-1 0V2.686l-.001.002c-.572.43-1.27.957-1.875 1.638c-.715.804-1.253 1.776-1.253 2.97Zm11.108.406c0-3.012-2.16-5.073-4.607-5.533a.521.521 0 1 1 .192-1.024c2.874.54 5.457 2.98 5.457 6.557c0 1.537-.699 2.744-1.515 3.663c-.585.658-1.254 1.193-1.792 1.602h1.636a.5.5 0 1 1 0 1h-3a.5.5 0 0 1-.5-.5v-3a.5.5 0 1 1 1 0v1.845h.002c.571-.432 1.27-.958 1.874-1.64c.715-.803 1.253-1.775 1.253-2.97Z" clip-rule="evenodd"></path></svg> Updated:<span>2 minutes ago</span></div><div class="flex gap-[4px] items-center"><svg style="display:inline-block;" viewBox="0 0 16 16" width="1.2em" height="1.2em"><path fill="currentColor" d="M9.293 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.707A1 1 0 0 0 13.707 4L10 .293A1 1 0 0 0 9.293 0zM9.5 3.5v-2l3 3h-2a1 1 0 0 1-1-1zM5.485 6.879l1.036 4.144l.997-3.655a.5.5 0 0 1 .964 0l.997 3.655l1.036-4.144a.5.5 0 0 1 .97.242l-1.5 6a.5.5 0 0 1-.967.01L8 9.402l-1.018 3.73a.5.5 0 0 1-.967-.01l-1.5-6a.5.5 0 1 1 .97-.242z"></path></svg> Words:<span>1.4k</span></div><div class="flex gap-[4px] items-center"><svg style="display:inline-block;" viewBox="0 0 20 20" width="1.2em" height="1.2em"><path fill="currentColor" d="M10 0a10 10 0 1 0 10 10A10 10 0 0 0 10 0zm2.5 14.5L9 11V4h2v6l3 3z"></path></svg> Reading:<span>5 min</span></div></section></div><p>計算機が発達した現代では,計算機によるシミュレーションやビッグデータの解析は,科学・エンジニアリングの研究の主要な柱である. これらの大規模な計算を実行するには,クラウドは最適である. 本章から始まる第二部では,どのようにしてクラウド上で科学計算を実行するのかを,ハンズオンとともに体験してもらう. 科学計算の具体的な題材として,今回は機械学習(深層学習)を取り上げる.</p><p>なお,本書では <a href="https://pytorch.org/" target="_blank" rel="noreferrer">PyTorch</a> ライブラリを使って深層学習のアルゴリズムを実装するが,深層学習および PyTorch の知識は不要である. 講義ではなぜ・どうやって深層学習をクラウドで実行するかに主眼を置いているので,実行するプログラムの詳細には立ち入らない. 将来,自分で深層学習を使う機会が来たときに,詳しく学んでもらいたい.</p><h2 id="なぜ機械学習をクラウドで行うのか" tabindex="-1">なぜ機械学習をクラウドで行うのか? <a class="header-anchor" href="#なぜ機械学習をクラウドで行うのか" aria-label="Permalink to "なぜ機械学習をクラウドで行うのか?""></a></h2><p>2010 年頃に始まった第三次 AI ブームのおかげで,学術研究だけでなく社会・ビジネスの文脈でも機械学習に高い関心が寄せられている. とくに,<strong>深層学習 (ディープラーニング)</strong> とよばれる多層のレイヤーからなるニューラルネットワークを用いたアルゴリズムは,画像認識や自然言語処理などの分野で圧倒的に高い性能を実現し,革命をもたらしている.</p><p>深層学習の特徴は,なんといってもそのパラメータの多さである. 層が深くなるほど,層間のニューロンを結ぶ重みパラメータの数が増大していく. たとえば,最新の言語モデルである <a href="https://arxiv.org/abs/2005.14165" target="_blank" rel="noreferrer">GPT-3</a> には<strong>1750 億個</strong>ものパラメータが含まれている. このような膨大なパラメータを有することで,深層学習は高い表現力と汎化性能を実現しているのである.</p><p>GPT-3 に限らず,最近の SOTA (State-of-the-art) の性能を達成するニューラルネットワークでは,百万から億のオーダーのパラメータを内包することは頻繁になってきている. そのような巨大なニューラルネットを訓練 (最適化) させるのは,当然のことながら膨大な計算コストがかかる. 結果として,ひとつの計算機では丸一日以上の時間がかかる場合も珍しくない. 深層学習の発展の速度は目覚ましく,研究・ビジネス両方の観点からも,いかにスループットよくニューラルネットワークの最適化を行えるかが鍵となってくる. そのような問題を解決するのにとても有効な手段が,クラウドである! (#sec_first_ec2) でその片鱗を見たように,クラウドを使用することでゼロから数千に至るまでの数のインスタンスを動的に起動し,並列に計算を実行することができる. さらに,深層学習を加速させる目的で,深層学習の演算に専用設計された計算チップ (GPU など) がある. クラウドを利用すると,そのような専用計算チップも無尽蔵に利用することができる. 事実,先述した GPT-3 の学習も,詳細は明かされていないが,Microsoft 社のクラウドを使って行われたと報告されている.</p><h2 id="gpu-による深層学習の高速化" tabindex="-1">GPU による深層学習の高速化 <a class="header-anchor" href="#gpu-による深層学習の高速化" aria-label="Permalink to "GPU による深層学習の高速化""></a></h2><p>深層学習の計算で欠かすことのできない技術として, <strong>GPU (Graphics Processing Unit)</strong> について少し説明する.</p><p>GPU は,その名のとおり,元々はコンピュータグラフィックスを出力するための専用計算チップである. CPU (Central Processing Unit) に対し,グラフィックスの演算に特化した設計がなされている. 身近なところでは, XBox や PS5 などのゲームコンソールなどに搭載されているし,ハイエンドなノート型・デスクトップ型計算機にも搭載されていることがある. コンピュータグラフィックスでは,スクリーンにアレイ状に並んだ数百万個の画素をビデオレート (30 fps) 以上で処理する必要がある. そのため,GPU はコアあたりの演算能力は比較的小さいかわりに,チップあたり数百から数千のコアを搭載しており (<a href="#gpu_architecture">figure_title</a>),スクリーンの画素を並列的に処理することで,リアルタイムでの描画を実現している.</p><p><img src="/assets/gpu_architecture.ddbc0715.jpg" alt="GPUのアーキテクチャ.GPUには数百から数千の独立した計算コアが搭載されている. (画像出典: https://devblogs.nvidia.com/nvidia-turing-architecture-in-depth/)"></p><p>このように,コンピュータグラフィクスの目的で生まれた GPU だが,2010 年前後から,その高い並列計算能力をグラフィックス以外の計算 (科学計算など) に用いるという流れ (<strong>General-purpose computing on GPU; GPGPU</strong>) が生まれた. GPU のコアは,その設計から,行列の計算など,単純かつ規則的な演算が得意であり,そのような演算に対しては数個程度のコアしかもたない CPU に比べて圧倒的に高い計算速度を実現することができる. 現在では GPGPU は分子動力学や気象シミュレーション,そして機械学習など多くの分野で使われている.</p><p>ディープラーニングで最も頻繁に起こる演算が,ニューロンの出力を次の層のニューロンに伝える<strong>畳み込み (Convolution)</strong> 演算である (<a href="#fig:convolution">figure_title</a>). 畳み込み演算は,まさに GPU が得意とする演算であり, CPU ではなく GPU を用いることで学習を飛躍的に (最大で数百倍程度) 加速させることができる.</p><p><img src="/assets/cnn.fd7cb8d2.png" alt="ニューラルネットワークにおける畳み込み演算."></p><p>このように GPU は機械学習の計算で欠かせないものであるが,なかなか高価である. たとえば,科学計算・機械学習に専用設計された NVIDIA 社の Tesla V100 というチップは,一台で約百万円の価格が設定されている. 機械学習を始めるのに,いきなり百万円の投資はなかなか大きい. だが,クラウドを使えば,初期コスト0で GPU を使用することができる.</p><p>機械学習を行うのに, V100 が必ずしも必要というわけではない. むしろ,研究者などでしばしば行われるのは,コンピュータゲームに使われるグラフィックス用の GPU を買ってきて (NVIDIA GeForce シリーズなど),開発のときはをそれを用いる,というアプローチである. グラフィックス用のいわゆる"コンシューマ GPU"は,市場の需要が大きいおかげで,10 万円前後の価格で購入することができる. V100 と比べると,コンシューマ GPU はコアの数が少なかったり,メモリーが小さかったりなどで劣る点があるが, それらを除いては計算能力にとくに制限があるわけではなく,開発の段階では十分な性能である場合がほとんどである. プログラムができあがって,ビッグデータの解析や,モデルをさらに大きくしたいときなどに,クラウドは有効だろう.</p><p>クラウドで GPU を使うには, GPU が搭載された EC2 インスタンスタイプ (<code>P3</code>, <code>P2</code>, <code>G3</code>, <code>G4</code> など) を選択しなければならない. <a href="#table_gpu_instances">table_title</a> に,代表的な GPU 搭載のインスタンスタイプを挙げる (執筆時点での情報).</p><table style="width:100%;"><caption>GPUを搭載したEC2インスタンスタイプ</caption><colgroup><col style="width:14%;"><col style="width:14%;"><col style="width:14%;"><col style="width:14%;"><col style="width:14%;"><col style="width:14%;"><col style="width:14%;"></colgroup><thead><tr class="header"><th>Instance</th><th>GPUs</th><th>GPU model</th><th>GPU Mem (GiB)</th><th>vCPU</th><th>Mem (GiB)</th><th>Price per hour ($)</th></tr></thead><tbody><tr class="odd"><td><p>p3.2xlarge</p></td><td><p>1</p></td><td><p>NVIDIA V100</p></td><td><p>16</p></td><td><p>8</p></td><td><p>61</p></td><td><p>3.06</p></td></tr><tr class="even"><td><p>p3n.16xlarge</p></td><td><p>8</p></td><td><p>NVIDIA V100</p></td><td><p>128</p></td><td><p>64</p></td><td><p>488</p></td><td><p>24.48</p></td></tr><tr class="odd"><td><p>p2.xlarge</p></td><td><p>1</p></td><td><p>NVIDIA K80</p></td><td><p>12</p></td><td><p>4</p></td><td><p>61</p></td><td><p>0.9</p></td></tr><tr class="even"><td><p>g4dn.xlarge</p></td><td><p>1</p></td><td><p>NVIDIA T4</p></td><td><p>16</p></td><td><p>4</p></td><td><p>16</p></td><td><p>0.526</p></td></tr></tbody></table><p><a href="#table_gpu_instances">table_title</a> からわかるとおり, CPU のみのインスタンスと比べると少し高い価格設定になっている. また,古い世代の GPU (V100 に対しての K80) はより安価な価格で提供されている. 1 インスタンスあたりの GPU の搭載数は 1 台から最大で 8 台まで選択することが可能である.</p><p>GPU を搭載した一番安いインスタンスタイプは, <code>g4dn.xlarge</code> であり,これには廉価かつ省エネルギー設計の NVIDIA T4 が搭載されている. 後のハンズオンでは,このインスタンスを使用して,ディープラーニングの計算を行ってみる.</p><p><a href="#table_gpu_instances">table_title</a> の価格は <code>us-east-1</code> のものである. リージョンによって多少価格設定が異なる.</p><p>V100 を一台搭載した <code>p3.2xlarge</code> の利用料金は一時間あたり $3.06 である. V100 が約百万円で売られていることを考えると,約 3000 時間 (= 124 日間),通算で計算を行った場合に,クラウドを使うよりも V100 を自分で買ったほうがお得になる,という計算になる (実際には,自前で V100 を用意する場合は, V100 だけでなく, CPU やネットワーク機器,電気使用料も必要なので,百万円よりもさらにコストがかかる).</p><p>GPT-3 で使われた計算リソースの詳細は論文でも明かされていないのだが, <a href="https://lambdalabs.com/blog/demystifying-gpt-3/" target="_blank" rel="noreferrer">Lambda 社のブログ</a>で興味深い考察が行われている (Lambda 社は機械学習に特化したクラウドサービスを提供している).</p><p>記事によると,1750 億のパラメータを訓練するには,一台の GPU (NVIDIA V100) を用いた場合,342 年の月日と 460 万ドルのクラウド利用料が必要となる,とのことである. GPT-3 のチームは,複数の GPU に処理を分散することで現実的な時間のうちに訓練を完了させたのであろうが,このレベルのモデルになってくるとクラウド技術の限界を攻めないと達成できないことは確かである.</p><p>深層学習を詳しく勉強したい人には以下の参考書を推薦したい. 深層学習の基礎的な概念や理論は普遍的であるが,この分野は日進月歩なので,常に最新の情報を取り入れることを忘れずに.</p><ul><li><p><a href="https://www.deeplearningbook.org/" target="_blank" rel="noreferrer">Deep Learning (Ian Goodfellow, Yoshua Bengio and Aaron Courville)</a> 出版されてから数年が経つが,深層学習の理論的な側面を学びたいならばおすすめの入門書. ウェブで無料で読むことができる. 日本語版も出版されている. 実装についてはほとんど触れられていないので,理論家向けの本.</p></li><li><p><a href="https://www.oreilly.co.jp/books/9784873117584/" target="_blank" rel="noreferrer">ゼロから作る Deep Learning (斎藤 康毅)</a> 合計三冊からなるシリーズ. 理論と実装がバランスよく説明されていて,深層学習の入門書の決定版.</p></li><li><p><a href="https://d2l.ai/" target="_blank" rel="noreferrer">Dive into Deep Learning (Aston Zhang, Zachary C. Lipton, Mu Li, and Alexander J. Smola)</a> 深層学習の基礎から最新のアルゴリズムまでを,実装を通して学んでいくスタイルの本. ウェブで無料で読むことができる,1000 ページ越えの超大作. これを読破することができれば,深層学習の実装で困ることはないだろう.</p></li></ul></div></div></main><footer class="VPDocFooter" data-v-39e6c32d data-v-bae355c8><!--[--><!--[--><!--[--><!--[--><!----><!--]--><!--]--><!--]--><!--]--><div class="edit-info" data-v-bae355c8><div class="edit-link" data-v-bae355c8><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/andatoshiki/toshiki-notebook/edit/master/docs/development/aws/scientific-computing.md" target="_blank" rel="noreferrer" data-v-bae355c8><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-bae355c8><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--></a></div><div class="last-updated" data-v-bae355c8><p class="VPLastUpdated" data-v-bae355c8 data-v-ec8405ef>Last updated: <time datetime="2023-09-17T09:19:21.000Z" data-v-ec8405ef></time></p></div></div><nav class="prev-next" data-v-bae355c8><div class="pager" data-v-bae355c8><a class="pager-link prev" href="/development/aws/handson-ec2" data-v-bae355c8><span class="desc" data-v-bae355c8>Previous page</span><span class="title" data-v-bae355c8>Hands-on 1: 初めての EC2 インスタンスを起動する</span></a></div><div class="pager" data-v-bae355c8><a class="pager-link next" href="/development/aws/handson-ec2" data-v-bae355c8><span class="desc" data-v-bae355c8>Next page</span><span class="title" data-v-bae355c8>Hands-on 2: AWS でディープラーニングを実践</span></a></div></nav></footer><!--[--><!--[--><!--[--><div id="comment-container"></div><!--]--><!--]--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-f6284a77 data-v-b69a1592><div class="container" data-v-b69a1592><p class="message" data-v-b69a1592>Wrote with <i class="heart fa fa-heart fa-xs fa-beat"></i> and <i class="coffee fa fa-coffee fa-xs" aria-hidden="true"></i> by <a href="https://toshiki.dev">Anda Toshiki</a> at <code>root@andatoshiki:/~</code></p><p class="copyright" data-v-b69a1592>Copyright © 2023-2023 <a href="https://github.com/andatoshiki">Anda Toshiki</a>, <a href="https://github.com/lolilab">LoliLab</a> and <a href="https://github.com/toshikidev">Toshiki Dev</a> present <br /><span id="siteruntime_span"></span></p></div></footer><!--[--><!--]--></div></div>
|
||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"academic_chemistry_index.md\":\"9a99d374\",\"academic_chemistry_notes_12-5.md\":\"8f7737a4\",\"academic_physics_ipho-formulas-jpn_12.md\":\"97cf4aa6\",\"academic_physics_ipho-formulas-jpn_2.md\":\"a4fe4b30\",\"academic_physics_index.md\":\"4851fd32\",\"academic_literature_writing_methods-of-development.md\":\"08089cb6\",\"academic_literature_index.md\":\"d662bbd6\",\"academic_physics_ipho-formulas-jpn_11.md\":\"fbf2126f\",\"academic_chemistry_problems_03-02-2.md\":\"b1934117\",\"academic_chemistry_problems_03-02-3.md\":\"dbcfad8b\",\"academic_physics_ipho-formulas-jpn_10.md\":\"9ec8a936\",\"academic_chemistry_problems_02-20.md\":\"da62657a\",\"academic_physics_ipho-formulas-jpn_3.md\":\"e2a77865\",\"academic_physics_ipho-formulas-jpn_13.md\":\"d4993a10\",\"academic_chemistry_problems_03-02-1.md\":\"1d1baaca\",\"development_aws_license.md\":\"815a0852\",\"development_aws_scientific-computing.md\":\"d3ec5923\",\"development_aws_serverless.md\":\"d3e28778\",\"development_aws_webserver.md\":\"99c6e9c3\",\"development_file-naming-convention.md\":\"d1ace5ab\",\"development_rclone-for-r2.md\":\"8b91a94d\",\"getting-started.md\":\"4b1628bc\",\"jp_index.md\":\"9372a59e\",\"roadmap.md\":\"a9a962a5\",\"save_reading_index.md\":\"a209f5a8\",\"save_reading_outliers_2.md\":\"e74f9888\",\"save_reading_outliers_3.md\":\"7c8a8fc2\",\"save_reading_outliers_4.md\":\"1234a2d9\",\"academic_physics_ipho-formulas-jpn_4.md\":\"3a8c99c7\",\"academic_vocabulary_2023_02_2023-02-27.md\":\"af6b808b\",\"academic_vocabulary_index.md\":\"d740c703\",\"application_markdown-it-katex_how-to-use.md\":\"e02b37e0\",\"application_markdown-it-katex_tips.md\":\"bda1e594\",\"application_vitepress-plugin-shiki-twoslash_api_annotations.md\":\"1b7732d0\",\"application_vitepress-plugin-shiki-twoslash_api_cutting.md\":\"347c0da3\",\"application_vitepress-plugin-shiki-twoslash_api_emit.md\":\"528ab068\",\"application_vitepress-plugin-shiki-twoslash_api_errors.md\":\"988ae844\",\"application_vitepress-plugin-shiki-twoslash_api_includes.md\":\"5ae0055a\",\"application_vitepress-plugin-shiki-twoslash_api_logging.md\":\"32122f74\",\"application_vitepress-plugin-shiki-twoslash_config_flags.md\":\"86416600\",\"application_vitepress-plugin-shiki-twoslash_config_reference.md\":\"ca3b2147\",\"application_vitepress-plugin-shiki-twoslash_guide_custom-theme.md\":\"f140cb9f\",\"application_vitepress-plugin-shiki-twoslash_guide_markdown-extensions.md\":\"a30fc0c6\",\"application_vitepress-plugin-shiki-twoslash_index.md\":\"1471d1a6\",\"development_aws_acknowledgement.md\":\"d5010f77\",\"development_aws_appendix.md\":\"5190c057\",\"development_aws_assignments.md\":\"3f007692\",\"development_aws_author.md\":\"4fd5d4be\",\"save_reading_outliers_1.md\":\"9ed27027\",\"development_aws_aws-batch.md\":\"27130560\",\"development_aws_aws-get-started.md\":\"e74f8c76\",\"development_aws_cloud.md\":\"451c3969\",\"development_aws_docker-system.md\":\"e2d182fa\",\"academic_physics_ipho-formulas-jpn_1.md\":\"db3180dc\",\"development_aws_handson-bashoutter.md\":\"47c1cc1e\",\"development_aws_handson-ec2.md\":\"9163183b\",\"academic_physics_ipho-formulas-jpn_7.md\":\"36e5f9b6\",\"application_vitepress-plugin-shiki-twoslash_api_queries.md\":\"12a832bd\",\"development_aws_handson-jupyter.md\":\"6b27c06d\",\"application_vitepress-plugin-shiki-twoslash_api_types.md\":\"074f3432\",\"index.md\":\"88e57263\",\"development_aws_handson-serverless.md\":\"c2d673af\",\"javascript_notes_1_1-1.md\":\"ddd00ea9\",\"development_aws_index.md\":\"6de28b36\",\"application_vitepress-plugin-shiki-twoslash_api_multi-file.md\":\"9c91d5c2\",\"academic_physics_ipho-formulas-jpn_6.md\":\"7b7245c7\",\"development_aws_closing.md\":\"7de486ec\",\"development_aws_handson-qabot.md\":\"959ea871\",\"javascript_notes_1_1-2.md\":\"638bf6b2\",\"academic_physics_ipho-formulas-jpn_5.md\":\"9b9c7eb1\",\"academic_physics_ipho-formulas-jpn_8.md\":\"02b6cabd\",\"development_aws_main.md\":\"b709a2eb\",\"academic_physics_ipho-formulas-jpn_9.md\":\"4c07ff1e\",\"application_markdown-it-katex_support-table.md\":\"58146274\",\"application_markdown-it-katex_support-function.md\":\"cb273b62\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Toshiki's Note\",\"description\":\"Toshiki's web notebook served via Vitepress!\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Development\",\"link\":\"/development/\"},{\"text\":\"Academic\",\"items\":[{\"text\":\"K-12\",\"items\":[{\"text\":\"Chemistry\",\"link\":\"/academic/chemistry/index\",\"activeMatch\":\"/academic/chemistry/\"},{\"text\":\"Discrete Math.\",\"link\":\"/discrete-math/index\",\"activeMatch\":\"/categories/fragments/\"},{\"text\":\"Literature\",\"link\":\"/academic/literature/index\",\"activeMatch\":\"/academic/literature/\"}]},{\"text\":\"Tools\",\"items\":[{\"text\":\"Formulas for IPhO JPN.\",\"link\":\"/academic/physics/ipho-formulas-jpn/1\",\"activeMatch\":\"/academic/physics/ipho-formulas-jpn/\"}]},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"},{\"text\":\"\",\"link\":\"\",\"activeMatch\":\"\"}],\"activeMatch\":\"/academic/\"},{\"text\":\"Application\",\"items\":[{\"text\":\"Personal projects\",\"items\":[{\"text\":\"markdown-it-katex\",\"link\":\"/application/markdown-it-katex/how-to-use\",\"activeMatch\":\"/application/markdown-it-katex/\"},{\"text\":\"vitepress-plugin-shiki-twoslash\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/index\",\"activeMatch\":\"/application/vitepress-plugin-shiki-twoslash/index\"}]}],\"activeMatch\":\"/save/\"},{\"text\":\"Save\",\"items\":[{\"text\":\"Reading\",\"link\":\"/save/reading/index\",\"activeMatch\":\"/save/reading/\"},{\"text\":\"Vocabulary\",\"link\":\"/academic/vocabulary/index\",\"activeMatch\":\"/academic/vocabulary/\"}],\"activeMatch\":\"/save/\"}],\"sidebar\":{\"/development/\":[{\"text\":\"Notes & Issues\",\"collapsed\":false,\"items\":[{\"text\":\"File Naming Convention\",\"link\":\"/development/file-naming-convention\"},{\"text\":\"RClone for R2\",\"link\":\"/development/rclone-for-r2\"}]},{\"text\":\"コードで学ぶAWS入門\",\"collapsed\":false,\"items\":[{\"text\":\"背景\",\"link\":\"/development/aws/index\"},{\"text\":\"はじめに!\",\"link\":\"/development/aws/main\"},{\"text\":\"クラウド概論\",\"link\":\"/development/aws/cloud.md\"},{\"text\":\"AWS 入門\",\"link\":\"/development/aws/aws-get-started\"},{\"text\":\"Hands-on 1: 初めての EC2 インスタンスを起動する\",\"link\":\"/development/aws/handson-ec2.md\"},{\"text\":\"クラウドで行う科学計算・機械学習\",\"link\":\"/development/aws/scientific-computing.md\"},{\"text\":\"Hands-on 2: AWS でディープラーニングを実践\",\"link\":\"/development/aws/handson-ec2.md\"},{\"text\":\"Docker 入門\",\"link\":\"/development/aws/docker-system\"},{\"text\":\"Hands-on 3: AWS で自動質問回答ボットを走らせる\",\"link\":\"/development/aws/handson-qabot\"},{\"text\":\"Hands-on 4: AWS Batch を使って機械学習のハイパーパラメータサーチを並列化する\",\"link\":\"/development/aws/aws-batch\"},{\"text\":\"Web サービスの作り方\",\"link\":\"/development/aws/webserver\"},{\"text\":\"Serverless architecture\",\"link\":\"/development/aws/serverless\"},{\"text\":\"Hands-on 5: サーバーレス入門\",\"link\":\"/development/aws/handson-serverless\"},{\"text\":\"Hands-on 6: Bashoutter\",\"link\":\"/development/aws/handson-bashoutter\"},{\"text\":\"まとめ\",\"link\":\"/development/aws/closing\"},{\"text\":\"ppendix: 環境構築\",\"link\":\"/development/aws/appendix\"},{\"text\":\"謝辞\",\"link\":\"/development/aws/acknowledgement\"}]}],\"/academic/chemistry/\":[{\"text\":\"Textbook\",\"collapsed\":true,\"items\":[{\"text\":\"12-5: Reaction Mechanism\",\"link\":\"/academic/chemistry/notes/12-5\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"}]},{\"text\":\"Kinetics\",\"collapsed\":false,\"items\":[{\"text\":\"Rate determining steps\",\"link\":\"/academic/chemistry/notes/kinetics/rate-determining-step\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"}]},{\"text\":\"Problems & Solutions\",\"collapsed\":true,\"items\":[{\"text\":\"Problem: 02-20\",\"link\":\"/academic/chemistry/problems/02-20\"},{\"text\":\"Problem: 03-02-1\",\"link\":\"/academic/chemistry/problems/03-02-1\"},{\"text\":\"Problem: 03-02-2\",\"link\":\"/academic/chemistry/problems/03-02-2\"},{\"text\":\"Problem: 03-02-3\",\"link\":\"/academic/chemistry/problems/03-02-3\"}]}],\"/academic/physics\":[{\"text\":\"IPhO Formulas: JP Ver.\",\"collapsed\":false,\"items\":[{\"text\":\"1: 数学\",\"link\":\"/academic/physics/ipho-formulas-jpn/1\"},{\"text\":\"2: 一般的な推奨事\",\"link\":\"/academic/physics/ipho-formulas-jpn/2\"},{\"text\":\"3: 運動学\",\"link\":\"/academic/physics/ipho-formulas-jpn/3\"},{\"text\":\"4: 力学\",\"link\":\"/academic/physics/ipho-formulas-jpn/4\"},{\"text\":\"5: 振動と波\",\"link\":\"/academic/physics/ipho-formulas-jpn/5\"},{\"text\":\"6: 幾何光学,測光\",\"link\":\"/academic/physics/ipho-formulas-jpn/6\"},{\"text\":\"7: 波動光学\",\"link\":\"/academic/physics/ipho-formulas-jpn/7\"},{\"text\":\"8: 電気回路\",\"link\":\"/academic/physics/ipho-formulas-jpn/8\"},{\"text\":\"9: 電磁気学\",\"link\":\"/academic/physics/ipho-formulas-jpn/9\"},{\"text\":\"10: 熱力\",\"link\":\"/academic/physics/ipho-formulas-jpn/10\"},{\"text\":\"11: 量子力学\",\"link\":\"/academic/physics/ipho-formulas-jpn/11\"},{\"text\":\"12: Keplerの法則\",\"link\":\"/academic/physics/ipho-formulas-jpn/12\"},{\"text\":\"13: 相対性理論\",\"link\":\"/academic/physics/ipho-formulas-jpn/13\"}]}],\"/academic/vocabulary/\":[{\"text\":\"Vocabulary\",\"collapsed\":true,\"items\":[{\"text\":\"2023-02-27\",\"link\":\"/academic/vocabulary/2023/02/2023-02-27\"}]}],\"/academic/literature/\":[{\"text\":\"Writing Resources\",\"collapsed\":true,\"items\":[{\"text\":\"Patterns of Organization and Methods of Development\",\"link\":\"/academic/literature/writing/methods-of-development\"}]}],\"/javascript/\":[{\"text\":\"1: Basic JavaScript-Value, Variables, and Control Flow\",\"collapsed\":true,\"items\":[{\"text\":\"1-1: Numbers\",\"link\":\"/javascript/notes/1/1-1\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"},{\"text\":\"\",\"link\":\"\"}]}],\"/save/reading/\":[{\"text\":\"Outliers\",\"collapsed\":true,\"items\":[{\"text\":\"Introduction & Chapter 1: The Roseto Mystery\",\"link\":\"/save/reading/outliers/1\"},{\"text\":\"Chapter 2: The 10,000-Hour Rule\",\"link\":\"/save/reading/outliers/2\"},{\"text\":\"Chapter 3: The Trouble with Geniuses, Part 1\",\"link\":\"/save/reading/outliers/3\"},{\"text\":\"Chapter 4: The Trouble with Geniuses, Part 2\",\"link\":\"/save/reading/outliers/4\"}]}],\"/application/markdown-it-katex/\":[{\"text\":\"markdown-it-katex\",\"collapsed\":false,\"items\":[{\"text\":\"1: How to use?\",\"link\":\"/application/markdown-it-katex/how-to-use\"},{\"text\":\"2: KaTeX supported functions\",\"link\":\"/application/markdown-it-katex/support-function\"},{\"text\":\"3: KaTeX support tables\",\"link\":\"/application/markdown-it-katex/support-table\"},{\"text\":\"4: Tips\",\"link\":\"/application/markdown-it-katex/tips\"}]}],\"/application/vitepress-plugin-shiki-twoslash/\":[{\"text\":\"Guide\",\"collapsed\":false,\"items\":[{\"text\":\"Getting Started\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/\"},{\"text\":\"Markdown Extensions\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/guide/markdown-extensions\"},{\"text\":\"Using a Custom Theme\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/guide/custom-theme\"}]},{\"text\":\"Features\",\"collapsed\":false,\"items\":[{\"text\":\"Queries\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/queries\"},{\"text\":\"Errors\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/errors\"},{\"text\":\"Emit\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/emit\"},{\"text\":\"Cutting\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/cutting\"},{\"text\":\"Multi-file\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/multi-file\"},{\"text\":\"@types\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/types\"},{\"text\":\"Meta Annotations\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/annotations\"},{\"text\":\"Logging\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/logging\"},{\"text\":\"Includes\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/api/includes\"}]},{\"text\":\"Config\",\"collapsed\":false,\"items\":[{\"text\":\"Reference\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/config/reference\"},{\"text\":\"Compiler Flags\",\"link\":\"/application/vitepress-plugin-shiki-twoslash/config/flags\"}]}]},\"footer\":{\"copyright\":\"Copyright © 2023-2023 <a href=\\\"https://github.com/andatoshiki\\\">Anda Toshiki</a>, <a href=\\\"https://github.com/lolilab\\\">LoliLab</a> and <a href=\\\"https://github.com/toshikidev\\\">Toshiki Dev</a> present <br /><span id=\\\"siteruntime_span\\\"></span>\",\"message\":\"Wrote with <i class=\\\"heart fa fa-heart fa-xs fa-beat\\\"></i> and <i class=\\\"coffee fa fa-coffee fa-xs\\\" aria-hidden=\\\"true\\\"></i> by <a href=\\\"https://toshiki.dev\\\">Anda Toshiki</a> at <code>root@andatoshiki:/~</code>\"},\"logo\":\"/logos/logo.png\",\"outline\":\"deep\",\"outlineTitle\":\"TOC\",\"outlineBadges\":false,\"lastUpdatedText\":\"Last updated\",\"algolia\":{\"appId\":\"G9IUR45K98\",\"apiKey\":\"8528cc91281d8112b28f508317a96dd3\",\"indexName\":\"toshiki-notebook\"},\"editLink\":{\"pattern\":\"https://github.com/andatoshiki/toshiki-notebook/edit/master/docs/:path\",\"text\":\"Edit this page on GitHub\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/andatoshiki\"},{\"icon\":\"twitter\",\"link\":\"https://twitter.com/andatoshiki\"}]},\"locales\":{\"/\":{\"label\":\"English\",\"lang\":\"en-US\"},\"/jp/\":{\"label\":\"Japanese\",\"title\":\"Vue Test Utils\",\"lang\":\"jp-JP\",\"description\":\"La documentation officielle de Vue Test Utils\"}},\"scrollOffset\":90,\"cleanUrls\":true}");</script>
|
||
|
||
</body>
|
||
</html> |