mirror of
https://github.com/andatoshiki/toshiki-notebook.git
synced 2026-06-06 09:16:45 +00:00
41 lines
52 KiB
HTML
41 lines
52 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.1276ae12.css" as="style">
|
||
<script type="module" src="/assets/app.da2b9cf1.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.ade46834.js">
|
||
<link rel="modulepreload" href="/assets/chunks/theme.2274efad.js">
|
||
<link rel="modulepreload" href="/assets/chunks/cnn.a8836fd9.js">
|
||
<link rel="modulepreload" href="/assets/development_aws_scientific-computing.md.b4aa75f1.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="/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="true" defer="true" data-website-id="86de8554-d4c9-4f2b-b62a-068b71241048" src="https://umami.toshiki.dev/umami.js"></script>
|
||
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
||
</head>
|
||
<body>
|
||
<div id="app"><div class="Layout" data-v-83f63849><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0eca8f1e></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0eca8f1e> Skip to content </a><!--]--><!----><header class="VPNav" data-v-83f63849 data-v-999a1a39><div class="VPNavBar has-sidebar" data-v-999a1a39 data-v-e99cf6bd><div class="container" data-v-e99cf6bd><div class="title" data-v-e99cf6bd><div class="VPNavBarTitle has-sidebar" data-v-e99cf6bd data-v-a8886b70><a class="title" href="/" data-v-a8886b70><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logos/logo.png" alt data-v-164d1caf><!--]--><!--[-->Toshiki's Note<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-e99cf6bd><div class="curtain" data-v-e99cf6bd></div><div class="content-body" data-v-e99cf6bd><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-e99cf6bd><!--[--><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-e99cf6bd data-v-1817056a><span id="main-nav-aria-label" class="visually-hidden" data-v-1817056a>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/development/" tabindex="0" data-v-1817056a data-v-f28b94cc data-v-075865b7><!--[-->Development<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-1817056a data-v-4c03a652><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-4c03a652><span class="text" data-v-4c03a652><!----> Academic <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-4c03a652><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-4c03a652><div class="VPMenu" data-v-4c03a652 data-v-da053c30><div class="items" data-v-da053c30><!--[--><!--[--><div class="VPMenuGroup" data-v-da053c30 data-v-2e982fbb><p class="title" data-v-2e982fbb>K-12</p><!--[--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/academic/chemistry/index" data-v-6f715184 data-v-075865b7><!--[-->Chemistry<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/discrete-math/index" data-v-6f715184 data-v-075865b7><!--[-->Discrete Math.<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/academic/literature/index" data-v-6f715184 data-v-075865b7><!--[-->Literature<!--]--><!----></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-da053c30 data-v-2e982fbb><p class="title" data-v-2e982fbb>Tools</p><!--[--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/academic/physics/ipho-formulas-jpn/1" data-v-6f715184 data-v-075865b7><!--[-->Formulas for IPhO JPN.<!--]--><!----></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><span class="VPLink" data-v-6f715184 data-v-075865b7><!--[--><!--]--><!----></span></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-1817056a data-v-4c03a652><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-4c03a652><span class="text" data-v-4c03a652><!----> Application <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-4c03a652><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-4c03a652><div class="VPMenu" data-v-4c03a652 data-v-da053c30><div class="items" data-v-da053c30><!--[--><!--[--><div class="VPMenuGroup" data-v-da053c30 data-v-2e982fbb><p class="title" data-v-2e982fbb>Personal projects</p><!--[--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/application/markdown-it-katex/how-to-use" data-v-6f715184 data-v-075865b7><!--[-->markdown-it-katex<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-2e982fbb data-v-6f715184><a class="VPLink link" href="/application/vitepress-plugin-shiki-twoslash/index" data-v-6f715184 data-v-075865b7><!--[-->vitepress-plugin-shiki-twoslash<!--]--><!----></a></div><!--]--><!--]--></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-1817056a data-v-4c03a652><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-4c03a652><span class="text" data-v-4c03a652><!----> Save <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-4c03a652><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-4c03a652><div class="VPMenu" data-v-4c03a652 data-v-da053c30><div class="items" data-v-da053c30><!--[--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><a class="VPLink link" href="/save/reading/index" data-v-6f715184 data-v-075865b7><!--[-->Reading<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-da053c30 data-v-6f715184><a class="VPLink link" href="/academic/vocabulary/index" data-v-6f715184 data-v-075865b7><!--[-->Vocabulary<!--]--><!----></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-e99cf6bd data-v-72c0c02a><label title="toggle dark mode" data-v-72c0c02a data-v-cb74fac6><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-checked="false" data-v-cb74fac6 data-v-9f7dbbcf><span class="check" data-v-9f7dbbcf><span class="icon" data-v-9f7dbbcf><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-cb74fac6><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-cb74fac6><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></label></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-e99cf6bd data-v-268ff66d data-v-65dbf981><!--[--><a class="VPSocialLink" href="https://github.com/andatoshiki" aria-label="github" target="_blank" rel="noopener" data-v-65dbf981 data-v-2d45784b><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" href="https://twitter.com/andatoshiki" aria-label="twitter" target="_blank" rel="noopener" data-v-65dbf981 data-v-2d45784b><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-e99cf6bd data-v-67546bb2 data-v-4c03a652><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-4c03a652><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-4c03a652><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-4c03a652><div class="VPMenu" data-v-4c03a652 data-v-da053c30><!----><!--[--><!--[--><!----><div class="group" data-v-67546bb2><div class="item appearance" data-v-67546bb2><p class="label" data-v-67546bb2>Appearance</p><div class="appearance-action" data-v-67546bb2><label title="toggle dark mode" data-v-67546bb2 data-v-cb74fac6><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-checked="false" data-v-cb74fac6 data-v-9f7dbbcf><span class="check" data-v-9f7dbbcf><span class="icon" data-v-9f7dbbcf><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-cb74fac6><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-cb74fac6><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></label></div></div></div><div class="group" data-v-67546bb2><div class="item social-links" data-v-67546bb2><div class="VPSocialLinks social-links-list" data-v-67546bb2 data-v-65dbf981><!--[--><a class="VPSocialLink" href="https://github.com/andatoshiki" aria-label="github" target="_blank" rel="noopener" data-v-65dbf981 data-v-2d45784b><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" href="https://twitter.com/andatoshiki" aria-label="twitter" target="_blank" rel="noopener" data-v-65dbf981 data-v-2d45784b><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></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-e99cf6bd data-v-2314de5a><span class="container" data-v-2314de5a><span class="top" data-v-2314de5a></span><span class="middle" data-v-2314de5a></span><span class="bottom" data-v-2314de5a></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-83f63849 data-v-fa4746c0><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-fa4746c0><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-fa4746c0><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-fa4746c0>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-fa4746c0 data-v-f8dbb575><button data-v-f8dbb575>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-83f63849 data-v-0e47c5d5><div class="curtain" data-v-0e47c5d5></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-0e47c5d5><span class="visually-hidden" id="sidebar-aria-label" data-v-0e47c5d5> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-0e47c5d5><section class="VPSidebarItem level-0 collapsible" data-v-0e47c5d5 data-v-0cc45b6b><div class="item" role="button" tabindex="0" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><h2 class="text" data-v-0cc45b6b>Wiki Database</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0cc45b6b><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-0cc45b6b><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-0cc45b6b><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0cc45b6b data-v-0cc45b6b><div class="item" data-v-0cc45b6b><div class="indicator" data-v-0cc45b6b></div><a class="VPLink link link" href="/development/file-naming-convention" data-v-0cc45b6b data-v-075865b7><!--[--><p class="text" data-v-0cc45b6b>File Naming Convention</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-83f63849 data-v-bb292142><div class="VPDoc has-sidebar has-aside" data-v-bb292142 data-v-6c4a7022><!--[--><!--]--><div class="container" data-v-6c4a7022><div class="aside" data-v-6c4a7022><div class="aside-curtain" data-v-6c4a7022></div><div class="aside-container" data-v-6c4a7022><div class="aside-content" data-v-6c4a7022><div class="VPDocAside" data-v-6c4a7022 data-v-f77a9b1a><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-f77a9b1a data-v-ea95c6a2><div class="content" data-v-ea95c6a2><div class="outline-marker" data-v-ea95c6a2></div><div class="outline-title" data-v-ea95c6a2>TOC</div><nav aria-labelledby="doc-outline-aria-label" data-v-ea95c6a2><span class="visually-hidden" id="doc-outline-aria-label" data-v-ea95c6a2> Table of Contents for current page </span><ul class="root" data-v-ea95c6a2 data-v-74f66e6c><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-f77a9b1a></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-6c4a7022><div class="content-container" data-v-6c4a7022><!--[--><!--]--><!----><main class="main" data-v-6c4a7022><div style="position:relative;" class="vp-doc _development_aws_scientific-computing" data-v-6c4a7022><div><h1 id="クラウドで行う科学計算・機械学習" tabindex="-1">クラウドで行う科学計算・機械学習 <a class="header-anchor" href="#クラウドで行う科学計算・機械学習" aria-label="Permalink to "クラウドで行う科学計算・機械学習""></a></h1><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) の性能を達成するニューラルネットワークでは,百万から億のオーダーのパラメータを内包することは頻繁になってきている. そのような巨大なニューラルネットを訓練 (最適化) させるのは,当然のことながら膨大な計算コストがかかる. 結果として,ひとつの計算機では丸一日以上の時間がかかる場合も珍しくない. 深層学習の発展の速度は目覚ましく,研究・ビジネス両方の観点からも,いかにスループットよくニューラルネットワークの最適化を行えるかが鍵となってくる. そのような問題を解決するのにとても有効な手段が,クラウドである! <a href="#sec_first_ec2">???</a> でその片鱗を見たように,クラウドを使用することでゼロから数千に至るまでの数のインスタンスを動的に起動し,並列に計算を実行することができる. さらに,深層学習を加速させる目的で,深層学習の演算に専用設計された計算チップ (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-6c4a7022 data-v-b5edbda4><!--[--><!--[--><!--[--><!--[--><!----><!--]--><!--]--><!--]--><!--]--><div class="edit-info" data-v-b5edbda4><div class="edit-link" data-v-b5edbda4><a class="VPLink link edit-link-button" href="https://github.com/andatoshiki/toshiki-notebook/edit/master/docs/development/aws/scientific-computing.md" target="_blank" rel="noreferrer" data-v-b5edbda4 data-v-075865b7><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-b5edbda4><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-b5edbda4><p class="VPLastUpdated" data-v-b5edbda4 data-v-00fbdbd8>Last updated: <time datetime="2023-06-11T16:59:29.000Z" data-v-00fbdbd8></time></p></div></div><div class="prev-next" data-v-b5edbda4><div class="pager" data-v-b5edbda4><!----></div><div class="pager" data-v-b5edbda4><a class="pager-link next" href="/development/file-naming-convention" data-v-b5edbda4><span class="desc" data-v-b5edbda4>Next page</span><span class="title" data-v-b5edbda4>File Naming Convention</span></a></div></div></footer><!--[--><!--[--><!--[--><div id="comment-container"></div><!--]--><!--]--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-83f63849 data-v-02da8605><div class="container" data-v-02da8605><p class="message" data-v-02da8605>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-02da8605>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>__VP_HASH_MAP__ = JSON.parse("{\"academic_chemistry_index.md\":\"5f01ac8c\",\"academic_chemistry_problems_02-20.md\":\"207337e2\",\"academic_chemistry_notes_12-5.md\":\"2b844414\",\"academic_physics_ipho-formulas-jpn_10.md\":\"09873941\",\"academic_physics_index.md\":\"e3718fe3\",\"academic_physics_ipho-formulas-jpn_2.md\":\"36b2206c\",\"academic_chemistry_problems_03-02-2.md\":\"8ee61fcb\",\"academic_physics_ipho-formulas-jpn_13.md\":\"927b1832\",\"academic_literature_index.md\":\"193281e7\",\"academic_physics_ipho-formulas-jpn_5.md\":\"1185734e\",\"academic_physics_ipho-formulas-jpn_7.md\":\"42c1c648\",\"academic_physics_ipho-formulas-jpn_8.md\":\"8318feb7\",\"academic_vocabulary_index.md\":\"314081a2\",\"application_vitepress-plugin-shiki-twoslash_api_annotations.md\":\"7841f507\",\"academic_physics_ipho-formulas-jpn_3.md\":\"95a61eda\",\"academic_chemistry_problems_03-02-3.md\":\"b6634ae1\",\"academic_vocabulary_2023_02_2023-02-27.md\":\"0d5c1751\",\"application_vitepress-plugin-shiki-twoslash_api_errors.md\":\"d424e194\",\"academic_physics_ipho-formulas-jpn_6.md\":\"328872b7\",\"academic_physics_ipho-formulas-jpn_11.md\":\"085aded9\",\"development_aws_license.md\":\"bfdb7707\",\"application_vitepress-plugin-shiki-twoslash_api_logging.md\":\"84997e1d\",\"application_vitepress-plugin-shiki-twoslash_api_multi-file.md\":\"e17500c1\",\"application_vitepress-plugin-shiki-twoslash_api_queries.md\":\"e6f262b2\",\"application_vitepress-plugin-shiki-twoslash_api_types.md\":\"69ec9248\",\"application_vitepress-plugin-shiki-twoslash_config_flags.md\":\"bd86a569\",\"application_vitepress-plugin-shiki-twoslash_config_reference.md\":\"cf6e7b65\",\"application_vitepress-plugin-shiki-twoslash_guide_custom-theme.md\":\"d02c2fec\",\"application_vitepress-plugin-shiki-twoslash_guide_markdown-extensions.md\":\"f1cd1b54\",\"application_vitepress-plugin-shiki-twoslash_index.md\":\"e32870ca\",\"development_aws_readme.md\":\"1cd930bb\",\"development_aws_acknowledgement.md\":\"187bc69e\",\"development_aws_appendix.md\":\"89f6dc7e\",\"development_aws_assignments.md\":\"62bad913\",\"development_aws_author.md\":\"d9af17b9\",\"development_aws_aws-batch.md\":\"fbfbf571\",\"save_reading_outliers_3.md\":\"ee2e1794\",\"academic_literature_writing_methods-of-development.md\":\"3401fa4b\",\"save_reading_outliers_4.md\":\"f8b949a7\",\"academic_physics_ipho-formulas-jpn_12.md\":\"c884e2bd\",\"development_aws_closing.md\":\"d3e3303d\",\"development_aws_cloud.md\":\"7075d6e3\",\"academic_physics_ipho-formulas-jpn_4.md\":\"75938e33\",\"application_markdown-it-katex_how-to-use.md\":\"e14b8ee8\",\"development_aws_docker-system.md\":\"fda6c059\",\"development_aws_handson-bashoutter.md\":\"4be2c859\",\"application_vitepress-plugin-shiki-twoslash_api_includes.md\":\"b6c39c2b\",\"application_vitepress-plugin-shiki-twoslash_api_cutting.md\":\"817fe397\",\"development_aws_main.md\":\"06a06dfe\",\"development_aws_handson-qabot.md\":\"47bdd12f\",\"development_aws_handson-ec2.md\":\"cbc48c3e\",\"development_aws_handson-jupyter.md\":\"e40849ae\",\"development_aws_handson-serverless.md\":\"392c5a0a\",\"development_aws_aws-get-started.md\":\"8c9ad30d\",\"development_aws_scientific-computing.md\":\"b4aa75f1\",\"development_aws_serverless.md\":\"7c1edb50\",\"development_file-naming-convention.md\":\"ecf2c5e8\",\"development_rclone-for-r2.md\":\"302c4919\",\"getting-started.md\":\"092036f3\",\"index.md\":\"6210c7bb\",\"javascript_notes_1_1-1.md\":\"83a10f12\",\"jp_index.md\":\"4431313a\",\"roadmap.md\":\"af1e3660\",\"save_reading_index.md\":\"21c59048\",\"save_reading_outliers_2.md\":\"98fe41bd\",\"application_markdown-it-katex_tips.md\":\"741cbaa6\",\"application_vitepress-plugin-shiki-twoslash_api_emit.md\":\"f0078cff\",\"development_aws_introduction.md\":\"a7d067ac\",\"development_aws_webserver.md\":\"750bea93\",\"save_reading_outliers_1.md\":\"3169cfe5\",\"javascript_notes_1_1-2.md\":\"3f60b481\",\"academic_chemistry_problems_03-02-1.md\":\"bb42593e\",\"academic_physics_ipho-formulas-jpn_1.md\":\"39067dc9\",\"academic_physics_ipho-formulas-jpn_9.md\":\"128224d8\",\"application_markdown-it-katex_support-function.md\":\"ab6988a2\",\"application_markdown-it-katex_support-table.md\":\"167f2411\"}")
|
||
__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\":\"Wiki Database\",\"collapsed\":false,\"items\":[{\"text\":\"File Naming Convention\",\"link\":\"/development/file-naming-convention\"}]}],\"/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> |