From 221a883b52d03035dc0caff1c99e99ccbdbd4604 Mon Sep 17 00:00:00 2001 From: <> Date: Wed, 13 Dec 2023 15:11:12 +0000 Subject: [PATCH] Deployed 1d802a2 with MkDocs version: 1.5.3 --- PeiPei/markdown/index.html | 4 ++-- PeiPei/typst/index.html | 11 +++++++---- search/search_index.json | 2 +- sitemap.xml.gz | Bin 1192 -> 1192 bytes 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/PeiPei/markdown/index.html b/PeiPei/markdown/index.html index 87b8ec80..abae5097 100644 --- a/PeiPei/markdown/index.html +++ b/PeiPei/markdown/index.html @@ -1239,7 +1239,7 @@
造完板子之后写文档真的是太爽了,Typst 真的太好用了,强烈推荐! 写的时候像 Markdown 一样简单,导出的像 LaTeX 一样漂亮 😋 -我自己的模板在 typst-template 里,欢迎使用!
+我自己的模板在 typst-template 里,欢迎使用!即使用了 VSCode 的 MPE 的插件,Markdown 里的代码块还是十分的丑陋.这里提供了一种方法,可以让 Markdown 里的代码块的高亮效果和 VSCode 里的一样.
@@ -1283,7 +1283,7 @@![]()
-> <img src="" />
- December 12, 2023
+ December 13, 2023
diff --git a/PeiPei/typst/index.html b/PeiPei/typst/index.html
index 35a21af6..7d8daf35 100644
--- a/PeiPei/typst/index.html
+++ b/PeiPei/typst/index.html
@@ -1319,14 +1319,17 @@
约 735 个字 37 行代码 预计阅读时间 3 分钟
+约 746 个字 37 行代码 预计阅读时间 3 分钟
+我的一些自用模板在 typst-template
因为 Typst 比较新,所以相关的(特别是中文的)文档还不是很多,所以目前还是靠官方的文档:Typst Documentation,过一遍里面的 Tutorial 部分,就可以基本上掌握 Typst 的使用了。之后就是写的过程中遇到啥就在文档里搜啥。
-另外就是看看 awesome-typst-cn 里面的一些资源,比如 Typst 的模板,Typst 的插件等等。比较详细了,就不再赘述了。特别是遇到啥问题可以先看看这里面的模板里时怎么解决的。
-尤其推荐其中的 nju-thesis-typst,这是南京大学的本科生毕业论文的模板,里面的 README 里有详细的使用方法,而且代码也非常简洁高效,基本把所有坑都解决了,可以作为参考。
+另外就是看看 awesome-typst-cn 里面的一些资源,比如 Typst 的模板,Typst 的插件等等。比较详细了,就不再赘述了。特别是遇到啥问题可以先看看这里面的模板里时怎么解决的。
+尤其推荐其中的 nju-thesis-typst,这是南京大学的本科生毕业论文的模板,里面的 README 里有详细的使用方法,而且代码也非常简洁高效,基本把所有坑都解决了,可以作为参考。
首先是 awesome-typst-cn 里推荐的插件,这里我就不再赘述了,可以直接看上面的链接。我自己用了 Typst LSP 和 Typst Preview 这两个插件,可以在 VSCode 里直接预览 Typst 的效果,十分方便。
+首先是 awesome-typst-cn 里推荐的插件,这里我就不再赘述了,可以直接看上面的链接。我自己用了 Typst LSP 和 Typst Preview 这两个插件,可以在 VSCode 里直接预览 Typst 的效果,十分方便。
除此之外,我还用了 VSCode 的 Paste Image 插件,可以直接粘贴图片,十分方便。然后顺带修改一下粘贴格式:
\u200b\u6b22\u8fce\u200b\u6765\u5230\u200b\u6211\u200b\u7684\u200b\u4e3b\u9875\u200b\uff01\u200b\u968f\u4fbf\u200b\u901b\u901b\u200b\u5427\u200b
\u200b\u66f4\u65b0\u200b\u65e5\u5fd7\u200b | \u200b\u6837\u5f0f\u200b\u4e00\u89c8\u200b | \u200b\u5efa\u200b\u7ad9\u200b\u6307\u5357\u200b
"},{"location":"Build_this_website/","title":"\u5982\u4f55\u200b\u6784\u5efa\u200b\u4e00\u4e2a\u200b\u50cf\u200b\u8fd9\u6837\u200b\u7684\u200b\u7f51\u7ad9\u200b\uff01","text":"\u200b\u7ea6\u200b 905 \u200b\u4e2a\u200b\u5b57\u200b 316 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 7 \u200b\u5206\u949f\u200b
\u200b\u7f51\u7ad9\u200b\u642d\u5efa\u200b\u6559\u7a0b\u200b
\u200b\u672c\u200b\u7ad9\u70b9\u200b\u4f7f\u7528\u200b mkdocs \u200b\u642d\u5efa\u200b\uff0c\u200b\u90e8\u7f72\u200b\u4e8e\u200b Github Pages\uff0c\u200b\u4f7f\u7528\u200b\u4e86\u200bmaterial\u200b\u4e3b\u9898\u200b
"},{"location":"Build_this_website/#1","title":"1.\u200b\u73af\u5883\u200b\u51c6\u5907","text":"\u200b\u5b89\u88c5\u200b python
sudo apt install python3 python3-pip\n
pip \u200b\u6362\u6e90\u200b
pip install pip -U\npip config set global.index-url https://mirrors.zju.edu.cn/pypi/web/simple\n
\u200b\u542f\u7528\u200b\u865a\u62df\u73af\u5883\u200b\uff1a
sudo apt install python3.8-venv\npip install virtualenv\npython -m venv webenv\nsource webenv/bin/activate\n
\u200b\u5b89\u88c5\u200b mkdocs
pip install mkdocs-material\n
\u200b\u51fa\u73b0\u200b\u62a5\u9519\u200b\uff1a
ERROR: mkdocs 1.4.3 has requirement markdown<3.4\uff0c>=3.2.1\uff0c but you'll have markdown 3.4.3 which is incompatible.\n
\u200b\u4fee\u6539\u200b markdown \u200b\u7248\u672c\u200b\uff0c\u200b\u7136\u540e\u200b\u91cd\u65b0\u5b89\u88c5\u200b mkdocs\uff1a
pip install markdown==3.2.1\npip install mkdocs-material\n
\u200b\u56fe\u7247\u200b\u5904\u7406\u200b\u7684\u200b\u4f9d\u8d56\u200b\u5e93\u200b\uff1a
pip install pillow cairosvg\n
\u200b\u53ef\u200b\u9009\u200b\u4f18\u5316\u200b\uff1ayaml \u200b\u8865\u5168\u200b {\n\"yaml.schemas\": {\n \"https://squidfunk.github.io/mkdocs-material/schema.json\": \"mkdocs.yml\"\n}\uff0c\n\"yaml.customTags\": [\n \"!ENV scalar\"\uff0c\n \"!ENV sequence\"\uff0c\n \"tag:yaml.org\uff0c2002:python/name:materialx.emoji.to_svg\"\uff0c\n \"tag:yaml.org\uff0c2002:python/name:materialx.emoji.twemoji\"\uff0c\n \"tag:yaml.org\uff0c2002:python/name:pymdownx.superfences.fence_code_format\"\n]\n}\n
\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u7a7a\u200b\u7684\u200b\u516c\u5f00\u200b\u4ed3\u5e93\u200b\uff0c\u200b\u5e76\u4e14\u200b\u514b\u9686\u200b\u5230\u200b\u672c\u5730\u200b\uff0c\u200b\u5728\u200b\u5176\u4e2d\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b mkdocs site\uff1a
git clone repo\ncd repo\nmkdocs new .\n
\u200b\u5728\u200b mkdocs.yml \u200b\u4e2d\u200b\u542f\u7528\u200b\u4e3b\u9898\u200b\uff1a
theme:\n name: material\n
\u200b\u5982\u679c\u200b\u4f60\u200b\u5e0c\u671b\u200b\u5c06\u200b markdown \u200b\u6e90\u6587\u4ef6\u200b\u4e5f\u200b\u4fdd\u5b58\u200b\u5728\u200b\u540c\u4e00\u4e2a\u200b\u4ed3\u5e93\u200b\u91cc\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5148\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u5ffd\u7565\u200bsite/
\u200b\u7684\u200b.gitignore
\u200b\u6587\u4ef6\u200b\uff0c\u200b\u7136\u540e\u200b\u63d0\u4ea4\u200b\uff0c\u200b\u63a8\u9001\u200b\uff1a
echo \"site/\" > .gitignore\ngit add .\ngit commit -m \"init\"\ngit push -u origin master\n
\u200b\u7136\u540e\u200b\u7528\u200bgh-deploy
\u200b\u547d\u4ee4\u200b\u4e00\u952e\u200b\u90e8\u7f72\u200b\u5230\u200b Github Pages:
mkdocs gh-deploy\n
\u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u7684\u200b\u4ed3\u5e93\u200b\u6709\u200b\u4e24\u4e2a\u200b\u5206\u652f\u200b\u4e86\u200b\uff0cmaster \u200b\u5206\u652f\u200b\u50a8\u5b58\u200b markdown \u200b\u6e90\u6587\u4ef6\u200b\uff0cgh-pages \u200b\u5206\u652f\u200b\u50a8\u5b58\u200b\u7f16\u8bd1\u200b\u540e\u200b\u7684\u200b\u7f51\u7ad9\u200b \u200b\u5728\u200b settings-pages \u200b\u4e2d\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u7f51\u7ad9\u200b\u7684\u200b\u7f51\u5740\u200b\u4e86\u200b\uff0c\u200b\u4e00\u822c\u200b\u4e3a\u200busername.github.io/repo
\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u521b\u5efa\u200b\u7684\u200b\u4ed3\u5e93\u200b\u662f\u200b\u7279\u6b8a\u200b\u7684\u200b\uff0c\u200b\u540d\u4e3a\u200busername.github.io
\uff0c\u200b\u90a3\u4e48\u200b\u7f51\u5740\u200b\u5c31\u662f\u200busername.github.io
\u200b\u4e86\u200b \u200b\u5f53\u524d\u200b\u7684\u200b\u7f51\u7ad9\u200b\u4e3a\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\uff1a
\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b GitHub action \u200b\u6765\u200b\u5e2e\u52a9\u200b\u6211\u4eec\u200b\u6bcf\u6b21\u200b\u66f4\u65b0\u200b master \u200b\u5206\u652f\u200b\u540e\u200b\u81ea\u52a8\u200b\u7f16\u8bd1\u200b\u7f51\u7ad9\u200b\u5e76\u200b\u63a8\u9001\u200b\u5230\u200b gh-pages \u200b\u5206\u652f\u200b\uff0c\u200b\u8fd9\u6837\u200b\u6211\u4eec\u200b\u5c31\u200b\u4e0d\u7528\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u624b\u52a8\u200b\u6267\u884c\u200bmkdocs gh-deploy
\u200b\u4e86\u200b. 1. \u200b\u5728\u200b\u4ed3\u5e93\u200b\u4e2d\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b.github/workflows/auto-deploy.yml
\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5185\u5bb9\u200b\u5982\u4e0b\u200b\uff1a
name: ci\non:\npush:\n branches:\n - master\n - main\npermissions:\ncontents: write\njobs:\ndeploy:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v3\n with:\n fetch-depth: '0'\n - uses: actions/setup-python@v4\n with:\n python-version: 3.x\n - run: echo \"cache_id=$(date --utc '+%V')\" >> $GITHUB_ENV\n - uses: actions/cache@v3\n with:\n key: mkdocs-material-${{ env.cache_id }}\n path: .cache\n restore-keys: |\n mkdocs-material-\n - run: pip install mkdocs-material mkdocs-changelog-plugin mkdocs-glightbox jieba pillow cairosvg mkdocs-tooltips mkdocs-statistics-plugin mkdocs-table-reader-plugin mkdocs-git-revision-date-localized-plugin\n - run: mkdocs gh-deploy --force\n
\u200b\u6ce8\u610f\u200b\uff0c\u200b\u63a8\u9001\u200b\u5230\u200b Github \u200b\u7684\u8bdd\u200b\u9700\u8981\u200b\u4f60\u200b\u7684\u200b token \u200b\u6709\u200b workflow \u200b\u6743\u9650\u200b \u200b\u5982\u679c\u200b\u4f60\u200b\u4f9d\u8d56\u200b\u4e86\u200b\u989d\u5916\u200b\u7684\u200b\u5e93\u200b\uff0c\u200b\u9700\u8981\u200b\u4fee\u6539\u200b action"},{"location":"Build_this_website/#3","title":"3.\u200b\u6dfb\u52a0\u200b\u7279\u6027","text":""},{"location":"Build_this_website/#31-css","title":"3.1 \u200b\u4fee\u6539\u200b\u7f51\u7ad9\u200b\u7684\u200b css \u200b\u6837\u5f0f","text":"\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u65b0\u589e\u200b\u7684\u200b\u6837\u5f0f\u200b\u541b\u200b\u653e\u7f6e\u200b\u4e8e\u200bdocs/css/
\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u6bcf\u4e2a\u200b css \u200b\u6587\u4ef6\u200b\u90fd\u200b\u8981\u200b\u5728\u200bmkdocs.yml
\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a
extra_css:\n - css/extra.css\n
\u200b\u6211\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b\u6837\u5f0f\u200b [data-md-color-primary=indigo] {\n --md-primary-fg-color: #FFACA6;\n}\n[data-md-color-accent=indigo] {\n--md-accent-fg-color: #FFACA6;\n}\n[data-md-color-scheme=default] {\n --md-typeset-a-color: #000000;\n --my-changlog-color: #EFEFEF;\n}\n[data-md-color-scheme=slate] {\n --md-typeset-a-color: #FFFFFF;\n --my-changlog-color: #161616;\n}\n.md-grid {\nmax-width: 1400px;\n}/* make the page wider */\n/* changelog config*/\n.timeline-card{\nbackground-color: var(--my-changlog-color);\n}\n.timeline-content::before{\nbackground-color: var(--my-changlog-color);\n}\n.changelog-type{\nbackground-color: #CC8A85;\n}\n.changelog-type-newpage{\nbackground-color: #FF9C80;\n}\n.changelog-type-refactor::before {\ncontent: \"\u200b\u6587\u6863\u200b\u66f4\u65b0\u200b\";\n}\n\n/*\u200b\u56fe\u7247\u683c\u5f0f\u200b\u8bbe\u7f6e\u200b*/\n/*\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b*/\nimg[src*=\"pic\"] {\nbox-shadow: 2px 2px 10px #666;\nborder-radius: 4px;\n}\n
\u200b\u81ea\u5df1\u200b\u5b9a\u4e49\u200b\u6837\u5f0f\u200b \u200b\u6211\u4eec\u200b\u53ef\u80fd\u200b\u4e0d\u200b\u719f\u6089\u200b css\uff0c\u200b\u6ca1\u4e8b\u200b\uff0c\u200b\u6211\u200b\u4e5f\u200b\u5b8c\u5168\u200b\u4e0d\u200b\u61c2\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u4e00\u4e9b\u200b\u7b80\u5355\u200b\u7684\u200b\u4fee\u6539\u200b\u989c\u8272\u200b\u4fee\u6539\u200b\u5b57\u200b\uff0c\u200b\u76f4\u63a5\u200b\u7528\u200b F12 \u200b\u67e5\u770b\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6837\u5f0f\u200b\u6539\u6210\u200b\u81ea\u5df1\u200b\u559c\u6b22\u200b\u7684\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\uff0c\u200b\u6d4f\u89c8\u5668\u200b\u4e00\u822c\u200b\u90fd\u200b\u652f\u6301\u200b\u76f4\u63a5\u200b\u6539\u200b\u5e76\u4e14\u200b\u663e\u793a\u200b\u4fee\u6539\u200b\u540e\u200b\u7684\u200b\u6548\u679c\u200b\u7684\u200b \u200b\u53e6\u200b\u4e00\u4e2a\u200b\u597d\u7528\u200b\u7684\u200b\u8bbe\u7f6e\u200b\u5c31\u662f\u200b\u4fee\u6539\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u50cf\u200b\u8fd9\u6837\u200b\u5f15\u7528\u200b\u56fe\u7247\u200b
![](images/Build_this_website/2023-07-02-02-35-34.png#pic)\n
\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5728\u200b\u7ed3\u5c3e\u200b\u52a0\u4e0a\u200b#pic\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5bf9\u200b\u56fe\u7247\u200b\u5e94\u7528\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\u4e86\u200b\uff0c\u200b\u6211\u7528\u200b\u7684\u200b\u662f\u200b\u5706\u89d2\u200b+\u200b\u9634\u5f71\u200b.\u200b\u8fd9\u4e00\u200b\u6dfb\u52a0\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u53ef\u4ee5\u200b\u7528\u200b VSCode \u200b\u63d2\u4ef6\u200b Paste Image \u200b\u81ea\u52a8\u200b\u5b9e\u73b0\u200b\uff0c\u200b\u6211\u200b\u5728\u200b\u8fd9\u91cc\u200b\u6709\u200b\u4ecb\u7ecd\u200b"},{"location":"Build_this_website/#32-javascript","title":"3.2 \u200b\u6dfb\u52a0\u200b\u989d\u5916\u200b\u7684\u200b javascript","text":"\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u65b0\u589e\u200b\u7684\u200b js \u200b\u6587\u4ef6\u200b\u653e\u7f6e\u200b\u4e8e\u200bdocs/js/
\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u6bcf\u4e2a\u200b js \u200b\u6587\u4ef6\u200b\u90fd\u200b\u8981\u200b\u5728\u200bmkdocs.yml
\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a
extra_javascript:\n - js/extra.js\n
\u200b\u8fd9\u91cc\u200b\u7684\u200b url \u200b\u53ef\u4ee5\u200b\u6307\u5411\u200b\u7f51\u7edc\u200b\u4e0a\u200b\u7684\u200b js \u200b\u6587\u4ef6\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u662f\u200b\u672c\u5730\u200b\u7684\u200b \u200b\u6211\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b js extra.jsmathjax.js document.querySelectorAll('.zoom').forEach(item => {\n item.addEventListener('click'\uff0c function () {\n this.classList.toggle('image-zoom-large');\n })\n});\n
window.MathJax = {\n tex: {\n inlineMath: [[\"\\\\(\"\uff0c \"\\\\)\"]]\uff0c\n displayMath: [[\"\\\\[\"\uff0c \"\\\\]\"]]\uff0c\n processEscapes: true\uff0c\n processEnvironments: true\n }\uff0c\n options: {\n ignoreHtmlClass: \".*|\"\uff0c\n processHtmlClass: \"arithmatex\"\n }\n};\n\ndocument$.subscribe(() => {\n MathJax.typesetPromise()\n})\n
=== tablesort.js
document$.subscribe(function() {\n var tables = document.querySelectorAll(\"article table:not([class])\")\n tables.forEach(function(table) {\n new Tablesort(table)\n })\n})\n
"},{"location":"Build_this_website/#33","title":"3.3 \u200b\u6dfb\u52a0\u200b\u5168\u5c40\u200b\u811a\u6ce8","text":"\u200b\u6240\u6709\u200b\u811a\u6ce8\u200b\u90fd\u200b\u653e\u5728\u200bincludes/abbreviatioins.md
\uff08\u200b\u5728\u200b docs \u200b\u4e4b\u5916\u200b\uff09\uff0c\u200b\u683c\u5f0f\u200b\u4e3a\u200b\uff1a
*[HTML]: Hyper Text Markup Language\n*[W3C]: World Wide Web Consortium\n
\u200b\u5728\u200bmkdocs.yml
\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a
markdown_extensions:\n - abbr\n - attr_list\n - pymdownx.snippets\n - pymdownx.snippets:\n auto_append:\n - includes/abbreviations.md\n
\u200b\u6548\u679c\u56fe"},{"location":"Build_this_website/#34","title":"3.4 \u200b\u542f\u7528\u200b\u7f51\u7ad9\u200b\u6570\u636e\u5206\u6790","text":"\u200b\u5728\u200bmkdocs.yml
\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a
extra:\n analytics:\n provider: google\n property: G-XXXXXXXXXX\n
\u200b\u968f\u540e\u200b\u524d\u5f80\u200b Google Analytics \u200b\u6ce8\u518c\u200b\u4f7f\u7528\u200b\u5373\u53ef\u200b.
\u200b\u542f\u7528\u200b\u8fd9\u9879\u200b\u529f\u80fd\u200b\u9700\u8981\u200b\u5411\u200b\u6bcf\u4e2a\u200b\u7f51\u9875\u200b\u6ce8\u5165\u200b google code
"},{"location":"Build_this_website/#35","title":"3.5 \u200b\u542f\u7528\u200b\u6700\u65b0\u66f4\u65b0\u200b\u65f6\u95f4","text":"\u200b\u5b89\u88c5\u200b\u5e93\u200b\uff1a
pip install mkdocs-git-revision-date-localized-plugin\n
\u200b\u6dfb\u52a0\u200b\u8bbe\u7f6e\u200b\u5230\u200bmkdocs.yml
\uff1a plugins:\n - git-revision-date-localized:\n enable_creation_date: true\n
"},{"location":"Build_this_website/#36","title":"3.6 \u200b\u542f\u7528\u200b\u8bc4\u8bba\u200b\u533a","text":"\u200b\u539f\u200b\u6587\u6863\u200b\u4ecb\u7ecd\u200b\u7684\u200b\u5f88\u200b\u6e05\u695a\u200b\u4e86\u200b
"},{"location":"Build_this_website/#37","title":"3.7 \u200b\u4ece\u6587\u4ef6\u200b\u8bfb\u53d6\u200b\u8868\u683c","text":"\u200b\u53c2\u8003\u200b\u539f\u200b\u6587\u6863\u200b
"},{"location":"Build_this_website/#38-emojis-icons","title":"3.8 \u200b\u4f7f\u7528\u200b emojis \u200b\u548c\u200b icons","text":"\u200b\u8fd9\u4e2a\u200b\u94fe\u63a5\u200b\u53ef\u4ee5\u200b\u641c\u7d22\u200b emoji
"},{"location":"Build_this_website/#39","title":"3.9 \u200b\u56fe\u7247\u200b\u653e\u5927","text":"\u200b\u5148\u200b\u5b89\u88c5\u200b\u63d2\u4ef6\u200b\uff1a
pip install mkdocs-glightbox\n
\u200b\u7136\u540e\u200b\u52a0\u5165\u200b\u914d\u7f6e\u200b\uff1a
plugins:\n - glightbox\n
"},{"location":"Build_this_website/#310-blog","title":"3.10 \u200b\u542f\u7528\u200b blog","text":"\u200b\u5b98\u65b9\u200b\u7684\u200b\u8d77\u6b65\u200b\u6307\u5bfc\u200b\u5f88\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u7167\u7740\u200b\u8d70\u200b\u5c31\u200b\u597d\u200b\uff01
"},{"location":"Build_this_website/#311","title":"3.11 \u200b\u6211\u200b\u7684\u200b\u6240\u6709\u200b\u914d\u7f6e","text":"\u200b\u4ee5\u4e0b\u200b\u9644\u4e0a\u200b\u6211\u200b\u7684\u200bmkdocs.yml
\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5df2\u7ecf\u200b\u5220\u53bb\u200b\u4e86\u200b\u5bfc\u822a\u200b\u90e8\u5206\u200b\uff0c\u200b\u6240\u4ee5\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u590d\u5236\u200b\u4f7f\u7528\u200b\uff1a
# Project information\nsite_name: Stormckey's Page\nsite_url: https://stormckey.github.io/\nsite_author: Stormckey\n# Repository\nrepo_name: stormckey\nrepo_url: https://github.com/stormckey/stormckey.github.io\n\n# The path to edit the content\nedit_uri: edit/main/docs/\n\n# Copyright\ncopyright: Copyright © stormckey\n\ntheme:\nname: material\ncustom_dir: overrides\nfavicon: cat.svg # put in /docs/cat.svg\nfont:\n text: Roboto Mono\n code: Roboto Mono\nfeatures:\n - content.action.edit # enable the button to edit the source code of the page\n - content.action.view # enable the button to view the source code of the page\n - content.code.copy # enable the button to copy the code block\n - navigation.tabs # enable the row of tabs under the title\n # - navigation.sections # unfold the secondary titles to the left\n # - navigation.footer # enable the next and previous button\n - navigation.indexes # the index page will be incoperate into the tab\n - search.suggest # auto suggestion\n - search.highlight # highlight when search\n - search.share # enable share when search\n - navigation.instant # optimize loading\n - navigation.tracking # URL will change as we scroll down\n - toc.follow # the sidebar will scroll automatically following the user\n - navigation.top # button to back to the top\npalette: # my customized schema\n - media: \"(prefers-color-scheme: light)\"\n scheme: default\n primary: indigo\n accent: indigo\n toggle:\n icon: material/brightness-7\n name: Switch to dark mode\n - media: \"(prefers-color-scheme: dark)\"\n scheme: slate\n toggle:\n icon: material/brightness-4\n name: Switch to light mode\nicon:\n repo: fontawesome/brands/github-alt # the github cat icon in the topright\n logo: material/cat # the cat icon in the topleft\n\nplugins:\n- search\n# - social: #social card\n# enabled: !ENV [CI\uff0c false]\n# cards: !ENV [CI\uff0c false]\n# cards_font: Noto Sans SC\n- git-revision-date-localized:\n enabled: !ENV [CI\uff0c false]\n enable_creation_date: true\n- offline: # enable searching offline\n enabled: !ENV [OFFLINE\uff0c false]\n- table-reader\n- changelog #see https://github.com/TonyCrane/mkdocs-changelog-plugin\n- tooltips\n- statistics\n- glightbox\n\n\n\nmarkdown_extensions:\n#enable admonition\n- admonition\n- pymdownx.details # enable ??? admonition\n- pymdownx.betterem # better emphasize\n- pymdownx.superfences: # allow nest codes\n custom_fences:\n - name: mermaid\n class: mermaid\n format: !!python/name:pymdownx.superfences.fence_code_format\n#enable code config\n- pymdownx.inlinehilite #inline code highlight\n- pymdownx.snippets: #enable to embed arbitrary files\n auto_append:\n - includes/abbreviations.md\n- pymdownx.highlight:\n linenums: true # enable line display\n line_spans: __span\n pygments_lang_class: true # detect language automatically\n anchor_linenums: true # offer line anchor\n- pymdownx.keys # render key symbols\n- pymdownx.smartsymbols\n#enable button\n- attr_list\n#enable content tabs\n- pymdownx.tabbed:\n alternate_style: true\n- tables\n#daigrams are not enabled\n- footnotes\n#enable emoji\n- pymdownx.emoji:\n emoji_index: !!python/name:materialx.emoji.twemoji\n emoji_generator: !!python/name:materialx.emoji.to_svg\n options:\n custom_icons:\n - \"overrides/.icons\"\n#image alignment\n- md_in_html\n#better list\n- def_list\n- pymdownx.tasklist:\n custom_checkbox: true\n#abbr\n- abbr\n#enable math syntax\n- pymdownx.arithmatex:\n generic: true\n#enable table of content\n- toc:\n permalink: true\n permalink_title: Anchor link to this section for reference\n- pymdownx.caret\n- pymdownx.mark\n- pymdownx.tilde\n- pymdownx.critic\n\nextra_javascript:\n- javascripts/extra.js\n- javascripts/mathjax.js\n- https://unpkg.com/tablesort@5.3.0/dist/tablesort.min.js # enable table sort\n- javascripts/tablesort.js # enable table sort\n- https://polyfill.io/v3/polyfill.min.js?features=es6\n- https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js\n\nextra:\nsocial:\n - icon: fontawesome/brands/github # icons to the right bottom of the page\n link: https://github.com/stormckey\n - icon: fontawesome/solid/paper-plane # icons to the right bottom of the page\n link: mailto:sortygraph@gmail.com\nalternate: # change the language\uff0c the link should point to different directories\n - name: English\n link: /\n lang: en\n - name: \u200b\u4e2d\u6587\u200b\n link: /\n lang: zh\nconsent:\n title: Cookie consent\n description: >-\n We use cookies to recognize your repeated visits and preferences\uff0c as well\n as to measure the effectiveness of our documentation and whether users\n find what they're searching for. With your consent\uff0c you're helping us to\n make our documentation better.\nanalytics:\n provider: google\n property: G-XXXXXXXXXX\n\nextra_css:\n- css/hint.min.css\n- css/extra.css\n
"},{"location":"Build_this_website/#3x","title":"3.x \u200b\u66f4\u200b\u591a\u200b\u7279\u6027\u200b\uff08\u200b\u6211\u200b\u8fd8\u200b\u4e0d\u4f1a\u200b\u7528\u200b\u4f46\u200b\u8003\u8651\u200b\u542f\u7528\u200b\u7684\u200b\uff09","text":"\u200b\u7ea6\u200b 308 \u200b\u4e2a\u200b\u5b57\u200b 25 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
Abstraction
\u200b\u6b64\u200b\u9875\u9762\u200b\u5c06\u4f1a\u200b\u5217\u51fa\u200b\u672c\u200b\u7ad9\u70b9\u200b\u76ee\u524d\u200b\u652f\u6301\u200b\u7684\u200b\u6240\u6709\u200b\u663e\u793a\u200b\u6837\u5f0f\u200b \u200b\u8bb8\u591a\u200b\u90fd\u200b\u6765\u81ea\u200b Material for Mkdocs
int main(){\n printf(\"Hello World\");\n printf(\"!/n\");\n}\n
#include <iostream>\nusing namespace std;\n
The range()
function is used to generate a sequence of numbers.
site/\n.DS_Store\n*.docx\n*.pdf\nsrc/*\n*pycache*\n
col1 col2 col3 r1c1 r1c2 r1c3 r2c1 r2c2 r2c3 r3c1 r3c2 r3c3 graph LR\n A[What to eat?] --> B{Hesitate};\n B -->|KFC| C[Hmm...];\n C --> D[Bad!];\n D --> B;\n B ---->|Mcdonald's| E[Yay!];
\u200b\u6587\u6863\u200b\u4ecb\u7ecd\u200b\u4e86\u200b\u6240\u6709\u200b\u652f\u6301\u200b\u7684\u200b\u56fe\u200b
my title
something
no title
my titlesomething
no inline
Now it suppports Note\uff0cAbstract\uff0cInfo\uff0cTip\uff0cSuccess\uff0cQuestion\uff0cWarining\uff0cFailure\uff0cDanger\uff0cBug\uff0cExample\uff0cQuote
inline
somthing
Subscribe to our newsletter
Subscribe to our newsletter
CC++#include <stdio.h>\n\nint main(void) {\n printf(\"Hello world!\\n\");\n return 0;\n}\n
#include <iostream>\n\nint main(void) {\n std::cout << \"Hello world!\" << std::endl;\n return 0;\n}\n
Note
Search for emojis here
Definition
Define sth
Text can be deleted and replacement text added. This can also be combined into onea single operation. Highlighting is also possible and comments can be added inline.
Formatting can also be applied to blocks by putting the opening and closing tags on separate lines and adding new lines between the tags and the content.
This was deleted
H2O
Ctrl+Alt+Del
Image caption
\u3010\u200b\u9f20\u6807\u60ac\u505c\u200b\uff01\u3011{\ud83d\ude0b}
Hover me
The HTML specification is maintained by the W3C.
Lorem ipsum dolor sit amet
Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus tellus non sem sollicitudin\uff0c quis rutrum leo facilisis.
Cras arcu libero
Aliquam metus eros\uff0c pretium sed nulla venenatis\uff0c faucibus auctor ex. Proin ut eros sed sapien ullamcorper consequat. Nunc ligula ante.
Duis mollis est eget nibh volutpat\uff0c fermentum aliquet dui mollis. Nam vulputate tincidunt fringilla. Nullam dignissim ultrices urna non auctor.
Method DescriptionGET
Fetch resource PUT
Update resource DELETE
Delete resource"},{"location":"changelog/","title":"\u66f4\u65b0\u200b\u8bb0\u5f55","text":""},{"location":"changelog/#2023","title":"2023","text":"2023-11-28\u00b6 \u200b\u4f7f\u7528\u200b\u4e86\u200bmeta-manager\u200b\u63d2\u4ef6\u200b,\u200b\u7b80\u5316\u200b\u4e86\u200bmetadata\u200b\u7684\u200b\u4f7f\u7528\u200b
Blog > PL > Y-combinator
\u200b\u65b0\u589e\u200b\u4e86\u200bReference\u200b\u6837\u5f0f\u200b
2023-11-26\u00b6\u200b\u65b0\u589e\u200b\u4e86\u200bDefinition\u200b\u6837\u5f0f\u200b
\u200b\u542f\u7528\u200bblog\u200b\u63d2\u4ef6\u200b
\u200b\u4f7f\u7528\u200bPangu.vim\u200b\u63d2\u4ef6\u200b\u8fdb\u884c\u200b\u6587\u6863\u200b\u683c\u5f0f\u5316\u200b
Blog > Cool > \u200b\u7528\u200bVim\u200b\u6279\u91cf\u200b\u683c\u5f0f\u5316\u200b
2023-11-25\u00b6\u200b\u91cd\u6784\u200b\u4e86\u200bBlog\u200b\u7684\u200b\u5c42\u7ea7\u200b,\u200b\u52a0\u5165\u200b\u4e86\u200bLab\u200b\u90e8\u5206\u200b
\u200b\u52a0\u5165\u200b\u4e86\u200b\u8ba1\u7f51\u200b\u5b9e\u9a8c\u200b\u6307\u5357\u200b
2023-11-20\u00b6\u200b\u65b0\u589e\u200b\u4e86\u200b\u6570\u636e\u200b\u5efa\u6a21\u200b\u4e0e\u200b\u5206\u6790\u200b\u7684\u200b\u7b14\u8bb0\u200b
2023-11-07\u00b6\u200b\u597d\u200b\u670b\u53cb\u200bPeiPei\u200b\u6765\u200b\u5bc4\u5c45\u200b\u4e86\u200b!
2023-07-08\u00b6\u200b\u66f4\u6362\u200b\u4e86\u200b\u66f4\u65b0\u200b\u65e5\u5fd7\u200b\u7684\u200b\u8272\u5f69\u200b
\u200b\u79fb\u9664\u200bDS\u200b\u7b14\u8bb0\u200b
2023-07-04\u00b6\u200b\u6da6\u8272\u200b\u4e86\u200b\u535a\u5ba2\u200b\u548c\u200b\u7b14\u8bb0\u200b\u7684\u200b\u5185\u5bb9\u200b
Home > Build_this_page
\u200b\u91cd\u6784\u200b\u4e86\u200b\u7f51\u7ad9\u200b\u7684\u200b\u7ed3\u6784\u200b\uff0c\u200b\u542f\u7528\u200b\u4e86\u200b\u65b0\u200b\u7684\u200bmaterial\u200b\u529f\u80fd\u200b
Blog > docker_minisql
2023-04-06\u00b6Blog > \u200b\u5728\u200bMac\u200b\u4e0a\u200b\u4f7f\u7528\u200bVSCode\u200b\u8fdb\u884c\u200bC/C++\u200b\u8c03\u8bd5\u200b
2023-04-01\u00b6Blog > \u200b\u6211\u200b\u7684\u200bCLI\u200b\u5de5\u5177\u200b
2023-03-30\u00b6Note > \u200b\u8ba1\u7ec4\u200b\u62fe\u9057\u200b
2023-03-29\u00b6Blog > \u200b\u542f\u7528\u200bchatGPT-academic
2023-03-27\u00b6Note > Missiing Semester > Commandline Environment
2023-03-23\u00b6\u200b\u91cd\u6784\u200b\u4e86\u200b\u5168\u7ad9\u200b\u7684\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b\uff0c\u200b\u73b0\u5728\u200b\u662f\u200b\u9ed8\u8ba4\u200b\u5706\u89d2\u200b\u77e9\u5f62\u200b\u52a0\u200b\u9634\u5f71\u200b
Blog > \u200b\u5728\u200bVSCode\u200b\u4e0b\u200b\u7f16\u5199\u200bMarkdown
Blog > \u200b\u914d\u7f6e\u200bGithub\u200b\u4e2a\u4eba\u200bProfile
2023-03-22\u00b6Blog > \u200b\u7528\u200bssh\u200b\u8fde\u63a5\u200b\u540c\u4e00\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u7684\u200bwsl
Blog > wsl\u200b\u7ec8\u7aef\u200b\u914d\u7f6e\u200b
2023-03-21\u00b6Blog > wsl\u200b\u4e0a\u200b\u542f\u7528\u200bcuda
Blog > VSCode\u200b\u7ec8\u7aef\u200b\u4e0a\u200b\u65e0\u6cd5\u200b\u542f\u7528\u200bconda\u200b\u865a\u62df\u73af\u5883\u200b
2023-03-20\u00b6Blog > zsh\u200b\u4e2d\u200b\u7684\u200b\u53c2\u6570\u4f20\u9012\u200b
2023-03-18\u00b6Home > \u200b\u6700\u8fd1\u200b\u66f4\u65b0\u200b
\u200b\u4fee\u6539\u200b\u4e86\u200b\u7f51\u7ad9\u200b\u7684\u200b\u8272\u5f69\u200b,\u200b\u4f7f\u7528\u200b\u4e86\u200b\u66f4\u200b\u591a\u6837\u200b\u7684\u200b\u56fe\u6807\u200b
Research > Diffusion > DDPM
Research > Diffusion > DDIM
"},{"location":"Note/","title":"\u7b14\u8bb0\u672c\u200b\uff01","text":"\u200b\u5927\u5b66\u200b\u671f\u95f4\u200b\u7684\u200b\u7b14\u8bb0\u200b\u5408\u96c6\u200b
\u200b\u5176\u5b9e\u200b\u6211\u200b\u4e00\u76f4\u200b\u4ee5\u6765\u200b\u90fd\u200b\u4e0d\u600e\u4e48\u200b\u8bb0\u7b14\u8bb0\u200b\uff0c\u200b\u4f46\u200b\u4e4b\u524d\u200b\u51e0\u6b21\u200b\u6570\u5b66\u8bfe\u200b\u4e0d\u200b\u8bb0\u7b14\u8bb0\u200b\u5dee\u70b9\u200b\u66b4\u6bd9\u200b\u4e86\u200b\uff0c\u200b\u6240\u4ee5\u200b\u504f\u200b\u6570\u5b66\u200b\u7684\u200b\u8bfe\u200b\u8fd8\u662f\u200b\u4fdd\u7559\u200b\u4e86\u200b\u8bb0\u7b14\u8bb0\u200b\u7684\u200b\u4e60\u60ef\u200b\u7684\u200b.
\u200b\u53e6\u5916\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u671f\u672b\u200b\u590d\u4e60\u200b\u4ea7\u751f\u200b\u7684\u200b\u7b14\u8bb0\u200b\uff0c\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u6613\u200b\u5fd8\u200b\u77e5\u8bc6\u200b\u7684\u200b\u6574\u7406\u200b
"},{"location":"Note/CO_review/","title":"\u8ba1\u7b97\u673a\u200b\u7ec4\u6210","text":"\u200b\u7ea6\u200b 431 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
\u200b\u6781\u5176\u200b\u7b80\u7565\u200b\uff0c\u200b\u53ea\u6709\u200b\u90e8\u5206\u200b\u6613\u200b\u5fd8\u200b\u3001\u200b\u6216\u200b\u4e0d\u200b\u90a3\u4e48\u200b\u663e\u7136\u200b\u7684\u200b\u77e5\u8bc6\u70b9\u200b\uff08\u200b\u62ff\u6765\u200b\u67e5\u8868\u200b\uff09\uff0c\u200b\u6240\u4ee5\u200b\u796d\u7956\u200b\u53ea\u7528\u200b\u4e86\u200b\u4e00\u9875\u200b
\u200b\u8bb8\u591a\u200b\u5185\u5bb9\u200b\u6458\u81ea\u200b\u54b8\u9c7c\u200b\u6684\u200b\u7684\u200b\u4ee3\u7801\u200b\u7a7a\u95f4\u200b
\u200b\u8fd9\u91cc\u200b\u662f\u200b\u8bfe\u672c\u200b\u4f5c\u4e1a\u200b\u7b54\u6848\u200b
"},{"location":"Note/CO_review/#ch2-instructions","title":"Ch2 Instructions","text":"PC + offset
\u200b\u800c\u200b\u975e\u200b PC + 4 + offset
bgeu
\u200b\u6765\u200b\u68c0\u6d4b\u200b\u8d8a\u754c\u200b\uff08\u200b\u5c0f\u4e8e\u200b\u96f6\u200b\u6216\u8005\u200b\u5927\u4e8e\u200b\u67d0\u4e2a\u200b\u6570\u200b\uff09lui
\u200b\u52a0\u8f7d\u200b\u4e86\u200b\u7acb\u5373\u200b\u6570\u200b\u7684\u200b\u9ad8\u200b 20 \u200b\u4f4d\u540e\u200b\uff0c\u200b\u7528\u200baadi
\u200b\u52a0\u8f7d\u200b\u4f4e\u200b 12 \u200b\u4f4d\u200b\uff0c\u200b\u82e5\u56e0\u200b\u7b26\u53f7\u200b\u6269\u5c55\u200b\u5bfc\u81f4\u200b\u8fdb\u4f4d\u200b\uff0c\u200b\u53ea\u8981\u200b\u591a\u52a0\u200b 1000 \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u62b5\u6d88\u200b FFFFF000 \u200b\u7684\u200b\u5f71\u54cd\u200b\u200b\u8fd8\u6709\u200b\u51e0\u5f20\u200b\u5e38\u7528\u200b\u8868\u200b\uff1a
\uff08\u200b\u4e0b\u56fe\u200b\u91cc\u200b\u7684\u200b j imm \u200b\u8981\u200b\u6539\u6210\u200b PC+imm\uff09
"},{"location":"Note/CO_review/#ch3-arithmetic","title":"Ch3 Arithmetic","text":"\u200b\u7ea6\u200b 424 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
1.
B \u200b\u6811\u200b\u5229\u7528\u200b\u4e86\u200b\u5c40\u90e8\u6027\u200b\u6765\u200b\u52a0\u901f\u200b\u8bbf\u95ee\u200b\n\nB \u200b\u6811\u200b\u7684\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u662f\u200b\u6307\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u7a7a\u200b\u5b69\u5b50\u200b\n\n![](image/B-Tree_B+Tree/media/image1.png)\n
2.
\u200b\u5bf9\u200b B \u200b\u6811\u200b\u7684\u200b\u8282\u70b9\u200b\u5173\u952e\u7801\u200b\u6570\u200b\u7ea6\u5b9a\u200b\uff0c\u200b\u6ce8\u610f\u200b\u4e0b\u9650\u200b\u662f\u200b\u4e0a\u200b\u53d6\u6574\u200b\uff0c\u200b\u53ef\u7528\u200b\u4e0a\u200b\u4e0b\u9650\u200b\u547d\u540d\u200b\n\u200b\u5982\u200b\uff083\uff0c5\uff09\u200b\u6811\u200b/5 \u200b\u9636\u200b B \u200b\u6811\u200b\uff0c5 \u200b\u9636\u200b B \u200b\u6570\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6700\u200b\u591a\u200b 4 \u200b\u4e2a\u200b\u5173\u952e\u7801\u200b\n\n![](image/B-Tree_B+Tree/media/image2.png)\n
3.
B \u200b\u6811\u200b\u5728\u200b\u5185\u5b58\u200b\u4e2d\u200b\u5b9e\u9645\u200b\u7684\u200b\u5b58\u50a8\u200b\u5f62\u5f0f\u200b\u4e3a\u200b\n\n![](image/B-Tree_B+Tree/media/image3.png)\n
4.
\u200b\u6ce8\u610f\u200b \u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u6570\u200b=\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u6570\u200b+1\n\n![](image/B-Tree_B+Tree/media/image4.png)\n\n\n\u200b\u4e5f\u200b\u53ef\u200b\u7406\u89e3\u200b\u4e3a\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u5bf9\u5e94\u200b N \u200b\u79cd\u200b\u6210\u529f\u200b\uff0c\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u5c31\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b N+1 \u200b\u79cd\u200b\u5931\u8d25\u200b\u7684\u200b\u60c5\u51b5\u200b\n
5.
B \u200b\u6811\u200b\u7684\u200b\u9ad8\u5ea6\u200b\u5c31\u200b\u5728\u200b\u3001\\thetalogmn\n\n![](image/B-Tree_B+Tree/media/image5.png)\n
6.
B \u200b\u6570\u200b\u7684\u200b\u63d2\u5165\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u81f4\u200b\u8282\u70b9\u200b key \u200b\u8fc7\u591a\u200b\uff0c\u200b\u5219\u200b\u9700\u8981\u200b\u5206\u88c2\u200b\uff0c\u200b\u5e76\u200b\u628a\u200b\u4e2d\u70b9\u200b\u4e0a\u79fb\u200b\n\n![](image/B-Tree_B+Tree/media/image6.png)\n\n\n\u200b\u5982\u679c\u200b\u5206\u88c2\u200b\u5230\u200b\u6839\u200b \u200b\u90a3\u4e48\u200b\u9ad8\u5ea6\u200b\u52a0\u200b 1\n
7.
B \u200b\u6811\u200b\u7684\u200b\u5220\u9664\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u81f4\u200b\u4e0b\u200b\u8d8a\u754c\u200b\uff0c\u200b\u4f46\u51e1\u200b\u5de6\u53f3\u200b\u6709\u200b\u4e00\u4e2a\u200b\u5144\u5f1f\u200b\u6709\u200b\u591a\u200b\u7684\u200b\uff08\u200b\u501f\u51fa\u200b\u540e\u200b\u4e0d\u4e0b\u200b\u6ea2\u51fa\u200b\uff09\uff0c\u200b\u65cb\u8f6c\u200b\n\n![](image/B-Tree_B+Tree/media/image7.png)\n\n\n\u200b\u5982\u679c\u200b\u6ca1\u6709\u200b\uff0c \u200b\u4ece\u200b\u4e0a\u9762\u200b\u62fd\u200b\u4e00\u4e2a\u200b\u4e0b\u6765\u200b\uff0c\u200b\u4e09\u200b\u90e8\u5206\u200b\u4e00\u8d77\u200b\u5408\u5e76\u200b\n\n![](image/B-Tree_B+Tree/media/image8.png)\n\n\n\u200b\u5408\u5e76\u200b\u5230\u200b\u6839\u200b\uff0c\u200b\u5c31\u200b\u628a\u200b\u7a7a\u6839\u200b\u5220\u9664\u200b\uff0c\u200b\u81f3\u6b64\u200b\u9ad8\u5ea6\u200b\u51cf\u4e00\u200b\n
8.
B \u200b\u6811\u200b\u628a\u200b\u6570\u636e\u200b\u5b58\u5728\u200b\u8282\u70b9\u200b\u4e2d\u200b\uff0c\u200b\u6bd4\u8d77\u200b B+\u200b\u6811\u200b\u5b58\u5728\u200b\u6839\u4e2d\u200b\uff0cB \u200b\u9664\u4e86\u200b key \u200b\u591a\u200b\u4e86\u200b\u4e2a\u200b\u6307\u9488\u200b\u7684\u200b\u5927\u5c0f\u200b.\u200b\u9664\u53bb\u200b\u6307\u9488\u200b\u7d22\u5f15\u200b\u53ef\u4ee5\u200b\u5bb9\u7eb3\u200b\u5bbd\u200b\u6241\u200b\u7684\u200b\u6811\u200b.\n\n\u200b\u53e6\u5916\u200b\u52a0\u5165\u200b\u8981\u200b\u67e5\u627e\u200b\u67d0\u4e00\u200b\u533a\u95f4\u200b\u7684\u200b\u70b9\u200b\u6bd4\u5982\u200b 20-60\uff0c\u200b\u9700\u8981\u200b\u4f9d\u6b21\u200b\u641c\u7d22\u200b\uff0c\u200b\u5f88\u200b\u9ebb\u70e6\u200b\n\n\u200b\u5f15\u5165\u200b B+\u200b\u6811\u200b\uff1a\n\n![](image/B-Tree_B+Tree/media/image9.png)\n\n\n\u200b\u7d22\u5f15\u200b\u503c\u200b\uff08\u200b\u5185\u90e8\u200b\u70b9\u200b\uff09\u200b\u4e0d\u200b\u91cd\u590d\u200b\uff1b\n\n\u200b\u4e0d\u518d\u200b\u9700\u8981\u200b B \u200b\u6811\u200b\u7684\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\uff1b\n\n\u200b\u53f6\u5b50\u200b\u5757\u200b\u5355\u5411\u200b\u94fe\u8868\u200b\uff0c\u200b\u65b9\u4fbf\u200b\u67e5\u627e\u200b\u67d0\u4e2a\u200b\u8303\u56f4\u200b\u5185\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u4e0d\u5fc5\u200b\u591a\u904d\u200b\u4ece\u6839\u200b\u51fa\u53d1\u200b.\n\n\u200b\u7d22\u5f15\u200b\u503c\u200b\uff08\u200b\u5185\u90e8\u200b\u70b9\u200b\u7684\u200b key\uff09\u200b\u5b58\u200b\u7684\u200b\u662f\u200b\u53f3\u5b50\u200b\u6811\u200b\u7684\u200b\u6700\u5c0f\u200b\u53f6\u5b50\u200b\u8282\u70b9\u200b\u7684\u200b\u503c\u200b.\n\n\u200b\u5982\u679c\u200b\u6709\u200b\u78c1\u76d8\u200b\u6307\u9488\u200b\uff0c\u200b\u4e5f\u200b\u90fd\u200b\u5b58\u5728\u200b\u6709\u200b\u8282\u70b9\u200b.\n\n\u200b\u63d2\u5165\u200b\u5220\u9664\u200b\u4e0e\u200b B \u200b\u6811\u200b\u76f8\u4eff\u200b.\u200b\u4f46\u200b\u90fd\u200b\u8981\u200b\u6df1\u5165\u200b\u5230\u200b\u53f6\u200b\u8282\u70b9\u200b.\n
"},{"location":"Note/ADS/BST_AVL_Splay/","title":"BST AVL Splay","text":"\u200b\u7ea6\u200b 287 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
\u200b\u6211\u4eec\u200b\u5728\u200b\u8c03\u7528\u200b search \u200b\u65f6\u4f1a\u200b\u591a\u200b\u4f20\u9012\u200b\u4e00\u4e2a\u200b\u5f15\u7528\u200b\u7684\u200b\u53c2\u6570\u200b hot \u200b\u5176\u200b\u610f\u4e49\u200b\u5982\u4e0b\u200b\uff1a
\u200b\u8fd9\u200b\u6709\u5229\u4e8e\u200b\u6211\u4eec\u200b\u5b9e\u73b0\u200b insert delete
2.
BST \u200b\u7684\u200b\u5e73\u5747\u200b\u9ad8\u5ea6\u200b\uff0c\u200b\u6709\u200b\u4e24\u79cd\u200b\u8ba1\u7b97\u200b\u65b9\u5f0f\u200b\n\n 1. \u200b\u968f\u673a\u200b\u7ec4\u6210\u200b\uff1a\u200b\u8ba1\u7b97\u200b\u4e00\u5171\u200b\u6709\u200b\u591a\u5c11\u200b\u79cd\u200b\u53ef\u80fd\u200b\u7684\u200b\u62d3\u6251\u200b\u7ed3\u6784\u200b \u200b\u6839\u53f7\u200b n Catalan\uff08N\uff09\u200b\u79cd\u200b\u7ed3\u6784\u200b\n\n 2. \u200b\u968f\u673a\u200b\u751f\u6210\u200b\uff1a\u200b\u8ba1\u7b97\u200b\u4e00\u5171\u200b\u6709\u200b\u591a\u5c11\u200b\u79cd\u200b\u53ef\u80fd\u200b\u7684\u200b\u8f93\u5165\u200b\u5e8f\u5217\u200b ln N N\uff01\u200b\u79cd\u200b\u5e8f\u5217\u200b\n\n![](image/BST_AVL_Splay/media/image2.png)\n\n\n\u200b\u968f\u673a\u200b\u7ec4\u6210\u200b\u66f4\u52a0\u200b\u53ef\u4fe1\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u968f\u673a\u200b\u751f\u6210\u200b\u4f1a\u200b\u989d\u5916\u200b\u589e\u5927\u200b 213 \u200b\u548c\u200b 231 \u200b\u8fd9\u4e00\u8f83\u200b\u4f4e\u6811\u200b\u7684\u200b\u6743\u91cd\u200b\uff0c\u200b\u91cd\u590d\u200b\u4e86\u200b\n
3.\u200b\u7b49\u4ef7\u200b BST
\u200b\u4e0a\u4e0b\u200b\u5177\u6709\u200b\u4e00\u5b9a\u200b\u7684\u200b\u7075\u6d3b\u200b\u5ea6\u200b\n\n![](image/BST_AVL_Splay/media/image3.png)\n\n\n![](image/BST_AVL_Splay/media/image4.png)\n
4.
![](image/BST_AVL_Splay/media/image5.png)\n\n\n\u200b\u5de6\u200b\u5206\u53c9\u200b\u662f\u200b zig \u200b\u53f3\u200b\u5206\u53c9\u200b\u662f\u200b zag\uff0c\u200b\u65cb\u8f6c\u200b\u53ef\u4ee5\u200b\u4fdd\u6301\u200b BST \u200b\u7684\u200b\u7b49\u4ef7\u200b\n
5.
AVL \u200b\u7684\u200b\u63d2\u5165\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u5bfc\u81f4\u200b\u4e00\u7cfb\u5217\u200b\u7956\u5148\u200b\u7684\u200b\u5931\u8861\u200b\uff0c\u200b\u4f46\u662f\u200b\u5220\u9664\u200b\u53ea\u200b\u53ef\u80fd\u200b\u5bfc\u81f4\u200b\u67d0\u200b\u4e00\u4e2a\u200b\u7956\u5148\u200b\u7684\u200b\u5931\u8861\u200b\n
6.
![](image/BST_AVL_Splay/media/image6.png)\n\n\n\u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u627e\u5230\u200b\u7b2c\u4e00\u4e2a\u200b\u5931\u8861\u200b\u70b9\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5faa\u73af\u200b\u8d70\u200b\u554a\u200b\u8def\u5f84\u200b\u53ea\u8981\u200b\u5f80\u4e0b\u200b\u627e\u200b\u4e24\u6b21\u200b\u9ad8\u5ea6\u200b\u6700\u9ad8\u200b\u7684\u200b\u5b69\u5b50\u200b\u5c31\u200b\u597d\u200b\n
7.
\u200b\u4f38\u5c55\u200b\u6811\u200b\u7684\u200b\u5220\u9664\u200b\u548c\u200b\u63d2\u5165\u200b\uff0c\u200b\u7531\u4e8e\u200b 1 \u200b\u90fd\u200b\u9700\u8981\u200b\u7528\u200b search \u200b\u64cd\u4f5c\u200b\uff0csearch \u200b\u5b8c\u540e\u200b self/hot \u200b\u4f1a\u200b\u6210\u4e3a\u200b\u65b0\u200b\u7684\u200b\u6839\u200b\u8282\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u63d2\u5165\u200b\u5220\u9664\u200b\u53ea\u8981\u200b\u5728\u200b\u641c\u7d22\u200b\u5b8c\u540e\u200b\u5bf9\u200b\u6839\u200b\u64cd\u4f5c\u200b\u5373\u53ef\u200b.\n\n![](image/BST_AVL_Splay/media/image7.png)\n
"},{"location":"Note/ADS/Heap/","title":"\u4f18\u5148\u7ea7\u200b\u961f\u5217\u200b/\u200b\u5806\u200b\u62fe\u9057","text":"\u200b\u7ea6\u200b 100 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"Note/ADS/Heap/#npl","title":"NPL \u200b\u7684\u200b\u53e6\u200b\u4e00\u79cd\u200b\u7406\u89e3","text":"\u200b\u53ef\u4ee5\u200b\u53c2\u770b\u200b\u56fe\u7247\u200b\u7406\u89e3\u200b\uff0c\u200b\u8282\u70b9\u200b NPL \u200b\u4e5f\u200b\u662f\u200b\u8be5\u5b50\u200b\u6811\u200b\u7684\u200b\u6700\u5927\u200b\u5b8c\u5168\u200b\u4e8c\u53c9\u6811\u200b\u6df1\u5ea6\u200b
"},{"location":"Note/ADS/Heap/#_2","title":"\u6700\u5c0f\u200b\u8282\u70b9\u200b\u6570\u200b\u7684\u200b\u8bc1\u660e","text":"\u200b\u5728\u200b\u6b64\u57fa\u7840\u200b\u4e0a\u200b\u5f88\u200b\u597d\u200b\u8bc1\u660e\u200b\u53f3\u4fa7\u200b\u94fe\u200b\u7684\u200b\u957f\u5ea6\u200b\u4e0a\u9650\u200b
"},{"location":"Note/ADS/Heap/#_3","title":"\u9526\u6807\u8d5b\u200b\u6811\u200b\uff0c\u200b\u4e86\u89e3\u200b\u5373\u53ef","text":""},{"location":"Note/ADS/Heap/#_4","title":"\u591a\u53c9\u5806\u200b\uff0c\u200b\u64cd\u4f5c\u200b\u590d\u6742\u5ea6\u200b\u6539\u53d8","text":"\u200b\u8fd9\u200b\u5c06\u200b\u5bfc\u81f4\u200b\u5e94\u7528\u200b\u5728\u200b\u56fe\u200b\u7b97\u6cd5\u200b\u4e0a\u200b\u81ea\u200b\u9002\u5e94\u200b\u6700\u4f18\u200b
"},{"location":"Note/ADS/RBTree/","title":"RBTree","text":"\u200b\u7ea6\u200b 70 \u200b\u4e2a\u200b\u5b57\u200b
1.
\u200b\u56db\u4e2a\u200b\u7ea6\u675f\u6761\u4ef6\u200b\uff1a\n\n![](image/RBTree/media/image1.png)\n
2.
\u200b\u7ea2\u9ed1\u6811\u200b\u5c31\u662f\u200b B-\u200b\u6811\u200b\n\n![](image/RBTree/media/image2.png)\n
3.
\u200b\u5229\u7528\u200b B-\u200b\u6811\u200b\u8bc1\u660e\u200b\u7ea2\u9ed1\u6811\u200b\u7684\u200b\u9ad8\u5ea6\u200b\n\n![](image/RBTree/media/image3.png)\n
4.
\u200b\u5229\u7528\u200b B-Tree \u200b\u8ba4\u8bc6\u200b\u95ee\u9898\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u53ea\u200b\u9700\u200b\u4f7f\u7528\u200b 3\uff0c4 \u200b\u91cd\u6784\u200b\u5373\u53ef\u200b\uff0c\u200b\u91cd\u65b0\u200b\u5f52\u4e8e\u200b RBR\n\n![](image/RBTree/media/image4.png)\n
5.
\u200b\u7ea2\u9ed1\u6811\u200b\u63d2\u5165\u200b\u7684\u200b\u590d\u6742\u5ea6\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u91cd\u6784\u200b\uff08\u200b\u65cb\u8f6c\u200b\uff09\u200b\u81f3\u591a\u200b\u5e38\u6570\u200b\u6b21\u200b\n\n![](image/RBTree/media/image5.png)\n
"},{"location":"Note/Data%20Modeling/","title":"\u6570\u636e\u200b\u5efa\u6a21\u200b\u4e0e\u200b\u5206\u6790","text":"\u200b\u7ea6\u200b 138 \u200b\u4e2a\u200b\u5b57\u200b
\u200b\u8bfe\u7a0b\u200b\u4fe1\u606f\u200b
\u200b\u6388\u8bfe\u200b\u6559\u5e08\u200b\uff1a\u200b\u90ed\u6b63\u521d\u200b
\u200b\u5f00\u200b\u79d1\u5b66\u9662\u200b\uff1a\u200b\u6570\u5b66\u200b\u79d1\u5b66\u200b\u5b66\u9662\u200b
\u200b\u5f00\u8bfe\u200b\u5b66\u671f\u200b\uff1a2023 \u200b\u5e74\u6625\u590f\u200b
\u200b\u9884\u4fee\u200b\u8981\u6c42\u200b\uff1a\u200b\u5fae\u79ef\u5206\u200b\uff0c\u200b\u7ebf\u6027\u4ee3\u6570\u200b\uff0c\u200b\u6982\u7387\u8bba\u200b
\u200b\u6559\u6750\u200b\uff1a \u200b\u7edf\u8ba1\u200b\u5b66\u4e60\u200b\u65b9\u6cd5\u200b \u200b\u674e\u822a\u200b \u200b\u7b2c\u4e8c\u200b\u7248\u200b
\u200b\u672c\u95e8\u200b\u8bfe\u7a0b\u200b\u4e3b\u8981\u200b\u805a\u7126\u200b\u4e8e\u200b\u673a\u5668\u200b\u5b66\u4e60\u200b\u7684\u200b\u7b97\u6cd5\u200b\u8bb2\u89e3\u200b\u4e0e\u200b\u5206\u6790\u200b\uff0c\u200b\u5e76\u4e14\u200b\u5927\u90e8\u5206\u200b\u673a\u5668\u200b\u5b66\u4e60\u200b\u7684\u200b\u65b9\u6cd5\u200b\u4ecd\u200b\u5c5e\u4e8e\u200b\u7edf\u8ba1\u200b\u5b66\u4e60\u200b\u800c\u200b\u975e\u200b\u6df1\u5ea6\u200b\u5b66\u4e60\u200b\u7684\u200b\u8303\u7574\u200b\uff0c\u200b\u6bd4\u8f83\u200b\u4f20\u7edf\u200b. \u200b\u672c\u95e8\u200b\u8bfe\u7a0b\u200b\u4e3a\u200b\u6570\u5b66\u200b\u79d1\u5b66\u200b\u5b66\u9662\u200b\u5f00\u8bbe\u200b\uff0c\u200b\u6570\u5b66\u200b\u6c14\u606f\u200b\u6bd4\u8f83\u200b\u6d53\u539a\u200b.
"},{"location":"Note/Data%20Modeling/Boosting/","title":"\u63d0\u5347\u200b\u65b9\u6cd5","text":"\u200b\u7ea6\u200b 453 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
"},{"location":"Note/Data%20Modeling/Boosting/#adaboost","title":"AdaBoost","text":"\u200b\u8f93\u5165\u200b\uff1a\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u4e00\u79cd\u200b\u5f31\u200b\u5b66\u4e60\u200b\u7b97\u6cd5\u200b \u200b\u8f93\u51fa\u200b\uff1a\u200b\u6700\u7ec8\u200b\u5206\u7c7b\u5668\u200b G(x)
\u200b\u521d\u59cb\u5316\u200b\u8bad\u7ec3\u200b\u6570\u636e\u200b\u7684\u200b\u6743\u503c\u200b\u5206\u5e03\u200b
\\[ D_1 = (w_{11}\uff0c\\cdots\uff0cw_{1i}\uff0c\\cdots\uff0cw_{1N})\uff0cw_{1i} = \\frac{1}{N}\uff0ci=1\uff0c2\uff0c\\cdots\uff0cN \\]\u200b\u8fd0\u884c\u200b\u5f31\u200b\u5b66\u4e60\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u5f97\u5230\u200b\u5f31\u200b\u5206\u7c7b\u5668\u200b\\(G_m(x)\\)
\u200b\u8ba1\u7b97\u8bef\u5dee\u200b\u7387\u200b : \\(e_m = \\sum_{i=1}^{N} P(G_m(x_i) \\neq y_i) = \\sum_{i=1}^{N} w_{mi}I(G_m(x_i) \\neq y_i)\\)
\u200b\u8be5\u200b\u5206\u7c7b\u5668\u200b\u7684\u200b\u6743\u91cd\u200b\u4e3a\u200b\uff1a\\(\\alpha_m = \\frac{1}{2} \\log \\frac{1-e_m}{e_m}\\)
\u200b\u66f4\u65b0\u200b\u65b0\u4e00\u8f6e\u200b\u7684\u200b\u6743\u91cd\u200b\uff0c\u200b\u5176\u4e2d\u200b\u6bcf\u4e2a\u200b\u6837\u672c\u200b\u7684\u200b\u6743\u91cd\u200b\u4e3a\u200b\uff1a\\(w_{m+1\uff0ci} = \\frac{w_{mi}}{Z_m} \\exp(-\\alpha_m y_i G_m(x_i))\\) \uff08\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u5982\u679c\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6743\u91cd\u200b\u4f1a\u200b\u51cf\u5c0f\u200b\uff0c\u200b\u5982\u679c\u200b\u5206\u7c7b\u200b\u9519\u8bef\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6743\u91cd\u200b\u4f1a\u200b\u589e\u5927\u200b\uff09
\u200b\u91cd\u590d\u200b\u7b2c\u4e8c\u6b65\u200b\uff0c\u200b\u76f4\u5230\u200b\u5f3a\u200b\u5206\u7c7b\u5668\u200b\\(G(x) = \\sum_{m=1}^{M} \\alpha_m G_m(x)\\)\u200b\u5df2\u7ecf\u200b\u6ee1\u8db3\u200b\u5206\u7c7b\u200b\u8981\u6c42\u200b
\u200b\u63d0\u5347\u200b\u6811\u662f\u200b\u4ee5\u200b\u51b3\u7b56\u6811\u200b/\u200b\u56de\u5f52\u200b\u6811\u4e3a\u200b\u57fa\u200b\u5206\u7c7b\u5668\u200b\u7684\u200b\u5047\u53d1\u200b\u6a21\u578b\u200b.
\u200b\u6211\u4eec\u200b\u5b9a\u4e49\u200b\u4e00\u4e2a\u200b\u524d\u884c\u200b\u5206\u6b65\u200b\u4e3a\u200b\uff1a
\\[ f_m(x) = f_{m-1}(x) + T(x;\\Theta_m) \\]\u200b\u5176\u4e2d\u200b\u65b0\u6811\u200b\u7684\u200b\u53c2\u6570\u200b\u901a\u8fc7\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6781\u5c0f\u200b\u5316\u200b\u8fdb\u884c\u200b\u66f4\u65b0\u200b\uff1a
\\[ \\Theta_m = \\underset{\\Theta}{\\operatorname{argmin}} \\sum_{i=1}^{N} L(y_i\uff0cf_{m-1}(x_i) + T(x_i;\\Theta)) \\]\u200b\u5bf9\u4e8e\u200b\u56de\u5f52\u200b\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u5199\u51fa\u200b\u5e73\u65b9\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a
\\[ L = (y - f(x))^2 = (y - f_{m-1}(x) - T(x;\\Theta))^2 = [r - T(x;\\Theta)]^2 \\]\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u65b0\u200b\u8bad\u7ec3\u200b\u4e00\u4e2a\u200b\u6811\u200b T \u200b\u6765\u200b\u62df\u5408\u200b\u9910\u53c9\u200b\\(r = y - f_{m-1}(x)\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b.
"},{"location":"Note/Data%20Modeling/Boosting/#_3","title":"\u68af\u5ea6\u200b\u63d0\u5347","text":"\u200b\u5bf9\u4e8e\u200b\u4e00\u822c\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff08\u200b\u975e\u200b\u5e73\u65b9\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff09\uff0c\u200b\u4e0d\u662f\u200b\u90a3\u4e48\u200b\u5bb9\u6613\u200b\u627e\u5230\u200b\u6b8b\u5dee\u200b
\u200b\u901a\u5e38\u200b\u6211\u4eec\u200b\u4f1a\u200b\u7528\u200b\\(\\frac{\\partial L(y_i\uff0cf(x_i))}{\\partial f(x_i)}\\)\u200b\u6765\u200b\u4ee3\u66ff\u200b\u6b8b\u5dee\u200b\uff0c\u200b\u8bad\u7ec3\u200b\u4e00\u68f5\u200b\u65b0\u200b\u7684\u200b\u6811\u6765\u200b\u62df\u5408\u200b\u6b8b\u5dee\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u65b0\u6811\u200b\u7684\u200b\u6bcf\u4e2a\u200b\u5206\u652f\u200b\uff0c\u200b\u7528\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6700\u5c0f\u5316\u200b\u6765\u200b\u786e\u5b9a\u200b\u4ee3\u8868\u200b\u503c\u200b
"},{"location":"Note/Data%20Modeling/Centering/","title":"\u805a\u7c7b\u200b\u65b9\u6cd5","text":"\u200b\u7ea6\u200b 1018 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
Warning
\u200b\u8fd9\u7ae0\u200b\u6211\u200b\u770b\u200b\u7684\u200b\u660f\u660f\u200b\u7684\u200b\uff0c\u200b\u53ea\u7b97\u9884\u200b\u53d1\u5e03\u200b
"},{"location":"Note/Data%20Modeling/Centering/#_2","title":"\u4e00\u4e9b\u200b\u5b9a\u4e49","text":"\u200b\u6837\u672c\u200b\u95f4\u8ddd\u200b
\u200b\u95f5\u53ef\u200b\u592b\u65af\u57fa\u200b\u8ddd\u79bb\u200b\u9a6c\u6c0f\u200b\u8ddd\u79bb\u200b\u76f8\u5173\u7cfb\u6570\u200b\u5939\u89d2\u200b\u4f59\u5f26\u200b \\[ d_{ij} = \\left( \\sum_{k=1}^p \\left| x_{ik} - x_{jk} \\right|^r \\right)^{\\frac{1}{r}} \\]\u200b\u9996\u5148\u200b\u8ba1\u7b97\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b S
\\[ S = \\frac{1}{n-1} \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\]\u200b\u9996\u5148\u200b\u8ba1\u7b97\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b S
\\[ r_{ij} = \\frac{S_{ij}}{\\sqrt{S_{ii}S_{jj}}} \\] \\[ \\cos \\theta_{ij} = \\frac{x_i^T x_j}{\\sqrt{x_i^T x_i x_j^T x_j}} \\]\u200b\u4e00\u4e9b\u200b\u77e9\u9635\u200b
\u200b\u6837\u672c\u200b\u6563\u5e03\u200b\u77e9\u9635\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b \\[ S = \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\] \\[ S = \\frac{1}{n-1} \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\]\u200b\u7c7b\u200b\u76f8\u5173\u200b\u5b9a\u4e49\u200b
\u200b\u7c7b\u7c7b\u200b\u76f4\u5f84\u200b\u7c7b\u200b\u4e2d\u5fc3\u200b\u7c7b\u95f4\u200b\u8ddd\u79bb\u200b\u200b\u4e00\u4e2a\u200b\u7c7b\u200b\u5c31\u662f\u200b\u6570\u636e\u200b\u96c6\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5b50\u96c6\u200b
\u200b\u7c7b\u5185\u200b\u6700\u8fdc\u200b\u95f4\u8ddd\u200b
\\[ D_G = \\underset{x_i\uff0cx_j \\in G}{\\operatorname{max}} d_{ij} \\]\u200b\u4e5f\u200b\u5c31\u662f\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u7684\u200b\u5e73\u5747\u503c\u200b
\\[ \\bar{x} = \\frac{1}{n} \\sum_{x_i \\in G} x_i \\]\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4e24\u7c7b\u200b\u4e2d\u6837\u200b\u7684\u200b\u6700\u200b\u77ed\u8ddd\u79bb\u200b\uff0c\u200b\u6700\u200b\u957f\u8ddd\u79bb\u200b\uff0c\u200b\u4e2d\u5fc3\u200b\u8ddd\u79bb\u200b\u6216\u8005\u200b\u5e73\u5747\u200b\u8ddd\u79bb\u200b
"},{"location":"Note/Data%20Modeling/Centering/#_3","title":"\u805a\u5408\u200b\u805a\u7c7b","text":"\u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u4e09\u8981\u7d20\u200b\u4e3a\u200b\uff1a
\u200b\u7ed9\u5b9a\u200b\u4ee5\u4e0a\u200b\u4e09\u8981\u7d20\u200b\uff0c\u200b\u4e00\u822c\u200b\u7684\u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u7684\u200b\u7b97\u6cd5\u200b\u4e3a\u200b\uff1a
\u200b\u8be5\u200b\u7b97\u6cd5\u200b\u7684\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(n^3m)\\)\uff0c\u200b\u5176\u4e2d\u200b m \u200b\u4e3a\u200b\u7ef4\u5ea6\u200b\u6570\u200b\uff0cn \u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2a\u6570\u200b
\u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u5c5e\u4e8e\u200b\u5c42\u6b21\u200b\u805a\u7c7b\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4ece\u200b n \u200b\u7c7b\u200b-1 \u200b\u7c7b\u200b\u8fd9\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b\u5206\u7c7b\u200b\u7ed3\u679c\u200b
\u200b\u6ce8\u610f\u200b\u5728\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\\([d_{ij}]\\)\u200b\u77e9\u9635\u200b\u6765\u200b\u52a0\u901f\u200b\u8fd0\u7b97\u200b
"},{"location":"Note/Data%20Modeling/Centering/#k-means","title":"K-means","text":"\u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(mnk)\\)
k \u200b\u7684\u200b\u9009\u53d6\u200b\u5e94\u8be5\u200b\u5927\u5230\u200b\u7c7b\u200b\u76f4\u5f84\u200b\u4e0d\u518d\u200b\u51cf\u5c0f\u200b\u4e3a\u6b62\u200b
"},{"location":"Note/Data%20Modeling/Centering/#_4","title":"\u8c31\u200b\u805a\u7c7b","text":"\u200b\u6570\u5b66\u200b\u4e0a\u200b\uff0c\u200b\u8c31\u200b\u5b57\u200b\u4e00\u822c\u200b\u8ddf\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6709\u5173\u200b
\u200b\u6211\u4eec\u200b\u628a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i)\\}\\)\u200b\u4e2d\u200b\u7684\u200b\u6bcf\u200b\u4e00\u4e2a\u70b9\u200b\u90fd\u200b\u5bf9\u5e94\u200b\u5230\u200b\u4e00\u4e2a\u200b\u65e0\u5411\u200b\u5b8c\u5168\u200b\u56fe\u4e0a\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u4e24\u70b9\u200b\u4e4b\u95f4\u200b\u8fde\u8fb9\u200b\u7684\u200b\u6743\u91cd\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b\u5b83\u4eec\u200b\u7684\u200b\u76f8\u4f3c\u200b\u5ea6\u200b.
\u200b\u76f8\u4f3c\u200b\u5ea6\u200b
\\[ w_{ij} = e^{-\\frac{||x_i - x_j||^2}{2\\sigma^2}} \\]\u200b\u663e\u7136\u200b\uff0c\u200b\u8ddd\u79bb\u200b\u8d8a\u8fd1\u200b\uff0c\u200b\u76f8\u4f3c\u200b\u5ea6\u8d8a\u200b\u5927\u200b.
\u200b\u5bf9\u4e8e\u200b\u90a3\u4e9b\u200b\u8db3\u591f\u200b\u9065\u8fdc\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4e0d\u518d\u200b\u76f8\u8fde\u200b\uff0c\u200b\u76f4\u63a5\u200b\u628a\u200b\u76f8\u4f3c\u200b\u5ea6\u7f6e\u200b 0.\u200b\u5982\u4f55\u200b\u786e\u5b9a\u200b\u8fd9\u4e9b\u200b\u8db3\u591f\u200b\u9065\u8fdc\u200b\u7684\u200b\u70b9\u200b\u5462\u200b - \u200b\u7528\u200b k \u200b\u8fd1\u90bb\u200b\u786e\u5b9a\u200b\u51e0\u4e2a\u200b\u90bb\u8fd1\u200b\u7684\u200b\u70b9\u200b - \u200b\u7528\u200b\u4e00\u4e2a\u200b\\(\\epsilon\\)\u200b\u534a\u5f84\u200b\u6765\u200b\u533a\u5206\u200b\u8fdc\u8fd1\u200b
\u200b\u5b9a\u4e49\u200b\u4e00\u4e2a\u70b9\u200b\u7684\u200b\u5ea6\u200b\u4e3a\u200b\u5176\u200b\u6240\u6709\u200b\u8fb9\u200b\u7684\u200b\u6743\u91cd\u200b\u548c\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4e0b\u9762\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b
\u200b\u77e9\u9635\u200b\u5b9a\u4e49\u200b
\u200b\u5ea6\u200b\u77e9\u9635\u200b D\u200b\u6743\u91cd\u200b\u77e9\u9635\u200b W\u200b\u62c9\u666e\u62c9\u65af\u200b\u77e9\u9635\u200b L \\[ D_{ii} = \\sum_{j=1}^n w_{ij} \\] \\[ W = [w_{ij}] \\] \\[ L = D - W \\]\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u53d1\u73b0\u200b\u5982\u4e0b\u200b\u6027\u8d28\u200b\uff1a
\u200b\u6240\u4ee5\u200b\u5f53\u200b L \u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u96f6\u200b\u7279\u5f81\u503c\u200b\u53ea\u6709\u200b 1 \u200b\u91cd\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5168\u200b 1 \u200b\u5411\u91cf\u200b
\u200b\u5f53\u200b L \u200b\u7684\u200b\u8fde\u901a\u200b\u56fe\u200b\u591a\u4e8e\u200b\u4e00\u4e2a\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u52a0\u5165\u200b L \u200b\u53ef\u4ee5\u200b\u5199\u6210\u200b\uff1a
\\[ L = \\begin{bmatrix} L_1 & 0 & 0 \\\\ 0 & L_2 & 0 \\\\ 0 & 0 & \\dots \\\\ \\end{bmatrix} \\]\u200b\u90a3\u4e48\u200b\u5176\u200b\u5bf9\u5e94\u200b\u7684\u200b\u96f6\u200b\u7279\u5f81\u5411\u91cf\u200b\u4e3a\u200b\uff1a
\\[ \\begin{bmatrix} 1 \\\\ 1 \\\\ \\vdots \\\\ 0 \\\\ 0 \\\\ \\vdots \\\\ 0 \\\\ 0 \\end{bmatrix} \\begin{bmatrix} 0 \\\\ 0 \\\\ \\vdots \\\\ 1 \\\\ 1 \\\\ \\vdots \\\\ 0 \\\\ 0 \\end{bmatrix}\\dots \\begin{bmatrix} 0 \\\\ 0 \\\\ \\vdots \\\\ 0 \\\\ 0 \\\\ \\vdots \\\\ 1 \\\\ 1 \\end{bmatrix} \\]\u200b\u57fa\u672c\u4e0a\u200b\u53ef\u4ee5\u200b\u8ba4\u4e3a\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u81ea\u5df1\u200b\u6784\u6210\u200b\u4e00\u4e2a\u200b\u5206\u5757\u200b\\(L_i\\)\uff0c\u200b\u8fd9\u4e2a\u200b\\(L_i\\)\u200b\u4e5f\u200b\u6709\u200b\u4e00\u4e2a\u200b\u81ea\u5df1\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u200b\u96f6\u200b\u5411\u91cf\u200b
\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5c06\u200b\u8fd9\u4e9b\u200b\u7279\u5f81\u5411\u91cf\u200b\u62fc\u63a5\u200b\u6210\u200b\u4e00\u4e2a\u200b\u77e9\u9635\u200b
\\[ F = [f_1\uff0cf_2\uff0c\\dots\uff0cf_n] \\]\u200b\u7136\u540e\u200b\u6309\u7167\u200b\u884c\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u805a\u7c7b\u200b\u5c31\u200b\u53ef\u4ee5\u200b\uff08\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6bcf\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u88ab\u200b\u805a\u6210\u200b\u4e00\u7c7b\u200b\uff09
"},{"location":"Note/Data%20Modeling/Decision_Tree/","title":"\u51b3\u7b56\u6811","text":"\u200b\u7ea6\u200b 2599 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 9 \u200b\u5206\u949f\u200b
\u200b\u4e0b\u56fe\u200b\u662f\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5b9e\u4f8b\u200b\uff0c\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u662f\u200b\u7279\u5f81\u200b\uff0c\u200b\u800c\u53f6\u200b\u8282\u70b9\u200b\u662f\u200b\u7c7b\u522b\u200b
\u200b\u51b3\u7b56\u6811\u200b\u5b9e\u4f8b\u200b\u200b\u51b3\u7b56\u6811\u200b\u7b49\u4ef7\u200b\u4e8e\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b if-then \u200b\u89c4\u5219\u200b\uff0c\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b\u4f8b\u5b50\u200b\u90fd\u200b\u88ab\u200b\u4e14\u200b\u4ec5\u200b\u88ab\u200b\u4e00\u6761\u200b\u8def\u5f84\u200b\u8986\u76d6\u200b.
\u200b\u51b3\u7b56\u6811\u200b\u8fd8\u200b\u7b49\u4ef7\u200b\u4e8e\u200b\u4e00\u79cd\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u4e0d\u8fc7\u200b\u8fd9\u79cd\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\u88ab\u200b\u5f3a\u5316\u200b\u6210\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u7a7a\u95f4\u200b\u7684\u200b\u5212\u5206\u200b.
\u200b\u51b3\u7b56\u6811\u200b\u7b97\u6cd5\u200b\u4e3b\u8981\u200b\u6709\u200b\u4ee5\u4e0b\u200b\u4e09\u4e2a\u200b\u8fc7\u7a0b\u200b\uff1a
\u200b\u9996\u5148\u200b\u6211\u4eec\u200b\u5148\u200b\u5b9a\u4e49\u200b\u71b5\u200b\u548c\u200b\u6761\u4ef6\u200b\u71b5\u200b
\u200b\u71b5\u200b
\u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b X\uff1a
\\[ P(X = x_i) = P_i \\]\u200b\u90a3\u4e48\u200b\u8be5\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u4e3a\u200b\uff1a
\\[ H(X) = -\\sum_{i=1}^{n}P_i\\log P_i \\quad\\quad \\in [0\uff0c\\log n] \\]\u200b\u6ce8\u610f\u200b\uff0c\u200b\u5728\u200b\u8ba8\u8bba\u200b\u71b5\u200b\u662f\u200b\u9ed8\u8ba4\u200b\u5bf9\u6570\u200b\u7684\u200b\u5e95\u200b\u4e3a\u200b 2\uff0c\u200b\u6b64\u65f6\u200b\u71b5\u200b\u7684\u200b\u5355\u4f4d\u200b\u4e3a\u200b bit.
\u200b\u5bf9\u200b\u71b5\u200b\u7684\u200b\u7406\u89e3\u200b\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b\u4e00\u4e2a\u200b\u968f\u673a\u200b\u4e3a\u200b 0-7 \u200b\u7684\u200b\u7b49\u200b\u6982\u7387\u200b\u7684\u200b\u968f\u673a\u53d8\u91cf\u200b\uff0c\u200b\u4ece\u200b\u4e0a\u5f0f\u200b\u53ef\u4ee5\u200b\u5f88\u200b\u5bb9\u6613\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u4ed6\u200b\u7684\u200b\u71b5\u200b\u662f\u200b 3bit\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u9700\u8981\u200b 3bit \u200b\u7684\u200b\u4fe1\u606f\u200b\u624d\u80fd\u200b\u786e\u5b9a\u200b\u8fd9\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u53d6\u503c\u200b. \u200b\u8fd9\u200b\u8ddf\u200b\u76f4\u89c2\u200b\u4e0a\u200b\u4e5f\u200b\u662f\u200b\u543b\u5408\u200b\u7684\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u81f3\u5c11\u200b 3bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u5206\u522b\u200b\u8fd9\u200b\u516b\u4e2a\u200b\u4fe1\u53f7\u200b\uff08000-111\uff09.
\u200b\u4e0a\u5f0f\u200b\u4e2d\u200b\u7684\u200b log \u200b\u7684\u200b\u884c\u4e3a\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\uff0c\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u4fe1\u53f7\u200b\u6709\u200b \u215b \u200b\u7684\u200b\u6982\u7387\u200b\u51fa\u73b0\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u4fe1\u53f7\u200b\u9700\u8981\u200b\\(-\\log_2 1/8 = 3\\)bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u8868\u793a\u200b.\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u4fe1\u53f7\u200b\u6709\u200b \u00bc \u200b\u7684\u200b\u6982\u7387\u200b\u51fa\u73b0\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u4fe1\u53f7\u200b\u9700\u8981\u200b\\(-\\log_2 1/4 = 2\\)bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u8868\u793a\u200b.\u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u7684\u200b\u8ba1\u7b97\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u7f16\u7801\u200b\u957f\u5ea6\u200b\u6c42\u200b\u671f\u671b\u200b.
\u200b\u800c\u200b\u71b5\u200b\u7684\u200b\u503c\u200b\u8d8a\u200b\u5927\u200b\uff0c\u200b\u6211\u4eec\u200b\u76ee\u524d\u200b\u7684\u200b\u4fe1\u606f\u200b\u5c31\u200b\u8d8a\u5c11\u200b.
\u200b\u5047\u5982\u200b\u6211\u4eec\u200b\u8981\u200b\u9884\u6d4b\u200b\u7684\u200b\u4eba\u200b\u7684\u200b\u8fdb\u653b\u200b\u65b9\u5411\u200b\uff0c\u200b\u82e5\u200b\u654c\u4eba\u200b\u8fdb\u653b\u200b\u65b9\u5411\u200b\u8fd9\u4e00\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u4e3a\u200b 3bits\uff0c\u200b\u7b49\u6548\u200b\u654c\u4eba\u200b\u4ece\u200b\u516b\u4e2a\u200b\u65b9\u5411\u200b\u7b49\u200b\u53ef\u80fd\u200b\u8fdb\u653b\u200b.\u200b\u4f46\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u83b7\u53d6\u200b\u4e86\u200b\u67d0\u4e2a\u200b\u4fe1\u606f\u200b\u540e\u6b64\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u53ea\u200b\u5269\u4e0b\u200b 1bit\uff0c\u200b\u7b49\u6548\u200b\u654c\u4eba\u200b\u4ece\u200b\u4e24\u4e2a\u200b\u65b9\u5411\u200b\u7b49\u200b\u53ef\u80fd\u200b\u8fdb\u653b\u200b\uff0c\u200b\u4fe1\u606f\u200b\u5c31\u200b\u5145\u8db3\u200b\u7684\u200b\u591a\u200b\u4e86\u200b.
\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6709\u200b\u4e00\u4e2a\u200b\u76f4\u89c2\u200b\u7684\u200b\u7406\u89e3\u200b\uff0c\u200b\u67d0\u4e2a\u200b\u4fe1\u606f\u200b\u6765\u200b\u4e4b\u540e\u200b\u6211\u200b\u7684\u200b\u71b5\u200b\u51cf\u5c11\u200b\u7684\u200b\u8d8a\u200b\u591a\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u4fe1\u606f\u200b\u7684\u200b\u4fe1\u606f\u91cf\u200b\u8d8a\u5927\u200b\uff0c\u200b\u8d8a\u200b\u6709\u7528\u200b.
\u200b\u6761\u4ef6\u200b\u71b5\u200b
\u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u8054\u5408\u200b\u5206\u5e03\u200b\uff1a
\\[ P(X = x_i\uff0cY = y_j) = P_{ij} \\]\u200b\u90a3\u4e48\u200b\u6761\u4ef6\u200b\u71b5\u200b
\\[ H(Y|X) = -\\sum_{i=1}^{n} P_i H(Y|X = x_i) = -\\sum_{i=1}^{n} P_i \\sum_{j=1}^{m} P_{j|i} \\log P_{j|i} \\]\u200b\u4ece\u200b\u7b2c\u4e00\u4e2a\u200b\u7b49\u200b\u53f7\u200b\u53ef\u4ee5\u200b\u770b\u5f97\u51fa\u6765\u200b\u6761\u4ef6\u200b\u71b5\u200b\u5176\u5b9e\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5bf9\u4e8e\u200b\u4e0d\u540c\u200b\u7684\u200b X \u200b\u7684\u200b\u53d6\u503c\u200b\u6c42\u200b\u671f\u671b\u200b
\u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\u7279\u5f81\u200b A \u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b D \u200b\u7684\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\uff1a
\\[ g(D\uff0cA) = H(D) - H(D|A) \\]\u200b\u8fd9\u200b\u4e5f\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u7c7b\u200b\u4e0e\u200b\u7279\u5f81\u200b\u7684\u200b\u4e92\u4fe1\u606f\u200b\uff0c\u200b\u5b83\u200b\u8868\u793a\u200b\u5f97\u77e5\u200b\u7279\u5f81\u200b A \u200b\u7684\u200b\u4fe1\u606f\u200b\u800c\u200b\u4f7f\u5f97\u200b\u7c7b\u200b Y \u200b\u7684\u200b\u4fe1\u606f\u200b\u7684\u200b\u4e0d\u786e\u5b9a\u6027\u200b\u51cf\u5c11\u200b\u7684\u200b\u7a0b\u5ea6\u200b.
"},{"location":"Note/Data%20Modeling/Decision_Tree/#_4","title":"\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6bd4","text":"\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u5b58\u5728\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u5c31\u662f\u200b\u5b83\u200b\u504f\u5411\u200b\u4e8e\u200b\u53ef\u200b\u53d6\u503c\u200b\u8f83\u200b\u591a\u200b\u7684\u200b\u7279\u5f81\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u53d6\u503c\u200b\u8f83\u200b\u591a\u200b\u7684\u200b\u7279\u5f81\u200b\u7684\u200b\u6761\u4ef6\u200b\u71b5\u200b\u8f83\u200b\u5c0f\u200b.\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u7b97\u6cd5\u200b\u540c\u6837\u200b\u8003\u8651\u200b\u90a3\u4e9b\u200b\u503c\u200b\u6bd4\u8f83\u200b\u5c11\u200b\u4f46\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u540c\u6837\u200b\u5f88\u200b\u4e0d\u9519\u200b\u7684\u200b\u7279\u5f81\u200b\u7684\u8bdd\u200b.
\\[ g_R(D\uff0cA) = \\frac{g(D\uff0cA)}{H_A(D)} \\]\u200b\u5176\u4e2d\u200b\\(H_A(D) = -\\sum_{i=1}^{n} \\frac{|D_i|}{|D|} \\log \\frac{|D_i|}{|D|}\\)\u200b\u662f\u200b\u5173\u4e8e\u200b\u7279\u5f81\u200b A \u200b\u5bf9\u200b\u6570\u636e\u200b\u96c6\u200b D \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u71b5\u200b\uff0c\\(|D_i|\\)\u200b\u662f\u200b\\(D\\)\u200b\u4e2d\u200b\u5728\u200b\u7279\u5f81\u200b A \u200b\u4e0a\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(a_i\\)\u200b\u7684\u200b\u6837\u672c\u200b\u5b50\u96c6\u200b.A \u200b\u7684\u200b\u53ef\u200b\u53d6\u503c\u200b\u8d8a\u200b\u591a\u200b\uff0c\\(H_A(D)\\)\u200b\u7684\u200b\u503c\u200b\u8d8a\u200b\u5927\u200b.
"},{"location":"Note/Data%20Modeling/Decision_Tree/#_5","title":"\u57fa\u5c3c\u200b\u6307\u6570","text":"\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\u662f\u200b\u53e6\u200b\u4e00\u79cd\u200b\u7279\u5f81\u9009\u62e9\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u5b83\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a
\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b
\\[\\begin{aligned} &Gini(P) = 1 - \\sum_{k=1}^{K} P_k^2 \\\\ &Gini(D) = 1 - \\sum_{k=1}^{K} \\frac{|D_i|}{|D|}^2 \\\\ &Gini(D\uff0cA) = \\sum_{i=1}^{n} \\frac{|D_i|}{|D|} Gini(D_i) \\end{aligned}\\] "},{"location":"Note/Data%20Modeling/Decision_Tree/#_6","title":"\u51b3\u7b56\u6811\u200b\u751f\u6210","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#id3","title":"ID3 \u200b\u7b97\u6cd5","text":"ID3 \u200b\u7b97\u6cd5\u200b\u7684\u200b\u6838\u5fc3\u200b\u662f\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u5404\u4e2a\u200b\u8282\u70b9\u200b\u4e0a\u200b\u5e94\u7528\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u51c6\u5219\u200b\u9009\u62e9\u200b\u7279\u5f81\u200b\uff0c\u200b\u9012\u5f52\u200b\u7684\u200b\u6784\u5efa\u200b\u51b3\u7b56\u6811\u200b.
C4.5 \u200b\u7b97\u6cd5\u200b\u6839\u200b ID3 \u200b\u7b97\u6cd5\u200b\u5b8c\u5168\u200b\u4e00\u6837\u200b\uff0c\u200b\u53ea\u662f\u200b\u7528\u200b\u7684\u200b\u4e0d\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\uff0c\u200b\u800c\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6bd4\u200b.
"},{"location":"Note/Data%20Modeling/Decision_Tree/#_7","title":"\u51b3\u7b56\u6811\u200b\u526a\u679d","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#_8","title":"\u5229\u7528\u200b\u6b63\u5219\u200b\u5316\u200b\u51fd\u6570","text":"\u200b\u5bf9\u200b\u6574\u68f5\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6784\u9020\u200b\u4e00\u4e2a\u200b\u6b63\u5219\u200b\u5316\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a $$ C_{\\alpha}(T) = \\sum_{t \\in T} N_t H_t(T) + \\alpha |T| $$ \u200b\u5176\u4e2d\u200b T \u200b\u4e3a\u200b\u6240\u6709\u200b\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u96c6\u5408\u200b\uff0ct \u200b\u4e3a\u200b\u67d0\u4e2a\u200b\u53f6\u200b\u8282\u70b9\u200b\uff0c\\(N_t\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b t \u200b\u7684\u200b\u6837\u672c\u200b\u4e2a\u6570\u200b\uff0c\\(H_t(T)\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b t \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u71b5\u200b\uff0c\\(|T|\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u4e2a\u6570\u200b\uff0c\\(\\alpha\\)\u200b\u4e3a\u200b\u6b63\u5219\u200b\u5316\u200b\u53c2\u6570\u200b.
\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u5047\u8bbe\u200b t \u200b\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u6240\u6709\u200b\\(N_t\\)\u200b\u4e2a\u200b\u6837\u672c\u200b\u4e2d\u200b\uff0ck \u200b\u7c7b\u200b\u7684\u200b\u6837\u672c\u200b\u6709\u200b\\(N_{tk}\\)\u200b\u4e2a\u200b\uff0c\u200b\u90a3\u4e48\u200b\\(H_t(T) = -\\sum_{k=1}^{K} \\frac{N_{tk}}{N_t} \\log \\frac{N_{tk}}{N_t}\\).
\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u8fdb\u884c\u200b\u6700\u5c0f\u5316\u200b\uff0c\u200b\u5bb9\u6613\u200b\u770b\u51fa\u200b\uff0c\u200b\u5982\u679c\u200b\u53f6\u200b\u8282\u70b9\u200b\u5168\u90e8\u90fd\u662f\u200b\u5355\u200b\u4e00\u7c7b\u200b\uff0c\u200b\u90a3\u4e48\u200b\u7b2c\u4e00\u9879\u200b\u7684\u200b\u503c\u200b\u4e3a\u200b 0.\u200b\u8fd9\u65f6\u5019\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b\u597d\u200b\uff0c\u200b\u4f46\u662f\u200b\u53f6\u5b50\u200b\u8282\u70b9\u200b\u5bb9\u6613\u200b\u8fc7\u591a\u200b\uff0c\u200b\u7b2c\u4e8c\u9879\u200b\u5f88\u5927\u200b.\u200b\u4f46\u200b\u5982\u679c\u200b\u7b2c\u4e8c\u9879\u200b\u6781\u7aef\u200b\u7684\u200b\u4f18\u5316\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u53f6\u200b\u8282\u70b9\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6811\u662f\u200b\u5c0f\u200b\u4e86\u200b\uff0c\u200b\u4f46\u662f\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u90fd\u200b\u5728\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u5185\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8bf4\u200b\u662f\u200b\u6beb\u65e0\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u6700\u5c0f\u5316\u200b\u8fd9\u4e2a\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\u8981\u200b\u5728\u200b\u4e8c\u8005\u4e4b\u95f4\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u5e73\u8861\u200b\uff0c\u200b\u6811\u200b\u65e2\u200b\u4e0d\u4f1a\u200b\u8fc7\u6df1\u200b\uff0c\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b\u4e5f\u200b\u6709\u200b\u4fdd\u969c\u200b.
\u200b\u7b97\u6cd5\u200b
\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b\\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\mathbb{R}\\)\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u5bf9\u5e94\u200b y.
CART \u200b\u56de\u5f52\u200b\u6811\u200b\u7b97\u6cd5\u200b\u4f1a\u200b\u628a\u200b\u7a7a\u95f4\u200b\u5212\u5206\u200b\u6210\u200b m \u200b\u5757\u200b\\(R_1\uff0cR_2...R_m\\)\uff0c\u200b\u6bcf\u4e2a\u200b\u5355\u5143\u200b\u4e0a\u200b\u51fd\u6570\u200b\u7684\u200b\u8f93\u51fa\u200b\u503c\u200b\u90fd\u200b\u662f\u200b\u56fa\u5b9a\u200b\u7684\u200b\uff1a
\\[ f(x) = \\sum_{m=1}^{M} c_m I(x \\in R_m) \\]\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u9009\u7528\u200b\u5e73\u65b9\u200b\u8bef\u5dee\u200b\uff0c\u200b\u5bb9\u6613\u200b\u8bc1\u660e\u200b\uff0c\u200b\u5728\u200b\u6bcf\u4e2a\u200b\u533a\u57df\u200b\u4e0a\u200b\u6700\u4f73\u200b\u7684\u200b\u8f93\u51fa\u200b\u503c\u200b\u5c31\u662f\u200b\u8be5\u200b\u533a\u57df\u200b\u5185\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u7684\u200b\u5747\u503c\u200b.
\\[ c_m = \\frac{1}{N_m} \\sum_{x_i \\in R_m} y_i \\]\u200b\u7b97\u6cd5\u200b\uff1a
\u200b\u9996\u5148\u200b\u6211\u4eec\u200b\u5148\u200b\u7528\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\u751f\u6210\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u7136\u540e\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b.\u200b\u6211\u4eec\u200b\u7740\u91cd\u200b\u4ecb\u7ecd\u200b\u8fd9\u91cc\u200b\u4f7f\u7528\u200b\u7684\u200b\u526a\u679d\u200b\u7b97\u6cd5\u200b
\u200b\u6211\u4eec\u200b\u5148\u200b\u6784\u9020\u200b\u4e00\u4e2a\u200b\u4ee5\u200b\\(\\alpha\\)\u200b\u4e3a\u200b\u53c2\u6570\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a
\\[ C_{\\alpha}(T) = C(T)+ \\alpha |T| \\quad\\quad \\alpha \\in [0\uff0c\\infty) \\]\u200b\u5176\u4e2d\u200b\\(C(T)\\)\u200b\u4e3a\u200b\u7528\u200b\u8be5\u200b\u51b3\u7b56\u6811\u200b\u5bf9\u200b\u8bad\u7ec3\u200b\u96c6\u200b\u8fdb\u884c\u200b\u9884\u6d4b\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff08\u200b\u7528\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\uff09. \u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u627e\u5230\u200b\\(\\alpha\\)\u200b\u4ece\u200b 0 \u200b\u5230\u200b\u6b63\u200b\u65e0\u7a77\u7684\u200b\u6bcf\u200b\u4e00\u4e2a\u200b\u533a\u95f4\u200b\u5185\u200b\u7684\u200b\u526a\u679d\u200b\u540e\u200b\u7684\u200b\u6700\u4f18\u200b\u6811\u200b.
\u200b\u5728\u200b\u6b64\u200b\u8bed\u5883\u200b\u4e0b\u200b\uff0c\u200b\u5bf9\u200b\u67d0\u4e2a\u200b\u8282\u70b9\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b\u5c31\u662f\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u7528\u200b\u4e00\u4e2a\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\u4ee3\u66ff\u200b\u4ee5\u200b\u5f53\u524d\u200b\u8282\u70b9\u200b\u4e3a\u6839\u200b\u7684\u200b\u5b50\u6811\u200b\uff0c\u200b\u8be5\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\u542b\u6709\u200b\u5b50\u6811\u4e2d\u200b\u6240\u6709\u200b\u7684\u200b\u6837\u672c\u200b.
\u200b\u6211\u4eec\u200b\u5148\u200b\u6765\u770b\u200b\u6bd4\u8f83\u200b\u6781\u7aef\u200b\u7684\u200b\\(\\alpha\\)\uff0c\u200b\u770b\u200b\u4ed6\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5f71\u54cd\u200b\uff0c\u200b\u5f53\u200b\\(\\alpha\\)\u200b\u4e3a\u200b 0 \u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\\(C(T)\\)\uff0c\u200b\u6b64\u65f6\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u6700\u5c0f\u5316\u200b\\(C(T)\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u6700\u4f18\u200b\u7684\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u5c31\u7b97\u200b\u6211\u4eec\u200b\u5206\u51fa\u200b\u4e86\u200b\u975e\u5e38\u200b\u591a\u200b\u7684\u200b\u8282\u70b9\u200b\u4e5f\u200b\u65e0\u6240\u8c13\u200b.\u200b\u5f53\u200b\\(\\alpha\\)\u200b\u4e3a\u200b\u6b63\u200b\u65e0\u7a77\u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\\(|T|\\)\uff0c\u200b\u6b64\u65f6\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u6700\u5c0f\u5316\u200b\\(|T|\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6700\u5c11\u200b\u7684\u200b\u6811\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6beb\u65e0\u7591\u95ee\u200b\u6240\u6709\u200b\u7684\u200b\u6837\u672c\u200b\u90fd\u200b\u653e\u5728\u200b\u6839\u200b\u8282\u70b9\u200b\u5185\u200b\u5c31\u662f\u200b\u6700\u4f18\u200b\u89e3\u200b.\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c \\(\\alpha\\)\u200b\u8d8a\u5927\u200b\uff0c\u200b\u51b3\u7b56\u6811\u200b\u4f1a\u200b\u88ab\u200b\u526a\u200b\u7684\u200b\u8d8a\u200b\u5e72\u51c0\u200b.
\u200b\u5728\u200b\u4ee5\u4e0a\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u53d1\u73b0\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5355\u72ec\u200b\u8ba8\u8bba\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u662f\u5426\u200b\u8981\u200b\u88ab\u200b\u526a\u679d\u200b\uff08\u200b\u56de\u5fc6\u200b\u4e00\u4e0b\u200b\u4ec0\u4e48\u200b\u53eb\u505a\u200b\u5bf9\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b\uff09\uff0c\u200b\u5047\u8bbe\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6240\u200b\u4ee3\u8868\u200b\u7684\u200b\u5b50\u6811\u4e3a\u200b\\(T_t\\)\uff0c\u200b\u628a\u5b50\u200b\u6811\u5185\u200b\u7684\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u90fd\u200b\u6536\u5230\u200b\u8282\u70b9\u200b\u5185\u6240\u200b\u6784\u6210\u200b\u7684\u200b\u8282\u70b9\u200b\u4e3a\u200b t\uff0c\u200b\u90a3\u4e48\u200b\u8be5\u200b\u8282\u70b9\u200b\u4ece\u4e0d\u200b\u526a\u679d\u200b\u8f6c\u5411\u200b\u526a\u679d\u200b\u7684\u200b\u5173\u952e\u200b\u8282\u70b9\u200b\u5c31\u662f\u200b\u5f53\u4e0b\u200b\u5f0f\u200b\u6210\u7acb\u200b\u65f6\u200b\uff1a
\\[ C(t) + \\alpha * 1 = C(T_t) + \\alpha * |T_t| \\]\u200b\u7b2c\u4e00\u9879\u200b\u662f\u200b\u6211\u4eec\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u653e\u7f6e\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u526a\u679d\u200b\u540e\u200b\u7684\u200b\u8282\u70b9\u200b\uff09\u200b\u5e26\u6765\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff0c\u200b\u7b2c\u4e8c\u9879\u200b\u5f0f\u200b\u6211\u4eec\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u653e\u7f6e\u200b\u5b50\u6811\u200b\u5e26\u6765\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b.\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u8fd9\u4e2a\u200b\u4e34\u754c\u200b\u7684\u200b\\(\\alpha_{t}\\)\uff0c\u200b\u90a3\u4e48\u200b\u5982\u679c\u200b\\(\\alpha \\in (0\uff0c\\alpha_{t})\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u4e0d\u200b\u526a\u679d\u200b\uff0c\u200b\u5982\u679c\u200b\\(\\alpha \\in [\\alpha_{t}\uff0c\\infty)\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u526a\u679d\u200b.
\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u5185\u200b\u7684\u200b\u6240\u6709\u200b\u8282\u70b9\u200b\u90fd\u200b\u8ba1\u7b97\u200b\u4e34\u754c\u200b\\(\\alpha\\)\uff0c\u200b\u6211\u4eec\u200b\u4ece\u200b\\(\\alpha = 0\\)\u200b\u5f00\u59cb\u200b\u9010\u6e10\u200b\u589e\u5927\u200b\uff0c\u200b\u6bcf\u6b21\u200b\u8fbe\u5230\u200b\u4e34\u754c\u70b9\u200b\u6211\u4eec\u200b\u5c31\u200b\u526a\u679d\u200b\uff0c\u200b\u76f4\u5230\u200b\u6240\u6709\u200b\u679d\u200b\u90fd\u200b\u88ab\u200b\u526a\u6389\u200b\uff0c\u200b\u76f4\u5230\u200b\u6574\u68f5\u6811\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b.
\u200b\u5728\u200b\u4e0a\u8ff0\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u6211\u4eec\u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b\u4e0d\u540c\u200b\\(\\alpha\\)\u200b\u533a\u95f4\u200b\u4e0b\u200b\u7684\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u4ea4\u53c9\u200b\u9a8c\u8bc1\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6765\u200b\u9009\u62e9\u200b\u6700\u4f18\u200b\u7684\u200b\\(\\alpha\\).
"},{"location":"Note/Data%20Modeling/KNN/","title":"K \u200b\u8fd1\u90bb","text":"\u200b\u7ea6\u200b 732 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
"},{"location":"Note/Data%20Modeling/KNN/#_1","title":"\u95ee\u9898\u200b\u53ca\u200b\u7b97\u6cd5\u200b\u63cf\u8ff0","text":"\u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b\\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\{ c_1\uff0cc_2\uff0c....c_k\\}\\)\uff0c \u200b\u4e00\u5171\u200b\u6709\u200b K \u200b\u79cd\u7c7b\u200b\u522b\u200b\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u7c7b\u522b\u200b\\(y\\). \u200b\u7b97\u6cd5\u200b\u601d\u60f3\u200b\uff1a
\u200b\u5176\u4e2d\u200b\u7684\u200b\\(I(y = c_j)\\)\u200b\u662f\u200b\u6307\u793a\u200b\u51fd\u6570\u200b\uff0c\u200b\u5f53\u200b\\(y = c_j\\)\u200b\u65f6\u200b\uff0c\\(I(y = c_j) = 1\\)\uff0c\u200b\u5426\u5219\u200b\\(I(y = c_j) = 0\\).
"},{"location":"Note/Data%20Modeling/KNN/#k_1","title":"K \u200b\u8fd1\u90bb\u200b\u7684\u200b\u4e09\u8981\u7d20","text":"\u200b\u6709\u200b\u4e86\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u7b97\u6cd5\u200b\u6846\u67b6\u200b\u540e\u200b\uff0cK \u200b\u8fd1\u90bb\u200b\u7b97\u6cd5\u200b\u7531\u200b\u4e09\u4e2a\u200b\u8981\u7d20\u200b\u51b3\u5b9a\u200b\uff1a
\u200b\u8ddd\u79bb\u200b\u5ea6\u91cf\u200bK \u200b\u503c\u200b\u9009\u62e9\u200b\u5206\u7c7b\u200b\u51b3\u7b56\u200b\u89c4\u5219\u200b\u200b\u4e00\u822c\u6765\u8bf4\u200b\u6211\u4eec\u200b\u4f7f\u7528\u200b\\(L_p\\)\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u5373\u200b\uff1a
\\[ L_p(x_i\uff0cx_j) = (\\sum_{l=1}^{n}|x_i^{(l)} - x_j^{(l)}|^p)^{\\frac{1}{p}} \\]\u200b\u5f53\u200b p \u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b 2 \u200b\u65f6\u200b\uff0c\u200b\u5c31\u662f\u200b\u6b27\u6c0f\u200b\u8ddd\u79bb\u200b
\u200b\u5f53\u200b K \u200b\u6bd4\u8f83\u200b\u5c0f\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u6a21\u578b\u200b\u6bd4\u8f83\u590d\u6742\u200b\uff0c\u200b\u5bb9\u6613\u200b\u8fc7\u200b\u62df\u5408\u200b\uff1b \u200b\u5f53\u200b K \u200b\u6bd4\u8f83\u200b\u5927\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u6a21\u578b\u200b\u6bd4\u8f83\u7b80\u5355\u200b\uff0c\u200b\u5bb9\u6613\u200b\u6b20\u200b\u62df\u5408\u200b. \u200b\u4e00\u822c\u6765\u8bf4\u200b K \u200b\u503c\u200b\u90fd\u200b\u4e0d\u4f1a\u200b\u9009\u200b\u7684\u200b\u592a\u5927\u200b.
\u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b\u591a\u6570\u200b\u8868\u51b3\u200b\u89c4\u5219\u200b\uff0c\u200b\u5728\u200b\u6b64\u200b\u60c5\u666f\u200b\u4e0b\u200b\u591a\u6570\u200b\u8868\u51b3\u200b\u89c4\u5219\u200b\u7b49\u6548\u4e8e\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6700\u5c0f\u5316\u200b.
"},{"location":"Note/Data%20Modeling/KNN/#kd-k","title":"\u7528\u200b kd \u200b\u6811\u200b\u5207\u5206\u200b\u7a7a\u95f4\u200b\u6c42\u89e3\u200b K \u200b\u8fd1\u90bb","text":""},{"location":"Note/Data%20Modeling/KNN/#kd","title":"kd \u200b\u6811\u200b\u7684\u200b\u6784\u9020","text":"\u200b\u4e00\u6b21\u200b\u641c\u7d22\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u6700\u8fd1\u200b\u90bb\u70b9\u200b\uff0c\u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u7528\u200b\u4e3a\u200b\\(O(logn)\\)\uff0c\u200b\u5982\u679c\u200b\u8981\u200b\u627e\u51fa\u200b K \u200b\u4e2a\u200b\u6700\u8fd1\u200b\u90bb\u70b9\u200b\uff0c\u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(klogn)\\)
PPT \u200b\u4e0a\u200b\u7684\u200b\u4f8b\u5b50\u200b "},{"location":"Note/Data%20Modeling/Logistic_Regression/","title":"\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52","text":"\u200b\u7ea6\u200b 842 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
"},{"location":"Note/Data%20Modeling/Logistic_Regression/#_2","title":"\u903b\u8f91\u200b\u65af\u8c1b\u200b\u5206\u5e03","text":"\u200b\u9996\u5148\u200b\u76f4\u63a5\u200b\u7ed9\u51fa\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\\(X\\)\u200b\u6ee1\u8db3\u200b\\(Logistic(\\mu\uff0c\\gamma)\\)\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\uff1a
\\[ F(x)=\\frac{1}{1+e^{-(x-\\mu)/\\gamma}} \\]\u200b\u5176\u4e2d\u200b\\(\\mu\\)\u200b\u4e3a\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\uff0c\\(\\gamma\\)\u200b\u4e3a\u200b\u5f62\u72b6\u200b\u53c2\u6570\u200b.\u200b\u8be5\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u7684\u200b\u56fe\u50cf\u200b\u4e3a\u200b S \u200b\u578b\u200b\u66f2\u7ebf\u200b\uff0c\\(\\mu\\)\u200b\u4e3a\u200b\u51fd\u6570\u200b\u7684\u200b\u5bf9\u79f0\u4e2d\u5fc3\u200b\uff0c\\(\\gamma\\)\u200b\u63a7\u5236\u200b\u51fd\u6570\u200b\u7684\u200b\u9661\u5ced\u200b\u7a0b\u5ea6\u200b\uff0c\u200b\u503c\u8d8a\u200b\u5927\u200b\uff0c\u200b\u51fd\u6570\u200b\u8d8a\u200b\u9661\u5ced\u200b.
"},{"location":"Note/Data%20Modeling/Logistic_Regression/#_3","title":"\u4e8c\u9879\u200b\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52\u200b\u6a21\u578b","text":"\u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(D=\\{(x_1\uff0cy_1)\uff0c(x_2\uff0cy_2)\uff0c...\uff0c(x_m\uff0cy_m)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(x_i \\in \\mathbb{R}\\)\uff0c\\(y_i \\in \\{0\uff0c1\\}\\)\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u5b66\u4e60\u200b\u5230\u200b\u4e00\u4e2a\u200b\u7ebf\u6027\u200b\u6a21\u578b\u200b\u6765\u200b\u8fdb\u884c\u200b\u5206\u7c7b\u200b\uff0c\u200b\u5728\u200b\u611f\u77e5\u673a\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u7528\u200b\u4e00\u4e2a\u200b\u6307\u793a\u200b\u51fd\u6570\u200b\u6765\u200b\u5c06\u200b\u51fd\u6570\u200b\u503c\u200b\u7684\u200b\u7b26\u53f7\u200b\u6620\u5c04\u200b\u5230\u200b\u4e0d\u540c\u200b\u7684\u200b\u5206\u7c7b\u200b.
\u200b\u5bf9\u4e8e\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\u6765\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u60f3\u8981\u200b\u5f97\u5230\u200b\u7684\u200b\u662f\u200b\u67d0\u4e2a\u200b x \u200b\u4e0b\u200b\u5c5e\u4e8e\u200b 0\uff0c\u200b\u6216\u8005\u200b 1 \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u4e5f\u200b\u662f\u200b\u8fde\u7eed\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u8bd5\u56fe\u7528\u200b\u7ebf\u6027\u200b\u7684\u200b\u6a21\u578b\u200b\u53bb\u200b\u62df\u5408\u200b\uff0c\u200b\u6211\u4eec\u200b\u5148\u4f5c\u200b\u5982\u4e0b\u200b\u7684\u200b\u8f6c\u5316\u200b\uff1a
\u200b\u8fd9\u6837\u200b\u5bf9\u6570\u200b\u51e0\u7387\u200b\u7684\u200b\u53d6\u503c\u200b\u8303\u56f4\u200b\u5c31\u200b\u548c\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u7684\u200b\u4e00\u6837\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8bd5\u7740\u200b\u7528\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u53bb\u200b\u8fdb\u884c\u200b\u62df\u5408\u200b\uff08\u200b\u5982\u679c\u200b\u67d0\u4e2a\u200b\u5206\u5e03\u200b\u7684\u200b\u5bf9\u6570\u51fd\u6570\u200b\u76f8\u5173\u7cfb\u6570\u200b\u5f88\u200b\u9ad8\u200b\uff0c\u200b\u81ea\u7136\u200b\u53ef\u4ee5\u200b\u62df\u5408\u200b\u5230\u200b\u6bd4\u8f83\u200b\u597d\u200b\u7684\u200b\u6548\u679c\u200b\uff0c\u200b\u4f46\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\u7684\u200b\u5bf9\u6570\u200b\u51e0\u7387\u200b\u51e0\u4e4e\u200b\u4e0d\u6210\u200b\u7ebf\u6027\u200b\uff0c\u200b\u90a3\u4e48\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u7684\u200b\u62df\u5408\u200b\u6548\u679c\u200b\u5c31\u200b\u4f1a\u200b\u6bd4\u8f83\u200b\u5dee\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u7528\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\u62df\u5408\u200b\u7684\u200b\u5206\u5e03\u200b\u6700\u597d\u200b\u6709\u200b\u7c7b\u4f3c\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\uff09.
\u200b\u6211\u4eec\u200b\u4ee4\u200b
\\[ \\ln(\\frac{P(Y=1|x)}{1-P(Y=1|x)}) = w\\cdot x + b \\]\u200b\u90a3\u4e48\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a
\\[ P(Y=1|x)=\\frac{exp(w\\cdot x+b)}{1+exp(w\\cdot x+b)} \\] \\[ P(Y=0|x)=\\frac{1}{1+exp(w\\cdot x+b)} \\]\u200b\u8fd9\u200b\u5c31\u662f\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\uff0c\u200b\u73b0\u5728\u200b\u95ee\u9898\u200b\u662f\u200b\u6211\u4eec\u200b\u6709\u7684\u662f\u200b\u4e00\u5bf9\u200b\u6570\u636e\u200b\u70b9\u200b\u800c\u200b\u4e0d\u662f\u200b x \u200b\u548c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u6211\u4eec\u200b\u8be5\u200b\u5982\u4f55\u200b\u8fdb\u884c\u200b\u62df\u5408\u200b\uff1f
"},{"location":"Note/Data%20Modeling/Logistic_Regression/#_4","title":"\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1","text":"\u200b\u6211\u4eec\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\u7684\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b
\\[ L(w\uff0cb)=\\prod_{i=1}^{m}P(Y=y_i|x_i)=\\prod_{i=1}^{m}(\\frac{exp(w\\cdot x_i+b)}{1+exp(w\\cdot x_i+b)})^{y_i}(\\frac{1}{1+exp(w\\cdot x_i+b)})^{1-y_i} \\]\u200b\u4e3a\u4e86\u200b\u65b9\u4fbf\u200b\u6c42\u89e3\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6781\u5927\u200b\u5316\u200b\u5bf9\u6570\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b\uff0c\u200b\u8fd9\u200b\u4e5f\u200b\u7b49\u6548\u4e8e\u200b\u6781\u5927\u200b\u5316\u4f3c\u7136\u200b\u51fd\u6570\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5bf9\u6570\u51fd\u6570\u200b\u662f\u200b\u5355\u8c03\u200b\u9012\u589e\u200b\u7684\u200b.
\\[\\begin{aligned} &\\ln L(w\uff0cb) = \\sum_{i=1}^{m}y_i(w\\cdot x_i+b)-\\ln(1+exp(w\\cdot x_i+b)) \\\\ \\end{aligned}\\]\u200b\u90a3\u4e48\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5c31\u200b\u8981\u6c42\u200b\u6211\u4eec\u200b\u627e\u5230\u200b\u4f7f\u200b\u5bf9\u6570\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b\u6700\u5927\u200b\u7684\u200b\u53c2\u6570\u200b
\\[ \\underset{w\uff0cb}{\\operatorname{arg max}} \\ln L(w\uff0cb) \\]\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b\u6c42\u89e3\u200b\u8fc7\u7a0b\u200b\u9700\u8981\u200b\u7528\u200b\u68af\u5ea6\u200b\u4e0b\u964d\u200b\u6cd5\u200b\u6216\u8005\u200b\u725b\u987f\u200b\u6cd5\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u56e0\u4e3a\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u51fd\u6570\u200b\u662f\u200b\u51f8\u51fd\u6570\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4fdd\u8bc1\u200b\u6c42\u89e3\u200b\u7684\u200b\u7ed3\u679c\u200b\u662f\u200b\u5168\u5c40\u200b\u6700\u4f18\u200b\u89e3\u200b.
"},{"location":"Note/Data%20Modeling/Logistic_Regression/#_5","title":"\u591a\u9879\u200b\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52\u200b\u6a21\u578b","text":"\u200b\u7c7b\u4f3c\u200b\u7684\u200b\uff0c\u200b\u591a\u9879\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u5982\u4e0b\u200b\uff1a
\\[\\begin{aligned} &P(Y=1|x)=\\frac{exp(w_1\\cdot x+b_1)}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ &P(Y=2|x)=\\frac{exp(w_2\\cdot x+b_2)}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ &... \\\\ &P(Y=k|x)=\\frac{1}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ \\end{aligned}\\]"},{"location":"Note/Data%20Modeling/Max_Entropy/","title":"\u6700\u5927\u200b\u71b5\u200b\u6a21\u578b","text":"\u200b\u7ea6\u200b 717 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
\u200b\u601d\u60f3\u200b
\u200b\u6709\u65f6\u5019\u200b\u6211\u4eec\u200b\u5df2\u6709\u200b\u7684\u200b\u6570\u636e\u200b\u5e76\u200b\u4e0d\u8db3\u4ee5\u200b\u6211\u4eec\u200b\u552f\u4e00\u200b\u786e\u5b9a\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u65f6\u5019\u200b\u5bf9\u4e8e\u200b\u6240\u6709\u200b\u5019\u9009\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u8ba4\u4e3a\u200b\u71b5\u200b\u6700\u5927\u200b\u7684\u200b\u90a3\u4e2a\u200b\u5206\u5e03\u200b\u662f\u200b\u6700\u597d\u200b\u7684\u200b.\u200b\u6362\u8a00\u4e4b\u200b\uff0c\u200b\u5728\u200b\u6ee1\u8db3\u200b\u7ea6\u675f\u200b\u7684\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c3d\u53ef\u80fd\u200b\u91c7\u53d6\u200b\u7b49\u200b\u53ef\u80fd\u200b\u5206\u5e03\u200b.
"},{"location":"Note/Data%20Modeling/Max_Entropy/#_2","title":"\u6a21\u578b\u200b\u63cf\u8ff0","text":"\u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u7edf\u8ba1\u200b\u7ecf\u9a8c\u200b\u5206\u5e03\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u9891\u7387\u200b\uff09
\\[\\begin{aligned} &\\tilde{P}(X=x\uff0cY=y) = \\frac{v(X = x\uff0c Y = y)}{N} \\\\ &\\tilde{P}(X=x) = \\frac{v(X = x)}{N} \\\\ \\end{aligned}\\]\u200b\u6211\u4eec\u200b\u5f15\u5165\u200b\u7279\u5f81\u51fd\u6570\u200b\\(f(x\uff0cy) \\ in {0\uff0c1}\\)\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7f6e\u9876\u200b\u67d0\u79cd\u200b\u6761\u4ef6\u200b\uff0c\u200b\u6ee1\u8db3\u6761\u4ef6\u200b\u7684\u200b\\((x\uff0cy)\\)\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u51fd\u6570\u200b\u503c\u4e3a\u200b 1\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b 0.\u200b\u6bd4\u5982\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\\(f(x\uff0cy) = 1\\)\u200b\u5f53\u4e14\u200b\u4ec5\u200b\u5f53\u200b\\(x\\)\u200b\u548c\u200b\\(y\\)\u200b\u76f8\u7b49\u200b\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b 0.\u200b\u5b9a\u4e49\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u7279\u5f81\u51fd\u6570\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\u5728\u200b\u7279\u5f81\u51fd\u6570\u200b\u4e0a\u200b\u7684\u200b\u671f\u671b\u200b\uff1a
\\[ E_{\\tilde{P}}(f) = \\sum_{x\uff0cy}\\tilde{P}(x\uff0cy)f(x\uff0cy) \\]\u200b\u7b80\u5355\u200b\u6765\u8bf4\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u5bf9\u200b\u67d0\u4e9b\u200b\\((x\uff0cy)\\)\u200b\u4e0a\u200b\u7684\u200b\u9891\u6570\u200b\u6c42\u548c\u200b\uff0c\u200b\u5728\u200b\u4e0a\u4f8b\u200b\u4e2d\u200b\uff0c\u200b\u5c31\u662f\u200b\u5bf9\u200b xy \u200b\u76f8\u7b49\u200b\u7684\u200b\u90a3\u4e9b\u200b\u9879\u200b\u7684\u200b\u9891\u6570\u200b\u6c42\u548c\u200b
\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u5b66\u4e60\u200b\u5230\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u6761\u4ef6\u200b\u5206\u5e03\u200b\\(P(Y|X)\\)\uff0c\u200b\u90a3\u4e48\u200b\u7528\u200b\u6211\u4eec\u200b\u5b66\u5230\u200b\u7684\u200b\u6761\u4ef6\u200b\u5206\u5e03\u200b\u4e0e\u200b X \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u5206\u5e03\u200b\u7b97\u200b\u51fa\u6765\u200b\u7684\u200b\u671f\u671b\u200b\u662f\u200b\uff1a
\\[ E_{P}(f) = \\sum_{x\uff0cy}P(y|x)\\tilde{P}(x)f(x\uff0cy) \\]\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6211\u4eec\u200b\u5b66\u5230\u200b\u7684\u200b\u6761\u4ef6\u200b\u5462\u200b\u5206\u5e03\u200b\u5c3d\u53ef\u80fd\u200b\u7b26\u5408\u5b9e\u9645\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\\(P(y|x)\\tilde{P}(x)\\)\u200b\u5728\u200b\u7279\u5f81\u51fd\u6570\u200b\u7684\u200b\u610f\u4e49\u200b\u4e0a\u200b\u5c3d\u53ef\u80fd\u200b\u8d34\u8fd1\u200b\\(\\tilde{P}(x\uff0cy)\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b
\\[ E_{P}(f) = E_{\\tilde{P}}(f) \\]\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7528\u200b\u4e0a\u9762\u200b\u4f8b\u5b50\u200b\u4e2d\u200b\u7684\u200b\u7279\u5f81\u51fd\u6570\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5b66\u4e60\u200b\u5230\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u200b\uff0cxy \u200b\u76f8\u7b49\u200b\u7684\u200b\u9891\u6570\u200b\u7b49\u4e8e\u200b\u5b9e\u9645\u200b\u89c2\u6d4b\u200b\u5230\u200b\u7684\u200b xy \u200b\u76f8\u7b49\u200b\u7684\u200b\u9891\u6570\u200b.
\u200b\u8fd9\u91cc\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5728\u200b\u601d\u60f3\u200b\u4e2d\u200b\u63d0\u5230\u200b\u7684\u200b\u7ea6\u675f\u200b\uff0c\u200b\u6ee1\u8db3\u200b\u8fd9\u6837\u200b\u7ea6\u675f\u200b\u7684\u200b\u6a21\u578b\u200b\u5e76\u200b\u4e0d\u200b\u552f\u4e00\u200b\uff0c\u200b\u6211\u4eec\u200b\u8ba1\u7b97\u200b\u5404\u4e2a\u200b\u6a21\u578b\u200b\u7684\u200b\u6761\u4ef6\u200b\u71b5\u200b\uff1a
\\[ H(P) = -\\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)\\log P(y|x) \\]\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6761\u4ef6\u200b\u71b5\u200b\u6700\u5927\u200b\uff0c\u200b\u6761\u4ef6\u200b\u71b5\u200b\u8d8a\u200b\u5927\u200b\u7684\u200b\u5206\u5e03\u200b\u8d8a\u200b\u597d\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b.
"},{"location":"Note/Data%20Modeling/Max_Entropy/#_3","title":"\u6a21\u578b\u200b\u6c42\u89e3","text":"\u200b\u5199\u51fa\u200b\u5f62\u5f0f\u5316\u200b\u8868\u8fbe\u5f0f\u200b\uff1a
\\[\\begin{aligned} \\underset{P \\in C}{\\operatorname{min}} &-H(P) = \\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)\\log P(y|x) \\\\ s.t. &\\sum_{y}P(y|x) = 1 \\\\ & E_{P}(f_i) = E_{\\tilde{P}}(f_i) \\\\ \\end{aligned}\\]\u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u591a\u4e2a\u200b\u7279\u5f81\u51fd\u6570\u200b\u6765\u200b\u8fdb\u884c\u200b\u7ea6\u675f\u200b
\u200b\u4e3a\u200b\u4e86\u89e3\u200b\u89c9\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u7528\u200b\u4ee5\u4e0b\u200b\u4e09\u6b65\u200b
\u200b\u7ea6\u200b 919 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
"},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_2","title":"\u95ee\u9898\u200b\u53ca\u200b\u7b97\u6cd5\u200b\u63cf\u8ff0","text":"\u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b \\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\{ c_1\uff0cc_2\uff0c....c_k\\}\\)\uff0c \u200b\u4e00\u5171\u200b\u6709\u200b K \u200b\u79cd\u7c7b\u200b\u522b\u200b\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u7c7b\u522b\u200b\\(y\\).
\u200b\u7b97\u6cd5\u200b\u5e0c\u671b\u200b\u5b66\u4e60\u200b\u4e00\u4e2a\u200b\u8054\u5408\u200b\u6982\u7387\u5206\u5e03\u200b\\(P(X\uff0cY)\\)\uff0c\u200b\u800c\u200b\u6211\u4eec\u200b\u73b0\u5728\u200b\u5df2\u7ecf\u200b\u6709\u7684\u662f\u200b\u5148\u9a8c\u200b\u5206\u5e03\u200b\\(P(Y)\\)\u200b\u548c\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\\(P(X|Y)\\).
\u200b\u4f46\u662f\u200b\u540e\u8005\u200b\u7684\u200b\u7a7a\u95f4\u200b\u592a\u200b\u5927\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u4eec\u200b\u5f15\u5165\u200b\u72ec\u7acb\u6027\u200b\u5047\u8bbe\u200b\uff0c\u200b\u5047\u8bbe\u200b x \u200b\u7684\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u90fd\u200b\u662f\u200b\u72ec\u7acb\u200b\u7684\u200b\uff08\u200b\u4e8b\u5b9e\u4e0a\u200b\u5927\u200b\u6982\u7387\u200b\u5e76\u200b\u4e0d\u662f\u200b\uff0c\u200b\u8fd9\u662f\u200b\u6781\u5927\u200b\u7b80\u5316\u200b\u8ba1\u7b97\u200b\u91cf\u200b\u7684\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u5f15\u5165\u200b\u8bef\u5dee\u200b\u7684\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u8be5\u200b\u7b97\u6cd5\u200b\u7684\u200b\u201c\u200b\u6734\u7d20\u200b\u201d\u200b\u4e4b\u200b\u5904\u200b\uff09:
\\[ P(X = x| Y = c_k) = P(X^{(1)} = x^{(1)}\uff0c X^{(2)} = x^{(2)} ... X^{(n)} = x^{(n)} | Y = c_k)= \\prod_{i=1}^{n}P(X^{(i)} = x^{(i)}| Y = c_k) \\]\u200b\u4e0a\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u5728\u200b\u7c7b\u522b\u200b\u662f\u200b\\(c_k\\)\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0cX \u200b\u8fd9\u4e00\u200b n \u200b\u7ef4\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b x \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u5c31\u662f\u200b\\(c_k\\)\u200b\u8fd9\u200b\u4e00\u7c7b\u200b\u4e2d\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(x^{(i)}\\)\u200b\u7684\u200b\u6982\u7387\u200b\u7684\u200b\u4e58\u79ef\u200b.
\u200b\u5b66\u4e60\u200b\u5230\u200b\u4e86\u200b\u8054\u5408\u200b\u6982\u7387\u5206\u5e03\u200b\u4e4b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b\u5206\u7c7b\u200b\u7684\u200b\u65f6\u5019\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\u6700\u5927\u200b\u540e\u9a8c\u200b\u6982\u7387\u200b\uff1a
\\[ y = \\underset{c_k}{\\operatorname{arg max}} P(Y = c_k) \\prod_{i=1}^{n}P(X^{(i)} = x^{(i)}| Y = c_k) \\]\u200b\u4e0a\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u5047\u8bbe\u200b x \u200b\u7684\u200b\u7c7b\u522b\u200b\u662f\u200b\\(c_k\\)\uff0c\u200b\u8ba1\u7b97\u200b\u6bcf\u4e2a\u200b\\(c_k\\)\u200b\u8fd9\u200b\u4e00\u7c7b\u200b\u4e2d\u200b\u51fa\u73b0\u200b x \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u627e\u51fa\u200b\u6982\u7387\u200b\u6700\u5927\u200b\u7684\u200b\u90a3\u200b\u4e00\u7c7b\u200b\u4f5c\u4e3a\u200b x \u200b\u7684\u200b\u5206\u7c7b\u200b.
PPT \u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5206\u7c7b\u200b\u5b9e\u4f8b\u200b "},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_3","title":"\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1","text":"\u200b\u5229\u7528\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4e0b\u9762\u200b\u8fd9\u200b\u4e24\u4e2a\u200b\u6982\u7387\u200b\u7684\u200b\u4f30\u8ba1\u200b\u516c\u5f0f\u200b\uff1a
\\[\\begin{aligned} &P(Y = c_k) = \\frac{\\sum_{i=1}^{N}I(y_i = c_k)}{N} \\\\ &P(X^{(i)} = a_{jl}| Y = c_k) = \\frac{\\sum_{i=1}^{N}I(x_i^{(i)} = a_{jl}\uff0cy_i = c_k)}{\\sum_{i=1}^{N}I(y_i = c_k)} \\end{aligned}\\]\u200b\u6307\u793a\u200b\u51fd\u6570\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5728\u200b\u524d\u9762\u200b\u5df2\u7ecf\u200b\u6709\u200b\u4ecb\u7ecd\u200b\uff0c\u200b\u540e\u7eed\u200b\u90fd\u200b\u9ed8\u8ba4\u200b\u4f7f\u7528\u200b\u8fd9\u4e00\u200b\u5b9a\u4e49\u200b.
\u200b\u7b2c\u4e00\u200b\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u4e0d\u540c\u200b\u7c7b\u522b\u200b\u7684\u200b\u51fa\u73b0\u200b\u6982\u7387\u200b\u7684\u200b\u5148\u9a8c\u6982\u7387\u200b\u76f4\u63a5\u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2d\u8be5\u200b\u7c7b\u522b\u200b\u51fa\u73b0\u200b\u7684\u200b\u9891\u7387\u200b.
\u200b\u7b2c\u4e8c\u200b\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u5728\u200b\u7c7b\u522b\u200b\u4e3a\u200b\\(c_k\\)\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u7b2c\u200b i \u200b\u7ef4\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(a_{jl}\\)\u200b\u7684\u200b\u6982\u7387\u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2d\u200b\\(c_k\\)\u200b\u7c7b\u4e2d\u200b\u8be5\u200b\u5206\u91cf\u200b\u4e3a\u200b\\(a_{jl}\\)\u200b\u7684\u200b\u6837\u672c\u200b\u5360\u200b\\(c_k\\)\u200b\u7c7b\u200b\u6837\u672c\u200b\u603b\u6570\u200b\u7684\u200b\u6bd4\u91cd\u200b.
\u200b\u601d\u60f3\u200b
\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5728\u200b\u6b64\u5904\u200b\u7684\u200b\u7ed3\u679c\u200b\u57fa\u672c\u4e0a\u200b\u53ef\u4ee5\u200b\u7b80\u5355\u200b\u5f52\u7ed3\u4e3a\u200b\uff1a\u200b\u7528\u200b\u9891\u7387\u200b\u4f30\u8ba1\u200b\u6982\u7387\u200b
"},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_4","title":"\u8d1d\u53f6\u65af\u200b\u4f30\u8ba1","text":"\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5728\u200b\u4e00\u4e2a\u200b\u60c5\u51b5\u200b\u4e0b\u200b\u53ef\u80fd\u200b\u9047\u5230\u200b\u95ee\u9898\u200b\uff0c\u200b\u5982\u679c\u200b\u67d0\u4e2a\u200b\u6837\u672c\u200b\u6ca1\u6709\u200b\u51fa\u73b0\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5bf9\u200b\u90a3\u4e2a\u200b\u7c7b\u522b\u200b\u4f30\u8ba1\u200b\u7684\u200b\u4fe1\u606f\u200b\u5b8c\u5168\u200b\u4e22\u5931\u200b.
\u200b\u4e3a\u200b\u89e3\u51b3\u200b\u8fd9\u4e00\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u624b\u52a8\u200b\u4e3a\u200b\u6bcf\u200b\u4e00\u200b\u7c7b\u522b\u200b\u6dfb\u52a0\u200b\u9ed8\u8ba4\u200b n \u200b\u6b21\u200b\u7684\u200b\u51fa\u73b0\u200b\u9891\u6570\u200b\uff1a
\\[\\begin{aligned} &P(Y = c_k) = \\frac{\\sum_{i=1}^{N}I(y_i = c_k) + \\lambda}{N + K\\lambda} \\\\ &P(X^{(i)} = a_{jl}| Y = c_k) = \\frac{\\sum_{i=1}^{N}I(x_i^{(i)} = a_{jl}\uff0cy_i = c_k) + \\lambda}{\\sum_{i=1}^{N}I(y_i = c_k) + S_i\\lambda} \\end{aligned}\\]\u200b\u5176\u4e2d\u200b\\(S_i\\)\u200b\u662f\u200b\u7b2c\u200b i \u200b\u7ef4\u200b\u7684\u200b\u53d6\u503c\u200b\u4e2a\u6570\u200b\uff0c\\(\\lambda\\)\u200b\u662f\u200b\u4e00\u4e2a\u200b\u8d85\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e00\u822c\u200b\u53d6\u200b 1.
\u200b\u5728\u200b\u7b2c\u4e00\u200b\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7c7b\u522b\u200b\u90fd\u200b\u52a0\u5165\u200b\u4e86\u200b\\(\\lambda\\)\u200b\u7684\u200b\u9891\u7387\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5206\u5b50\u200b\u5355\u72ec\u200b\u67d0\u7c7b\u200b\u7684\u200b\u9891\u6570\u200b\u52a0\u4e0a\u200b\u4e86\u200b\\(\\lambda\\)\uff0c\u200b\u5206\u6bcd\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u603b\u200b\u7c7b\u522b\u200b\u6570\u200b K \u200b\u4e58\u200b\u4e0a\u200b\\(\\lambda\\).
\u200b\u5728\u200b\u7b2c\u4e8c\u200b\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7c7b\u522b\u200b\u7684\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u90fd\u200b\u52a0\u5165\u200b\u4e86\u200b\\(\\lambda\\)\u200b\u7684\u200b\u9891\u7387\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5206\u5b50\u200b\u5355\u72ec\u200b\u67d0\u7c7b\u200b\u7684\u200b\u9891\u6570\u200b\u52a0\u4e0a\u200b\u4e86\u200b\\(\\lambda\\)\uff0c\u200b\u5206\u6bcd\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u8be5\u200b\u7ef4\u5ea6\u200b\u53ef\u80fd\u200b\u7684\u200b\u53d6\u503c\u200b\u4e2a\u200b\u6570\u6570\u200b\u4e58\u200b\u4e0a\u200b\\(\\lambda\\)\uff08\u200b\u56e0\u4e3a\u200b\u6709\u200b\u591a\u5c11\u200b\u4e2a\u200b\u53d6\u503c\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u4eba\u4e3a\u200b\u7684\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u591a\u5c11\u200b\u4e2a\u200b\\(\\lambda\\)\uff09.
\u200b\u53ef\u4ee5\u200b\u8ba4\u4e3a\u200b\u8d1d\u53f6\u65af\u200b\u4f30\u8ba1\u200b\u662f\u200b\u5bf9\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u8fdb\u884c\u200b\u4e86\u200b\u5e73\u6ed1\u200b.
"},{"location":"Note/Data%20Modeling/Perceptron/","title":"\u611f\u77e5\u673a","text":"\u200b\u7ea6\u200b 846 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
"},{"location":"Note/Data%20Modeling/Perceptron/#_2","title":"\u539f\u59cb\u200b\u5f62\u5f0f","text":"\u200b\u611f\u77e5\u673a\u200b\u7684\u200b\u7ed3\u6784\u200b\u5982\u4e0b\u200b\u56fe\u200b\u6240\u793a\u200b\uff0c\u200b\u88ab\u200b\u89c6\u4e3a\u200b\u662f\u200b\u6700\u200b\u7b80\u5355\u200b\u7684\u200b\u524d\u9988\u200b\u795e\u7ecf\u7f51\u7edc\u200b\uff0c\u200b\u662f\u200b\u4e00\u79cd\u200b\u4e8c\u5143\u200b\u7ebf\u6027\u200b\u5206\u7c7b\u5668\u200b.
\u200b\u4e0b\u9762\u200b\u7ed9\u51fa\u200b\u5f62\u5f0f\u5316\u200b\u8868\u8ff0\u200b\uff1a
\u200b\u611f\u77e5\u673a\u200b
\u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(y_i \\in \\{1\uff0c-1\\}\\)\u200b\u662f\u200b\u6570\u636e\u200b\u6807\u7b7e\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u627e\u5230\u200b\u4e00\u7ec4\u200b\\((w\uff0cb)\\)\u200b\u4f7f\u5f97\u200b\u51fd\u6570\u200b\\(f(x) = sign(w \\cdot x + b)\\)\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u6700\u5c0f\u200b\uff1a
\\[ \\min L(w\uff0cb) = - \\sum_{i=1}^{n} y_i(w \\cdot x_i + b) \\]\u200b\u6ce8\u610f\u200b\u4e0a\u200b\u6587\u4e2d\u200b\u7684\u200b\\(sign\\)\u200b\u51fd\u6570\u200b\uff0c\u200b\u5b83\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a
\\[ sign(x) = \\left\\{ \\begin{aligned} 1\uff0c & x \\geq 0 \\\\ -1\uff0c & x < 0 \\end{aligned} \\right. \\]\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5982\u679c\u200b\\(y_i\\)\u200b\u548c\u200b\\(f(x)\\)\u200b\u82e5\u200b\u662f\u200b\u7b26\u53f7\u200b\u76f8\u540c\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\uff09\uff0c\u200b\u90a3\u4e48\u200b\\(y_i(w \\cdot x_i + b)\\)\u200b\u7684\u200b\u503c\u200b\u5c31\u662f\u200b 1\uff0c\u200b\u53cd\u4e4b\u200b\u5219\u200b\u662f\u200b-1.\u200b\u56e0\u6b64\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u5c3d\u53ef\u80fd\u200b\u6700\u5927\u5316\u200b\u6240\u6709\u200b\\(y_i(w \\cdot x_i + b)\\)\u200b\u6c42\u548c\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u8fd9\u200b\u4e5f\u200b\u7b49\u6548\u4e8e\u200b\u6700\u5c0f\u5316\u200b\u5176\u200b\u8d1f\u6570\u200b.\uff08\u200b\u8be5\u200b\u9886\u57df\u200b\u7ea6\u5b9a\u4fd7\u6210\u200b\u5c31\u662f\u200b\u5199\u6210\u200b\u6700\u5c0f\u5316\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\uff0c\u200b\u6700\u5c0f\u5316\u200b\u548c\u200b\u6700\u5927\u5316\u200b\u4e4b\u95f4\u200b\u53ea\u8981\u200b\u52a0\u200b\u4e00\u4e2a\u200b\u8d1f\u53f7\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e92\u76f8\u8f6c\u5316\u200b\uff09
\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b SGD\uff08Stochastic Gradient Descent\uff09\u200b\u6765\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u95ee\u9898\u200b\uff0c\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u7684\u200b\u68af\u5ea6\u200b\u4e3a\u200b\uff1a
\\[\\begin{aligned} &\\nabla_w L(w\uff0cb) = - \\sum_{i=1}^{n} y_i x_i \\\\ &\\nabla_b L(w\uff0cb) = - \\sum_{i=1}^{n} y_i \\end{aligned}\\]\u200b\u4ece\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u968f\u673a\u200b\u9009\u53d6\u200b\u4e00\u4e2a\u200b\u6837\u672c\u200b\\((x_i\uff0cy_i)\\)\uff0c\u200b\u66f4\u65b0\u200b\u53c2\u6570\u200b\uff1a
\\[\\begin{aligned} & w = w + \\eta y_i x_i\\\\ & b = b + \\eta y_i \\\\ \\end{aligned}\\]\u200b\u76f4\u5230\u200b\u6ca1\u6709\u200b\u8bef\u200b\u5206\u7c7b\u200b\u70b9\u200b.\u200b\u5176\u4e2d\u200b\\(\\eta \\in (0\uff0c1]\\)\u200b\u662f\u200b\u5b66\u4e60\u200b\u7387\u200b.
"},{"location":"Note/Data%20Modeling/Perceptron/#_3","title":"\u6536\u655b\u6027","text":"\u200b\u53ef\u4ee5\u200b\u8bc1\u660e\u200b\uff0c\u200b\u611f\u77e5\u673a\u200b\u7684\u200b\u8bef\u200b\u5206\u7c7b\u200b\u6b21\u6570\u200b K \u200b\u5b58\u5728\u200b\u4e00\u4e2a\u200b\u4e0a\u200b\u754c\u200b\uff0c\u200b\u5373\u200b\uff1b
\\[\\begin{aligned} & K \\leq (\\frac{R}{\\gamma})^2 \\\\ & R = \\max_{1 \\leq i \\leq n} ||x_i|| \\\\ & \\gamma = \\min_{1 \\leq i \\leq n} y_i(w^* \\cdot x_i + b^*) \\end{aligned}\\]\u200b\u5176\u4e2d\u200b\\(w^*\uff0cb^*\\)\u200b\u662f\u200b\u6700\u4f18\u200b\u89e3\u200b\uff0c\\(R\\)\u200b\u662f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u6837\u672c\u200b\u70b9\u200b\u7684\u200b\u6700\u5927\u200b\u8303\u6570\u200b\uff0c\\(\\gamma\\)\u200b\u662f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u6700\u5c0f\u200b\u8ddd\u79bb\u200b. \u200b\u5bf9\u200b\u8bc1\u660e\u200b\u8fc7\u7a0b\u200b\u611f\u5174\u8da3\u200b\u7684\u200b\u53ef\u4ee5\u200b\u770b\u4e66\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e0d\u200b\u5c55\u5f00\u200b.
"},{"location":"Note/Data%20Modeling/Perceptron/#_4","title":"\u5bf9\u5076\u200b\u5f62\u5f0f","text":"\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u53c2\u6570\u200b\u4e3a\u200b\\(w_0 = 0\uff0cb_0 = 0\\)\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a
\\[\\begin{aligned} & w = \\sum \\eta y_i x_i \\\\ & b = \\sum \\eta y_i \\end{aligned}\\]\u200b\u5176\u4e2d\u200b\\(\\eta\\)\u200b\u662f\u200b\u5b66\u4e60\u200b\u7387\u200b.\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u662f\u4ece\u200b 0 \u200b\u5f00\u59cb\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u5f80\u200b\u53c2\u6570\u200b\u4e0a\u52a0\u200b\u4e00\u5b9a\u200b\u7684\u200b\u66f4\u65b0\u200b\u503c\u200b\uff0c\u200b\u6240\u4ee5\u200b\u4e0a\u200b\u5f0f\u200b\u81ea\u7136\u200b\u6210\u7acb\u200b.
\u200b\u5047\u8bbe\u200b\u5176\u4e2d\u200b\u7b2c\u200b i \u200b\u4e2a\u200b\u6570\u636e\u200b\u70b9\u200b\u5728\u200b SGD \u200b\u4e2d\u200b\u88ab\u200b\u968f\u673a\u200b\u9009\u4e2d\u200b\u4e86\u200b\\(n_i\\)\u200b\u6b21\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5b83\u200b\u56e0\u6b64\u200b\u5bfc\u81f4\u200b\u4e86\u200b\\(n_i\\)\u200b\u6b21\u200b\u53c2\u6570\u200b\u7684\u200b\u66f4\u65b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u4e0a\u5f0f\u200b\u5199\u6210\u200b\uff1a
\\[\\begin{aligned} & w = \\sum_{i=1}^{n} \\eta n_i y_i x_i \\\\ & b = \\sum_{i=1}^{n} \\eta n_i y_i \\end{aligned}\\]\u200b\u4ee4\u200b\\(\\alpha_i = \\eta n_i\\)\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a
\\[\\begin{aligned} & w = \\sum_{i=1}^{n}\\alpha_i y_i x_i \\\\ & b = \\sum_{i=1}^{n}\\alpha_i y_i \\end{aligned}\\]\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u7c7b\u200b\u51fd\u6570\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5199\u6210\u200b\uff1a
\\[ f(x) = sign(\\sum_{i=1}^{n}\\alpha_i y_i\uff08 x_i \\cdot x \uff09 + \\sum_{i=1}^{n}\\alpha_i y_i) \\]\u200b\u6bcf\u6b65\u200b SGD \u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u66f4\u65b0\u200b\\(\\alpha_i\\):
\\[ \\alpha_i = \\alpha_i + \\eta \\]\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u7c7b\u200b\u51fd\u6570\u200b\u4e2d\u200b\u53ea\u6709\u200b\\(\\alpha_i\\)\u200b\u9700\u8981\u200b\u6bcf\u6b21\u200b\u66f4\u65b0\u200b\uff0c\u200b\u9664\u6b64\u4e4b\u5916\u200b\u8fd8\u6709\u200b\u5927\u91cf\u200b\u7684\u200b x \u200b\u7684\u200b\u5185\u79ef\u200b\u8fd0\u7b97\u200b\uff0c\u200b\u4e3a\u4e86\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b x \u200b\u7684\u200b\u5185\u79ef\u200b\u9884\u5148\u200b\u8ba1\u7b97\u51fa\u6765\u200b\uff0c\u200b\u8fd9\u200b\u88ab\u79f0\u4f5c\u200b Gram \u200b\u77e9\u9635\u200b\uff1a
Gram \u200b\u77e9\u9635\u200b
\u200b\u7ed9\u5b9a\u200b n \u200b\u4e2a\u200b\u5411\u91cf\u200b\\(x_1\uff0cx_2\uff0c...\uff0cx_n\\)\uff0c\u200b\u90a3\u4e48\u200b Gram \u200b\u77e9\u9635\u200b\\(G\\)\u200b\u662f\u200b\u7531\u200b\u8fd9\u4e9b\u200b\u5411\u91cf\u200b\u6240\u6709\u200b\u53ef\u80fd\u200b\u7684\u200b\u5185\u79ef\u200b\u7ec4\u6210\u200b\u7684\u200b\u77e9\u9635\u200b\uff0c\u200b\u5373\u200b\uff1a
\\[ g_{ij} = x_i \\cdot x_j \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/","title":"\u652f\u6301\u200b\u5411\u91cf\u200b\u673a","text":"\u200b\u7ea6\u200b 2059 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 7 \u200b\u5206\u949f\u200b
Warning
\u200b\u5f88\u591a\u200b\u4eba\u200b\u90fd\u200b\u5410\u200b\u69fd\u200b\uff0c\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u673a\u200b\u8fd9\u4e2a\u200b\u540d\u5b57\u200b\u8d77\u200b\u7684\u200b\u4f9d\u6258\u200b
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_2","title":"\u6a21\u578b\u200b\u63cf\u8ff0","text":"\u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(x_i \\in \\mathbb{R}^n\uff0c y \\in \\{1\uff0c-1\\}\\)\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u8d85\u5e73\u9762\u200b\\(w\\cdot x + b = 0\\)\u200b\u5c06\u200b\u6570\u636e\u200b\u96c6\u200b\u5206\u5f00\u200b.
\u200b\u5b9e\u4f8b\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b
\\[ \\gamma_i = \\frac{y_i(w\\cdot x_i + b)}{\\|w\\|} \\]\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5176\u200b\u7edd\u5bf9\u503c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u70b9\u5230\u200b\u76f4\u7ebf\u200b\u8ddd\u79bb\u200b
\u200b\u5b9e\u4f8b\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b
\\[ \\hat{\\gamma_i} = y_i(w\\cdot x_i + b) \\]\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5176\u200b\u7edd\u5bf9\u503c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u9664\u53bb\u200b\u4e86\u200b\\(||w||\\)\u200b\u8fd9\u4e2a\u200b\u56e0\u7d20\u200b
\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u53d8\u91cf\u200b\u7684\u200b\u7edd\u5bf9\u503c\u200b\u542b\u4e49\u200b\u90fd\u200b\u8868\u793a\u200b\u67d0\u79cd\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u800c\u200b\u7b26\u53f7\u200b\u8868\u793a\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\u4e0e\u5426\u200b\uff0c\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\u65f6\u95f4\u200b\u9694\u4e3a\u200b\u6b63\u200b\uff0c\u200b\u5206\u7c7b\u200b\u9519\u8bef\u200b\u65f6\u95f4\u200b\u9694\u4e3a\u200b\u8d1f\u200b
\u200b\u7ed9\u5b9a\u200b\u4e00\u7ec4\u200b\u6570\u636e\u200b\u70b9\u200b\u548c\u200b\u4e00\u4e2a\u200b\u8d85\u5e73\u9762\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u5404\u4e2a\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u548c\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b.\u200b\u4f46\u662f\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u6210\u200b\u6bd4\u4f8b\u200b\u7684\u200b\u540c\u65f6\u200b\u653e\u7f29\u200b w \u200b\u548c\u200b b\uff0c\u200b\u90a3\u4e48\u200b\u8d85\u5e73\u9762\u200b\u548c\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\u90fd\u200b\u5b8c\u5168\u200b\u4e0d\u53d8\u200b\uff0c\u200b\u4f46\u662f\u200b\u6240\u6709\u200b\u70b9\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u90fd\u200b\u4f1a\u200b\u968f\u7740\u200b w \u200b\u7684\u200b\u53d8\u5316\u200b\u800c\u200b\u53d8\u5316\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\uff08\u200b\u4e0d\u53d8\u200b\uff09\u200b\u4e58\u200b\u4e0a\u200b w \u200b\u7684\u200b\u6a21\u200b\uff08\u200b\u6b63\u5728\u200b\u88ab\u6210\u200b\u6bd4\u4f8b\u200b\u653e\u7f29\u200b\uff09
\u200b\u4e3a\u4e86\u200b\u63d0\u9ad8\u200b\u5206\u7c7b\u200b\u7684\u786e\u200b\u4fe1\u5ea6\u200b\u548c\u200b\u6cdb\u5316\u200b\u80fd\u529b\u200b\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6700\u5927\u5316\u200b\u6700\u5c0f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5c3d\u91cf\u200b\u63d0\u9ad8\u200b\u6240\u6709\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u8ddd\u79bb\u200b\u7684\u200b\u4e0b\u754c\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u8ba9\u200b\u6240\u6709\u200b\u70b9\u200b\u90fd\u200b\u5c3d\u53ef\u80fd\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u8fdc\u200b\u4e00\u70b9\u200b\uff08\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u5f88\u8fd1\u200b\u7684\u8bdd\u200b\uff0c\u200b\u7a0d\u5fae\u200b\u6709\u200b\u4e00\u70b9\u200b\u6270\u52a8\u200b\u5c31\u200b\u5bb9\u6613\u200b\u88ab\u200b\u5206\u6210\u200b\u53e6\u4e00\u7c7b\u200b\uff09
\u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5199\u51fa\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b
\\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\gamma \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq \\gamma\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u5176\u4e2d\u200b\u7684\u200b\\(\\gamma = \\underset {i}{\\operatorname{min}} \\gamma_i\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u6700\u5c0f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b
\u200b\u89c2\u5bdf\u200b\u5230\u200b\\(\\gamma\\|w\\| = \\hat{\\gamma}\\)\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5c06\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\u8f6c\u5316\u200b\u4e3a\u200b
\\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\frac{\\hat{\\gamma}}{\\|w\\|} \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq \\hat{\\gamma}\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u6210\u200b\u6bd4\u4f8b\u200b\u7684\u200b\u653e\u7f29\u200b w \u200b\u548c\u200b b \u200b\u6765\u200b\u8c03\u8282\u200b\\(\\hat{\\gamma}\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u653e\u7f29\u200b\\(w\\)\u200b\u4f7f\u5f97\u200b\\(\\hat{\\gamma} = 1\\)\uff0c\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\u8f6c\u5316\u200b\u4e3a\u200b
\\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\frac{1}{\\|w\\|} \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq 1\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b\u53ef\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(w^*\uff0cb^*\\)\uff0c\u200b\u6784\u6210\u200b\u6700\u4f18\u200b\u5206\u79bb\u200b\u8d85\u5e73\u9762\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8bc1\u660e\u200b\uff0c\u200b\u8be5\u200b\u8d85\u5e73\u9762\u200b\u5b58\u5728\u200b\u4e14\u200b\u552f\u4e00\u200b\uff0c\u200b\u90a3\u4e9b\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u6700\u8fd1\u200b\u7684\u200b\u70b9\u200b\u5c31\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u652f\u6301\u200b\u5411\u91cf\u200b
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_3","title":"\u6a21\u578b\u200b\u6c42\u89e3","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_4","title":"\u5bf9\u5076\u200b\u95ee\u9898","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_5","title":"\u5199\u51fa\u200b\u5bf9\u5076\u200b\u95ee\u9898","text":"\u200b\u62c9\u683c\u6717\u200b\u65e5\u200b\u51fd\u6570\u200b\u4e3a\u200b\uff1a
\\[ L(w\uff0cb\uff0c\\alpha) = \\frac{1}{2}||w||^2 - \\sum_{i=1}^{N}\\alpha_iy_i(w\\cdot x_i + b) + \\sum_{i=1}^{N}\\alpha_i \\]\u200b\u6211\u4eec\u200b\u5c06\u200b\u6700\u5c0f\u200b\u6700\u5927\u200b\u95ee\u9898\u200b\u8f6c\u5316\u200b\u4e3a\u200b\u6700\u5927\u200b\u6700\u5c0f\u200b\u95ee\u9898\u200b\uff0c\u200b\u5199\u51fa\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\uff1a
\\[ \\underset {\\alpha}{\\operatorname{min}} \\underset {w\uff0cb}{\\operatorname{max}} L(w\uff0cb\uff0c\\alpha) \\rightarrow \\underset {\\alpha}{\\operatorname{min}} \\underset {w\uff0cb}{\\operatorname{max}} L(w\uff0cb\uff0c\\alpha) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_6","title":"\u6781\u5c0f\u200b\u5316","text":"\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u8ba9\u200b\\(\\nabla_w L(w\uff0cb\uff0c\\alpha) = 0\\)\u200b\u548c\u200b\\(\\nabla_b L(w\uff0cb\uff0c\\alpha) = 0\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b
\\[\\begin{aligned} & w = \\sum_{i=1}^{N}\\alpha_i y_i x_i \\\\ & 0 = \\sum_{i=1}^{N}\\alpha_i y_i \\\\ \\end{aligned}\\]\u200b\u5e26\u56de\u200b\u539f\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u5f97\u5230\u200b\uff1a
\\[ L(w\uff0cb\uff0c\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_7","title":"\u6781\u5927\u200b\u5316","text":"\u200b\u5728\u200b\u6781\u5c0f\u200b\u5316\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5269\u4e0b\u200b\u7684\u200b\u95ee\u9898\u200b\u5c31\u662f\u200b
\\[\\begin{aligned} \\underset {\\alpha}{\\operatorname{max}} & \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\\\ s.t. & \\quad \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & \\quad \\alpha_i \\geq 0\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u901a\u8fc7\u200b\u67d0\u79cd\u200b\u65b9\u5f0f\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^*\\)
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_8","title":"\u539f\u59cb\u200b\u95ee\u9898","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#kkt","title":"\u5e94\u7528\u200b KKT \u200b\u6761\u4ef6","text":"\u200b\u6709\u200b\u4e86\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u7684\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^* = (\\alpha_1^*\uff0c\\alpha_2^*\uff0c...\uff0c\\alpha_N^*)\\)\uff0c\u200b\u5e94\u7528\u200b KKT \u200b\u6761\u4ef6\u200b\uff1a
\\[\\begin{align} & \\alpha_i^* \\geq 0 \\tag{1}\\\\ & y_i(w^*\\cdot x_i + b^*) - 1 \\geq 0 \\tag{2}\\\\ & \\alpha_i^*(y_i(w^*\\cdot x_i + b^*) - 1) = 0 \\tag{3}\\\\ & \\nabla_w L(w^*\uff0cb^*\uff0c\\alpha^*) = w^* - \\sum_{i=1}^{N}\\alpha_i^* y_i x_i = 0 \\tag{4}\\\\ & \\nabla_b L(w^*\uff0cb^*\uff0c\\alpha^*) = \\sum_{i=1}^{N}\\alpha_i^* y_i = 0 \\tag{5}\\\\ \\end{align}\\]\u200b\u82e5\u200b\\(\\alpha^* = 0\\)\uff0c\u200b\u7531\u200b(4)\u200b\u53ef\u4ee5\u200b\u63a8\u51fa\u200b\\(w^* = 0\\)\uff0c\u200b\u663e\u7136\u200b\u4e0d\u200b\u5bf9\u200b\uff0c\u200b\u6240\u4ee5\u200b\\(\\alpha^*\\)\u200b\u4e0d\u5168\u200b\u4e3a\u200b\u96f6\u200b
\u200b\u82e5\u200b\\(\\alpha_i^* > 0\\)\uff0c\u200b\u7531\u200b(3)\u200b\u53ef\u4ee5\u200b\u63a8\u51fa\u200b\\(y_i(w^*\\cdot x_i + b^*) = 1\\)\uff0c\u200b\u56de\u5fc6\u200b\u524d\u200b\u6587\u200b\u6211\u4eec\u200b\u5df2\u7ecf\u200b\u4ee4\u200b\\(\\hat{\\gamma} = 1\\)\uff0c\u200b\u6240\u4ee5\u200b j \u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u8ddf\u200b\u6700\u5c0f\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u76f8\u7b49\u200b\uff0c\u200b\u6bcf\u4e2a\u200b j \u200b\u90fd\u200b\u56e0\u6b64\u200b\u6210\u4e3a\u200b\u4e00\u4e2a\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u5176\u4e2d\u200b\u65e2\u6709\u200b\u6b63\u4f8b\u200b\u4e5f\u200b\u6709\u200b\u53cd\u4f8b\u200b
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#wb","title":"\u6c42\u200b\u6700\u4f18\u200b w\uff0cb","text":"\u200b\u5229\u7528\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b
\\[\\begin{align} & w^* = \\sum_{i=1}^{N}\\alpha_i^* y_i x_i \\\\ & b^* = y_j - \\sum_{i=1}^{N}\\alpha_i^* y_i (x_i\\cdot x_j) \\\\ \\end{align}\\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_9","title":"\u5f97\u5230\u200b\u5206\u79bb\u200b\u51fd\u6570","text":"\u200b\u5229\u7528\u200b\u6700\u4f18\u200b\u89e3\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u5206\u79bb\u200b\u51fd\u6570\u200b
\\[ f(x) = sign(\\sum_{i=1}^{N}\\alpha_i^* y_i (x_i\\cdot x) + b^*) \\]\u200b\u4ee5\u4e0a\u200b\u4fbf\u662f\u200b\u6c42\u89e3\u200b\u4e8c\u6b21\u200b\u89c4\u5212\u200b\u95ee\u9898\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u95f4\u9694\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u5176\u4e2d\u200b\u53ea\u6709\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u4e2d\u200b\u7684\u200b\u6c42\u200b\u7684\u200b\u6700\u4f18\u200b\\(\\alpha^*\\)\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6ca1\u6709\u200b\u9610\u660e\u200b\uff0c\u200b\u540e\u9762\u200b\u4f1a\u200b\u7ed9\u51fa\u200b
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_10","title":"\u8f6f\u200b\u95f4\u9694","text":"\u200b\u4e00\u822c\u800c\u8a00\u200b\uff0c\u200b\u7531\u4e8e\u200b\u566a\u58f0\u200b\u7684\u200b\u5e72\u6270\u200b\uff0c\u200b\u6211\u4eec\u200b\u5f88\u96be\u200b\u76f4\u63a5\u200b\u62ff\u5230\u200b\u4e00\u4e2a\u200b\u7ebf\u6027\u200b\u53ef\u5206\u200b\u7684\u200b\u6570\u636e\u200b\u96c6\u200b\uff0c\u200b\u800c\u662f\u200b\u4e00\u4e2a\u200b\u8fd1\u4f3c\u200b\u7ebf\u6027\u200b\u53ef\u5206\u200b\u7684\u200b\u6570\u636e\u200b\u96c6\u200b\uff0c\u200b\u6211\u4eec\u200b\u53bb\u6389\u200b\u5927\u90e8\u5206\u200b\u7684\u200b\u566a\u70b9\u200b\u540e\u200b\u53ef\u4ee5\u200b\u505a\u5230\u200b\u7ebf\u6027\u200b\u53ef\u200b\u5206\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u4e9b\u200b\u566a\u70b9\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u8dd1\u200b\u5230\u200b\u4e86\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u751a\u81f3\u200b\u8d85\u5e73\u9762\u200b\u5bf9\u9762\u200b\u7684\u200b\uff0c\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b
\\[ y_i(w\\cdot x_i + b) \\geq 1 - \\xi_i \\quad i = 1\uff0c2\uff0c...\uff0cN (\\xi_i \\geq 0 ) \\]\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\uff0c\u200b\u5e76\u975e\u200b\u6240\u6709\u200b\u70b9\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u90fd\u200b\u5927\u4e8e\u200b 1 \u200b\u4e86\u200b\uff08\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u4e3a\u200b 1 \u200b\u7684\u200b\u662f\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u4e0d\u200b\u5927\u4e8e\u200b\u4e00\u200b\u5c31\u200b\u4f4d\u4e8e\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u4e86\u200b\uff09\uff0c
\u200b\u5f53\u7136\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e0d\u80fd\u5141\u8bb8\u200b\u65e0\u200b\u9650\u5236\u200b\u7684\u200b\u677e\u5f1b\u200b\uff0c\u200b\u4e0d\u7136\u200b\u6240\u8c13\u200b\u7684\u200b\u5176\u4ed6\u200b\u5411\u91cf\u200b\u90fd\u200b\u53ef\u4ee5\u200b\u968f\u610f\u200b\u8dd1\u200b\u5230\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u7684\u8bdd\u200b\uff0c\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4e5f\u200b\u5c31\u200b\u6ca1\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fdb\u5f62\u200b\u6b63\u5219\u200b\u5316\u200b
\\[ \\underset {w\uff0cb\uff0c\\xi}{\\operatorname{min}} \\quad \\frac{1}{2}||w||^2 + C\\sum_{i=1}^{N}\\xi_i \\\\ \\]\u200b\u5176\u4e2d\u200b\u7684\u200b C \u200b\u662f\u200b\u4e00\u4e2a\u200b\u6211\u4eec\u200b\u624b\u52a8\u200b\u8bbe\u7f6e\u200b\u7684\u200b\u60e9\u7f5a\u200b\u53c2\u6570\u200b
\u200b\u6211\u4eec\u200b\u7684\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u968f\u4e4b\u200b\u53d8\u6210\u200b\uff1a
\\[\\begin{aligned} \\underset {\\alpha}{\\operatorname{max}} & \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\\\ s.t. & \\quad \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & \\quad 0 \\leq \\alpha_i \\leq C\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u5176\u4e2d\u200b\u7531\u4e8e\u200b\u677e\u5f1b\u200b\u6761\u4ef6\u200b\uff0c\u200b\u6211\u4eec\u200b\u6781\u5c0f\u200b\u5316\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u65b0\u589e\u200b\u4e86\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u7ea6\u675f\u200b\uff1a
\\[\\begin{aligned} \\nabla_{\\xi_i} L(w\uff0cb\uff0c\\alpha\uff0c\\xi) = C - \\alpha_i - \\mu_i = 0 \\quad i = 1\uff0c2\uff0c...\uff0cN \\\\ \\mu_i \\geq 0 \\quad i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u8fd9\u200b\u4e5f\u200b\u662f\u200b\u4e0a\u8ff0\u200b\u6761\u4ef6\u200b\u4e2d\u200b\u51fa\u73b0\u200b\\(\\alpha_i \\leq C\\)\u200b\u7684\u200b\u539f\u56e0\u200b
\u200b\u540c\u6837\u200b\u6c42\u89e3\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^*\\)\uff0c\u200b\u7136\u540e\u200b\u5e26\u56de\u200b\u539f\u200b\u5f0f\u200b\uff0c\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(w^*\uff0cb^*\uff0c\\xi^*\\)\uff0c\u200b\u6784\u6210\u200b\u6700\u4f18\u200b\u5206\u79bb\u200b\u8d85\u5e73\u9762\u200b
\u200b\u90a3\u4e9b\u200b\u88ab\u200b\u677e\u5f1b\u200b\u7684\u200b\u70b9\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u548c\u200b\\(\\xi\\)\u200b\u7684\u200b\u7684\u200b\u5173\u7cfb\u200b\u4e3a\u200b\uff1a
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_11","title":"\u6838\u200b\u51fd\u6570","text":"\u200b\u6211\u4eec\u200b\u60f3\u8981\u200b\u628a\u200b\u70b9\u200b\\(x\uff0c z \\in \\mathbb{R}^n\\)\u200b\u6620\u5c04\u200b\u5230\u200b\u4e00\u4e2a\u200b\u66f4\u200b\u9ad8\u7ef4\u200b\u7684\u200b\u7a7a\u95f4\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b(\\(\\phi(x)\\)\u200b\u88ab\u200b\u6620\u5c04\u200b\u5230\u200b\u66f4\u200b\u9ad8\u7ef4\u200b\uff09\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u6620\u5c04\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4fdd\u8bc1\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u200b\u4e8c\u8005\u200b\u7684\u200b\u70b9\u79ef\u200b\u662f\u200b\u539f\u200b\u7a7a\u95f4\u200b\u4e2d\u70b9\u79ef\u200b\u7684\u200b\u51fd\u6570\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b
\\[ K(x\uff0cz) = \\phi(x)\\cdot \\phi(z) \\]\u200b\u4e00\u822c\u800c\u8a00\u200b\uff0c\u200b\u7ed9\u5b9a\u200b\u8fd9\u4e2a\u200b\u628a\u200b\u539f\u200b\u5185\u79ef\u200b\u6620\u5c04\u200b\u5230\u200b\u9ad8\u7ef4\u200b\u5185\u79ef\u200b\u7684\u200b K \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\uff0c\u200b\u4e0d\u7528\u200b\u5177\u4f53\u200b\u7ed9\u51fa\u200b\u628a\u200b\u5411\u91cf\u200b\u6620\u5c04\u200b\u5230\u200b\u9ad8\u4f4d\u200b\u5411\u91cf\u200b\u7684\u200b\\(\\phi()\\)
\u200b\u5728\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u6ce8\u610f\u200b\u5230\u200b\\(x_i\\)\u200b\u4e4b\u95f4\u200b\u53ea\u6709\u200b\u5185\u79ef\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u5c31\u200b\u76f4\u63a5\u200b\u7528\u200b\u6620\u5c04\u200b\u540e\u200b\u7684\u200b\u9ad8\u4f4d\u200b\u5185\u79ef\u200b\u8fdb\u884c\u200b\u66ff\u6362\u200b
\\[ \\underset {\\alpha}{\\operatorname{max}} \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_jK(x_i\uff0cx_j) \\\\ \\]\u200b\u5e38\u7528\u200b\u6838\u200b\u51fd\u6570\u200b
\u200b\u591a\u9879\u5f0f\u200b\u6838\u200b\u51fd\u6570\u200b
\\[ K(x\uff0cz) = (x\\cdot z + 1)^p \\]\u200b\u9ad8\u65af\u200b\u6838\u200b\u51fd\u6570\u200b(KBF)
\\[ K(x\uff0cz) = \\exp(-\\frac{||x-z||^2}{2\\sigma^2}) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#smo","title":"SMO \u200b\u7b97\u6cd5","text":"\u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u7ed9\u51fa\u200b SMO \u200b\u7b97\u6cd5\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u79cd\u200b\u5177\u4f53\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u7684\u200b\\(\\alpha^*\\)\u200b\u7684\u200b\u6570\u503c\u200b\u65b9\u6cd5\u200b.
\u200b\u8f93\u5165\u200b\uff1a\u200b\u6570\u636e\u200b\u96c6\u200b\\(D = \\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u6838\u200b\u51fd\u6570\u200b\\(K(x\uff0cz)\\)\uff0c\u200b\u5bb9\u5fcd\u5ea6\u200b\\(\\epsilon\\)
\u200b\u82e5\u200b\u5728\u200b\u5bb9\u5fcd\u5ea6\u200b\\(\\epsilon\\)\u200b\u5185\u200b\u6ee1\u8db3\u200b\uff1a
\\[\\begin{aligned} & \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & 0 \\leq \\alpha_i \\leq C\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ & y_i(g(x_i)) = \\left\\{ \\begin{aligned} & \\geq 1\uff0c \\alpha_i = 0 \\\\ & = 1\uff0c 0 < \\alpha_i < C \\\\ & \\leq 1\uff0c \\alpha_i = C \\\\ \\end{aligned} \\right. \\end{aligned}\\]\u200b\u5219\u200b\u4ee4\u200b\\(\\alpha = (\\alpha_1\uff0c\\alpha_2\uff0c...\uff0c\\alpha_N)\\)\uff0c\u200b\u9000\u51fa\u200b\u5faa\u73af\u200b
\u200b\u7ea6\u200b 127 \u200b\u4e2a\u200b\u5b57\u200b
Abstract
Missing Semester \u200b\u662f\u200b\u6765\u81ea\u200b MIT \u200b\u7684\u200b\u4e00\u95e8\u200b\u8ba1\u7b97\u673a\u200b\u5165\u200b\u4e48\u200b\u8bfe\u7a0b\u200b\uff0c\u200b\u8fd9\u95e8\u200b\u8bfe\u7a0b\u200b\u4e0d\u200b\u4ecb\u7ecd\u200b\u5177\u4f53\u200b\u7684\u200b\u8bed\u8a00\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u800c\u662f\u200b\u4ecb\u7ecd\u200b\u4e00\u4e9b\u200b\u53ef\u4ee5\u200b\u63d0\u9ad8\u6548\u7387\u200b\u7684\u200b\u5de5\u5177\u200b\u7684\u200b\u4f7f\u7528\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u666e\u53ca\u200b\u8ba1\u7b97\u673a\u200b\u5e38\u8bc6\u200b
Warning
\u200b\u539f\u200b\u8bfe\u7a0b\u200b\u5f88\u200b\u4f18\u79c0\u200b\uff0c\u200b\u5982\u679c\u200b\u60a8\u200b\u6709\u7a7a\u200b\u7684\u8bdd\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u524d\u5f80\u200b\u3010\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b\u3011()\u200b\u8fdb\u884c\u200b\u5b66\u4e60\u200b.\u200b\u8fd9\u91cc\u200b\u5b58\u200b\u7684\u200b\u662f\u200b\u6211\u200b\u7684\u200b\u7b14\u8bb0\u200b\uff0c\u200b\u5b83\u4eec\u200b\u662f\u200b\u4e3a\u4e86\u200b\u5728\u200b\u9700\u8981\u200b\u7684\u200b\u65f6\u5019\u200b\u80fd\u591f\u200b\u65b9\u4fbf\u200b\u7684\u200b\u88ab\u200b\u67e5\u627e\u200b\u800c\u200b\u64b0\u5199\u200b\u7684\u200b\uff0c\u200b\u8bf7\u52ff\u200b\u76f4\u63a5\u200b\u5b66\u4e60\u200b
"},{"location":"Note/Missing%20Semester/Data/","title":"Data wrangling","text":"\u200b\u7ea6\u200b 911 \u200b\u4e2a\u200b\u5b57\u200b 2 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
\u200b\u672c\u200b\u8282\u200b\u5217\u4e3e\u200b\u4e00\u4e9b\u200b\u547d\u4ee4\u884c\u200b\u5e38\u7528\u200b\u7684\u200b\u6570\u636e\u5904\u7406\u200b\u5de5\u5177\u200b
"},{"location":"Note/Missing%20Semester/Data/#sed","title":"Sed","text":"Sed \u200b\u662f\u200b Stream editor \u200b\u6d41\u200b\u7f16\u8f91\u5668\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u63a5\u53d7\u200b\u7ba1\u9053\u200b\u8f93\u5165\u200b\uff0c\u200b\u5bf9\u200b\u6bcf\u200b\u4e00\u884c\u200b\u8fdb\u884c\u200b\u5904\u7406\u200b\uff0c\u200b\u7136\u540e\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b.
sed [OPTION] 'edit-command' [input-file]`\n
\u200b\u9009\u9879\u200b\u662f\u200b\u4e00\u4e9b\u200b\u7528\u4e8e\u200b\u63a7\u5236\u200b sed \u200b\u547d\u4ee4\u200b\u884c\u4e3a\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5e38\u89c1\u200b\u7684\u200b\u6709\u200b\uff1a
-n
\u200b\u4e0d\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b-e
\u200b\u4ee5\u540e\u200b\u7684\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b-f
\u200b\u4ee5\u540e\u200b\u7684\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b-i
\u200b\u76f4\u63a5\u200b\u4fee\u6539\u200b\u6587\u4ef6\u200b-r
\u200b\u4f7f\u7528\u200b\u6269\u5c55\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b-E
\u200b\u540c\u200b\u4e0a\u200b-r
\u200b\u4f7f\u7528\u200b\u57fa\u7840\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b-h
\u200b\u4e0d\u200b\u6253\u5370\u6587\u4ef6\u200b\u540d\u200bsed
\u200b\u7684\u200b\u7f16\u8f91\u200b\u547d\u4ee4\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u6765\u200b\u6307\u5b9a\u200b\u5339\u914d\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u5e76\u200b\u901a\u8fc7\u200b\u66ff\u6362\u200b\u3001\u200b\u5220\u9664\u200b\u3001\u200b\u63d2\u5165\u200b\u7b49\u200b\u547d\u4ee4\u200b\u6765\u200b\u4fee\u6539\u200b\u6587\u672c\u200b.\u200b\u4e00\u4e9b\u200b\u5e38\u89c1\u200b\u7684\u200b sed \u200b\u7f16\u8f91\u200b\u547d\u4ee4\u200b\u5305\u62ec\u200b\uff1a
.
\u200b\u4ee3\u8868\u200b\u9664\u4e86\u200b\u6362\u884c\u200b\u4efb\u4f55\u200b\u7684\u200b\u5355\u200b\u5b57\u7b26\u200b*
\u200b\u524d\u200b\u4e00\u4e2a\u200b\u91cd\u590d\u200b 0-\u200b\u65e0\u9650\u200b\u6b21\u200b+
\u200b\u524d\u200b\u4e00\u4e2a\u200b\u91cd\u590d\u200b 1-\u200b\u65e0\u9650\u200b\u6b21\u200b[abc]
abc \u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b(RX1|RX2)
\u200b\u8868\u8fbe\u5f0f\u200b\u4e00\u200b\u6216\u8005\u200b\u4e8c\u200b^
\u200b\u884c\u9996\u200b$
\u200b\u884c\u5c3e\u200b()
\u200b\u6355\u83b7\u200b\uff0c\u200b\u4f4d\u4e8e\u200b\u8865\u8d27\u200b\u5185\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u53ef\u200b\u5728\u200b\u88ab\u200b\u66ff\u4ee3\u200b\u90e8\u5206\u200b\u7528\u200b\u30011 \\2 \\3 \u200b\u5f15\u7528\u200bawk
\u200b\u662f\u200b\u4e00\u79cd\u200b\u5f3a\u5927\u200b\u7684\u200b\u6587\u672c\u5904\u7406\u200b\u5de5\u5177\u200b\uff0c\u200b\u7528\u4e8e\u200b\u4ece\u200b\u7ed3\u6784\u5316\u200b\u6587\u672c\u200b\u6570\u636e\u200b\u4e2d\u200b\u63d0\u53d6\u200b\u548c\u200b\u64cd\u4f5c\u200b\u4fe1\u606f\u200b.\u200b\u5b83\u200b\u53ef\u4ee5\u200b\u9010\u884c\u200b\u8bfb\u53d6\u200b\u8f93\u5165\u200b\u6587\u4ef6\u200b\u6216\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b\u7684\u200b\u6587\u672c\u200b\uff0c\u200b\u6839\u636e\u200b\u6307\u5b9a\u200b\u7684\u200b\u6a21\u5f0f\u200b\u548c\u200b\u52a8\u4f5c\u200b\u8fdb\u884c\u200b\u5339\u914d\u200b\u3001\u200b\u5904\u7406\u200b\u548c\u200b\u8f93\u51fa\u200b.
awk
\u200b\u7684\u200b\u57fa\u672c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a
awk 'pattern { action }' file\n
\u200b\u5176\u4e2d\u200b\uff0cpattern
\u200b\u662f\u200b\u7528\u4e8e\u200b\u5339\u914d\u200b\u6587\u672c\u200b\u7684\u200b\u6a21\u5f0f\u200b\uff0caction
\u200b\u662f\u200b\u5728\u200b\u5339\u914d\u200b\u5230\u200b\u7684\u200b\u6587\u672c\u200b\u4e0a\u200b\u6267\u884c\u200b\u7684\u200b\u64cd\u4f5c\u200b\uff0cfile
\u200b\u662f\u200b\u5f85\u5904\u7406\u200b\u7684\u200b\u8f93\u5165\u200b\u6587\u4ef6\u200b.
awk
\u200b\u7684\u200b\u5de5\u4f5c\u200b\u539f\u7406\u200b\u662f\u200b\u9010\u884c\u200b\u8bfb\u53d6\u200b\u8f93\u5165\u200b\u6587\u672c\u200b\uff0c\u200b\u5e76\u200b\u6839\u636e\u200b\u6307\u5b9a\u200b\u7684\u200b\u6a21\u5f0f\u200b\u8fdb\u884c\u200b\u5339\u914d\u200b.\u200b\u5f53\u200b\u67d0\u884c\u200b\u5339\u914d\u200b\u5230\u200b\u6307\u5b9a\u200b\u6a21\u5f0f\u200b\u65f6\u200b\uff0c\u200b\u6267\u884c\u200b\u76f8\u5e94\u200b\u7684\u200b\u52a8\u4f5c\u200b.\u200b\u52a8\u4f5c\u200b\u53ef\u4ee5\u200b\u662f\u200b\u6253\u5370\u200b\u884c\u200b\u3001\u200b\u8ba1\u7b97\u200b\u3001\u200b\u8d4b\u503c\u200b\u53d8\u91cf\u200b\u3001\u200b\u8fdb\u884c\u200b\u6761\u4ef6\u200b\u5224\u65ad\u200b\u7b49\u200b.
awk
\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e30\u5bcc\u200b\u7684\u200b\u5185\u7f6e\u200b\u529f\u80fd\u200b\u548c\u200b\u53d8\u91cf\u200b\uff0c\u200b\u4f7f\u200b\u5176\u200b\u80fd\u591f\u200b\u5bf9\u200b\u6587\u672c\u200b\u8fdb\u884c\u200b\u7075\u6d3b\u5904\u7406\u200b.\u200b\u4e00\u4e9b\u200b\u5e38\u7528\u200b\u7684\u200b awk
\u200b\u529f\u80fd\u200b\u5305\u62ec\u200b\uff1a
awk
\u200b\u9ed8\u8ba4\u200b\u5c06\u200b\u6bcf\u200b\u4e00\u884c\u200b\u4ee5\u200b\u7a7a\u683c\u200b\u6216\u200b\u5236\u8868\u7b26\u200b\u4e3a\u200b\u5206\u9694\u7b26\u200b\u5212\u5206\u200b\u4e3a\u200b\u591a\u4e2a\u200b\u5b57\u200b\u6bb5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b $n
\u200b\u7684\u200b\u5f62\u5f0f\u200b\u5f15\u7528\u200b\u5b57\u200b\u6bb5\u200b\uff08\u200b\u4f8b\u5982\u200b $1
\u3001$2
\uff09.awk
\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u8bb8\u591a\u200b\u5185\u7f6e\u200b\u53d8\u91cf\u200b\uff0c\u200b\u5982\u200b NR
\uff08\u200b\u5f53\u524d\u200b\u884c\u200b\u6570\u200b\uff09\u3001NF
\uff08\u200b\u5f53\u524d\u200b\u884c\u200b\u7684\u200b\u5b57\u200b\u6bb5\u6570\u200b\uff09\u200b\u548c\u200b $0
\uff08\u200b\u6574\u884c\u200b\u6587\u672c\u200b\uff09\u200b\u7b49\u200b.awk
\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e30\u5bcc\u200b\u7684\u200b\u5185\u7f6e\u200b\u51fd\u6570\u200b\uff0c\u200b\u5982\u200b\u5b57\u7b26\u4e32\u200b\u5904\u7406\u51fd\u6570\u200b\u3001\u200b\u6570\u5b66\u200b\u51fd\u6570\u200b\u3001\u200b\u65e5\u671f\u200b\u51fd\u6570\u200b\u7b49\u200b.\u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u4e2a\u200b\u7b80\u5355\u200b\u7684\u200b\u793a\u4f8b\u200b\uff0c\u200b\u5c55\u793a\u200b\u4e86\u200b\u5982\u4f55\u200b\u4f7f\u7528\u200b awk
\u200b\u63d0\u53d6\u200b\u6587\u4ef6\u200b\u4e2d\u4ee5\u200b\u5192\u53f7\u200b\u5206\u9694\u200b\u7684\u200b\u7b2c\u4e00\u5217\u200b\u548c\u200b\u7b2c\u4e8c\u5217\u200b\uff0c\u200b\u5e76\u200b\u8f93\u51fa\u200b\u5b83\u4eec\u200b\uff1a
awk -F':' '{ print $1\uff0c $2 }' file.txt\n
awk
\u200b\u662f\u200b\u4e00\u79cd\u200b\u975e\u5e38\u200b\u5b9e\u7528\u200b\u7684\u200b\u6587\u672c\u5904\u7406\u200b\u5de5\u5177\u200b\uff0c\u200b\u9002\u7528\u200b\u4e8e\u200b\u5904\u7406\u200b\u7ed3\u6784\u5316\u200b\u7684\u200b\u6587\u672c\u200b\u6570\u636e\u200b\uff0c\u200b\u5982\u200b\u65e5\u5fd7\u200b\u6587\u4ef6\u200b\u3001CSV \u200b\u6587\u4ef6\u200b\u3001\u200b\u62a5\u544a\u200b\u7b49\u200b.\u200b\u5b83\u200b\u5177\u6709\u200b\u5f3a\u5927\u200b\u7684\u200b\u529f\u80fd\u200b\u548c\u200b\u7075\u6d3b\u6027\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5927\u5927\u7b80\u5316\u200b\u6587\u672c\u5904\u7406\u200b\u4efb\u52a1\u200b\uff0c\u200b\u63d0\u9ad8\u200b\u6570\u636e\u5206\u6790\u200b\u548c\u200b\u8f6c\u6362\u200b\u7684\u200b\u6548\u7387\u200b.
\u200b\u8f85\u52a9\u200b\u4f7f\u7528\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b
\u200b\u7ea6\u200b 897 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
\u200b\u4e00\u4e2a\u200b\u81ea\u200b\u5e95\u5411\u4e0a\u200b\u7684\u200b\u5b66\u4e60\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u6700\u540e\u200b\u9644\u4e0a\u200b\u4e86\u200b\u5e38\u7528\u200b\u6307\u4ee4\u200b\uff0c\u200b\u6682\u65e0\u200b\u64cd\u4f5c\u200b\u6f14\u793a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b\u539f\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b
"},{"location":"Note/Missing%20Semester/Git/#terminology","title":"Terminology","text":"\u200b\u5b9a\u4e49\u200b
blob
\u200b\u4e00\u4e2a\u200b\u6587\u4ef6\u200b\u88ab\u79f0\u4f5c\u200bblob. tree
\u200b\u4e00\u4e2a\u200b\u6587\u4ef6\u5939\u200b\u88ab\u79f0\u4f5c\u200btree. commit
\u200b\u6574\u4e2a\u200b\u4ed3\u5e93\u200b\u7684\u200b\u5feb\u7167\u200b\u88ab\u79f0\u4f5c\u200bcommit. history
commit \u200b\u7684\u200b\u6709\u200b\u5411\u200b\u65e0\u200b\u73af\u56fe\u200b\u6784\u6210\u200bhistory. object
\u200b\u4e00\u4e2a\u200bobject\u200b\u662f\u200b blob\u3001tree \u200b\u6216\u8005\u200b commit\uff0c\u200b\u6bcf\u4e2a\u200b\u5bf9\u8c61\u200b\u90fd\u200b\u6709\u200b\u81ea\u5df1\u200b\u5bf9\u5e94\u200b\u7684\u200b hash. reference
\u200b\u4e00\u4e2a\u200breference\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5bf9\u8c61\u200b\u7684\u200b\u522b\u540d\u200b\uff0c\u200b\u9664\u4e86\u200b\u522b\u540d\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b hash \u200b\u6765\u200b\u5f15\u7528\u200b\u4e00\u4e2a\u200b\u5bf9\u8c61\u200b. main/master
main/master \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u7684\u200b reference \u200b\u603b\u662f\u200b\u6307\u5411\u200b\u5f00\u53d1\u200b\u4e2d\u200b\u7684\u200b\u6700\u65b0\u200b\u7a33\u5b9a\u200b\u7248\u672c\u200b. HEAD
HEAD \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u5f15\u7528\u200b\u6307\u5411\u200b\u6211\u4eec\u200b\u76ee\u524d\u200b\u5728\u200b\u5386\u53f2\u200b\u4e2d\u200b\u7684\u200b\u4f4d\u7f6e\u200b. Git repository
\u200b\u4e00\u4e2a\u200b Git repository* \u200b\u662f\u200b object \u200b\u548c\u200b reference \u200b\u7684\u200b\u96c6\u5408\u200b. Staging area
Staging area \u200b\u662f\u200b\u4e00\u79cd\u200b\u673a\u5236\u200b\u6765\u200b\u8ba9\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u54ea\u4e9b\u200b\u5bf9\u8c61\u200b\u8981\u200b\u88ab\u200b commit\uff0c \u200b\u800c\u200b\u975e\u200b\u6574\u4e2a\u200b\u4ed3\u5e93\u200b."},{"location":"Note/Missing%20Semester/Git/#git-data-model","title":"Git Data Model","text":"\u200b\u9996\u5148\u200b\u5b9a\u4e49\u6570\u636e\u200b\u5bf9\u8c61\u200b
// a file is a bunch of bytes\ntype blob = array<byte>\n\n// a directory contains named files and directories\ntype tree = map<string\uff0c tree | blob>\n\n// a commit has parents\uff0c metadata\uff0c and the top-level tree\ntype commit = struct {\n parents: array<commit>\n author: string\n message: string\n snapshot: tree\n}\n\n//An object is a blob\uff0ctree\uff0cor commit\ntype object = blob | tree | commit\n
\u200b\u5728\u200b Git \u200b\u5b58\u50a8\u200b\u7ed3\u6784\u200b\u4e2d\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u5bf9\u8c61\u200b\u5bf9\u5e94\u200b\u4e00\u4e2a\u200b hash
objects = map<string\uff0c object>\n\ndef store(object):\n id = sha1(object)\n objects[id] = object\n\ndef load(id):\n return objects[id]\n
"},{"location":"Note/Missing%20Semester/Git/#commands","title":"Commands","text":"Basic
git help <command>
: get help for a git commandgit init
: creates a new git repo\uff0c with data stored in the .git directorygit status
: tells you what\u2019s going ongit add <filename>
: adds files to staging areagit commit
: creates a new commitgit log
: shows a flattened log of historygit log --all --graph --decorate
: visualizes history as a DAGgit diff <filename>
: show the differences between current file and HEAD version filegit diff <revision> <filename>
: shows differences between current file and specified snapshotgit diff <reversin> <reversion> <filename>
shows the differences between two specified version of filegit checkout <revision>
: updates HEAD and current branchgit checkout <filename>
: erase all the changes we made after the HEAD version for this filegit cat-file -p <hash>
: The instruction to catch a tree or blobBranching and Merging
git branch
: shows branchesgit branch <name>
: creates a branchgit checkout -b <name>
: creates a branch and switches to itgit branch <name>
; git checkout <name>
git merge <revision>
: merges into current branch;wait for latter adjustments when conflictions occur(But the file has been changed already)git merge --abort
: erase the changes git try to make when an merge conflict occursgit merge --continue
: continue to merge after you fix the merge conflictiongit mergetool
: use a fancy tool to help resolve merge conflictsgit rebase
: rebase set of patches onto a new baseMore on rebase
Commonly used to \"move\" an entire branch to another base\uff0c creating copies of the commits in the new location.
Rebase the current branch on top of another specified branch: git rebase new_base_branch
Start an interactive rebase\uff0c which allows the commits to be reordered\uff0c omitted\uff0c combined or modified: git rebase -i target_base_branch_or_commit_hash
Continue a rebase that was interrupted by a merge failure\uff0c after editing conflicting files: git rebase --continue
Continue a rebase that was paused due to merge conflicts\uff0c by skipping the conflicted commit: git rebase --skip
Abort a rebase in progress (e.g. if it is interrupted by a merge conflict): git rebase --abort
Move part of the current branch onto a new base\uff0c providing the old base to start from: git rebase --onto new_base old_base
Reapply the last 5 commits in-place\uff0c stopping to allow them to be reordered\uff0c omitted\uff0c combined or modified: git rebase -i HEAD~5
Auto-resolve any conflicts by favoring the working branch version (theirs
keyword has reversed meaning in this case): git rebase -X theirs branch_name
Remotes
git remote
: list remotesgit remote add <name> <url>
: add a remote ;name is origin by convention if we have only one remote; url can be a web address or a local directorygit push <remote> <local branch>:<remote branch>
: send objects to remote\uff0c and update remote referencegit branch --set-upstream-to=<remote>/<remote branch>
: set up correspondence between local and remote branchgit fetch
: retrieve objects/references from a remote; be aware of the changes pushed here from the remotegit pull
: same as git fetch; git mergegit clone
: download repository from remoteUndo
git commit --amend
: edit a commit\u2019s contents/messagegit reset HEAD <file>
: unstage a filegit checkout <file>
: discard changesAdvanced Git
git config
: Git is highly customizablegit clone --depth=1
: shallow clone\uff0c without entire version historygit add -p
: interactive staginggit rebase -i
: interactive rebasinggit blame
: show who last edited which linegit stash
: temporarily remove modifications to working directorygit bisect
: binary search history (e.g. for regressions).gitignore
: specify intentionally untracked files to ignore\u200b\u7ea6\u200b 2838 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 9 \u200b\u5206\u949f\u200b
\u200b\u4e00\u4e2a\u200b\u79bb\u6563\u200b\u7684\u200b\u77e5\u8bc6\u200b\u5217\u8868\u200b
"},{"location":"Note/Missing%20Semester/Shell/#_1","title":"\u57fa\u7840\u77e5\u8bc6","text":""},{"location":"Note/Missing%20Semester/Shell/#_2","title":"\u5185\u7f6e\u200b\u53d8\u91cf\u200b/\u200b\u7279\u6b8a\u200b\u53d8\u91cf","text":"$0$1\uff0c $2\uff0c $3\uff0c ...$@$#$?$$$USER$HOME$PWD$HOSTNAME$RANDOM$IFS$PATH\u200b\u5f53\u524d\u200b\u811a\u672c\u200b\u7684\u200b\u540d\u79f0\u200b.\u200b\u5bf9\u4e8e\u200b\u88ab\u200b\u6267\u884c\u200b\u7684\u200b\u811a\u672c\u200b\uff0c\u200b\u5b83\u200b\u662f\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b\u7684\u200b\u8def\u5f84\u200b\u548c\u200b\u540d\u79f0\u200b.
\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u53d8\u91cf\u200b\uff0c\u200b\u8868\u793a\u200b\u811a\u672c\u200b\u6216\u200b\u51fd\u6570\u200b\u7684\u200b\u53c2\u6570\u200b.\\(1 \u200b\u8868\u793a\u200b\u7b2c\u4e00\u4e2a\u200b\u53c2\u6570\u200b\uff0c\\)2 \u200b\u8868\u793a\u200b\u7b2c\u4e8c\u4e2a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4f9d\u6b64\u7c7b\u63a8\u200b.
\u200b\u8868\u793a\u200b\u6240\u6709\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u7684\u200b\u5217\u8868\u200b.\u200b\u5728\u200b\u811a\u672c\u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\"$@\"\u200b\u5c06\u200b\u6240\u6709\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u53c2\u6570\u4f20\u9012\u200b\u7ed9\u200b\u5176\u4ed6\u200b\u547d\u4ee4\u200b\u6216\u200b\u51fd\u6570\u200b.
\u200b\u8868\u793a\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u7684\u200b\u6570\u91cf\u200b.
\u200b\u4e0a\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u9000\u51fa\u200b\u72b6\u6001\u200b.\u200b\u5982\u679c\u200b\u547d\u4ee4\u200b\u6210\u529f\u200b\u6267\u884c\u200b\uff0c\u200b\u5219\u200b\u5176\u503c\u200b\u4e3a\u200b 0\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b\u975e\u96f6\u503c\u200b.
\u200b\u5f53\u524d\u200b\u811a\u672c\u200b\u7684\u200b\u8fdb\u7a0b\u200b ID\uff08PID\uff09.
\u200b\u5f53\u524d\u200b\u7528\u6237\u200b\u7684\u200b\u7528\u6237\u540d\u200b.
\u200b\u5f53\u524d\u200b\u7528\u6237\u200b\u7684\u200b\u4e3b\u76ee\u5f55\u200b\u8def\u5f84\u200b.
\u200b\u5f53\u524d\u5de5\u4f5c\u200b\u76ee\u5f55\u200b\u7684\u200b\u8def\u5f84\u200b.
\u200b\u5f53\u524d\u200b\u4e3b\u673a\u200b\u7684\u200b\u4e3b\u673a\u540d\u200b.
\u200b\u4e00\u4e2a\u200b\u968f\u673a\u200b\u6574\u6570\u200b.
\u200b\u5185\u90e8\u200b\u5b57\u200b\u6bb5\u200b\u5206\u9694\u7b26\u200b\uff0c\u200b\u7528\u4e8e\u200b\u6307\u5b9a\u200b\u7531\u200b\u54ea\u4e2a\u200b\u5b57\u7b26\u200b\u5206\u5272\u200b\u8f93\u5165\u200b\u6570\u636e\u200b\u7684\u200b\u5b57\u200b\u6bb5\u200b.\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c\u200b\u5b83\u200b\u5305\u542b\u200b\u7a7a\u683c\u200b\u3001\u200b\u5236\u8868\u7b26\u200b\u548c\u200b\u6362\u884c\u7b26\u200b.
\u200b\u4e00\u4e2a\u200b\u7531\u200b\u5192\u53f7\u200b\u5206\u9694\u200b\u7684\u200b\u76ee\u5f55\u200b\u5217\u8868\u200b\uff08\u200b\u73af\u5883\u53d8\u91cf\u200b\uff09\uff0cshell \u200b\u5728\u200b\u5176\u4e2d\u200b\u67e5\u627e\u200b\u547d\u4ee4\u200b.
"},{"location":"Note/Missing%20Semester/Shell/#_3","title":"\u91cd\u5b9a\u5411","text":">>><2>2>>&>\u200b\u6216\u200b&>>\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b.\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u521b\u5efa\u200b\u8be5\u200b\u6587\u4ef6\u200b\uff1b\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u5df2\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u8986\u76d6\u6587\u4ef6\u200b\u5185\u5bb9\u200b.
\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u8ffd\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u7684\u200b\u672b\u5c3e\u200b.\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u521b\u5efa\u200b\u8be5\u200b\u6587\u4ef6\u200b.
\u200b\u5c06\u200b\u6587\u4ef6\u200b\u7684\u200b\u5185\u5bb9\u200b\u4f5c\u4e3a\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b.
\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b.
\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u8ffd\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u7684\u200b\u672b\u5c3e\u200b.
\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u548c\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u5408\u5e76\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b.
"},{"location":"Note/Missing%20Semester/Shell/#_4","title":"\u6587\u4ef6\u200b\u6743\u9650","text":"\u6587\u4ef6\u7c7b\u578b\u200b\u6743\u9650\u200b\u6743\u9650\u200b\u5b57\u7b26\u4e32\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u6743\u9650\u200b\u4fee\u6539\u200b-\uff1a\u200b\u666e\u901a\u200b\u6587\u4ef6\u200b d\uff1a\u200b\u76ee\u5f55\u200b l\uff1a\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b\uff08\u200b\u8f6f\u200b\u94fe\u63a5\u200b\uff09 c\uff1a\u200b\u5b57\u7b26\u200b\u8bbe\u5907\u200b\u6587\u4ef6\u200b b\uff1a\u200b\u5757\u200b\u8bbe\u5907\u200b\u6587\u4ef6\u200b s\uff1a\u200b\u5957\u200b\u63a5\u5b57\u200b\uff08socket\uff09\u200b\u6587\u4ef6\u200b p\uff1a\u200b\u547d\u540d\u200b\u7ba1\u9053\u200b\uff08FIFO\uff09\u200b\u6587\u4ef6\u200b
r\uff1a\u200b\u8bfb\u53d6\u200b\u6743\u9650\u200b w\uff1a\u200b\u5199\u5165\u200b\u6743\u9650\u200b x\uff1a\u200b\u6267\u884c\u200b\u6743\u9650\u200b
\u200b\u7531\u200b 10 \u200b\u4e2a\u5b57\u7b26\u200b\u7ec4\u6210\u200b\uff0c\u200b\u7b2c\u4e00\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u7c7b\u578b\u200b\uff0c\u200b\u540e\u9762\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u7684\u200b\u6743\u9650\u200b\uff0c\u200b\u518d\u200b\u540e\u9762\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u200b\u7684\u200b\u6743\u9650\u200b\uff0c\u200b\u6700\u540e\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u7684\u200b\u6743\u9650\u200b. \u200b\u4f8b\u5982\u200b\uff0c-rw-r--r--\u200b\u8868\u793a\u200b\u666e\u901a\u200b\u6587\u4ef6\u200b\uff0c\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u5177\u6709\u200b\u8bfb\u53d6\u200b\u548c\u200b\u5199\u5165\u200b\u6743\u9650\u200b\uff0c\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u548c\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u5177\u6709\u200b\u8bfb\u53d6\u200b\u6743\u9650\u200b.
\u200b\u7531\u200b\u4e09\u4e2a\u200b\u516b\u8fdb\u5236\u200b\u6570\u5b57\u200b\u7ec4\u6210\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u6570\u5b57\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u3001\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u548c\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u7684\u200b\u6743\u9650\u200b. \u200b\u6bcf\u4e2a\u200b\u6570\u5b57\u200b\u7684\u200b\u8ba1\u7b97\u65b9\u6cd5\u200b\u662f\u200b\u5c06\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4e09\u4e2a\u200b\u6743\u9650\u200b\u8f6c\u6362\u200b\u4e3a\u200b\u516b\u8fdb\u5236\u200b\u6570\u200b\u62fc\u63a5\u200b\u8d77\u6765\u200b. \u200b\u4f8b\u5982\u200b\uff0c-rw-r--r--\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u4e3a\u200b 644\uff0c-rwxr-xr-x \u200b\u5bf9\u5e94\u200b\u7684\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u4e3a\u200b 755.
chmod
\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6743\u9650\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6570\u5b57\u200b\u8868\u793a\u6cd5\u200b\uff08\u200b\u5982\u200b chmod 755 file.txt\uff09\u200b\u6216\u200b\u7b26\u53f7\u200b\u8868\u793a\u6cd5\u200b\uff08\u200b\u5982\u200b chmod u+x file.txt\uff09\u200b\u6765\u200b\u4fee\u6539\u200b\u6743\u9650\u200b. chown
\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6240\u6709\u8005\u200b. chgrp
\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6240\u5c5e\u200b\u7ec4\u200b. umask
\uff1a\u200b\u8bbe\u7f6e\u200b\u65b0\u521b\u5efa\u200b\u6587\u4ef6\u200b\u548c\u200b\u76ee\u5f55\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u6743\u9650\u200b\u63a9\u7801\u200b.
tee
touch
cat
cp
mv
rm
ln
mkdir
rmdir
find
grep
alias command | tee [OPTION]... [FILE]...\n
tee
\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5e38\u7528\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b\uff0c\u200b\u7528\u4e8e\u200b\u4ece\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b\u8bfb\u53d6\u6570\u636e\u200b\u5e76\u200b\u5c06\u200b\u5176\u200b\u540c\u65f6\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u548c\u200b\u6307\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e2d\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4ee5\u200b\u8ffd\u52a0\u200b\u6a21\u5f0f\u200b\u5c06\u200b\u8f93\u51fa\u200b\u9644\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u4e2d\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u8986\u76d6\u6587\u4ef6\u200b\u5185\u5bb9\u200b. -i\uff1a\u200b\u5ffd\u7565\u200b\u4e2d\u65ad\u200b\u4fe1\u53f7\u200b\uff08SIGINT\uff09\uff0c\u200b\u5373\u4f7f\u200b\u6536\u5230\u200b\u4e2d\u65ad\u200b\u4fe1\u53f7\u200b\u4e5f\u200b\u7ee7\u7eed\u200b\u8fd0\u884c\u200b. -p\uff1a\u200b\u4f7f\u7528\u200b\u539f\u59cb\u6570\u636e\u200b\u5757\u200b\u5927\u5c0f\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u6309\u884c\u200b\u7f13\u51b2\u200b\u8f93\u51fa\u200b. -u\uff1a\u200b\u7981\u7528\u200b\u8f93\u51fa\u200b\u7f13\u51b2\u533a\u200b\uff0c\u200b\u7acb\u5373\u200b\u5c06\u200b\u6570\u636e\u200b\u5199\u5165\u200b\u6587\u4ef6\u200b. touch [OPTION]... FILE...\n
\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u7a7a\u200b\u6587\u4ef6\u200b\uff0c\u200b\u6216\u8005\u200b\u66f4\u65b0\u200b\u5df2\u200b\u5b58\u5728\u200b\u6587\u4ef6\u200b\u7684\u200b\u6700\u540e\u200b\u66f4\u6539\u200b\u65f6\u95f4\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4ec5\u200b\u66f4\u6539\u200b\u8bbf\u95ee\u200b\u65f6\u95f4\u200b. -c\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\u65f6\u624d\u200b\u521b\u5efa\u200b\u6587\u4ef6\u200b. -d\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b. -m\uff1a\u200b\u4ec5\u200b\u66f4\u6539\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b. -r\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b. -t\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b. cat [OPTION]... [FILE]...\n
\u200b\u5c06\u200b\u6587\u4ef6\u200b\u7684\u200b\u5185\u5bb9\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -n\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b. -b\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b\uff0c\u200b\u4f46\u200b\u4e0d\u200b\u5bf9\u200b\u7a7a\u884c\u200b\u7f16\u53f7\u200b. -s\uff1a\u200b\u5c06\u200b\u8fde\u7eed\u200b\u7684\u200b\u7a7a\u884c\u200b\u538b\u7f29\u6210\u200b\u4e00\u4e2a\u200b\u7a7a\u884c\u200b. cp [OPTION]... SOURCE... DIRECTORY\ncp [OPTION]... SOURCE... DEST\ncp [OPTION]... -t DIRECTORY SOURCE...\n
\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u590d\u5236\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\uff0c\u200b\u6216\u8005\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u590d\u5236\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e2d\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4fdd\u7559\u200b\u6587\u4ef6\u200b\u7684\u200b\u6240\u6709\u200b\u5c5e\u6027\u200b\uff0c\u200b\u9012\u5f52\u200b\u590d\u5236\u200b\u76ee\u5f55\u200b. -i\uff1a\u200b\u5728\u200b\u8986\u76d6\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b. -r\uff1a\u200b\u9012\u5f52\u200b\u590d\u5236\u200b\u76ee\u5f55\u200b. -u\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6e90\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u6bd4\u200b\u76ee\u6807\u200b\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u8f83\u65b0\u65f6\u200b\u624d\u200b\u590d\u5236\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u590d\u5236\u200b\u7684\u200b\u8fdb\u5ea6\u200b. mv [OPTION]... SOURCE... DIRECTORY\nmv [OPTION]... SOURCE... DEST\n
\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u79fb\u52a8\u200b\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\uff0c\u200b\u6216\u8005\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u91cd\u547d\u540d\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -i\uff1a\u200b\u5728\u200b\u8986\u76d6\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b. -u\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6e90\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u6bd4\u200b\u76ee\u6807\u200b\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u8f83\u65b0\u65f6\u200b\u624d\u200b\u79fb\u52a8\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u79fb\u52a8\u200b\u7684\u200b\u8fdb\u5ea6\u200b. rm [OPTION]... FILE...\n
\u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -f\uff1a\u200b\u5f3a\u5236\u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\uff0c\u200b\u4e0d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b. -i\uff1a\u200b\u5728\u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b. -r\uff1a\u200b\u9012\u5f52\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u5220\u9664\u200b\u7684\u200b\u8fdb\u5ea6\u200b. ln [OPTION]... [-T] TARGET LINK_NAME\nln [OPTION]... TARGET\nln [OPTION]... TARGET... DIRECTORY\nln [OPTION]... -t DIRECTORY TARGET...\n
\u200b\u521b\u5efa\u200b\u786c\u200b\u94fe\u63a5\u200b\u6216\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -s\uff1a\u200b\u521b\u5efa\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u521b\u5efa\u200b\u94fe\u63a5\u200b\u7684\u200b\u8fdb\u5ea6\u200b. mkdir [OPTION]... DIRECTORY...\n
\u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -m\uff1a\u200b\u8bbe\u7f6e\u200b\u76ee\u5f55\u200b\u7684\u200b\u6743\u9650\u200b. -p\uff1a\u200b\u9012\u5f52\u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b\u7684\u200b\u8fdb\u5ea6\u200b. rmdir [OPTION]... DIRECTORY...\n
\u200b\u5220\u9664\u200b\u7a7a\u76ee\u5f55\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -p\uff1a\u200b\u9012\u5f52\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b\u7684\u200b\u8fdb\u5ea6\u200b. find [OPTION]... [PATH...] [EXPRESSION]\n
\u200b\u5728\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\u67e5\u627e\u6587\u4ef6\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -name\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u540d\u200b\u67e5\u627e\u200b. -type\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u7c7b\u578b\u200b\u67e5\u627e\u200b. -size\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u5927\u5c0f\u200b\u67e5\u627e\u200b. -perm\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u200b\u6743\u9650\u200b\u67e5\u627e\u200b. -exec\uff1a\u200b\u5bf9\u200b\u67e5\u627e\u200b\u5230\u200b\u7684\u200b\u6587\u4ef6\u200b\u6267\u884c\u200b\u6307\u5b9a\u200b\u7684\u200b\u547d\u4ee4\u200b. grep [OPTION]... PATTERN [FILE]...\n
\u200b\u5728\u200b\u6587\u4ef6\u200b\u4e2d\u200b\u67e5\u627e\u200b\u5339\u914d\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -i\uff1a\u200b\u5ffd\u7565\u200b\u5927\u5c0f\u5199\u200b. -v\uff1a\u200b\u53cd\u5411\u200b\u5339\u914d\u200b. -n\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b. -c\uff1a\u200b\u8f93\u51fa\u200b\u5339\u914d\u200b\u7684\u200b\u884c\u6570\u200b. -r\uff1a\u200b\u9012\u5f52\u200b\u67e5\u627e\u200b. alias [OPTION]... [NAME[=VALUE]]...\n
\u200b\u521b\u5efa\u200b\u547d\u4ee4\u200b\u522b\u540d\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -p\uff1a\u200b\u663e\u793a\u200b\u6240\u6709\u200b\u522b\u540d\u200b. -r\uff1a\u200b\u5220\u9664\u200b\u6307\u5b9a\u200b\u7684\u200b\u522b\u540d\u200b."},{"location":"Note/Missing%20Semester/Shell/#_6","title":"\u811a\u672c\u200b\u8bed\u6cd5","text":""},{"location":"Note/Missing%20Semester/Shell/#shebang","title":"SheBang","text":"Bash \u200b\u811a\u672c\u200b\u901a\u5e38\u200b\u4ee5\u200b shebang \u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b\u7684\u200b\u7b2c\u4e00\u884c\u200b\uff0c\u200b\u6307\u5b9a\u200b\u8981\u200b\u7528\u4e8e\u200b\u89e3\u91ca\u200b\u811a\u672c\u200b\u7684\u200b\u89e3\u91ca\u5668\u200b.\u200b\u5e38\u89c1\u200b\u7684\u200b shebang \u200b\u4e3a\u200b#!/bin/bash\uff0c\u200b\u8868\u793a\u200b\u4f7f\u7528\u200b Bash \u200b\u89e3\u91ca\u5668\u200b\u89e3\u91ca\u200b\u811a\u672c\u200b.
\u200b\u73af\u5883\u53d8\u91cf\u200b\u8def\u5f84\u200b
\u200b\u5982\u679c\u200b\u8981\u200b\u5728\u200b\u811a\u672c\u200b\u4e2d\u200b\u4f7f\u7528\u200b shebang\uff0c\u200b\u6700\u597d\u200b\u4f7f\u7528\u200b#!/usr/bin/env bash
\uff0c\u200b\u8fd9\u6837\u200b\u53ef\u4ee5\u200b\u907f\u514d\u200b\u4f7f\u7528\u200b\u7edd\u5bf9\u8def\u5f84\u200b\uff0c\u200b\u800c\u662f\u200b\u4f7f\u7528\u200b\u73af\u5883\u53d8\u91cf\u200b\u4e2d\u200b\u7684\u200b\u8def\u5f84\u200b.
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u53d8\u91cf\u200b\u4e0d\u200b\u9700\u8981\u200b\u58f0\u660e\u200b\uff0c\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\u5373\u53ef\u200b.\u200b\u53d8\u91cf\u540d\u200b\u548c\u200b\u7b49\u200b\u53f7\u200b\u4e4b\u95f4\u200b\u4e0d\u80fd\u200b\u6709\u200b\u7a7a\u683c\u200b\uff0c\u200b\u7b49\u200b\u53f7\u200b\u540e\u9762\u200b\u7684\u200b\u503c\u200b\u4e0d\u80fd\u200b\u4f7f\u7528\u200b\u7a7a\u683c\u200b\u5305\u56f4\u200b.\u200b\u53d8\u91cf\u540d\u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b\u5927\u5199\u5b57\u6bcd\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e0d\u662f\u200b\u5fc5\u987b\u200b\u7684\u200b.
"},{"location":"Note/Missing%20Semester/Shell/#_8","title":"\u547d\u4ee4\u200b\u66ff\u6362","text":"\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7528\u4e8e\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b.\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7684\u200b\u8bed\u6cd5\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a
\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u7528\u4e8e\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u4f5c\u4e3a\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u53c2\u6570\u200b.\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u7684\u200b\u8bed\u6cd5\u200b\u4e3a\u200b<(command)
. \u200b\u53ef\u4ee5\u200b\u5c06\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u770b\u4f5c\u200b\u662f\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7684\u200b\u7279\u6b8a\u200b\u5f62\u5f0f\u200b\uff0c\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b\uff0c\u200b\u800c\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u4f5c\u4e3a\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u53c2\u6570\u200b.
\u200b\u4f8b\u5982\u200b\uff1afiles=$(ls)
\u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u7528\u4e8e\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u5b57\u7b26\u4e32\u200b\u5217\u8868\u200b.\u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u7684\u200b\u8bed\u6cd5\u200b\u4e3a\u200b{string1\uff0cstring2\uff0c...}
.
\u200b\u4f8b\u5982\u200b\uff1aecho {1..10}
\u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b\u7b1b\u5361\u5c14\u200b\u79ef\u200b\u8fd0\u7b97\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u4e3a\u200b{string1\uff0cstring2\uff0c...}{string1\uff0cstring2\uff0c...}
.
\u200b\u901a\u914d\u7b26\u200b\u7528\u4e8e\u200b\u5339\u914d\u200b\u6587\u4ef6\u540d\u200b.\u200b\u5e38\u89c1\u200b\u7684\u200b\u901a\u914d\u7b26\u200b\u5305\u62ec\u200b\uff1a
*
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u6570\u91cf\u200b\u7684\u200b\u4efb\u610f\u200b\u5b57\u7b26\u200b.?
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u7b26\u200b.[characters]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u5b57\u7b26\u96c6\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[!characters]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u5b57\u7b26\u96c6\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[[:class:]]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u5b57\u7b26\u200b\u7c7b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[^class]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u5b57\u7b26\u200b\u7c7b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[x-y]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u8303\u56f4\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[^x-y]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u8303\u56f4\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[:alnum:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b\u6216\u200b\u6570\u5b57\u200b.[:alpha:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b.[:blank:]
\uff1a\u200b\u5339\u914d\u200b\u7a7a\u683c\u200b\u6216\u200b\u5236\u8868\u7b26\u200b.[:digit:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u6570\u5b57\u200b.[:lower:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c0f\u5199\u5b57\u6bcd\u200b.[:upper:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5927\u5199\u5b57\u6bcd\u200b.[:space:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u7a7a\u767d\u200b\u5b57\u7b26\u200b.[:punct:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u6807\u70b9\u7b26\u53f7\u200b.[:word:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b\u3001\u200b\u6570\u5b57\u200b\u6216\u200b\u4e0b\u5212\u7ebf\u200b.[:xdigit:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5341\u516d\u8fdb\u5236\u200b\u6570\u5b57\u200b.[:graph:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u56fe\u5f62\u200b\u5b57\u7b26\u200b.[:print:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u53ef\u200b\u6253\u5370\u200b\u5b57\u7b26\u200b.[:cntrl:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u63a7\u5236\u5b57\u7b26\u200b.[:ascii:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b ASCII \u200b\u5b57\u7b26\u200b.Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u7b97\u672f\u200b\u8fd0\u7b97\u200b\u4f7f\u7528\u200b$((expression))
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho $((1+1))
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u903b\u8f91\u8fd0\u7b97\u200b\u4f7f\u7528\u200b&&
\u3001||
\u200b\u548c\u200b!
\uff0c\u200b\u4f8b\u5982\u200b\uff1a[ -d /tmp ] && echo \"Directory exists\"
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u6761\u4ef6\u200b\u5224\u65ad\u200b\u4f7f\u7528\u200bif
\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a
if [[ condition ]]; then\n #statements\nelif [[ condition ]]; then\n #statements\nelse\n #statements\nfi\n
"},{"location":"Note/Missing%20Semester/Shell/#_15","title":"\u5faa\u73af","text":"Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u5faa\u73af\u200b\u4f7f\u7528\u200bfor
\u200b\u548c\u200bwhile
\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a
for (( i = 0; i < 10; i++ )); do\n #statements\ndone\n\nfor i in {1..10}; do\n #statements\ndone\n\nfor i in $(ls); do\n #statements\ndone\n\nwhile [[ condition ]]; do\n #statements\ndone\n
"},{"location":"Note/Missing%20Semester/Shell/#_16","title":"\u51fd\u6570","text":"Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u51fd\u6570\u200b\u4f7f\u7528\u200bfunction
\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a
function name {\n #statements\n}\n
"},{"location":"Note/Missing%20Semester/Shell/#_17","title":"\u6570\u7ec4","text":"Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u6570\u7ec4\u200b\u4f7f\u7528\u200barray=(element1 element2 element3)
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aarray=(1 2 3)
\u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200barray[index]
\u200b\u8bed\u6cd5\u200b\u8bbf\u95ee\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[1]}
\u200b\u6570\u7ec4\u200b\u957f\u5ea6\u200b\u4f7f\u7528\u200b${#array[@]}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${#array[@]}
\u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200b${array[@]:index:length}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[@]:1:2}
\uff0c\u200b\u8fd9\u4f1a\u200b\u83b7\u53d6\u200b\u6570\u7ec4\u200b\u4e2d\u200b\u4ece\u200b\u7b2c\u4e8c\u4e2a\u200b\u5143\u7d20\u200b\u5f00\u59cb\u200b\u7684\u200b\u4e24\u4e2a\u200b\u5143\u7d20\u200b \u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200b${array[@]/pattern/string}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[@]/2/4}
\uff0c\u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u6570\u7ec4\u200b\u4e2d\u200b\u7684\u200b\u6240\u6709\u200b 2 \u200b\u66ff\u6362\u200b\u4e3a\u200b 4
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b'string'
\u200b\u6216\u8005\u200b\"string\"
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho 'Hello World!'
\u200b\u5b57\u7b26\u4e32\u200b\u957f\u5ea6\u200b\u4f7f\u7528\u200b${#string}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${#string}
\u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b${string:position:length}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${string:1:2}
\u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b${string/substring/replacement}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${string/Hello/Hi}
\uff0c\u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u5b57\u7b26\u4e32\u200b\u4e2d\u200b\u7684\u200b\u7b2c\u4e00\u4e2a\u200b Hello \u200b\u66ff\u6362\u200b\u4e3a\u200b Hi
Here \u200b\u6587\u6863\u200b\u7528\u4e8e\u200b\u5c06\u200b\u591a\u884c\u200b\u6587\u672c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b.
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u6587\u6863\u200b\u4f7f\u7528\u200b<<
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a
read -d '' string <<EOF\nHello\nWorld!\nEOF\necho \"$string\"\n
\u200b\u8fd9\u4f1a\u200b\u5c06\u200b Hello World!\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b string"},{"location":"Note/Missing%20Semester/Shell/#here_1","title":"Here \u200b\u5b57\u7b26\u4e32","text":"Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b<<<
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1acat <<<\"Hello World!\"
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u811a\u672c\u200b\u4f7f\u7528\u200b<<-
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a
cat <<-EOF\n Hello\n World!\nEOF\n
"},{"location":"Note/Missing%20Semester/Shell/#_19","title":"\u8f93\u5165","text":"Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u8f93\u5165\u200b\u4f7f\u7528\u200bread
\u200b\u8bed\u53e5\u200b \u200b\u5176\u200b\u53c2\u6570\u200b\u5305\u62ec\u200b\uff1a - -p
\uff1a\u200b\u63d0\u793a\u7b26\u200b - -n
\uff1a\u200b\u8bfb\u53d6\u200b\u7684\u200b\u5b57\u7b26\u200b\u6570\u200b - -t
\uff1a\u200b\u8d85\u65f6\u200b\u65f6\u95f4\u200b - -s
\uff1a\u200b\u4e0d\u200b\u56de\u663e\u200b\u8f93\u5165\u200b\u7684\u200b\u5b57\u7b26\u200b - -a
\uff1a\u200b\u5c06\u200b\u8f93\u5165\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u6570\u7ec4\u200b - -d
\uff1a\u200b\u5206\u9694\u7b26\u200b - -r
\uff1a\u200b\u4e0d\u200b\u5bf9\u200b\u53cd\u200b\u659c\u6760\u200b\u8fdb\u884c\u200b\u8f6c\u4e49\u200b - -e
\uff1a\u200b\u4f7f\u7528\u200b Readline \u200b\u5e93\u200b - -i
\uff1a\u200b\u9ed8\u8ba4\u503c\u200b - -u
\uff1a\u200b\u8f93\u5165\u200b\u7684\u200b\u6587\u4ef6\u200b\u63cf\u8ff0\u7b26\u200b
\u200b\u4f8b\u5982\u200b\uff1a
read -p \"Enter your name: \" name\necho \"Hello $name\"\n
"},{"location":"Note/Missing%20Semester/Vim/","title":"Vim \uff08Revisited\uff09","text":"\u200b\u7ea6\u200b 758 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
\u200b\u91cd\u5199\u200b\u8fd9\u7bc7\u200b\u7b14\u8bb0\u200b\u7684\u200b\u65f6\u5019\u200b\u6211\u200b\u5df2\u7ecf\u200b\u7528\u200b\u4e86\u200b\u4e00\u6bb5\u65f6\u95f4\u200b vim\uff0c\u200b\u7b14\u8bb0\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u8fc7\u4e8e\u200b\u7b80\u7565\u200b\uff0c\u200b\u8be6\u7ec6\u200b\u53ef\u200b\u53c2\u8003\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b
"},{"location":"Note/Missing%20Semester/Vim/#_1","title":"\u57fa\u7840","text":""},{"location":"Note/Missing%20Semester/Vim/#_2","title":"\u6a21\u5f0f","text":"\u200b\u6211\u4eec\u200b\u5199\u200b\u4ee3\u7801\u200b\u4e8b\u200b\u5e76\u200b\u4e0d\u200b\u4e00\u76f4\u200b\u90fd\u200b\u662f\u200b\u8fde\u7eed\u200b\u7684\u200b\u8f93\u5165\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u8df3\u8f6c\u200b\u5230\u200b\u67d0\u4e2a\u200b\u5730\u65b9\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u505a\u200b\u4e9b\u5c0f\u200b\u4fee\u6539\u200b\u66ff\u6362\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u9605\u8bfb\u200b\u4ee3\u7801\u200b\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u8fde\u7eed\u200b\u8f93\u5165\u200b. \u200b\u4e3a\u6b64\u200b\uff0cvim \u200b\u4f7f\u7528\u200b\u4e0d\u540c\u200b\u6a21\u5f0f\u200b\u6765\u200b\u4fbf\u5229\u200b\u5404\u4e2a\u200b\u4e0d\u540c\u200b\u76ee\u7684\u200b\u7684\u200b\u64cd\u4f5c\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u76f8\u540c\u200b\u7684\u200b\u952e\u200b\u5728\u200b\u4e0d\u540c\u200b\u6a21\u5f0f\u200b\u4e0b\u200b\u610f\u4e49\u200b\u4e0d\u540c\u200b.
vim \u200b\u4e2d\u200b\u6700\u200b\u5e38\u7528\u200b\u7684\u200b\u6a21\u5f0f\u200b\u6709\u200b
normalinsertreplacevisualcommand-line\u200b\u9ed8\u8ba4\u200b\u521d\u59cb\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u4efb\u4f55\u200b\u6a21\u5f0f\u200b\u90fd\u200b\u53ef\u4ee5\u200b\u6309\u200b\u56de\u5230\u200b normal.\u200b\u9605\u8bfb\u200b\u6a21\u5f0f\u200b
i
\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u8fde\u7eed\u200b\u7684\u200b\u8f93\u5165\u200b\uff0c\u200b\u53ea\u7528\u200b i \u200b\u53ef\u4ee5\u200b\u65e0\u7f1d\u200b\u9000\u5316\u200b\u56de\u200b\u539f\u5148\u200b\u4ec0\u4e48\u200b\u529f\u80fd\u200b\u90fd\u200b\u6ca1\u6709\u200b\u7684\u200b\u7f16\u8f91\u5668\u200b.\u200b\u8f93\u5165\u200b\u6a21\u5f0f\u200b
R
\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u8fde\u7eed\u200b\u7684\u200b\u66ff\u6362\u200b.\u200b\u66ff\u6362\u200b\u6a21\u5f0f\u200b
v
\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u9009\u62e9\u200b\uff0cV \u200b\u8fdb\u5165\u200b\u884c\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u6309\u884c\u200b\u9009\u62e9\u200b\uff0c C-v \u200b\u8fdb\u5165\u200b\u5757\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u6309\u200b\u4efb\u610f\u200b\u8fb9\u957f\u200b\u9009\u62e9\u200b\u957f\u65b9\u5f62\u200b.\u200b\u9009\u62e9\u200b\u6a21\u5f0f\u200b
:
\u200b\u8fdb\u5165\u200b\uff0c\u200b\u5904\u7406\u200b\u547d\u4ee4\u884c\u200b\u64cd\u4f5c\u200b\uff08\u200b\u6700\u200b\u57fa\u672c\u200b\u7684\u200b\u6709\u200b :w \u200b\u4fdd\u5b58\u200b :q \u200b\u9000\u51fa\u200b :wq \u200b\u4fdd\u5b58\u200b\u9000\u51fa\u200b :q!\u200b\u5f3a\u5236\u200b\u9000\u51fa\u200b\uff09.\u200b\u547d\u4ee4\u884c\u200b\u6a21\u5f0f\u200b
\u200b\u4e00\u4e2a\u200b Vim \u200b\u8fdb\u7a0b\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b\u6807\u7b7e\u200b\u9875\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u6807\u7b7e\u200b\u9875\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b\u7a97\u53e3\u200b\uff0c\u200b\u800c\u200b\u4e00\u4e2a\u200b\u7a97\u53e3\u200b\u50cf\u200b\u53ea\u200b\u773c\u775b\u200b\u770b\u200b\u5411\u200b\u4e00\u4e2a\u200b\u7279\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b(Buffer)
"},{"location":"Note/Missing%20Semester/Vim/#_4","title":"\u64cd\u4f5c","text":"Normal move
Normal edit
Commandline mode
\u200b\u7ea6\u200b 1800 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 6 \u200b\u5206\u949f\u200b
\u200b\u8bb0\u5f55\u200b missing semester\u200b\u6b64\u5802\u200b\u8bfe\u200b\u7684\u200b\u4e00\u4e9b\u200b\u7b14\u8bb0\u200b
"},{"location":"Note/Missing%20Semester/commandline_env/#job-control","title":"Job Control","text":"\u200b\u7ec8\u7aef\u200b\u7684\u200b\u4f5c\u4e1a\u63a7\u5236\u200b\uff08Job Control\uff09\u200b\u662f\u200b\u4e00\u79cd\u200b\u5728\u200b\u547d\u4ee4\u884c\u200b\u73af\u5883\u200b\u4e0b\u200b\u7ba1\u7406\u200b\u548c\u200b\u63a7\u5236\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff08Job\uff09\u200b\u7684\u200b\u673a\u5236\u200b.\u200b\u5b83\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e00\u4e9b\u200b\u547d\u4ee4\u200b\u548c\u200b\u6280\u672f\u200b\uff0c\u200b\u4f7f\u200b\u7528\u6237\u200b\u80fd\u591f\u200b\u5728\u200b\u7ec8\u7aef\u200b\u540c\u65f6\u200b\u8fd0\u884c\u200b\u591a\u4e2a\u200b\u547d\u4ee4\u200b\uff0c\u200b\u5e76\u200b\u5728\u200b\u9700\u8981\u200b\u65f6\u200b\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u7ba1\u7406\u200b.
\u200b\u4f5c\u4e1a\u200b
\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\uff08Foreground Job\uff09\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\uff08Background Job\uff09\u200b\u4f5c\u4e1a\u72b6\u6001\u200b\u548c\u200b\u4fe1\u53f7\u200b\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u6d3b\u52a8\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u5b83\u4f1a\u200b\u5728\u200b\u7ec8\u7aef\u200b\u663e\u793a\u200b\u5176\u200b\u8f93\u51fa\u200b\uff0c\u200b\u5e76\u200b\u5360\u7528\u200b\u7ec8\u7aef\u200b\u7684\u200b\u8f93\u5165\u200b.\u200b\u53ea\u6709\u200b\u5f53\u524d\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\u6216\u200b\u88ab\u200b\u6682\u505c\u200b\u65f6\u200b\uff0c\u200b\u624d\u80fd\u200b\u6267\u884c\u200b\u5176\u4ed6\u200b\u547d\u4ee4\u200b.
\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\u662f\u200b\u5728\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u5b83\u200b\u4e0d\u4f1a\u200b\u5360\u7528\u200b\u7ec8\u7aef\u200b\u7684\u200b\u8f93\u5165\u200b\u548c\u200b\u8f93\u51fa\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u7279\u6b8a\u5b57\u7b26\u200b &
\u200b\u5c06\u200b\u547d\u4ee4\u200b\u653e\u7f6e\u200b\u5728\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b\uff0c\u200b\u4ece\u800c\u200b\u5141\u8bb8\u200b\u540c\u65f6\u200b\u8fd0\u884c\u200b\u591a\u4e2a\u200b\u547d\u4ee4\u200b.
\u200b\u6bcf\u4e2a\u200b\u4f5c\u4e1a\u200b\u90fd\u200b\u5177\u6709\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\uff0c\u200b\u5982\u200b\u8fd0\u884c\u200b\u4e2d\u200b\u3001\u200b\u505c\u6b62\u200b\u6216\u200b\u5b8c\u6210\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4fe1\u53f7\u200b\u6765\u200b\u63a7\u5236\u200b\u4f5c\u4e1a\u200b\u7684\u200b\u884c\u4e3a\u200b\uff0c\u200b\u5982\u200b Ctrl-C
\uff08\u200b\u4e2d\u65ad\u200b\u4f5c\u4e1a\u200b\uff09\u200b\u548c\u200b Ctrl-D
\uff08\u200b\u7ed3\u675f\u200b\u4f5c\u4e1a\u200b\u8f93\u5165\u200b\uff09.
\u200b\u4f5c\u4e1a\u63a7\u5236\u200b\u547d\u4ee4\u200b
jobsfgbgkillman signalCtrl-CCtrl-Zjobs
\u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5217\u51fa\u200b\u5f53\u524d\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b.\u200b\u6bcf\u4e2a\u200b\u4f5c\u4e1a\u200b\u90fd\u200b\u6709\u200b\u4e00\u4e2a\u200b\u552f\u4e00\u200b\u7684\u200b ID\uff0c\u200b\u524d\u9762\u200b\u5e26\u6709\u200b\u4e00\u4e2a\u200b +
\u200b\u53f7\u200b\u7684\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u7684\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u524d\u9762\u200b\u5e26\u6709\u200b\u4e00\u4e2a\u200b -
\u200b\u53f7\u200b\u7684\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u7684\u200b\u540e\u53f0\u4f5c\u4e1a\u200b.
fg
\u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5c06\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\u5207\u6362\u200b\u5230\u200b\u524d\u53f0\u200b\u8fd0\u884c\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b %
\u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b.
bg
\u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5c06\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u5207\u6362\u200b\u5230\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b %
\u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b.
kill
\u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5411\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b\u4fe1\u53f7\u200b.\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0ckill
\u200b\u547d\u4ee4\u200b\u4f1a\u200b\u53d1\u9001\u200b SIGTERM
\u200b\u4fe1\u53f7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b -SIGNAL
\u200b\u9009\u9879\u200b\u6765\u200b\u6307\u5b9a\u200b\u4fe1\u53f7\u200b\u7c7b\u578b\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b %
\u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b.
man signal
\u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u67e5\u770b\u200b\u6240\u6709\u200b\u53ef\u4ee5\u200b\u53d1\u9001\u7ed9\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u4fe1\u53f7\u200b.
Ctrl-C
\u200b\u5feb\u6377\u952e\u200b\u7528\u4e8e\u200b\u5411\u524d\u200b\u53f0\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b SIGINT
\u200b\u4fe1\u53f7\u200b\uff0c\u200b\u901a\u5e38\u200b\u7528\u4e8e\u200b\u7ec8\u6b62\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b.
Ctrl-Z
\u200b\u5feb\u6377\u952e\u200b\u7528\u4e8e\u200b\u5411\u524d\u200b\u53f0\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b SIGTSTP
\u200b\u4fe1\u53f7\u200b\uff0c\u200b\u901a\u5e38\u200b\u7528\u4e8e\u200b\u6682\u505c\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b.
\u200b\u9996\u5148\u200b\u7406\u89e3\u200b tmux \u200b\u7684\u200b\u81ea\u4e0a\u200b\u5411\u4e0b\u200b\u4e09\u4e2a\u200b\u4e0d\u540c\u200b\u5c42\u7ea7\u200b\uff1asession\uff0cwindow\uff0cpane
sessionwindowpanesession \u200b\u662f\u200b tmux \u200b\u7684\u200b\u6700\u9ad8\u200b\u5c42\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b tmux \u200b\u7684\u200b\u5b9e\u4f8b\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b session\uff0c\u200b\u6bcf\u4e2a\u200b session \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b window\uff0c\u200b\u6bcf\u4e2a\u200b window \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty
window \u200b\u662f\u200b session \u200b\u7684\u200b\u7b2c\u4e8c\u5c42\u200b\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b\u7ec8\u7aef\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b window\uff0c\u200b\u6bcf\u4e2a\u200b window \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty
pane \u200b\u662f\u200b window \u200b\u7684\u200b\u7b2c\u4e09\u5c42\u200b\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b\u5206\u5c4f\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty
"},{"location":"Note/Missing%20Semester/commandline_env/#session","title":"\u65b0\u5efa\u200b\u4e00\u4e2a\u200b session","text":"tmuxtmux new -t NAMEtmux a NAMEtmux lsCtrl-b d\u200b\u76f4\u63a5\u200b\u8fdb\u5165\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b session
\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u540d\u4e3a\u200b NAME \u200b\u7684\u200b session
\u200b\u91cd\u65b0\u200b\u8fde\u63a5\u200b\u5230\u200b\u540d\u4e3a\u200b NAME \u200b\u7684\u200b session
\u200b\u5217\u51fa\u200b\u6240\u6709\u200b session
detach \u200b\u5f53\u524d\u200b session
"},{"location":"Note/Missing%20Semester/commandline_env/#session_1","title":"session \u200b\u4ee5\u5185\u200b\u7684\u200b\u64cd\u4f5c","text":"C-b cC-b n/p/NUMBERC-b \uff0cC-b &\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b window
\u200b\u5207\u6362\u200b\u5230\u200b\u4e0b\u200b\u4e00\u4e2a\u200b/\u200b\u4e0a\u200b\u4e00\u4e2a\u200b/\u200b\u7b2c\u200b x \u200b\u4e2a\u200b window
\u200b\u91cd\u547d\u540d\u200b\u5f53\u524d\u200b window
\u200b\u5173\u95ed\u200b\u5f53\u524d\u200b window
"},{"location":"Note/Missing%20Semester/commandline_env/#window","title":"window \u200b\u4ee5\u5185\u200b\u7684\u200b\u64cd\u4f5c","text":"C-b \\\"C-b %C-b oC-b xC-b zC-b ARROWC-b SPACE\u200b\u4e0a\u4e0b\u200b\u5206\u88c2\u200b pane\uff0c\u200b\u8fd9\u4f1a\u200b\u662f\u200b\u65b0\u200b\u7684\u200b\u8fdb\u7a0b\u200b\u548c\u200b\u65b0\u200b\u7684\u200b tty
\u200b\u5de6\u53f3\u200b\u5206\u88c2\u200b pane
\u200b\u5207\u6362\u200b\u5230\u200b\u4e0b\u200b\u4e00\u4e2a\u200b pane
\u200b\u5173\u95ed\u200b\u5f53\u524d\u200b pane
\u200b\u653e\u5927\u200b\u7f29\u5c0f\u200b\u5f53\u524d\u200b pane
\u200b\u5728\u200b pane \u200b\u4e4b\u95f4\u200b\u79fb\u52a8\u200b
\u200b\u4e00\u952e\u200b\u5207\u6362\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u5e03\u5c40\u200b\u6a21\u5f0f\u200b
"},{"location":"Note/Missing%20Semester/commandline_env/#dotfiles","title":"Dotfiles","text":"Dotfile \u200b\u662f\u200b\u4ee5\u70b9\u200b\uff08.\uff09\u200b\u5f00\u5934\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u5728\u200b Unix-like \u200b\u7cfb\u7edf\u200b\u4e2d\u200b\u88ab\u200b\u5e7f\u6cdb\u200b\u4f7f\u7528\u200b.\u200b\u5b83\u4eec\u200b\u901a\u5e38\u200b\u4f4d\u4e8e\u200b\u7528\u6237\u200b\u7684\u200b\u4e3b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b58\u50a8\u200b\u4e2a\u4eba\u5316\u200b\u548c\u200b\u81ea\u5b9a\u4e49\u200b\u7684\u200b\u914d\u7f6e\u200b\u9009\u9879\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5176\u4ed6\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u548c\u200b\u5de5\u5177\u200b\u7684\u200b\u8bbe\u7f6e\u200b.
Dotfile \u200b\u7684\u200b\u540d\u79f0\u200b\u4ee5\u200b\u4e00\u4e2a\u200b\u6216\u200b\u591a\u4e2a\u200b\u70b9\u200b\u5f00\u5934\u200b\uff0c\u200b\u4f8b\u5982\u200b .bashrc
\u3001.vimrc
\u3001.gitconfig
\u200b\u7b49\u200b.\u200b\u7531\u4e8e\u200b\u5728\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0cUnix-like \u200b\u7cfb\u7edf\u200b\u4f1a\u200b\u5c06\u200b\u4ee5\u70b9\u200b\u5f00\u5934\u200b\u7684\u200b\u6587\u4ef6\u200b\u89c6\u4e3a\u200b\u9690\u85cf\u200b\u6587\u4ef6\u200b\uff0c\u200b\u56e0\u6b64\u200b\u8fd9\u4e9b\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u5728\u200b\u6587\u4ef6\u200b\u7ba1\u7406\u5668\u200b\u4e2d\u200b\u9ed8\u8ba4\u200b\u662f\u200b\u4e0d\u200b\u53ef\u89c1\u200b\u7684\u200b.\u200b\u4f46\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u7279\u5b9a\u200b\u7684\u200b\u9009\u9879\u200b\u6216\u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u548c\u200b\u7f16\u8f91\u200b\u5b83\u4eec\u200b.
Dotfile \u200b\u7684\u200b\u7528\u9014\u200b\u56e0\u200b\u6587\u4ef6\u540d\u200b\u548c\u200b\u6240\u200b\u9488\u5bf9\u200b\u7684\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u800c\u5f02\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u4e9b\u200b\u5e38\u89c1\u200b\u7684\u200b\u4f8b\u5b50\u200b\uff1a
.bashrc
\uff1aBash Shell \u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b Shell \u200b\u7684\u200b\u884c\u4e3a\u200b\u548c\u200b\u73af\u5883\u53d8\u91cf\u200b..vimrc
\uff1aVim \u200b\u6587\u672c\u7f16\u8f91\u200b\u5668\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b Vim \u200b\u7684\u200b\u7f16\u8f91\u5668\u200b\u8bbe\u7f6e\u200b\u548c\u200b\u63d2\u4ef6\u200b..gitconfig
\uff1aGit \u200b\u7248\u672c\u200b\u63a7\u5236\u7cfb\u7edf\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u8bbe\u7f6e\u200b Git \u200b\u7684\u200b\u7528\u6237\u200b\u4fe1\u606f\u200b\u3001\u200b\u522b\u540d\u200b\u548c\u200b\u5176\u4ed6\u200b\u9009\u9879\u200b..ssh/config
\uff1aSSH \u200b\u5ba2\u6237\u7aef\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u914d\u7f6e\u200b SSH \u200b\u8fde\u63a5\u200b\u7684\u200b\u4e3b\u673a\u200b\u548c\u200b\u9009\u9879\u200b..tmux.conf
\uff1atmux \u200b\u7ec8\u7aef\u200b\u590d\u7528\u200b\u5de5\u5177\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b tmux \u200b\u7684\u200b\u4f1a\u200b\u8bdd\u200b\u548c\u200b\u7a97\u683c\u200b\u8bbe\u7f6e\u200b.\u200b\u901a\u8fc7\u200b\u7f16\u8f91\u200b\u548c\u200b\u5b9a\u5236\u200b Dotfile\uff0c\u200b\u7528\u6237\u200b\u53ef\u4ee5\u200b\u6309\u7167\u200b\u4e2a\u4eba\u200b\u504f\u597d\u200b\u548c\u200b\u9700\u6c42\u200b\u6765\u200b\u914d\u7f6e\u200b\u5404\u79cd\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u548c\u200b\u5de5\u5177\u200b.\u200b\u5b83\u4eec\u200b\u5141\u8bb8\u200b\u7528\u6237\u200b\u4fee\u6539\u200b\u9ed8\u8ba4\u8bbe\u7f6e\u200b\u3001\u200b\u6dfb\u52a0\u200b\u5feb\u6377\u952e\u200b\u3001\u200b\u5b9a\u4e49\u200b\u522b\u540d\u200b\u3001\u200b\u8bbe\u7f6e\u200b\u73af\u5883\u53d8\u91cf\u200b\u7b49\u200b\uff0c\u200b\u4ee5\u200b\u63d0\u5347\u200b\u5de5\u4f5c\u6548\u7387\u200b\u548c\u200b\u4e2a\u4eba\u5316\u200b\u4f53\u9a8c\u200b.
~/.zshrc \u200b\u662f\u200b zsh \u200b\u7684\u200b\u9ed8\u8ba4\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u6bcf\u6b21\u200b\u542f\u52a8\u200b zsh\uff0c\u200b\u90fd\u200b\u4f1a\u200b\u6267\u884c\u200b\u5176\u4e2d\u200b\u7684\u200b\u8bed\u53e5\u200b.\u200b\u6bd4\u5982\u200b\u4f60\u200b\u5728\u200b\u91cc\u9762\u200b\u5199\u200b\u4e0a\u200b\u4e00\u53e5\u200becho Hello
\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u6bcf\u6b21\u200b\u542f\u52a8\u200b zsh \u200b\u7684\u200b\u65f6\u5019\u200b\u81ea\u52a8\u200b\u95ee\u5019\u200b\u4f60\u200b\u4e00\u53e5\u200b
\u200b\u5728\u200b github \u200b\u4e0a\u200b\u53ef\u4ee5\u200b\u627e\u5230\u200b\u8bb8\u591a\u200b\u4eba\u200b\u5206\u4eab\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e5f\u200b\u8d34\u200b\u4e0a\u200b\u6211\u200b\u81ea\u5df1\u200b\u7684\u200b
"},{"location":"Note/Missing%20Semester/commandline_env/#_1","title":"\u7b26\u53f7\u200b\u8fde\u63a5","text":"\u200b\u5f88\u591a\u200b\u65f6\u5019\u200b\u628a\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u653e\u5728\u200b\uff5e\u200b\u76ee\u5f55\u200b\u4e0b\u200b\u5e76\u200b\u4e0d\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u597d\u200b\u6df7\u4e71\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u597d\u200b\u5efa\u7acb\u200b GitHub \u200b\u4ed3\u5e93\u200b\u8fdb\u884c\u200b\u7ba1\u7406\u200b\uff0c\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u7684\u200b\u8bfb\u53d6\u200b\u4f4d\u7f6e\u200b\u5f80\u5f80\u200b\u662f\u200b\u5b9a\u200b\u6b7b\u200b\u7684\u200b\uff0c\u200b\u79fb\u52a8\u200b\u5230\u200b\u522b\u5904\u200b\u5c31\u200b\u5931\u6548\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5229\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u6765\u200b\u6574\u7406\u200b\u4ed6\u4eec\u200b.
ln -s TRUE_PATH VIRTUAL_PATH
: \u200b\u8f6f\u200b\u8fde\u63a5\u200b\uff0cVIRTUAL_PATH \u200b\u4e0a\u200b\u5b9e\u9645\u4e0a\u200b\u4ec0\u4e48\u200b\u6587\u4ef6\u200b\u90fd\u200b\u6ca1\u6709\u200b\uff0c\u200b\u4f46\u200b\u6211\u4eec\u200b\u8bd5\u56fe\u200b\u8bfb\u5199\u200b\u8fd9\u4e2a\u200b\u6587\u4ef6\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u4f1a\u200b\u88ab\u200b\u5bfc\u5411\u200b TRUE_PATH \u200b\u4e0a\u200b\u90a3\u4e2a\u200b\u771f\u5b9e\u200b\u5b58\u5728\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5229\u7528\u200b\u8fd9\u4e2a\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7edf\u4e00\u200b\u8f6c\u79fb\u200b\u6211\u4eec\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e86\u200b.
\u200b\u6ce8\u610f\u200b\u521b\u5efa\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u65f6\u200b VIRTUAL_PATH \u200b\u4e0d\u80fd\u200b\u5b58\u5728\u200b
\u200b\u82e5\u200b\u5220\u53bb\u200b TRUE_PATH\uff0c\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u4ecd\u7136\u200b\u5b58\u5728\u200b\uff0c\u200b\u4f46\u200b\u5df2\u200b\u4e0d\u53ef\u200b\u8bbf\u95ee\u200b\uff08\u200b\u663e\u793a\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff09
"},{"location":"Note/Missing%20Semester/commandline_env/#remote-machine","title":"Remote Machine","text":"\u200b\u8be6\u60c5\u200b\u53ef\u4ee5\u200b\u770b\u200b\u8fd9\u200b\u4e00\u7bc7\u200b\uff0c\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b ssh \u200b\u8fde\u63a5\u200b\u5b9e\u8df5\u200b.\u200b\u5728\u200b:ocitons-link-16:\u200b\u8fd9\u200b\u4e00\u7bc7\u200b\u4e2d\u6709\u200b\u5173\u4e8e\u200b docker \u200b\u7684\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u7684\u200b\u5b9e\u8df5\u200b\uff0c\u200b\u66f4\u52a0\u200b\u8be6\u7ec6\u200b.
\u200b\u5e38\u7528\u200b\u6307\u4ee4\u200b
ssh USERNAME@IP_ADDRESSssh-keygenssh-copy-id USERNAME@IP_ADDRESSscp -p xxxx LOCAL_PATH USERNAME@IP_ADDRESS:REMOTE_PATHscp -p xxxx USERNAME:IP_ADDRESS LOCAL_PATH\u200b\u8fde\u63a5\u200b remote machine
\u200b\u81ea\u52a8\u200b\u751f\u6210\u200b\u8ff7\u836f\u200b\uff0c\u200b\u6ce8\u610f\u200b keyphrase \u200b\u5e94\u8be5\u200b\u4e3a\u7a7a\u200b\uff08\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff09
\u200b\u590d\u5236\u200b\u516c\u94a5\u200b\u5230\u200b remote machine \u200b\u7684\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u200b\u4e2d\u200b
\u200b\u5c06\u200b\u672c\u5730\u200b\u6587\u4ef6\u200b\u590d\u5236\u5230\u200b remote machine
\u200b\u5c06\u200b remote machine \u200b\u6587\u4ef6\u200b\u590d\u5236\u5230\u200b\u672c\u5730\u200b
\uff5e/.ssh/config \u200b\u91cc\u9762\u200b\u53ef\u4ee5\u200b\u8bbe\u7f6e\u200b remote machine \u200b\u522b\u540d\u200b \u200b\u9ed8\u8ba4\u200b\u7aef\u53e3\u200b \u200b\u9ed8\u8ba4\u200b ip \u200b\u5730\u5740\u200b\u7b49\u200b\u5c5e\u6027\u200b
Tip
\u200b\u5728\u200b remote machine \u200b\u4f7f\u7528\u200b tmux\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b\u8fde\u63a5\u200b\u5173\u95ed\u200b\u540e\u200b\uff0c\u200b\u8fde\u63a5\u200b\u56de\u6765\u200b\uff0c\u200b\u518d\u200b\u91cd\u65b0\u200b attach\uff0c\u200b\u4e4b\u524d\u200b\u8fd0\u884c\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u90fd\u200b\u4f1a\u200b\u4ecd\u7136\u200b\u5b58\u5728\u200b. \u200b\u5728\u200b\u8fdc\u7a0b\u200b\u7684\u200b tmux \u200b\u7684\u200b\u5feb\u6377\u952e\u200b\u9700\u8981\u200b\u6309\u200b\u4e24\u6b21\u200b C-a
Tip
VSCode \u200b\u7684\u200b Remote ssh \u200b\u76f8\u5f53\u200b\u597d\u7528\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8ba9\u200b\u4f60\u200b\u7528\u200b VSCode \u200b\u5bf9\u200b\u8fdc\u7a0b\u200b\u673a\u5668\u200b\u4e0a\u200b\u64cd\u4f5c\u200b\uff0c\u200b\u5305\u62ec\u200b debug \u200b\u5565\u200b\u7684\u200b
"},{"location":"PeiPei/","title":"PeiPei!","text":"\u200b\u6b22\u8fce\u200b\u6765\u5230\u200b PeiPei \u200b\u5bc4\u5c45\u200b\u5728\u200b\u5927\u795e\u200b Stormckey \u200b\u7684\u200b\u535a\u5ba2\u200b\u4e0a\u200b\uff01
\u200b\u8fd9\u91cc\u200b\u4f1a\u653e\u200b\u4e00\u4e9b\u200b\u6015\u200b\u81ea\u5df1\u200b\u5fd8\u8bb0\u200b\u7684\u200b\u5c0f\u200b Tips\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e9b\u200b\u6709\u8da3\u200b\u7684\u200b\u4e1c\u897f\u200b\uff01
"},{"location":"PeiPei/markdown/","title":"Markdown All in One","text":"\u200b\u7ea6\u200b 379 \u200b\u4e2a\u200b\u5b57\u200b 5 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
Typst YYDS!!!
\u200b\u9020\u5b8c\u200b\u677f\u5b50\u200b\u4e4b\u540e\u200b\u5199\u200b\u6587\u6863\u200b\u771f\u7684\u200b\u662f\u200b\u592a\u723d\u4e86\u200b\uff0cTypst \u200b\u771f\u7684\u200b\u592a\u597d\u200b\u7528\u200b\u4e86\u200b\uff0c\u200b\u5f3a\u70c8\u63a8\u8350\u200b\uff01 \u200b\u5199\u200b\u7684\u200b\u65f6\u5019\u200b\u50cf\u200b Markdown \u200b\u4e00\u6837\u200b\u7b80\u5355\u200b\uff0c\u200b\u5bfc\u51fa\u200b\u7684\u200b\u50cf\u200b LaTeX \u200b\u4e00\u6837\u200b\u6f02\u4eae\u200b \ud83d\ude0b \u200b\u6211\u200b\u81ea\u5df1\u200b\u7684\u200b\u6a21\u677f\u200b\u5728\u200b typst-template \u200b\u91cc\u200b\uff0c\u200b\u6b22\u8fce\u200b\u4f7f\u7528\u200b\uff01
"},{"location":"PeiPei/markdown/#vscode-like-highlighting","title":"VSCode like highlighting","text":"\u200b\u5373\u200b\u4f7f\u7528\u200b\u4e86\u200b VSCode \u200b\u7684\u200b MPE \u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0cMarkdown \u200b\u91cc\u200b\u7684\u200b\u4ee3\u7801\u200b\u5757\u200b\u8fd8\u662f\u200b\u5341\u5206\u200b\u7684\u200b\u4e11\u964b\u200b.\u200b\u8fd9\u91cc\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e00\u79cd\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8ba9\u200b Markdown \u200b\u91cc\u200b\u7684\u200b\u4ee3\u7801\u200b\u5757\u200b\u7684\u200b\u9ad8\u4eae\u200b\u6548\u679c\u200b\u548c\u200b VSCode \u200b\u91cc\u200b\u7684\u200b\u4e00\u6837\u200b.
\u200b\u9996\u5148\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u51fa\u200b\u7684\u200b\u662f\u200b\u767d\u8272\u200b\u5e95\u200b\uff0c\u200b\u5c31\u200b\u628a\u200b VSCode \u200b\u7684\u200b\u4e3b\u9898\u200b\u6539\u6210\u200b\u767d\u8272\u200b\u5e95\u200b\u7684\u200b\uff0c\u200b\u5982\u679c\u200b\u662f\u200b\u9ed1\u8272\u200b\u5e95\u200b\uff0c\u200b\u5c31\u200b\u6539\u6210\u200b\u9ed1\u8272\u200b\u5e95\u200b\u7684\u200b.\u200b\u4e0b\u9762\u200b\u7684\u200b\u914d\u7f6e\u200b\u662f\u200b\u767d\u8272\u200b\u5e95\u200b\u7684\u200b.
\u200b\u5b89\u88c5\u200b Paste Special \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u76f4\u63a5\u200b\u5728\u200b VSCode \u200b\u91cc\u200b\u590d\u5236\u200b\u5199\u200b\u597d\u200b\u7684\u200b\u4ee3\u7801\u200b\uff0c\u200b\u5728\u200b Markdown \u200b\u6587\u4ef6\u200b\u91cc\u200b\u7c98\u8d34\u200b\u65f6\u200b\u53f3\u952e\u200b\u9009\u62e9\u200b Paste Special
\uff0c\u200b\u7c98\u8d34\u200b\u4e3a\u200b HTML \u200b\u683c\u5f0f\u200b.\u200b\u4e3a\u4e86\u200b\u548c\u200b MPE \u200b\u7684\u200b\u9ed8\u8ba4\u200b\u683c\u5f0f\u200b\u5339\u914d\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5bf9\u200b css \u200b\u8fdb\u884c\u200b\u4e00\u4e9b\u200b\u5fae\u8c03\u200b.
\u200b\u4f8b\u5982\u200b\u5982\u679c\u200b\u7c98\u8d34\u200b\u5b8c\u200b\u7684\u200b\u5982\u4e0b\u200b\uff1a
<div style=\"color: #3b3b3b;background-color: #1f1f1f;font-family: Fira Code Retina\uff0c \u200b\u601d\u6e90\u200b\u9ed1\u4f53\u200b HW\uff0c Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;\">...</div>\n
\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u628a\u200b\u5b83\u200b\u6539\u6210\u200b\uff1a
<div style=\"color: #3b3b3b;background-color: #f5f5f5;font-family: Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 1.4;white-space: pre;border-radius: 3px;padding: .8em;margin-top: 0;margin-bottom: 16px;overflow: auto;\">...</div>\n
\u200b\u4e3b\u8981\u200b\u662f\u200b\u52a0\u200b\u4e86\u200b\u5706\u89d2\u200b\u3001padding \u200b\u548c\u200b margin.\u200b\u5b57\u4f53\u200b\u548c\u200b\u884c\u9ad8\u200b\u53ef\u6539\u200b\u53ef\u4e0d\u200b\u6539\u200b\uff0c\u200b\u770b\u200b\u4e2a\u4eba\u200b\u559c\u597d\u200b.\u200b\u53e6\u5916\u200b\uff0c\u200b\u4e3a\u4e86\u200b\u6253\u5370\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u66f4\u6539\u200b white-space
\u200b\u4e3a\u200b pre-wrap
\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u81ea\u52a8\u200b\u6362\u884c\u200b\u4e86\u200b\uff0c\u200b\u540c\u65f6\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u53bb\u6389\u200b overflow: auto;
\uff1a
<div style=\"color: #3b3b3b;background-color: #f5f5f5;font-family: Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 1.4;white-space: pre-wrap;border-radius: 3px;padding: .8em;margin-top: 0;margin-bottom: 16px;\">...</div>\n
"},{"location":"PeiPei/markdown/#-img-src","title":"![]()
-> <img src=\"\" />
","text":"\u200b\u5728\u200b Markdown \u200b\u91cc\u200b\u63d2\u5165\u200b\u56fe\u7247\u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b ![]()
\u200b\u7684\u200b\u65b9\u5f0f\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u6837\u200b\u5bfc\u51fa\u200b\u7684\u200b PDF \u200b\u91cc\u200b\u7684\u200b\u56fe\u7247\u200b\u662f\u200b\u4e0d\u4f1a\u200b\u5c45\u4e2d\u200b\u7684\u200b\uff0c\u200b\u800c\u4e14\u200b\u4e5f\u200b\u6ca1\u6709\u200b\u529e\u6cd5\u200b\u8bbe\u7f6e\u200b\u56fe\u7247\u200b\u7684\u200b\u5bbd\u200b\u9ad8\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u628a\u200b ![]()
\u200b\u6539\u6210\u200b <img src=\"\" />
.\u200b\u4f7f\u7528\u200b\u4ee5\u4e0b\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u66ff\u6362\u200b\uff1a
!\\[(.*?)\\]\\((.*?)\\)\n
\u200b\u66ff\u6362\u200b\u4e3a\u200b\uff1a
<img src=\"$2\" alt=\"$1\" style=\"max-width: 100%\" />\n
"},{"location":"PeiPei/repository/","title":"\u4ed3\u5e93\u200b\u6574\u7406","text":"\u200b\u7ea6\u200b 340 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
\u200b\u8fd9\u91cc\u200b\u662f\u200b\u4e00\u4e9b\u200b\u6211\u200b\u4e2a\u4eba\u200b\u7684\u200b GitHub \u200b\u8d26\u53f7\u200b\u7684\u200b public repo \u200b\u7684\u200b\u6574\u7406\u200b\u3002
"},{"location":"PeiPei/repository/#_2","title":"\u6709\u8da3\u200b\u7684","text":"\u200b\u7ea6\u200b 735 \u200b\u4e2a\u200b\u5b57\u200b 37 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
"},{"location":"PeiPei/typst/#_1","title":"\u5982\u4f55\u200b\u5f00\u59cb","text":"\u200b\u56e0\u4e3a\u200b Typst \u200b\u6bd4\u8f83\u200b\u65b0\u200b\uff0c\u200b\u6240\u4ee5\u200b\u76f8\u5173\u200b\u7684\u200b\uff08\u200b\u7279\u522b\u200b\u662f\u200b\u4e2d\u6587\u200b\u7684\u200b\uff09\u200b\u6587\u6863\u200b\u8fd8\u200b\u4e0d\u662f\u200b\u5f88\u591a\u200b\uff0c\u200b\u6240\u4ee5\u200b\u76ee\u524d\u200b\u8fd8\u662f\u200b\u9760\u200b\u5b98\u65b9\u200b\u7684\u200b\u6587\u6863\u200b\uff1aTypst Documentation\uff0c\u200b\u8fc7\u200b\u4e00\u904d\u200b\u91cc\u9762\u200b\u7684\u200b Tutorial \u200b\u90e8\u5206\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u57fa\u672c\u4e0a\u200b\u638c\u63e1\u200b Typst \u200b\u7684\u200b\u4f7f\u7528\u200b\u4e86\u200b\u3002\u200b\u4e4b\u540e\u200b\u5c31\u662f\u200b\u5199\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u5565\u200b\u5c31\u200b\u5728\u200b\u6587\u6863\u200b\u91cc\u200b\u641c\u200b\u5565\u200b\u3002
\u200b\u53e6\u5916\u200b\u5c31\u662f\u200b\u770b\u770b\u200b awesome-typst-cn \u200b\u91cc\u9762\u200b\u7684\u200b\u4e00\u4e9b\u200b\u8d44\u6e90\u200b\uff0c\u200b\u6bd4\u5982\u200b Typst \u200b\u7684\u200b\u6a21\u677f\u200b\uff0cTypst \u200b\u7684\u200b\u63d2\u4ef6\u200b\u7b49\u7b49\u200b\u3002\u200b\u6bd4\u8f83\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u5c31\u200b\u4e0d\u518d\u200b\u8d58\u8ff0\u200b\u4e86\u200b\u3002\u200b\u7279\u522b\u200b\u662f\u200b\u9047\u5230\u200b\u5565\u200b\u95ee\u9898\u200b\u53ef\u4ee5\u200b\u5148\u200b\u770b\u770b\u200b\u8fd9\u200b\u91cc\u9762\u200b\u7684\u200b\u6a21\u677f\u200b\u91cc\u200b\u65f6\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b\u7684\u200b\u3002
\u200b\u5c24\u5176\u200b\u63a8\u8350\u200b\u5176\u4e2d\u200b\u7684\u200b nju-thesis-typst\uff0c\u200b\u8fd9\u662f\u200b\u5357\u4eac\u5927\u5b66\u200b\u7684\u200b\u672c\u79d1\u751f\u200b\u6bd5\u4e1a\u8bba\u6587\u200b\u7684\u200b\u6a21\u677f\u200b\uff0c\u200b\u91cc\u9762\u200b\u7684\u200b README \u200b\u91cc\u200b\u6709\u200b\u8be6\u7ec6\u200b\u7684\u200b\u4f7f\u7528\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u800c\u4e14\u200b\u4ee3\u7801\u200b\u4e5f\u200b\u975e\u5e38\u200b\u7b80\u6d01\u200b\u9ad8\u6548\u200b\uff0c\u200b\u57fa\u672c\u200b\u628a\u200b\u6240\u6709\u200b\u5751\u200b\u90fd\u200b\u89e3\u51b3\u200b\u4e86\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f5c\u4e3a\u200b\u53c2\u8003\u200b\u3002
"},{"location":"PeiPei/typst/#vscode","title":"VSCode \u200b\u63d2\u4ef6","text":"\u200b\u9996\u5148\u200b\u662f\u200b awesome-typst-cn \u200b\u91cc\u200b\u63a8\u8350\u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u200b\u5c31\u200b\u4e0d\u518d\u200b\u8d58\u8ff0\u200b\u4e86\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u770b\u200b\u4e0a\u9762\u200b\u7684\u200b\u94fe\u63a5\u200b\u3002\u200b\u6211\u200b\u81ea\u5df1\u200b\u7528\u200b\u4e86\u200b Typst LSP \u200b\u548c\u200b Typst Preview \u200b\u8fd9\u200b\u4e24\u4e2a\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b VSCode \u200b\u91cc\u200b\u76f4\u63a5\u200b\u9884\u89c8\u200b Typst \u200b\u7684\u200b\u6548\u679c\u200b\uff0c\u200b\u5341\u5206\u200b\u65b9\u4fbf\u200b\u3002
\u200b\u9664\u6b64\u4e4b\u5916\u200b\uff0c\u200b\u6211\u200b\u8fd8\u200b\u7528\u200b\u4e86\u200b VSCode \u200b\u7684\u200b Paste Image \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u7c98\u8d34\u200b\u56fe\u7247\u200b\uff0c\u200b\u5341\u5206\u200b\u65b9\u4fbf\u200b\u3002\u200b\u7136\u540e\u200b\u987a\u5e26\u200b\u4fee\u6539\u200b\u4e00\u4e0b\u200b\u7c98\u8d34\u200b\u683c\u5f0f\u200b\uff1a
\"pasteImage.insertPattern\": \"#figure(\\n image(\\\"${imageSyntaxPrefix}${imageFilePath}${imageSyntaxSuffix}\\\", width: 100%),\\n caption: \\\"\\\",\\n) <>\",\n
\u200b\u8fd9\u6837\u200b\u7c98\u8d34\u200b\u7684\u200b\u56fe\u7247\u200b\u5c31\u200b\u4f1a\u200b\u53d8\u6210\u200b\uff1a
#figure(\n image(\"xxx\", width: 100%),\n caption: \"\",\n) <>\n
"},{"location":"PeiPei/typst/#_2","title":"\u4e00\u4e9b\u200b\u6280\u5de7","text":""},{"location":"PeiPei/typst/#_3","title":"\u4e2d\u82f1\u6587\u200b\u4e0d\u540c\u200b\u5b57\u4f53","text":"\u200b\u7ed9\u200b text \u200b\u4f20\u5165\u200b font \u200b\u65f6\u200b\uff0c\u200b\u5982\u679c\u200b\u4f20\u5165\u200b\u4e00\u4e2a\u200b array\uff0cTypst \u200b\u4f1a\u200b\u6309\u200b\u987a\u5e8f\u200b\u9009\u62e9\u200b\u7b2c\u4e00\u4e2a\u200b\u5b58\u5728\u200b\u7684\u200b\u5b57\u4f53\u200b\u3002\u200b\u6240\u4ee5\u200b\u53ef\u4ee5\u200b\u8fd9\u6837\u200b\u5199\u200b\uff1a
#set text(font: (\"Times New Roman\", \"SimSun\"))\n
\u200b\u8fd9\u6837\u200b\u4e2d\u6587\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b\u5b8b\u4f53\u200b\uff0c\u200b\u82f1\u6587\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b Times New Roman\u3002\u200b\u53e6\u5916\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b\u81ea\u5e26\u200b\u7684\u200b SimSun\u3001SimHei \u200b\u4e4b\u7c7b\u200b\u7684\u200b\u5b57\u4f53\u200b\u4e0d\u200b\u652f\u6301\u200b Typst \u200b\u4f20\u5165\u200b\u7684\u200b weight \u200b\u53c2\u6570\u200b\uff0c\u200b\u5efa\u8bae\u200b\u4f7f\u7528\u200b\u601d\u6e90\u200b\u9ed1\u4f53\u200b\u3001\u200b\u601d\u6e90\u200b\u5b8b\u4f53\u200b\u4e4b\u7c7b\u200b\u7684\u200b\u5b57\u4f53\u200b\u3002Typst \u200b\u7684\u200b weight \u200b\u662f\u200b\u9009\u62e9\u200b\u53d8\u4f53\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u624b\u52a8\u200b\u52a0\u7c97\u200b\u5b57\u4f53\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5982\u679c\u200b\u5b57\u4f53\u200b\u4e0d\u200b\u652f\u6301\u200b\u53d8\u4f53\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b\u4e0d\u200b\u51fa\u6765\u200b\u3002
\u200b\u4e2d\u6587\u5b57\u4f53\u200b\u4e5f\u200b\u4e0d\u200b\u652f\u6301\u200b\u659c\u4f53\u200b\uff0c\u200b\u5e94\u8be5\u200b\u7528\u200b\u6977\u4f53\u200b\u4ee3\u66ff\u200b\u3002show
\u200b\u4e00\u4e0b\u200b\u518d\u200b\u8bbe\u7f6e\u200b text
\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\u3002\u200b\u4f8b\u5982\u200b\uff1a
#show emph: text.with(font: (\"Linux Libertine\", \"STKaiti\"))\n
\u200b\u66f4\u200b\u8be6\u7ec6\u200b\u7684\u200b\u770b\u200b\u8fd9\u4e2a\u200b issue
"},{"location":"PeiPei/typst/#_4","title":"\u6bb5\u843d\u200b\u9996\u200b\u884c\u200b\u7f29\u8fdb","text":"Typst \u200b\u548c\u200b \\(\\LaTeX\\) \u200b\u4e00\u6837\u200b\uff0c\u200b\u8bbe\u7f6e\u200b\u9996\u200b\u884c\u200b\u7f29\u8fdb\u200b\u540e\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u7ae0\u8282\u200b\u7684\u200b\u7b2c\u4e00\u4e2a\u200b\u6bb5\u843d\u200b\u4ecd\u7136\u200b\u4e0d\u4f1a\u200b\u7f29\u8fdb\u200b\u3002\u200b\u53ea\u597d\u200b\u52a0\u200b\u4e00\u4e2a\u200b\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\uff0c\u200b\u52a0\u4e0a\u200b\u4e00\u4e2a\u200b v(-1em)
\u200b\u6765\u200b\u5b9e\u73b0\u200b\uff1a
#let fake-par = {\n v(-1em)\n show par: set block(spacing: 0pt)\n par(\"\")\n}\n
\u200b\u4e4b\u540e\u200b\u901a\u8fc7\u200b show \u200b\u547d\u4ee4\u200b\u5728\u200b heading
terms
list
enum
figure
table
raw
\u200b\u4e4b\u7c7b\u200b\u7684\u200b\u4e1c\u897f\u200b\u540e\u9762\u200b\u52a0\u4e0a\u200b\u8fd9\u4e2a\u200b\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\uff0c\u200b\u4f8b\u5982\u200b\u7ed9\u200b heading
\u200b\u52a0\u4e0a\u200b\uff1a
show heading: it => {\n it\n v(5pt)\n fake-par\n}\n
\u200b\u5f53\u7136\u200b\u4e3a\u4e86\u200b\u7f8e\u89c2\u200b\u6211\u200b\u8fd9\u91cc\u200b\u53e6\u5916\u200b\u52a0\u200b\u4e86\u200b\u4e2a\u200b v(5pt)
\uff0c\u200b\u53ef\u4ee5\u200b\u6839\u636e\u200b\u81ea\u5df1\u200b\u7684\u200b\u559c\u597d\u200b\u8c03\u6574\u200b\u3002\u200b\u5bf9\u4e8e\u200b\u4ee3\u7801\u200b\u5757\u200b raw
\u200b\u8981\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u884c\u5185\u200b\u4ee3\u7801\u200b\u548c\u200b\u4ee3\u7801\u200b\u5757\u200b\u7684\u200b raw
\u200b\u8981\u200b\u505a\u200b\u533a\u522b\u200b\uff0c\u200b\u884c\u5185\u200b\u4ee3\u7801\u200b\u4e0d\u200b\u9700\u8981\u200b\u5728\u200b\u540e\u9762\u200b\u52a0\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\uff0c\u200b\u6240\u4ee5\u200b\u8981\u52a0\u200b\u4e00\u4e2a\u200b block: true
\u200b\u6765\u200b\u533a\u5206\u200b\uff1a
show raw.where(block: true): it => {\n it\n fake-par\n}\n
\u200b\u53e6\u5916\u200b terms
\u200b\u5982\u679c\u200b\u8bbe\u7f6e\u200b\u4e86\u200b\u9996\u884c\u200b\u7f29\u8fdb\u200b\u4f1a\u200b\u6709\u200b\u4e00\u4e9b\u200b\u95ee\u9898\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5728\u200b terms
\u200b\u5757\u200b\u91cc\u200b\u8981\u200b\u53d6\u6d88\u200b\u7f29\u8fdb\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a
show terms: it => {\n set par(first-line-indent: 0pt)\n set terms(indent: 10pt, hanging-indent: 9pt)\n it\n fake-par\n}\n
"},{"location":"PeiPei/typst/#_5","title":"\u4ee3\u7801\u200b\u5757\u200b\u663e\u793a\u200b\u884c\u53f7","text":"#show raw.where(block: true): it => { set par(justify: false); grid(\n columns: (100%, 100%),\n column-gutter: -100%,\n block(width: 100%, inset: 1em, for i, line in it.text.split(\"\\n\") {\n box(width: 0pt, align(right, str(i + 1) + h(2em)))\n hide(line)\n linebreak()\n }),\n block(radius: 1em, fill: luma(246), width: 100%, inset: 1em, it),\n)}\n
\u200b\u53e6\u5916\u200b\u8fd9\u4e2a\u200b issue \u200b\u91cc\u9762\u200b\u4e5f\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u5176\u4ed6\u200b\u7684\u200b\u65b9\u6cd5\u200b\u3002
"},{"location":"Research/","title":"Research","text":"\u200b\u867d\u7136\u200b\u662f\u200b\u79d1\u7814\u200b\u83dc\u200b\ud83d\udc36\u200b\u4f46\u200b\u8fd8\u662f\u200b\u628a\u200b\u4e00\u4e9b\u200b\u7b14\u8bb0\u200b\u653e\u5728\u200b\u8fd9\u91cc\u200b\u597d\u200b\u4e86\u200b QaQ
Research list
Useful pages:
\u200b\u7ea6\u200b 734 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
Abstract
\u200b\u5bf9\u4e8e\u200b DDIM\uff0c\u200b\u9996\u5148\u200b\u8fd8\u662f\u200b\u63a8\u8350\u200b\u9605\u8bfb\u200b\u82cf\u5251\u6797\u200b\u7684\u200b\u535a\u5ba2\u200b.\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b\u53ef\u4ee5\u200b\u8ddf\u8bfb\u200b\uff0c\u200b\u6587\u7ae0\u200b\u4e2d\u6709\u200b\u6211\u200b\u5374\u200b\u6ca1\u6709\u200b\u63d0\u200b\u7684\u200b\u90e8\u5206\u200b\u5c31\u662f\u200b\u6211\u200b\u8ba4\u4e3a\u200b\u6ca1\u4ec0\u4e48\u200b\u597d\u200b\u8865\u5145\u200b\u7684\u200b\u4e86\u200b.
"},{"location":"Research/Diffusion%20Model/DDIM/#_1","title":"\u6e05\u6d17","text":"\u200b\u4ece\u200b DDPM \u200b\u90a3\u7bc7\u200b\u535a\u5ba2\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u5df2\u7ecf\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\\(p(x_t|x_{t-1})\\)\u200b\u8fd9\u4e00\u200b\u524d\u540e\u200b\u8fde\u7eed\u200b\u65f6\u95f4\u200b\u7684\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u5df2\u7ecf\u200b\u6ca1\u6709\u200b\u4f7f\u7528\u200b\u5230\u200b\u4e86\u200b\uff0c\u200b\u5c3d\u7ba1\u200b\u6211\u4eec\u200b\u5f53\u65f6\u200b\u7ed9\u5b9a\u200b\u4e86\u200b\u8fd9\u200b\u4e00\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u7684\u200b\u8868\u8fbe\u5f0f\u200b\uff0c\u200b\u5e76\u200b\u4ee5\u6b64\u200b\u63a8\u51fa\u200b\u4e86\u200b\\(p(x_t|x_0)\\).\u200b\u4f46\u662f\u200b\u65e2\u7136\u200b\u6ca1\u6709\u200b\u7528\u5230\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5b8c\u6210\u200b\u540e\u7eed\u200b\u63a8\u5bfc\u200b\u63a8\u5bfc\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u4fdd\u7559\u200b\u540e\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u4e0d\u518d\u200b\u5b9a\u200b\u6b7b\u200b\u524d\u9762\u200b\u7684\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u51fd\u6570\u200b\u4e86\u200b\uff0c\u200b\u5148\u200b\u5c06\u200b\u5176\u200b\u5f53\u4f5c\u200b\u5f85\u5b9a\u200b\uff0c\u200b\u770b\u770b\u200b\u8fd9\u200b\u4e00\u65b0\u200b\u7684\u200b\u81ea\u7531\u5ea6\u200b\u4f1a\u200b\u5e26\u6765\u200b\u4ec0\u4e48\u200b.
\u200b\u4e8e\u662f\u200b\u5728\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c06\u200b\u8fd9\u200b\u4e00\u9879\u200b\u79ef\u6389\u200b\uff0c\u200b\u968f\u540e\u200b\u4fdd\u6301\u200b\u6211\u4eec\u200b\u8d70\u51fa\u200b\u7684\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u6b63\u6001\u5206\u5e03\u200b\u7684\u200b\u5047\u8bbe\u200b\uff0c\u200b\u7528\u200b\u5f85\u5b9a\u200b\u7cfb\u6570\u200b\u6cd5\u200b\u6c42\u89e3\u200b.
\u200b\u7136\u540e\u200b\u6211\u4eec\u200b\u5c31\u200b\u770b\u89c1\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u65b9\u7a0b\u200b\u4e66\u5c11\u200b\u4e86\u200b\u53e6\u200b\u4e00\u4e2a\u200b\uff0c\u200b\u8fd9\u200b\u4e8b\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u4e0d\u518d\u200b\u9650\u5236\u200b\\(p(x_t|x_{t-1})\\)\u200b\u81ea\u7136\u200b\u5c31\u200b\u591a\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u5173\u4e8e\u200b\u8fd9\u4e2a\u200b\u51fd\u6570\u200b\u53ef\u4ee5\u200b\u662f\u200b\u4ec0\u4e48\u200b\u7684\u200b\u81ea\u7531\u5ea6\u200b\uff08\u200b\u5f53\u7136\u200b\u8fd9\u4e2a\u200b\u51fd\u6570\u200b\u4e0d\u200b\u4e00\u5b9a\u200b\u8fd8\u662f\u200b DDPM \u200b\u7684\u200b\u5f62\u5f0f\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u4ed6\u200b\u8fd8\u662f\u200b\u8981\u200b\u6ee1\u8db3\u200b\u5176\u4ed6\u200b\u7ed9\u5b9a\u200b\u7684\u200b\u6027\u8d28\u200b\uff0c\u200b\u6bd4\u5982\u200b\u4fdd\u8bc1\u200b\\(p(x_t|x_0)\\)\u200b\u5f62\u5f0f\u200b\u5982\u200b\u524d\u200b\uff09\uff0c\u200b\u6211\u4eec\u200b\u8c03\u8282\u200b\u8fd9\u4e2a\u200b\u65b0\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5c31\u662f\u200b\u6362\u200b\u4e0d\u540c\u200b\u7684\u200b\u6ee1\u8db3\u6761\u4ef6\u200b\u7684\u200b\\(p(x_t|x_{t-1})\\)\u200b\u89e3\u200b\uff0c\u200b\u4f7f\u200b\u5176\u200b\u8868\u73b0\u200b\u51fa\u200b\u4e0d\u540c\u200b\u7684\u200b\u7279\u6027\u200b.
\u200b\u968f\u540e\u200b\u7684\u200b\u81ea\u7136\u200b\u5c31\u662f\u200b\u51e0\u4e2a\u200b\u4e0d\u540c\u200b\u7684\u200b\u4f8b\u5b50\u200b\u4e86\u200b.\u200b\u9996\u5148\u200b\uff0c\u200b\u4e00\u5b9a\u200b\u5b58\u5728\u200b\u67d0\u4e2a\u200b\\(\\sigma_t\\)\u200b\u4f7f\u5f97\u200b\\(p(x_t|x_{t-1})\\)\u200b\u8fd8\u662f\u200b\u8ddf\u200b DDPM \u200b\u4e00\u6837\u200b\u7684\u200b\u53d6\u503c\u200b\uff0c\u200b\u6211\u4eec\u200b\u628a\u200b DDPM \u200b\u4e2d\u200b\u7684\u200b\u65b9\u5dee\u200b\u5e26\u5165\u200b\uff0c\u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u8ddf\u200b DDPM \u200b\u4e2d\u200b\u4e00\u6837\u200b\u7684\u200b\u7ed3\u679c\u200b.\u200b\u4ee5\u53ca\u200b\u6587\u7ae0\u200b\u4e2d\u200b\u5efa\u8bae\u200b\u7684\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u65b9\u5dee\u200b\uff0c\u200b\u90fd\u200b\u80fd\u200b\u5f97\u5230\u200b\u4e0d\u9519\u200b\u7684\u200b\u7ed3\u679c\u200b.\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u53d6\u200b\u4e00\u4e9b\u200b\u7279\u6b8a\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u6bd4\u5982\u200b\u5b8c\u5168\u200b\u53bb\u6389\u200b\u65b9\u5dee\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u5f80\u56de\u200b\u8d70\u200b\u7684\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5411\u91cf\u200b\u800c\u200b\u4e0d\u518d\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u6837\u200b\u8d70\u200b\u7684\u200b\u6548\u679c\u200b\u5f88\u200b\u597d\u200b.
"},{"location":"Research/Diffusion%20Model/DDIM/#_2","title":"\u52a0\u901f","text":"\u200b\u8fd9\u90e8\u5206\u200b\u539f\u200b\u8bba\u6587\u200b\u7684\u200b\u601d\u60f3\u200b\u5b9e\u5728\u200b\u662f\u200b\u7cbe\u5999\u200b\uff0c\u200b\u7528\u200b\u7c7b\u6bd4\u200b\u800c\u8a00\u200b\uff0c\u200b\u6211\u4eec\u200b\u4ece\u200b\u8d77\u70b9\u200b\u51fa\u53d1\u200b\u8d70\u200b\u4e86\u200b 1000 \u200b\u6b65\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u6bcf\u200b 5 \u200b\u6b65\u8bb0\u200b\u4e00\u6b65\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u770b\u4f5c\u200b\u662f\u200b 200 \u200b\u6b65\u200b\u8d70\u200b\u5230\u200b\u4e86\u200b\u540c\u4e00\u4e2a\u200b\u5730\u65b9\u200b\uff0c\u200b\u53ea\u8981\u200b\u6211\u4eec\u200b\u7684\u200b\u6a21\u578b\u200b\u9884\u6d4b\u200b\u7684\u200b\u8db3\u591f\u200b\u597d\u200b\uff0c\u200b\u5b8c\u5168\u200b\u7406\u89e3\u200b\u6211\u4eec\u200b\u662f\u200b\u6cbf\u7740\u200b\u90a3\u6761\u200b\u8def\u5f80\u200b\u5916\u200b\u8d70\u200b\u7684\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u200b 200 \u200b\u6b65\u200b\u4e5f\u200b\u8db3\u4ee5\u200b\u8ba9\u200b\u6211\u4eec\u200b\u8d70\u200b\u56de\u6765\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u52a0\u901f\u200b.\u200b\u8fd9\u4e00\u200b\u8fc7\u7a0b\u200b\u662f\u200b\u6709\u70b9\u50cf\u200b C++\u200b\u91cc\u200b\u7684\u200b upcasat\uff0c\u200b\u6211\u200b\u539f\u5148\u200b\u5f53\u200b\u4f60\u200b\u662f\u200b\u4e2a\u200b Shape \u200b\u7c7b\u200b\uff0c\u200b\u4f46\u200b\u6211\u200b\u77e5\u9053\u200b\u4f60\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u4e2a\u200b Circle\uff0c\u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u628a\u200b\u6307\u9488\u200b\u6539\u6210\u200b Circle*\u200b\u6765\u200b\u628a\u200b\u4f60\u200b\u5f53\u505a\u200b\u4e00\u4e2a\u200b circle \u200b\u5bf9\u5f85\u200b\uff0c\u200b\u5bf9\u8c61\u200b\u5e76\u200b\u6ca1\u6709\u200b\u53d8\u200b\uff0c\u200b\u53ea\u662f\u200b\u6211\u4eec\u200b\u5904\u7406\u200b\u4ed6\u200b\u7684\u200b\u65b9\u5f0f\u200b\u53d8\u200b\u4e86\u200b\uff0c\u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u4fee\u6539\u200b\u597d\u200b\u9002\u5408\u200b\u4e8e\u200b 200 \u200b\u6b65\u200b\u7684\u200b\\(\\alpha\uff0c\\beta\\)\u200b\u6765\u200b\u53cd\u5411\u200b\u91c7\u6837\u200b.
\u200b\u6700\u540e\u200b\u4e00\u6bb5\u200b\u628a\u200b DDPM \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u9636\u200b\u5fae\u5206\u65b9\u7a0b\u200b\u7684\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u503c\u5f97\u4e00\u770b\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/","title":"DDPM","text":"\u200b\u7ea6\u200b 2473 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 8 \u200b\u5206\u949f\u200b
\u200b\u5173\u4e8e\u200b DDPM \u200b\u7684\u200b\u4e09\u79cd\u200b\u7406\u89e3\u200b\u65b9\u5f0f\u200b\u548c\u200b\u4e00\u4e9b\u200b\u76f4\u89c2\u200b\u7684\u200b\u89e3\u91ca\u200b
"},{"location":"Research/Diffusion%20Model/DDPM/#ddpm_1","title":"\u8ba4\u8bc6\u200b DDPM","text":"\u200b\u9996\u5148\u200b\uff0c\u200b\u8ba4\u8bc6\u200b DDPM \u200b\u6700\u597d\u200b\u7684\u200b\u65b9\u5f0f\u200b\u5c31\u662f\u200b\u5148\u200b\u53bb\u200b\u8bfb\u4e00\u8bfb\u200b\u5927\u4f6c\u200b\u5bf9\u4e8e\u200b\u76f4\u89c2\u200b\u7406\u89e3\u200b DDPM \u200b\u7684\u200b\u8bb2\u89e3\u200b\u535a\u5ba2\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u5f15\u7528\u200b\u3010\u200b\u82cf\u5251\u6797\u200b](https://kexue.fm/archives/9119) \u200b\u5927\u4f6c\u200b\u7684\u200b\u535a\u5ba2\u200b\uff0c\u200b\u5efa\u8bae\u200b\u5927\u5bb6\u200b\u5148\u200b\u8bfb\u5b8c\u200b\u7b2c\u4e00\u7bc7\u200b\u6269\u6563\u200b\u6a21\u578b\u200b\u6f2b\u8c08\u200b\uff0c\u200b\u660e\u767d\u200b DDPM \u200b\u662f\u200b\u505a\u200b\u4ec0\u4e48\u200b\u7684\u200b\uff0c\u200b\u518d\u200b\u56de\u5230\u200b\u672c\u6587\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/#_1","title":"\u5728\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u6e38\u200b\u8d70","text":"DDPM\uff0c\u200b\u6309\u7167\u200b\u539f\u6587\u200b\u7684\u200b\u4ecb\u7ecd\u200b\uff0c\u200b\u4e0d\u200b\u53ea\u200b\u53ef\u4ee5\u200b\u7528\u4e8e\u200b\u5904\u7406\u200b\u56fe\u50cf\u200b\u4fe1\u606f\u200b\uff0c\u200b\u4f46\u662f\u200b\u539f\u6587\u200b\u7684\u200b\u5206\u6790\u200b\u4e3b\u8981\u200b\u662f\u4ece\u200b\u56fe\u50cf\u200b\u6765\u8bb2\u200b\u7684\u200b\uff08\u200b\u662f\u200b\u5427\u200b\uff09\uff0c\u200b\u6240\u4ee5\u200b\u6211\u200b\u4e5f\u200b\u4ece\u200b\u56fe\u50cf\u200b\u5206\u6790\u200b\u7684\u200b\u89d2\u5ea6\u200b\u6765\u8bf4\u200b\u4e00\u4e0b\u200b\u5427\u200b.
\u200b\u4ec0\u4e48\u200b\u662f\u200b\u56fe\u50cf\u200b\uff1f\u200b\u6309\u7167\u200b\u6700\u200b\u7b80\u5355\u200b\u7684\u200b\u89d2\u5ea6\u200b\u7406\u89e3\u200b\uff0c\u200b\u56fe\u50cf\u200b\u5c31\u662f\u200b\u50cf\u7d20\u200b\u503c\u200b\u77e9\u9635\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u628a\u200b\u4e00\u5e45\u200b\u56fe\u200b\u4ece\u200b\u5de6\u4e0a\u89d2\u200b\u5230\u200b\u53f3\u4e0b\u89d2\u200b\u7684\u200b\u6240\u6709\u200b\u50cf\u7d20\u200b\u503c\u200b\uff08\u200b\u53ef\u80fd\u200b\u5206\u200b RGB \u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\uff09\u200b\u90fd\u200b\u5b58\u50a8\u200b\u8d77\u6765\u200b\uff0c\u200b\u5c31\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u8fd9\u4e2a\u200b\u4e2a\u200b\u56fe\u50cf\u200b\u7684\u200b\u6240\u6709\u200b\u4fe1\u606f\u200b.
\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u518d\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u56fe\u50cf\u200b\u4ece\u200b\u77e9\u9635\u200b\u62fc\u63a5\u200b\u6210\u200b\u4e00\u4e2a\u200b\u5411\u91cf\u200b\uff0c\u200b\u56fe\u50cf\u200b\u5c31\u200b\u6210\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u5f88\u200b\u9ad8\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\uff08\u200b\u6bd4\u5982\u200b 1024*1024 \u200b\u7ef4\u200b\uff09\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\uff0c\u200b\u6709\u4e9b\u200b\u70b9\u200b\u662f\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u56fe\u50cf\u200b\uff08\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u603b\u80fd\u200b\u62ff\u6765\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u56fe\u50cf\u200b\uff0c\u200b\u628a\u200b\u56fe\u50cf\u200b\u6620\u5c04\u200b\u5230\u200b\u70b9\u200b\u4e0a\u200b\uff09\uff0c\u200b\u5927\u90e8\u5206\u200b\u5374\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u566a\u58f0\u200b\u56fe\u200b\uff08\u200b\u60f3\u8c61\u200b\u4e00\u4e0b\u200b\u7535\u89c6\u200b\u82b1\u5c4f\u200b\uff0c\u200b\u6211\u4eec\u200b\u968f\u673a\u200b\u5728\u200b\u7a7a\u95f4\u200b\u91cc\u53d6\u200b\u4e00\u4e2a\u70b9\u200b\u5927\u6982\u200b\u5c31\u662f\u200b\u8fd9\u6837\u200b\u7684\u200b\uff09\uff0cDDPM \u200b\u5c31\u662f\u200b\u8bd5\u56fe\u200b\u4ece\u200b\u8fd9\u4e2a\u200b\u7a7a\u95f4\u200b\u7684\u200b\u968f\u673a\u200b\u4e00\u4e2a\u70b9\u200b\u51fa\u53d1\u200b\uff0c\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5728\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u6e38\u200b\u8d70\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/#_2","title":"\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u5206\u5e03","text":"\u200b\u6211\u4eec\u200b\u5f88\u200b\u597d\u200b\u7406\u89e3\u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u70b9\u200b\u7684\u200b\u56fe\u50cf\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u70b9\u200b\u5750\u6807\u200b\u62ff\u200b\u51fa\u6765\u200b\uff0c\u200b\u8fd8\u539f\u6210\u200b\u77e9\u9635\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8fd8\u539f\u200b\u5230\u200b\u56fe\u50cf\u200b\u4e86\u200b\uff0c\u200b\u90a3\u4e48\u200b\u4ec0\u4e48\u200b\u662f\u200b\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\uff1f
\u200b\u60f3\u8c61\u200b\u4e00\u4e2a\u200b\u5750\u6807\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u548c\u200b\u4e00\u4e2a\u200b\u5747\u503c\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u4e8c\u7ef4\u200b\u6b63\u6001\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u4e8c\u8005\u200b\u7684\u200b\u533a\u522b\u200b\uff0c\u200b\u4e00\u4e2a\u70b9\u200b\u53ef\u4ee5\u200b\u51c6\u786e\u200b\u8fd8\u539f\u200b\u5230\u200b\u4e00\u5e45\u200b\u56fe\u50cf\u200b\uff0c\u200b\u4f46\u200b\u6982\u7387\u5206\u5e03\u200b\u5e76\u200b\u4e0d\u200b\u51c6\u786e\u200b\uff0c\u200b\u4ed6\u200b\u53ea\u662f\u200b\u544a\u8bc9\u200b\u6211\u4eec\u200b\u8fd9\u5e45\u200b\u56fe\u200b\u662f\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u5b83\u200b\u4e5f\u200b\u53ef\u80fd\u200b\u662f\u200b\u5176\u4ed6\u200b\u56fe\u50cf\u200b\uff0c\u200b\u5b83\u200b\u662f\u200b\u5176\u4ed6\u200b\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u6982\u7387\u5206\u5e03\u200b\u7b97\u200b\u51fa\u200b\uff0c\u200b\u6bd4\u5982\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u786e\u5b9a\u200b\u4ed6\u200b\u662f\u200b\uff081\uff0c3\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u662f\u200b\u591a\u5c11\u200b.
\u200b\u90a3\u4e48\u200b\uff0c\u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u56fe\u50cf\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u6211\u4eec\u200b\u5982\u4f55\u200b\u83b7\u53d6\u200b\u56fe\u50cf\u200b\u5462\u200b\uff1f\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u53d6\u200b\u5747\u503c\u200b\u7684\u200b\u5230\u200b\u56fe\u50cf\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\uff081\uff0c2\uff09\uff0c\u200b\u8fd9\u4e48\u200b\u505a\u200b\u7684\u200b\u9053\u7406\u200b\u662f\u200b\uff1a\u200b\u5b83\u200b\u662f\u200b\u8fd9\u5e45\u200b\u56fe\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u6309\u7167\u200b\u6982\u7387\u200b\u53bb\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u53ef\u80fd\u200b\u662f\u200b\uff081\uff0c2\uff09\uff0c\u200b\u4e5f\u200b\u53ef\u80fd\u200b\u662f\u200b\uff082\uff0c4\uff09\uff0c\u200b\u4f46\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u4e00\u4e9b\u200b\u5f88\u200b\u79bb\u8c31\u200b\u7684\u200b\u70b9\u200b\uff08\u200b\u504f\u79bb\u200b\u5747\u503c\u200b\u5f88\u200b\u8fdc\u200b\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u5c31\u200b\u5f88\u200b\u4f4e\u200b.
\u200b\u56de\u5230\u200b DDPM \u200b\u7684\u200b\u5411\u524d\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u8d77\u70b9\u200b\u662f\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\uff081\uff0c2\uff09\uff0c\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e86\u200b\u4e00\u6b65\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5c31\u200b\u4e0d\u518d\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u800c\u662f\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\u53ef\u4ee5\u200b\u8fd1\u4f3c\u200b\u770b\u6210\u200b\u5747\u503c\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u60f3\u50cf\u200b\u6211\u4eec\u200b\u4ece\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\u51fa\u53d1\u200b\uff0c\u200b\u8d70\u200b\u4e86\u200b\u4e00\u6b65\u200b\u540e\u200b\uff0c\u200b\u53ef\u80fd\u200b\u5728\u200b\u4ee5\u200b\u5176\u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u4efb\u4f55\u200b\u4e00\u4e2a\u200b\u5730\u65b9\u200b\u4e0a\u200b\uff0c\u200b\u4e0d\u540c\u200b\u7684\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u6982\u7387\u200b\u90fd\u200b\u4e0d\u540c\u200b\uff08\u200b\u53ef\u4ee5\u200b\u7c7b\u6bd4\u200b\u7535\u5b50\u4e91\u200b\uff09.\u200b\u6211\u4eec\u200b\u518d\u200b\u8d70\u200b\u7b2c\u4e8c\u6b65\u200b\uff0c\u200b\u8ddd\u79bb\u200b\u5c31\u200b\u4f1a\u200b\u66f4\u200b\u8fdc\u200b\u4e00\u4e9b\u200b\uff0c\u200b\u6982\u7387\u5206\u5e03\u200b\u66f4\u200b\u5206\u6563\u200b\u4e00\u4e9b\u200b.
\u200b\u6309\u7167\u200b\u539f\u6587\u200b\u8d70\u51fa\u200b\u4e00\u5343\u6b65\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u56fe\u50cf\u200b\u5c31\u200b\u4f1a\u200b\u53d8\u6210\u200b\u4e00\u4e2a\u200b\u4ee5\u200b\u539f\u56fe\u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u5f25\u6563\u200b\u7684\u200b\u5e7f\u9614\u200b\u7684\u200b\u7c7b\u4f3c\u200b\u7403\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\u5185\u200b\u4e86\u200b.\u200b\u56e0\u200b\u5176\u200b\u5e7f\u9614\u200b\uff0c\u200b\u6211\u4eec\u200b\u5927\u6982\u200b\u6700\u7ec8\u200b\u4f1a\u200b\u505c\u200b\u5728\u200b\u67d0\u200b\u4e00\u4e2a\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u4e0a\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u200b\u8bf4\u200b\u7684\u200b\u505c\u200b\u5728\u200b\u4e00\u4e2a\u200b\u566a\u70b9\u200b\u4e0a\u200b\uff0c\u200b\u662f\u200b\u6307\u200b\u4ece\u200b\u6700\u7ec8\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u53d6\u200b\u5747\u503c\u200b\u6216\u8005\u200b\u968f\u673a\u200b\u91c7\u6837\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u4ee5\u200b\u4ece\u200b\u5206\u5e03\u200b\u8dcc\u56de\u200b\u786e\u5b9a\u200b\u503c\u200b.
\u200b\u539f\u6587\u4e2d\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u6bcf\u6b65\u200b\u600e\u4e48\u200b\u8d70\u200b\u7684\u200b\u516c\u5f0f\u200b\uff0c\u200b\u5176\u200b\u5177\u6709\u200b\u7684\u200b\u826f\u597d\u200b\u6027\u8d28\u200b\u5c31\u662f\u200b\uff1a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u4ece\u200b\u7ed9\u200b\u8ba2\u200b\u7684\u200b\u8d77\u70b9\u200b\uff0c\\(\\alpha\\)\uff0c\\(\\beta\\)\u200b\u4e2d\u200b\u76f4\u63a5\u200b\u63a8\u51fa\u200b\u7b2c\u200b N \u200b\u6b65\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u5e03\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\uff0c1k \u200b\u6b65\u540e\u200b\\(\\bar \\alpha\\)\u200b\u63a5\u8fd1\u200b\u4e8e\u6797\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u5e03\u200b\u53d6\u200b\u5747\u503c\u200b\u4e5f\u200b\u662f\u200b\u53d6\u200b\u4e0d\u5230\u200b\u539f\u56fe\u200b\u7684\u200b\u4e86\u200b\uff0c\u200b\u5747\u503c\u200b\u5df2\u7ecf\u200b\u5728\u200b 0 \u200b\u9644\u8fd1\u200b.\u200b\u603b\u4f53\u200b\u5206\u5e03\u200b\u63a5\u8fd1\u200b\u9ad8\u65af\u5206\u5e03\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/#_3","title":"\u56de\u5230\u200b\u8d77\u70b9","text":"\u200b\u4ece\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u8d70\u51fa\u200b 1000 \u200b\u6b65\u200b\uff0c\u200b\u5230\u8fbe\u200b\u7684\u200b\u7ec8\u70b9\u200b\uff0c\u200b\u8fd1\u4e4e\u200b\u670d\u4ece\u200b\u9ad8\u65af\u5206\u5e03\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u76f4\u63a5\u200b\u4ece\u200b\u9ad8\u65af\u5206\u5e03\u200b\u91c7\u6837\u200b\uff0c\u200b\u5c31\u200b\u80fd\u200b\u5f97\u5230\u200b\u8fd1\u4f3c\u200b\u4ece\u200b\u67d0\u4e2a\u200b/\u200b\u4efb\u4f55\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u51fa\u8d70\u200b\u6240\u200b\u8fbe\u5230\u200b\u7684\u200b\u7ec8\u70b9\u200b\u4e86\u200b\uff0c\u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u60f3\u200b\u56de\u53bb\u200b\uff0c\u200b\u600e\u4e48\u200b\u56de\u200b\uff1f
\u200b\u5230\u200b\u8fd9\u91cc\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u89e3\u7b54\u200b\u539f\u200b\u6a21\u578b\u200b\u4e2d\u200b\u4e00\u4e2a\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u4ee4\u4eba\u56f0\u60d1\u200b\u7684\u200b\u70b9\u200b\u4e86\u200b\uff0c\u200b\u5047\u5982\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e86\u200b 500 \u200b\u6b65\u200b\uff0c\u200b\u5230\u200b\u4e86\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e0b\u200b\u4e00\u6b65\u200b\uff0c\u200b\u5c31\u662f\u200b\u8d70\u200b\u5230\u200b 500 \u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u4e00\u4e2a\u200b\u6982\u7387\u5206\u5e03\u200b\u4e0a\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u8bad\u7ec3\u200b\u4e00\u4e2a\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u6765\u200b\u62df\u5408\u200b\u7684\u8bdd\u200b\uff0c\u200b\u4e0d\u200b\u5c31\u662f\u200b\u5728\u200b\u62df\u5408\u200b\u9ad8\u65af\u200b\u5417\u200b\uff0c\u200b\u9ad8\u65af\u200b\u53c8\u200b\u4f55\u987b\u200b\u62df\u5408\u200b\u5462\u200b\uff1f
\u200b\u95ee\u9898\u200b\u5c31\u200b\u5728\u200b\u8fd9\u91cc\u200b\u4e86\u200b\uff0c\u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u968f\u673a\u200b\u91c7\u4e86\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8bf4\u200b\u662f\u200b\u7ec8\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u8d70\u200b\u56de\u53bb\u200b\uff0c\u200b\u5f53\u7136\u200b\u4e0d\u80fd\u200b\u4ee5\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u9ad8\u65af\u200b\u8d70\u200b\uff0c\u200b\u90a3\u200b\u6700\u7ec8\u200b\u8d70\u5230\u200b\u7684\u200b\u8fd8\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u77e5\u9053\u200b\uff0c\u200b\u6211\u200b\u73b0\u5728\u200b\u5728\u200b\u8fd9\u91cc\u200b\uff0c\u200b\u90a3\u200b\u6211\u200b\u4e0a\u200b\u4e00\u6b65\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u662f\u4ece\u200b\u54ea\u91cc\u200b\u6765\u200b\u7684\u200b\uff1f\u200b\u6211\u8981\u200b\u56de\u5230\u200b\u90a3\u4e2a\u200b\u5730\u65b9\u200b\u53bb\u200b.
\u200b\u60f3\u8c61\u200b\u4e00\u4e0b\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u91c7\u6837\u200b\u7684\u200b\u70b9\u200b\u5728\u200b\u8d77\u70b9\u200b\u90a3\u4e2a\u200b\u5706\u200b\u7684\u200b\u4e0a\u65b9\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u7684\u200b\u56de\u7b54\u200b\u662f\u200b\uff1a\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u4e0b\u9762\u200b\u6765\u200b\uff0c\u200b\u8981\u200b\u56de\u53bb\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5f80\u4e0b\u8d70\u200b.\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u5728\u200b\u4e0b\u9762\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u4e0a\u9762\u200b\u6765\u200b\uff0c\u200b\u5f80\u4e0a\u8d70\u200b.\u200b\u6240\u4ee5\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u54ea\u91cc\u200b\u6765\u4f1a\u200b\u968f\u7740\u200b\u6211\u200b\u73b0\u5728\u200b\u5728\u200b\u54ea\u91cc\u200b\u800c\u200b\u53d8\u5316\u200b\uff0c\u200b\u6240\u4ee5\u200b\uff0c\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u9884\u6d4b\u200b\u7684\u200b\u65f6\u5019\u200b\u9700\u8981\u200b\u6211\u4eec\u200b\u73b0\u5728\u200b\u7684\u200b\u4f4d\u7f6e\u200b\uff08\\(x_t\\)\uff09\u200b\u548c\u200b\u65f6\u95f4\u200b\uff0c\u200b\u6765\u200b\u62df\u5408\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u6765\u200b\u7684\u200b\u4f4d\u7f6e\u200b.
\u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5f00\u59cb\u200b\u8bad\u7ec3\u200b\uff0c\u200b\u7b2c\u4e00\u6b21\u200b\u8bad\u7ec3\u200b\u53ef\u80fd\u200b\u7f51\u7edc\u200b\u4e00\u6b65\u6b65\u200b\u5f80\u4e0a\u8d70\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u6a21\u578b\u200b\u503e\u5411\u200b\u4e8e\u200b\u5728\u200b\u8fd9\u4e9b\u200b\u8def\u5f84\u200b\u70b9\u4e0a\u200b\u8f93\u51fa\u200b\uff1a\u200b\u563f\u200b\uff0c\u200b\u6211\u200b\u662f\u4ece\u200b\u4e0b\u9762\u200b\u6765\u200b\u7684\u200b\uff0c\u200b\u5f80\u4e0b\u8d70\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u56de\u53bb\u200b.\u200b\u7b2c\u4e8c\u6b21\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u80fd\u200b\u5f80\u200b\u5de6\u200b\u8d70\u200b\uff0c\u200b\u540c\u6837\u200b\u8ba9\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u5728\u200b\u8fd9\u6761\u200b\u8def\u5f84\u200b\u4e0a\u200b\u61c2\u5f97\u200b\u5982\u4f55\u200b\u56de\u5f52\u200b.\u200b\u6700\u7ec8\u200b\uff0c\u200b\u8bad\u7ec3\u200b\u5b8c\u6bd5\u200b\u540e\u200b\uff0c\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u5c31\u200b\u61c2\u5f97\u200b\u5982\u4f55\u200b\u4ece\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u70b9\u200b\u8d70\u200b\u56de\u53bb\u200b\u4e86\u200b.
\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u8bbe\u8ba1\u200b\u5408\u9002\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u8ba9\u200b\u8bad\u7ec3\u200b\u8fc7\u7a0b\u200b\u53ef\u4ee5\u200b\u66f4\u597d\u200b\u7684\u200b\u9886\u8def\u200b\u56de\u53bb\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u6587\u7ae0\u200b\u4e2d\u200b\u6570\u5b66\u200b\u90e8\u5206\u200b\u5206\u6790\u200b\u7684\u200b\u5de5\u4f5c\u200b\u4e86\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/#_4","title":"\u795e\u5947\u200b\u7684\u200b\u8bed\u610f\u200b\u878d\u5408","text":"\u200b\u6211\u200b\u4e5f\u200b\u4e0d\u200b\u77e5\u9053\u200b\u5728\u200b\u8fd9\u91cc\u200b\u9002\u7528\u200b\u4e8e\u200b\u4ee5\u200b\u878d\u5408\u200b\u5bf9\u200b\u4e0d\u200b\u5bf9\u200b\uff0c\u200b\u4f46\u200b\u4e8b\u5b9e\u200b\u5c31\u662f\u200b\uff0c\u200b\u8f93\u5165\u200b\u7684\u200b\u8d77\u70b9\u200b\u4e0d\u200b\u552f\u4e00\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u540e\u200b\u8d70\u200b\u56de\u6765\u200b\u7684\u8bdd\u200b\uff0c\u200b\u4e0d\u4ec5\u200b\u53ef\u4ee5\u200b\u8d70\u200b\u56de\u200b\u8d77\u70b9\u200b\uff0c\u200b\u800c\u4e14\u200b\u53ef\u4ee5\u200b\u8d70\u200b\u56de\u200b\u8d77\u70b9\u200b\u4e4b\u95f4\u200b\u7684\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6bd4\u5982\u200b\u8f93\u5165\u200b\u6ee1\u6708\u200b\u548c\u200b\u534a\u6708\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u751f\u6210\u200b \u00be \u200b\u6708\u200b\uff0c\u200b\u8fd9\u200b\u4e24\u5e45\u200b\u56fe\u200b\u5728\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e0d\u540c\u70b9\u200b\u4e0a\u200b\uff0c\u200b\u76f8\u805a\u200b\u6709\u200b\u4e00\u6bb5\u8ddd\u79bb\u200b\uff0c\u200b\u4ed6\u4eec\u200b\u4e2d\u95f4\u200b\u7684\u200b\u70b9\u200b\u5927\u90e8\u5206\u200b\u90fd\u200b\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u566a\u70b9\u200b\uff0c\u200b\u4f46\u662f\u200b\u5374\u200b\u80fd\u200b\u88ab\u200b\u6210\u529f\u200b\u8d70\u200b\u5230\u200b\uff0c\u200b\u5b9e\u5728\u200b\u662f\u200b\u795e\u5947\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/#_5","title":"\u8fdb\u4e00\u6b65\u200b\u7684\u200b\u5b66\u4e60","text":"\u200b\u4ee5\u4e0a\u200b\u662f\u200b\u5bf9\u200b DDPM \u200b\u7684\u200b\u4e00\u4e2a\u200b\u7406\u89e3\u200b\u7684\u200b\u89d2\u5ea6\u200b\uff0c\u200b\u5927\u4f6c\u200b\u7684\u200b\u535a\u5ba2\u200b\u8fd8\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u5bf9\u4e8e\u200b DDPM \u200b\u7684\u200b\u4e24\u79cd\u200b\u4e0d\u540c\u200b\u7684\u200b\u7406\u89e3\u200b\u7684\u200b\u89c6\u89d2\u200b
\u200b\u6211\u4eec\u200b\u5148\u8bfb\u200b\u7b2c\u4e00\u7bc7\u200b\uff0c\u200b\u8fd9\u7bc7\u200b\u53ef\u4ee5\u200b\u8ddf\u8bfb\u200b.\u200b\u9996\u5148\u200b\u6587\u7ae0\u200b\u8bf4\u660e\u200b\u4e86\u200b\u628a\u200b\u95ee\u9898\u200b\u5206\u89e3\u6210\u200b\u591a\u200b\u6b65\u200b\u53ef\u4ee5\u200b\u5927\u5e45\u5ea6\u63d0\u9ad8\u200b\u62df\u5408\u200b\u80fd\u529b\u200b\uff0c\u200b\u8fd9\u200b\u662f\u200b\u5f88\u200b\u6709\u200b\u6559\u4e49\u200b\u7684\u200b\u89c2\u5bdf\u200b.
\u200b\u8054\u5408\u200b\u6563\u5ea6\u200b\u7684\u200b\u6700\u200b\u6d88\u5316\u200b\u76ee\u6807\u200b\u4e5f\u200b\u5f88\u200b\u597d\u200b\u7406\u89e3\u200b\uff0c\u200b\u9996\u5148\u200b\u8981\u200b\u77e5\u9053\u200b KL \u200b\u6563\u5ea6\u200b\u662f\u200b\u8861\u91cf\u200b\u4e24\u4e2a\u200b\u5206\u5e03\u200b\u4e4b\u95f4\u200b\u76f8\u8fd1\u200b\u7a0b\u5ea6\u200b\u7684\u200b\u975e\u8d1f\u200b\u51fd\u6570\u200b\uff0cKL \u200b\u6563\u5ea6\u200b\u4e3a\u200b\u96f6\u5f53\u4e14\u200b\u4ec5\u200b\u5f53\u200b\u4e24\u4e2a\u200b\u5206\u5e03\u200b\u5b8c\u5168\u76f8\u540c\u200b.\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u8d70\u200b\u51fa\u6765\u200b\u7684\u200b\u8def\u200b\u8ddf\u200b\u8d70\u200b\u56de\u53bb\u200b\u7684\u200b\u8def\u200b\u662f\u200b\u5c3d\u53ef\u80fd\u200b\u76f8\u8fd1\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u8981\u200b\u6700\u5c0f\u5316\u200b KL \u200b\u6563\u5ea6\u200b.
\u200b\u968f\u540e\u200b\u5c31\u662f\u200b\u6570\u5b66\u200b\u5904\u7406\u200b\uff0c\u200b\u53bb\u6389\u200b\u6700\u5c0f\u5316\u200b\u76ee\u6807\u200b\u4e2d\u200b\u7684\u200b\u65e0\u5173\u200b\u5e38\u6570\u200b\u9879\u200b.\u200b\u5e76\u200b\u5316\u7b80\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u4f7f\u200b\u4e4b\u200b\u53ef\u7528\u200b.
\u200b\u8d85\u53c2\u200b\u8bbe\u7f6e\u200b\u4e2d\u200b\uff0c\u200b\u8981\u6c42\u200b\u8fb9\u7f18\u200b\u5206\u5e03\u200b\u76f8\u7b49\u200b\uff0c\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u8981\u6c42\u200b\u7ec8\u70b9\u200b\u7684\u200b\u5206\u5e03\u200b\u8981\u200b\u8fd1\u4f3c\u4e8e\u200b\u9ad8\u65af\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\\(\\bar \\alpha\\)\u200b\u8fd1\u4e4e\u200b 0 \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b.
\u200b\u6709\u200b\u4e86\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u94fa\u57ab\u200b\uff0c\u200b\u6211\u200b\u8ba4\u4e3a\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b\u7684\u200b\u8109\u7edc\u200b\u662f\u200b\u76f8\u5f53\u200b\u6e05\u6670\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fdb\u5165\u200b\u4e0b\u200b\u4e00\u7bc7\u200b.
\u200b\u7b2c\u4e09\u7bc7\u200b\u7684\u200b\u524d\u9762\u200b\u4e00\u5927\u90e8\u5206\u200b\u90fd\u200b\u8ddf\u200b\u7b2c\u4e00\u7bc7\u200b\u5b8c\u5168\u200b\u4e00\u6837\u200b\uff0c\u200b\u4f46\u200b\u5230\u200b\u4e86\u200b\u8d1d\u53f6\u65af\u200b\u7684\u200b\u90e8\u5206\u200b\uff0c\u200b\u5f00\u59cb\u200b\u6709\u200b\u4e86\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u77e5\u9053\u200b\uff0c\u200b\u5728\u200b DDPM \u200b\u4e2d\u200b\uff0c\\(p(x_{t-1}|x_t) = p(x_{t-1}|x_t\uff0cx_0)\\)\uff0c\u200b\u56e0\u4e3a\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u9a6c\u5c14\u53ef\u592b\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u6bcf\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\u4ec5\u200b\u4e0e\u200b\u524d\u200b\u4e00\u200b\u72b6\u6001\u200b\u6709\u5173\u200b\uff0c\u200b\u800c\u200b\u4e0e\u200b\u66f4\u200b\u524d\u200b\u7684\u200b\u72b6\u6001\u200b\u65e0\u5173\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u6210\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u77e5\u9053\u200b 500 \u200b\u6b65\u5230\u200b\u54ea\u91cc\u200b\u4e86\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u7ed9\u5b9a\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u80fd\u200b\u6709\u200b 501 \u200b\u6b65\u200b\u7684\u200b\u5206\u5e03\u200b\uff0c\u200b\u7b2c\u200b 0-499 \u200b\u6b65\u200b\uff0c\u200b\u7ed9\u200b\u4e0d\u200b\u7ed9\u200b\u90fd\u200b\u65e0\u6240\u8c13\u200b\uff0c\u200b\u4e0d\u200b\u6539\u53d8\u200b\u5206\u5e03\u200b\uff0c\u200b\u4f46\u662f\u200b\u5f15\u5165\u200b\u4e86\u200b\u8d77\u70b9\u200b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u662f\u200b\u53ef\u4ee5\u200b\u4ece\u200b\u8d77\u70b9\u200b\u76f4\u63a5\u200b\u63a8\u200b\\(x_t\uff0cx_{t-1}\\)\u200b\u7684\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u8ba9\u200b\u6211\u4eec\u200b\u7684\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e2d\u200b\u8bb8\u591a\u200b\u9879\u200b\u6210\u4e3a\u200b\u5df2\u77e5\u200b.
\u200b\u968f\u540e\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e00\u8def\u200b\u63a8\u5bfc\u200b\u51fa\u200b\u635f\u5931\u200b\u51fd\u6570\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u63a8\u5bfc\u200b\u6d41\u7a0b\u200b\u4e0b\u200b\\(x_0\\)\u200b\u7ed9\u5b9a\u200b\uff0c\u200b\u6211\u4eec\u200b\u80fd\u200b\u76f4\u63a5\u200b\u5f97\u5230\u200b\u5f80\u56de\u200b\u8d70\u200b\u7684\u200b\u65b9\u5411\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u552f\u4e00\u200b\u9700\u8981\u200b\u8bad\u7ec3\u200b\u7684\u200b\u662f\u200b\u6a21\u578b\u200b\u731c\u200b\u539f\u70b9\u200b\u7684\u200b\u80fd\u529b\u200b\uff0c\u200b\u800c\u200b\u8fd9\u200b\u4e00\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff0c\u200b\u6b63\u5982\u200b\u63a8\u5bfc\u200b\u51fa\u6765\u200b\u7684\u200b\u90a3\u6837\u200b\uff0c\u200b\u662f\u200b\u8ddf\u200b\u524d\u9762\u200b\u51e0\u4e2a\u200b\u89c6\u89d2\u200b\u4e00\u6837\u200b\u7684\u200b.
\u200b\u5230\u200b\u4e86\u200b\u9884\u4f30\u200b\u4fee\u6b63\u200b\u4e00\u8282\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u884c\u4e3a\u200b\u6709\u200b\u53ef\u4ee5\u200b\u88ab\u200b\u89e3\u91ca\u200b\u4e3a\u200b\uff0c\u200b\u5148\u731c\u200b\u51fa\u200b\u4e00\u4e2a\u200b\u8d77\u70b9\u200b\uff0c\u200b\u5f80\u56de\u200b\u8d70\u200b\uff0c\u200b\u5e76\u200b\u901a\u8fc7\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u4fee\u6b63\u200b\u8d77\u70b9\u200b\uff0c\u200b\u7136\u540e\u200b\u8d70\u200b\u4e0b\u200b\u4e00\u6b21\u200b\uff0c\u200b\u8fd9\u6837\u200b\u6211\u4eec\u200b\u8d77\u70b9\u200b\u731c\u200b\u7684\u200b\u8d8a\u6765\u8d8a\u200b\u51c6\u200b\uff0c\u200b\u56de\u5230\u200b\u8d77\u70b9\u200b\u7684\u200b\u80fd\u529b\u200b\u4e5f\u200b\u8d8a\u6765\u8d8a\u200b\u5f3a\u200b\u4e86\u200b.
\u200b\u6b64\u5904\u200b\u7684\u200b\u7b2c\u4e09\u79cd\u200b\u7406\u89e3\u200b\u662f\u200b\u4e0e\u200b\u540e\u6765\u200b\u7684\u200b DDIM \u200b\u6709\u200b\u5f88\u200b\u5f3a\u200b\u7684\u200b\u5173\u8054\u6027\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\u6211\u4eec\u200b\u5229\u7528\u200b\u4e86\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e4b\u540e\u200b\u5176\u5b9e\u200b\u53ea\u200b\u9700\u8981\u200b\u5404\u4e2a\u200b\u65f6\u95f4\u200b\u70b9\u200b\u5bf9\u4e8e\u200b\\(x_0\\)\u200b\u7684\u200b\u5206\u5e03\u200b\u800c\u200b\u4e0d\u200b\u9700\u8981\u200b\u5176\u200b\u5bf9\u4e8e\u200b\u524d\u200b\u4e00\u4e2a\u200b\u65f6\u95f4\u200b\u70b9\u200b\u7684\u200b\u5206\u5e03\u200b\u4e86\u200b\uff0c\u200b\u4f46\u662f\u200b\u8981\u200b\u6ce8\u610f\u200b\uff0c\u200b\u6211\u4eec\u200b\u4ece\u540e\u200b\u5f80\u524d\u200b\u63a8\u200b\u4ecd\u7136\u200b\u9700\u8981\u200b\u4e00\u6b65\u200b\u4e00\u6b65\u200b\u8d70\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u4e00\u6b65\u200b\u8d70\u200b\u5b8c\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u9000\u5316\u200b\u56de\u200b VAE \u200b\u4e86\u200b.
"},{"location":"blog/","title":"Blog","text":""},{"location":"blog/Minisql/","title":"Minisql","text":"\u200b\u7ea6\u200b 544 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
Abstract
Minisql \u200b\u662f\u200b\u8ba1\u7b97\u673a\u79d1\u5b66\u200b\u4e0e\u200b\u6280\u672f\u200b\u4e13\u4e1a\u200b\u5927\u4e8c\u200b\u6625\u590f\u200b\u7684\u200b\u5fc5\u4fee\u8bfe\u200b\u6570\u636e\u5e93\u7cfb\u7edf\u200b\u590f\u200b\u5b66\u671f\u200b\u7684\u200b\u5927\u7a0b\u200b.\u200b\u672c\u200b\u535a\u5ba2\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u672c\u4eba\u200b\u5b9e\u73b0\u200b\u8fd9\u4e00\u200b\u6846\u67b6\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u7684\u200b\u95ee\u9898\u200b\u548c\u200b\u611f\u60f3\u200b.
"},{"location":"blog/Minisql/#_1","title":"\u7b80\u4ecb","text":"\u200b\u5f88\u200b\u65e9\u5c31\u200b\u542c\u8bf4\u200b\u4e86\u200b Minisql \u200b\u7684\u200b\u5927\u540d\u200b\u4e86\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u8fd9\u4e2a\u200b\u5927\u4e8c\u200b\u6625\u590f\u200b\u5230\u6765\u200b\u7684\u200b\u636e\u8bf4\u200b\u975e\u5e38\u200b\u5e9e\u5927\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5de5\u7a0b\u200b\uff0c\u200b\u6211\u200b\u5fc3\u91cc\u200b\u5176\u5b9e\u200b\u662f\u200b\u65e2\u200b\u975e\u5e38\u200b\u5bb3\u6015\u200b\u53c8\u200b\u975e\u5e38\u200b\u671f\u5f85\u200b\u7684\u200b\uff0c\u200b\u4e4b\u524d\u200b\u505a\u200b\u7684\u200b\u5927\u7a0b\u200b\u603b\u200b\u611f\u89c9\u200b\u7f3a\u200b\u90a3\u4e48\u200b\u70b9\u200b\u610f\u601d\u200b\uff0c\u200b\u4f46\u200b\u5230\u200b\u8fd9\u91cc\u200b\u5c31\u200b\u611f\u89c9\u200b\u5473\u200b\u5bf9\u200b\u4e86\u200b\uff08\u200b\u7b11\u200b\u54ed\u200b\uff09.
\u200b\u8fd9\u200b\u7ed9\u200b\u9879\u76ee\u200b\u662f\u200b\u53ef\u4ee5\u200b\u7ec4\u961f\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5355\u5237\u200b\u7684\u200b\uff0c\u200b\u6211\u200b\u9009\u62e9\u200b\u4e86\u200b\u5355\u5237\u200b\u5b8c\u6210\u200b\uff0c\u200b\u4e2a\u4eba\u200b\u8ba4\u4e3a\u200b\u5de5\u4f5c\u91cf\u200b\u662f\u200b\u5355\u4eba\u200b\u53ef\u4ee5\u200b\u627f\u62c5\u200b\u7684\u200b\uff0c\u200b\u4e5f\u200b\u6bd4\u8f83\u200b\u63a8\u8350\u200b\u5355\u4eba\u200b\u5b8c\u6210\u200b.\u200b\u4e00\u662f\u200b\u5f88\u591a\u200b\u6a21\u5757\u200b\u53ea\u6709\u200b\u81ea\u5df1\u200b\u4e0a\u200b\u624b\u5199\u200b\u8fc7\u200b\u4e86\u200b\uff0cdebug \u200b\u8fc7\u200b\u4e86\u200b\u624d\u200b\u6709\u200b\u771f\u5207\u200b\u7684\u200b\u611f\u53d7\u200b\uff1b\u200b\u4e8c\u662f\u200b\u6211\u200b\u89c9\u5f97\u200b\u5f88\u9177\u200b\uff01\ud83d\ude0e
"},{"location":"blog/Minisql/#_2","title":"\u6536\u83b7","text":"\u200b\u8fd9\u90e8\u5206\u200b\u535a\u5ba2\u200b\u7684\u200b\u7ec4\u7ec7\u200b\u5f62\u5f0f\u200b\u5927\u4f53\u200b\u8fd8\u662f\u200b\u6309\u7167\u200b\u9879\u76ee\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u533a\u5206\u200b\u7684\u200b\u6a21\u5757\u200b\u987a\u5e8f\u200b\u6765\u200b\u7684\u200b\uff0c\u200b\u5728\u200b\u6700\u200b\u5f00\u5934\u200b\u8fd8\u6709\u200b\u4e00\u4e2a\u200b\u642d\u5efa\u200b\u73af\u5883\u200b\u7684\u200b\u8e29\u200b\u5751\u200b\u8bb0\u5f55\u200b.
\u200b\u5728\u200b\u5177\u4f53\u200b\u5b9e\u73b0\u200b\u7684\u200b\u5404\u200b\u90e8\u5206\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u200b\u4e3b\u8981\u200b\u662f\u200b\u4f1a\u200b\u4ecb\u7ecd\u200b\u8fd9\u4e9b\u200b\u6a21\u5757\u200b\u91cc\u9762\u200b\u5404\u4e2a\u200b\u7ed3\u6784\u200b\u3001\u200b\u51fd\u6570\u200b\u5728\u200b\u4ec0\u4e48\u200b\u60c5\u5883\u200b\u4e0b\u200b\u5e94\u8be5\u200b\u88ab\u200b\u8c03\u7528\u200b\uff0c\u200b\u88ab\u200b\u8c03\u7528\u200b\u6765\u200b\u505a\u200b\u4ec0\u4e48\u200b\u4e8b\u200b\uff0c\u200b\u6574\u4e2a\u200b\u5927\u200b\u7684\u200b\u6a21\u5757\u200b\u5728\u200b\u505a\u200b\u4ec0\u4e48\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5982\u4f55\u200b\u4f18\u5316\u200b.
\u200b\u53ef\u4ee5\u200b\u8bf4\u200b\u548c\u200b\u9879\u76ee\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u7684\u200b\u5185\u5bb9\u200b\u5728\u200b\u503e\u5411\u6027\u200b\u4e0a\u200b\u6709\u200b\u4e00\u4e9b\u200b\u91cd\u53e0\u200b\uff0c\u200b\u4f46\u200b\u4eba\u5bb6\u200b\u8bf4\u200b\u8fc7\u200b\u4e86\u200b\u6211\u200b\u5c31\u200b\u5c3d\u91cf\u200b\u4e0d\u518d\u200b\u91cd\u590d\u200b\u4e86\u200b\uff0c\u200b\u4e3b\u8981\u200b\u662f\u4ece\u200b\u4e00\u4e2a\u200b\u5b9e\u73b0\u200b\u8005\u200b\u7684\u200b\u89d2\u5ea6\u200b\u6765\u8bb2\u200b\u56f0\u60d1\u200b\u548c\u200b\u7406\u89e3\u200b\u7684\u200b.
"},{"location":"blog/Minisql/minisql_part0/","title":"Minisql Environment Configurations","text":"\u200b\u7ea6\u200b 602 \u200b\u4e2a\u200b\u5b57\u200b 24 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
Abstract
\u200b\u867d\u7136\u200b\u5df2\u7ecf\u200b\u642d\u51fa\u200b\u80fd\u200b\u7528\u200b\u7684\u200b\u73af\u5883\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u8fd8\u662f\u200b\u5f88\u96be\u200b\u4e0d\u200b\u5728\u200b\u5f00\u5934\u200b\u653e\u200b\u4e0a\u200b\u4e09\u4e2a\u200b\u6d41\u6c57\u200b\u9ec4\u8c46\u200b\u6765\u200b\u8868\u8fbe\u200b\u6211\u200b\u5bf9\u200b\u642d\u200b\u73af\u5883\u200b\u8fd9\u4ef6\u200b\u4e8b\u200b\u7684\u200b\u65e0\u8bed\u200b\ud83d\ude05\ud83d\ude05\ud83d\ude05
"},{"location":"blog/Minisql/minisql_part0/#_1","title":"\u521d\u8bd5\u200b\uff1a\u200b\u672c\u5730\u200b\u8fd0\u884c","text":"\u200b\u672c\u4eba\u200b\u76ee\u524d\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b MacBookPro\uff0cMacOS Ventura13.3.1. \u200b\u76f4\u8bf4\u200b\u7684\u8bdd\u200b\uff0c\u200b\u672c\u5730\u200b\u8fd0\u884c\u200b\u7684\u200b\u5c1d\u8bd5\u200b\u5931\u8d25\u200b\u4e86\u200b\ud83d\ude05
"},{"location":"blog/Minisql/minisql_part0/#cmake","title":"Cmake","text":"\u200b\u7b2c\u4e00\u4e2a\u200b\u5751\u200b\u662f\u200b cmake \u200b\u9636\u6bb5\u200b \u200b\u6709\u200b\u5982\u4e0b\u200b\u7684\u200b\u7ecf\u5178\u200b\u62a5\u9519\u200b\uff08\u200b\u7ecf\u5178\u200b\u662f\u56e0\u4e3a\u200b\u6211\u89c1\u200b\u8fc7\u200b\u4ed6\u200b\u65e0\u6570\u6b21\u200b\u4e86\u200b\uff09\uff1a
cmake .. \u2500\u256f\nCMake Error at /Users/xxx/opt/anaconda3/lib/cmake/GTest/GTestTargets.cmake:37 (message):\n Some (but not all) targets in this export set were already defined.\n\n Targets Defined: GTest::gtest;GTest::gtest_main\n\n Targets not yet defined: GTest::gmock;GTest::gmock_main\n\nCall Stack (most recent call first):\n /Users/xxx/opt/anaconda3/lib/cmake/GTest/GTestConfig.cmake:32 (include)\n thirdparty/glog/CMakeLists.txt:71 (find_package)\n
\u200b\u6211\u200b\u4e0d\u200b\u61c2\u200b cmake\uff0c\u200b\u4e5f\u200b\u641c\u200b\u4e0d\u5230\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u611f\u89c9\u200b\u53ef\u80fd\u200b\u8ddf\u200b\u7248\u672c\u200b\u517c\u5bb9\u200b\u5565\u200b\u7684\u200b\u6709\u5173\u200b\uff08\u200b\u6709\u200b\u77e5\u9053\u200b\u7684\u200b\u5927\u4f6c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u5728\u200b\u8bc4\u8bba\u200b\u533a\u91cc\u200b\u8bf4\u200b\u8bf4\u200b\uff0c\u200b\u611f\u8c22\u200b\uff01\uff09\u200b\u4e0d\u8fc7\u200b\u6211\u200b\u770b\u5230\u200b\u4e86\u200b\u62a5\u9519\u200b\u8def\u5f84\u200b\u4e0a\u200b\u4e86\u200b anaconda3\uff0c\u200b\u60f3\u200b\u8d77\u6765\u200b\u6211\u200b\u7ec8\u7aef\u200b\u7684\u200b\u73af\u5883\u200b\u8fd8\u662f\u200b conda base\uff0c\u200b\u6240\u4ee5\u200b\u6211\u200b\u4e00\u4e2a\u200bconda deactivae
\u200b\u540e\u200b\uff0c\u200b\u91cd\u5efa\u200b build \u200b\u76ee\u5f55\u200b\uff0c\u200b\u518d\u200b cmake \u200b\u5c31\u200b\u6ca1\u6709\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u4e86\u200b.
\u200b\u4f46\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u53ea\u662f\u200b\u88ab\u200b\u6682\u65f6\u200b\u4fee\u590d\u200b\u4e86\u200b\u7b97\u662f\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u8c03\u7528\u200b VSCode \u200b\u7684\u200b cmake \u200b\u63d2\u4ef6\u200b\u5565\u200b\u7684\u200b\u8fd8\u662f\u200b\u4f1a\u200b\u8fd9\u6837\u200b\uff0c\u200b\u6211\u200b\u4e5f\u200b\u6ca1\u200b\u627e\u200b\u51fa\u6765\u200b\u8fd9\u91cc\u200b\u7684\u200b\u8981\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b.
"},{"location":"blog/Minisql/minisql_part0/#make","title":"Make","text":"Cmake \u200b\u901a\u200b\u4e86\u200b Make \u200b\u53c8\u200b\u4e0d\u901a\u200b\ud83d\ude05 \u200b\u62a5\u9519\u200b\u5982\u4e0b\u200b\uff1a
In file included from /Users/xxx/Desktop/minisql/src/executor/execute_engine.cpp:1:\nIn file included from /Users/xxx/Desktop/minisql/src/include/executor/execute_engine.h:5:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/string:551:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/string_view:222:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/algorithm:1851:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__algorithm/ranges_sample.h:13:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__algorithm/sample.h:18:\n/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__random/uniform_int_distribution.h:162:5: error: static_assert failed due to requirement '__libcpp_random_is_valid_inttype<char>::value' \"IntType must be a supported integer type\"\n static_assert(__libcpp_random_is_valid_inttype<_IntType>::value\uff0c \"IntType must be a supported integer type\");\n ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n/Users/xxx/Desktop/minisql/test/include/utils/utils.h:24:41: note: in instantiation of template class 'std::uniform_int_distribution<char>' requested here\n std::uniform_int_distribution<char> uniform_dist(33\uff0c 122);\n
\u200b\u770b\u8d77\u6765\u200b\u662f\u200b\u6846\u67b6\u200b\u91cc\u200b\u5b9e\u4f8b\u200b\u5316\u200b\u6a21\u677f\u200b\u7684\u200b\u65f6\u5019\u200b\u7528\u200b\u7684\u200b\u7684\u200b char \u200b\u7c7b\u578b\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u91cc\u200b\u4e0d\u8ba9\u200b\u7528\u200b char \u200b\u7c7b\u578b\u200b\uff0c\u200b\u90a3\u200b\u600e\u4e48\u529e\u200b\uff0c\u200b\u8981\u200b\u6211\u200b\u53bb\u200b\u6539\u200b\u6846\u67b6\u200b\u5417\u200b\uff0c\u200b\u8fd9\u200b\u73a9\u610f\u200b\u4e07\u4e00\u200b\u8026\u5408\u200b\u7684\u200b\u5f88\u200b\u7d27\u200b\u6211\u200b\u7684\u200b\u7406\u89e3\u200b\u6210\u672c\u200b\u52a0\u200b\u4fee\u6539\u200b\u6210\u672c\u200b\u4f30\u8ba1\u200b\u90fd\u200b\u591f\u200b\u6211\u200b\u53d7\u200b\u7684\u200b\u4e86\u200b.\u200b\u8fd9\u91cc\u200b\u7684\u200b\u4e24\u4e2a\u200b\u9009\u62e9\u200b\u4e00\u4e2a\u200b\u662f\u200b\u6362\u4e2a\u200b SDK \u200b\u7248\u672c\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u4e0d\u200b\u77e5\u9053\u200b\u80fd\u200b\u4e0d\u80fd\u200b\u8d77\u6548\u200b\uff0c\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u5c31\u662f\u200b\u8dd1\u200b\u8def\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u8fd8\u6709\u200b\u4e00\u53f0\u200b Windows \u200b\u6e38\u620f\u200b\u672c\u200b\uff0c\u200b\u6240\u4ee5\u200b\u679c\u65ad\u200b\u6da6\u200b\u4e86\u200b."},{"location":"blog/Minisql/minisql_part0/#wsl2","title":"\u4e8c\u8bd5\u200b\uff1aWSL2","text":"\u200b\u6211\u200b\u7684\u200b Win \u200b\u672c\u200b\u65e9\u5c31\u200b\u88c5\u200b\u8fc7\u200b WSL2 \u200b\u4e86\u200b\uff0c\u200b\u4e4b\u524d\u200b\u8dd1\u200b\u4e00\u4e9b\u200b\u6a21\u578b\u200b\u7684\u200b\u65f6\u5019\u200b\u628a\u200b ssh \u200b\u5565\u200b\u7684\u200b\u4e5f\u200b\u914d\u597d\u200b\u4e86\u200b\uff08\u200b\u4e0d\u8fc7\u200b\u7389\u6e56\u200b\u53ea\u80fd\u200b\u7528\u200b\u52a8\u6001\u200b IP \u200b\u6211\u200b\u4e09\u5929\u4e24\u5934\u200b\u5c31\u200b\u5f97\u200b\u6362\u200b\u4e00\u4e0b\u200b\ud83d\ude05\uff09\uff0c\u200b\u6240\u4ee5\u200b\u6210\u672c\u200b\u5176\u5b9e\u200b\u4e0d\u200b\u5927\u200b. \u200b\u8fd9\u91cc\u200b\u9047\u5230\u200b\u4e24\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u4e00\u662f\u200b cmake \u200b\u9636\u6bb5\u200b\u8ddf\u200b\u4e0a\u9762\u200b\u4e00\u6837\u200b\u7684\u200b\u95ee\u9898\u200b\uff0c\u200b\u89e3\u51b3\u200b\u65b9\u6cd5\u200b\u8fd8\u662f\u200bconda deactivate
\uff0c\u200b\u4e8c\u662f\u200b\u63d0\u793a\u200b\u6ca1\u6709\u200b gflag \u200b\u6a21\u5757\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u6700\u200b\u7b80\u5355\u200b\uff0c\u200b\u76f4\u63a5\u200b\u5b89\u88c5\u200b\u4e00\u4e0b\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b
sudo apt-get install gflags\n
\u200b\u7136\u540e\u200b\u5c31\u200b\u80fd\u200b\u8dd1\u200b\u4e86\u200b\uff0c\u200b\u867d\u7136\u200b\u5728\u200b\u8fd9\u91cc\u200b\u7528\u200b\u5404\u79cd\u200b Cmake \u200b\u63d2\u4ef6\u200b\u4e00\u7c7b\u200b\u7684\u200b\u8fd8\u662f\u200b\u6ca1\u200b\u4e00\u4e2a\u200b\u80fd\u200b\u8dd1\u200b\u7684\u200b\uff08\u200b\u62a5\u200b Cmake \u200b\u9636\u6bb5\u200b\u7684\u200b\u90a3\u4e2a\u200b\u9519\u200b\uff09\uff0c\u200b\u6211\u200b\u8bd5\u56fe\u7528\u200b Clion \u200b\u8fdc\u7a0b\u200b\u5f00\u53d1\u200b\u7ed3\u679c\u200b\u540e\u7aef\u200b\u4e5f\u200b\u5d29\u574f\u200b\u4e86\u200b\u5f00\u200b\u4e0d\u200b\u8d77\u6765\u200b\uff0c\u200b\u5404\u79cd\u200b\u4e8b\u60c5\u200b\u641e\u200b\u5f97\u200b\u6211\u200b\u5f88\u70e6\u200b\uff0c\u200b\u4f46\u200b\u603b\u7b97\u200b\u6709\u4e2a\u200b\u80fd\u200b\u7528\u200b\u7684\u200b VSCode + ssh + WSL2 \u200b\u7684\u200b\u65b9\u6848\u200b\u80fd\u200b\u8dd1\u200b\u4e86\u200b\uff0c\u200b\u4ed6\u200b\u7684\u200b\u4f18\u70b9\u200b\u662f\u200b\u80fd\u200b\u8dd1\u200b\uff0c\u200b\u7f3a\u70b9\u200b\u662f\u200b\u80fd\u200b\u8dd1\u200b\u7684\u200b\u8865\u96c6\u200b\uff0c\u200b\u4f46\u200b\u6211\u200b\u5b9e\u5728\u200b\u6298\u817e\u200b\u4e0d\u52a8\u200b\u4e86\u200b\u5c31\u200b\u5148\u200b\u8fd9\u6837\u200b\u4e86\u200b.
"},{"location":"blog/Minisql/minisql_part1/","title":"Minisql#1 Disk and BufferPoolManager","text":"\u200b\u7ea6\u200b 475 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
Abstract
\u200b\u8fd9\u200b\u4e00\u90e8\u5206\u200b\u4e3b\u8981\u200b\u8d1f\u8d23\u200b\u4e0e\u200b\u5185\u5b58\u200b\u78c1\u76d8\u7a7a\u95f4\u200b\u7533\u8bf7\u200b\u91ca\u653e\u200b\u7b49\u200b\u6253\u4ea4\u9053\u200b\uff0c\u200b\u5728\u200b\u9879\u76ee\u200b\u4e2d\u200b\u7684\u200b\u5730\u4f4d\u200b\u5927\u6982\u200b\u76f8\u5f53\u4e8e\u200bnew
delete
\uff0c\u200b\u6240\u4ee5\u200b\u8fd9\u200b\u4e00\u90e8\u5206\u200b\u5728\u200b\u540e\u7eed\u200b\u4f1a\u200b\u88ab\u200b\u9891\u7e41\u200b\u8c03\u7528\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u76f4\u63a5\u200b\u4e0e\u200b\u78c1\u76d8\u200b IO \u200b\u6253\u4ea4\u9053\u200b\u7684\u200b\uff0c\u200b\u5b9e\u73b0\u200b\u65e2\u200b\u8981\u6c42\u200b\u6b63\u786e\u200b\u53c8\u200b\u8981\u6c42\u200b\u6548\u7387\u200b
\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u624b\u5934\u4e0a\u200b\u73b0\u5728\u200b\u6709\u200b 65536\uff084096*16\uff09\u200b\u9875\u200b\uff08\u200b\u4e00\u9875\u200b\u4e3a\u200b 4096Bytes\uff09\u200b\u7684\u200b\u6570\u636e\u200b\u9700\u8981\u200b\u5b58\u5728\u200b\u78c1\u76d8\u200b\u4e0a\u200b\uff0c\u200b\u6700\u200b\u81ea\u7136\u200b\u7684\u200b\u60f3\u6cd5\u200b\u5c31\u662f\u200b\u6570\u7ec4\u200b\uff0c\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u53d8\u957f\u200b\u6570\u7ec4\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u6587\u4ef6\u200b\u5c3e\u200b\u7ee7\u7eed\u200b\u5199\u5165\u200b\u65b0\u200b\u7684\u200b\u9875\u200b.
\u200b\u4f46\u662f\u200b\uff0c\u200b\u6570\u636e\u5e93\u200b\u4f1a\u200b\u5bf9\u200b\u6570\u636e\u200b\u8fdb\u884c\u200b\u5220\u9664\u200b.\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u5206\u914d\u200b\u51fa\u53bb\u200b\u7b2c\u200b 0-9 \u200b\u9875\u200b\u7528\u4e8e\u200b\u8bb0\u5f55\u200b\u67d0\u4e2a\u200b\u8868\u200b\uff0c\u200b\u7136\u540e\u200b\u5220\u9664\u200b\u4e86\u200b\u5176\u4e2d\u200b\u7b2c\u200b 2\uff0c4\uff0c6 \u200b\u9875\u200b\u7684\u200b\u6570\u636e\u200b\uff0c\u200b\u90a3\u4e48\u200b\u4e0b\u6b21\u200b\u518d\u200b\u8bf7\u6c42\u200b\u9875\u9762\u200b\u6765\u200b\u5b58\u50a8\u200b\u4fe1\u606f\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u200b\u7a7a\u95f2\u200b\u7684\u200b\u4e09\u9875\u200b\u6765\u200b\u5b58\u50a8\u200b.\u200b\u4e0d\u200b\u8fd9\u6837\u200b\u505a\u200b\uff0c\u200b\u90a3\u4e48\u200b\u9762\u5bf9\u200b\u7533\u8bf7\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u5220\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u7533\u8bf7\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u5220\u200b 100 \u200b\u9875\u200b\u8fd9\u6837\u200b\u7684\u200b\u64cd\u4f5c\u200b\uff0c\u200b\u672c\u6765\u200b\u53ea\u8981\u200b 100 \u200b\u9875\u200b\u7684\u200b\u7a7a\u95f4\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9e\u73b0\u200b\uff0c\u200b\u5b9e\u9645\u4e0a\u200b\u5374\u4f1a\u82b1\u200b\u7684\u200b\u591a\u5f97\u591a\u200b.
\u200b\u8fd9\u200b\u5c31\u200b\u5f15\u51fa\u200b\u4e86\u200b BitMap\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u62ff\u51fa\u200b\u4e00\u9875\u200b\u6765\u200b\uff0c\u200b\u628a\u200b\u8fd9\u200b\u4e00\u9875\u200b 4096 \u200b\u4e2a\u200b Byte\uff0c\u200b\u5373\u200b 32768 \u200b\u4e2a\u200b bit\uff0c\u200b\u6bcf\u4e2a\u200b bit \u200b\u7684\u200b 0 \u200b\u6307\u793a\u200b\u8be5\u9875\u200b\u672a\u200b\u88ab\u200b\u4f7f\u7528\u200b\uff0c1 \u200b\u6307\u793a\u200b\u5df2\u7ecf\u200b\u88ab\u200b\u4f7f\u7528\u200b\uff0c\u200b\u8fd9\u6837\u200b\u8fd9\u200b\u4e00\u9875\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7ba1\u7406\u200b\u5176\u540e\u200b\u7684\u200b 32768 \u200b\u9875\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u73b0\u5728\u200b\u5176\u4e2d\u200b\u627e\u200b 0\uff0c\u200b\u6ca1\u6709\u200b 0 \u200b\u4e86\u200b\uff0c\u200b\u624d\u200b\u53bb\u200b\u65b0\u5f00\u200b\u4e00\u9875\u200b.
\u200b\u5f53\u7136\u200b\u5b9e\u9645\u4e0a\u200b\u8fd9\u200b\u4e00\u9875\u200b\u7684\u200b 4096B \u200b\u6211\u4eec\u200b\u4e0d\u4f1a\u200b\u90fd\u200b\u62ff\u200b\u53bb\u200b\u7528\u6765\u200b\u8bb0\u5f55\u200b\u4f7f\u7528\u200b\u60c5\u51b5\u200b\uff0c\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u5143\u200b\u6570\u636e\u200b\u6bd4\u5982\u200b\u8bb0\u5f55\u200b\u76ee\u524d\u200b\u4ee5\u200b\u5360\u7528\u200b\u7684\u200b\u6709\u200b 10 \u200b\u9875\u200b\u7b49\u7b49\u200b.
\u200b\u4f46\u200b\u6ce8\u610f\u200b\u7b2c\u4e00\u6bb5\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b 65536 \u200b\u9875\u200b\u8981\u200b\u5b58\u200b\uff0c\u200b\u4e00\u9875\u200b BitMap \u200b\u4e0d\u591f\u200b\uff0c\u200b\u90a3\u200b\u5c31\u200b\u591a\u6765\u200b\u51e0\u4e2a\u200b.\u200b\u6211\u4eec\u200b\u628a\u200b 1 \u200b\u9875\u200b BitMap \u200b\u548c\u200b\u540e\u9762\u200b\u7684\u200b\uff08\u200b\u5927\u6982\u200b\uff0932767 \u200b\u9875\u200b\u79f0\u4e3a\u200b\u4e00\u6bb5\u200b(extent)\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4e24\u6bb5\u200b\u6765\u200b\u5b58\u50a8\u200b 65536 \u200b\u9875\u200b\uff0c\u200b\u5728\u200b\u6700\u200b\u524d\u9762\u200b\u6765\u4e2a\u200b Disk Meta Page \u200b\u6765\u200b\u7ba1\u7406\u200b\u6240\u6709\u200b\u9875\u200b.
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/","title":"\u8ba1\u7b97\u673a\u200b\u4f53\u7cfb\u7ed3\u6784\u200b - lab4 Cache","text":"Abstract
\u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b Cache \u200b\u8bbe\u8ba1\u200b\u7684\u200b\u601d\u60f3\u200b\uff0c\u200b\u4ece\u200b\u6a21\u5757\u200b\u62bd\u8c61\u200b\u7684\u200b\u5c42\u9762\u200b\u8bb2\u8bb2\u200b\u5404\u200b\u6a21\u5757\u200b\u7684\u200b\u529f\u80fd\u200b\u548c\u200b\u4ea4\u4e92\u200b\u7684\u200b\u903b\u8f91\u200b.
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a
\u200b\u672c\u6b21\u200b\u5b9e\u9a8c\u200b\u662f\u200b\u8981\u200b\u5b9e\u73b0\u200b\u4e00\u4e2a\u200b Cache\uff0c\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u4f1a\u200b\u5b9e\u73b0\u200b\u4e00\u4e2a\u200b CMU(Cache Management Unit)\u200b\u6765\u200b\u5b8c\u6210\u200b CPU\uff0c Memory\uff0c Cache \u200b\u4e4b\u95f4\u200b\u7684\u200b\u4ea4\u4e92\u200b\u548c\u200b\u63a7\u5236\u200b\uff0c\u200b\u7ed3\u6784\u200b\u5982\u4e0b\u200b\uff1a
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#memory","title":"Memory","text":"\u200b\u5728\u200b\u672c\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b Memory \u200b\u53ea\u200b\u4e0e\u200b CMU \u200b\u4ea4\u4e92\u200b.
Memory \u200b\u4e0e\u200b CMU \u200b\u7684\u200b\u4ea4\u4e92\u200b\u53ea\u6709\u200b\u4e00\u79cd\u200b\uff1a
Cache \u200b\u5185\u90e8\u200b\u7ef4\u62a4\u200b\u7740\u200b\u6240\u6709\u200b Cache line \u200b\u548c\u200b\u6807\u8bb0\u200b\u4f4d\u200b\uff0c\u200b\u5e76\u4e14\u200b\u4e0e\u200b CMU \u200b\u8fdb\u884c\u200b\u4ea4\u4e92\u200b\uff0c\u200b\u4e3b\u8981\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a
\u200b\u4e3a\u4e86\u200b\u505a\u597d\u200b\u8fd9\u4e9b\u200b\u4e8b\u200b\uff0cCache \u200b\u5185\u90e8\u200b\u4f1a\u200b\u8fdb\u884c\u200b\u5b9e\u73b0\u200b\u5408\u9002\u200b\u7684\u200b\u7ec4\u5408\u200b\u903b\u8f91\u200b\u6765\u200b\u8fdb\u884c\u200b\u7d22\u5f15\u200b\uff0c\u200b\u6bd4\u8f83\u200b\u7b49\u7b49\u200b
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#cpu","title":"CPU","text":"CPU \u200b\u4e0e\u200b CMU \u200b\u7684\u200b\u4ea4\u4e92\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a
CMU \u200b\u5185\u90e8\u200b\u7ef4\u62a4\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u673a\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u72b6\u6001\u200b\u673a\u4f1a\u200b\u6839\u636e\u4e0a\u8ff0\u200b\u4e09\u4e2a\u200b\u7ec4\u4ef6\u200b\u7684\u200b\u63a7\u5236\u200b\u4fe1\u53f7\u200b\u8fdb\u884c\u200b\u8df3\u8f6c\u200b\uff1a
\u200b\u540c\u65f6\u200b CMU \u200b\u4e5f\u200b\u4f1a\u200b\u6839\u636e\u200b\u81ea\u5df1\u200b\u7684\u200b\u72b6\u6001\u200b\uff0c\u200b\u5bf9\u200b\u4e0a\u8ff0\u200b\u4e09\u4e2a\u200b\u7ec4\u4ef6\u200b\u8fdb\u884c\u200b\u63a7\u5236\u200b\uff1a
Abstract
\u200b\u8fd9\u91cc\u200b\u5217\u51fa\u200b\u4e86\u200b\u5f88\u591a\u200b\u597d\u7528\u200b\u7684\u200b CLI(commandline interface)\u200b\u5de5\u5177\u200b
\u200b\u5982\u679c\u200b\u4ed4\u7ec6\u200b\u770b\u770b\u200b\u7684\u200b\u5316\u4f1a\u200b\u53d1\u73b0\u200b\u5927\u591a\u6570\u200b\u90fd\u200b\u662f\u200b\u62ff\u200b Rust \u200b\u91cd\u5199\u200b\u7684\u200b(Rewrite it in Rust!)
Abstract
\u200b\u56e0\u4e3a\u200b\u8fd9\u4e2a\u200b\u5b9e\u9a8c\u200b\u505a\u200b\u7684\u200b\u65f6\u5019\u200b\u51e0\u4e4e\u200b\u6ca1\u4ec0\u4e48\u200b\u6307\u5bfc\u200b\uff0c\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u795e\u79d8\u200b\u7684\u200b\u6587\u6863\u200b\uff0c\u200b\u4e00\u200b\u6574\u4e2a\u200b\u5b9e\u9a8c\u5ba4\u200b\u7684\u200b\u7ebf\u200b\u548c\u200b\u4e00\u200b\u7bb1\u5b50\u200b\u7684\u200b\u795e\u79d8\u200b\u673a\u5668\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5c31\u200b\u6fc0\u60c5\u200b\u5199\u4e2a\u200b\u7ecf\u9a8c\u200b
\u200b\u4e3b\u8981\u200b\u662f\u200b\u8bb2\u200b\u4e86\u200b\u8bb2\u200b\u600e\u4e48\u200b\u8ba9\u200b\u5b9e\u9a8c\u200b\u8dd1\u200b\u8d77\u6765\u200b\uff0c\u200b\u8fd8\u6709\u200b\u5404\u79cd\u200b\u610f\u5916\u200b\u95ee\u9898\u200b\u7684\u200b\u5904\u7406\u200b\u4e4b\u7c7b\u200b\u7684\u200b
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u5b9e\u9a8c\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u5e74\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u62a5\u544a\u200b\u6a21\u677f\u200b\uff1a
\u200b\u5f80\u671f\u200b\u53c2\u8003\u200b\uff1a \uff08\u200b\u6765\u81ea\u200b\u6d59\u6c5f\u5927\u5b66\u200b\u8bfe\u7a0b\u200b\u5171\u4eab\u200b\u8ba1\u5212\u200b\uff09
\u200b\u6307\u5bfc\u8001\u5e08\u200b\uff1a\u200b\u9ec4\u6b63\u8c26\u200b
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_1","title":"\u8ba4\u8bc6\u200b\u5b9e\u9a8c\u5ba4\u200b\u7684\u200b\u4eea\u5668","text":"\u200b\u679c\u200b\u54a9\u200b\u90a3\u200b\u585e\u200b\u8fd9\u91cc\u200b\u6ca1\u6709\u200b\u7167\u7247\u200b\uff0c\u200b\u4f46\u662f\u200b\u6bd4\u8f83\u200b\u5173\u952e\u200b\u7684\u200b\u51e0\u4e2a\u200b\u8bbe\u5907\u200b\u7684\u200b\u5916\u89c2\u200b\u90fd\u200b\u4f1a\u200b\u5927\u6982\u200b\u63cf\u8ff0\u200b\u4e00\u4e0b\u200b\uff1a
\u200b\u4ea4\u6362\u673a\u200b\u8def\u7531\u5668\u200b\u7f51\u7ebf\u200bPC\u200b\u663e\u793a\u5c4f\u200b\u548c\u200b\u952e\u76d8\u200b\u200b\u6b63\u9762\u200b\u6709\u200b\u5f88\u591a\u200b\u7aef\u53e3\u200b\uff0c\u200b\u6ca1\u6709\u200b\u5f00\u200b\u5173\u952e\u200b\uff0c\u200b\u6b63\u9762\u200b\u6709\u200b mode \u200b\u952e\u200b
\u200b\u6682\u65f6\u200b\u7528\u200b\u4e0d\u5230\u200b\uff0c\u200b\u6bd4\u8d77\u200b\u4ea4\u6362\u673a\u200b\u7aef\u53e3\u200b\u6ca1\u200b\u90a3\u4e48\u200b\u591a\u200b\uff0c\u200b\u6709\u5f00\u200b\u5173\u952e\u200b
\u200b\u5b9e\u9a8c\u5ba4\u200b\u91cc\u200b\u770b\u8d77\u6765\u200b\u662f\u200b\u7f51\u7ebf\u200b\u7684\u200b\u57fa\u672c\u200b\u5c31\u662f\u200b\u7f51\u7ebf\u200b\uff08\u200b\u5e9f\u8bdd\u200b\uff09\uff0c
\u200b\u6bd4\u8f83\u200b\u7279\u6b8a\u200b\u7684\u200b\u4e8b\u200b\u5982\u679c\u200b\u4e24\u7aef\u200b\u900f\u660e\u200b\u5934\u200b\u5185\u90e8\u200b\u7684\u200b\u7ebf\u200b\u7684\u200b\u989c\u8272\u200b\u987a\u5e8f\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\u4ea4\u53c9\u200b\u7f51\u7ebf\u200b.
\u200b\u5982\u679c\u200b\u4e00\u6839\u200b\u6241\u6241\u7684\u200b\u6de1\u84dd\u8272\u200b\u7684\u200b\uff0c\u200b\u53e6\u4e00\u7aef\u200b\u662f\u200b\u4e32\u53e3\u200b\u7684\u200b\u7ebf\u200b\uff0c\u200b\u90a3\u4e2a\u200b\u662f\u200b\u62ff\u6765\u200b\u8fde\u200b console \u200b\u548c\u200b PC \u200b\u7684\u200b.
\u200b\u673a\u7bb1\u200b\u91cc\u200b\u4e0a\u65b9\u200b\u8fde\u200b\u7740\u200b\u6446\u200b\u4e86\u200b\u56db\u53f0\u200b PC\uff0c\u200b\u4e00\u822c\u200b\u4ece\u200b\u4e0a\u200b\u5f80\u200b\u4e0b\u200b\u6807\u53f7\u200b 1-4
\u200b\u5f00\u673a\u200b\u65b9\u5f0f\u200b\u5f88\u8ff7\u200b\uff0c\u200b\u6211\u200b\u662f\u200b\u6309\u200b F1 \u200b\u7136\u540e\u200b\u9000\u51fa\u200b\uff0c\u200b\u611f\u89c9\u200b\u80af\u5b9a\u200b\u4e0d\u662f\u200b\u6b63\u5e38\u200b\u9014\u5f84\u200b
\u200b\u6700\u200b\u4e0b\u9762\u200b\u6446\u7740\u200b\u7684\u200b\u663e\u793a\u5c4f\u200b\u548c\u200b\u952e\u76d8\u200b\uff0c\u200b\u901a\u8fc7\u200b\u6309\u952e\u200b\u9009\u62e9\u200b\u53ef\u4ee5\u200b\u8fde\u63a5\u200b\u5230\u200b\u4e0d\u540c\u200b\u7684\u200b PC\uff0c\u200b\u987a\u7740\u200b\u663e\u793a\u5c4f\u200b\u7684\u200b\u7ebf\u200b\u5f80\u540e\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u56db\u53f0\u200b PC \u200b\u5728\u200b\u540e\u9762\u200b\u662f\u200b\u63d2\u200b\u5230\u200b\u4e86\u200b 1-4 \u200b\u53e3\u4e0a\u200b\u7684\u200b\uff08\u200b\u6211\u200b\u5f53\u65f6\u200b\u662f\u200b\u6ca1\u6709\u200b PC4\uff0c\u200b\u6709\u200b PC5 \u200b\u63d2\u200b\u5728\u200b 5 \u200b\u4e0a\u9762\u200b\uff0c\u200b\u6211\u200b\u7ed9\u200b\u6539\u200b\u63d2\u200b\u5230\u200b 4 \u200b\u4e86\u200b\uff09
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_2","title":"\u8d77\u6b65","text":"\u200b\u5176\u5b9e\u200b\u4e5f\u200b\u5c31\u200b\u8d77\u6b65\u200b\u662f\u200b\u6700\u96be\u200b\u7684\u200b\uff0c\u200b\u540e\u9762\u200b\u57fa\u672c\u200b\u5c31\u200b\u6309\u7167\u200b\u6587\u6863\u200b\u6765\u200b\u505a\u200b\u5c31\u662f\u200b.
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_3","title":"\u8fde\u4e0d\u4e0a\u200b\u4ea4\u6362\u673a","text":"\u200b\u8fde\u63a5\u200b\u4ea4\u6362\u673a\u200b\u8981\u200b\u505a\u200b\u7684\u200b\u6709\u200b\uff1a
\u200b\u5c31\u200b\u6211\u200b\u800c\u8a00\u200b\uff0c\u200b\u673a\u7bb1\u200b\u91cc\u200b\u7684\u200b\u4e0b\u9762\u200b\u7684\u200b\u4e00\u53f0\u200b\u4ea4\u6362\u673a\u200b\u662f\u200b\u6b7b\u6d3b\u200b\u8fde\u4e0d\u4e0a\u200b\uff0c\u200b\u6700\u540e\u200b\u8bd5\u200b\u4e86\u200b\u534a\u5929\u200b\u662f\u200b\u4e0a\u9762\u200b\u7684\u200b\u53e6\u4e00\u53f0\u200b\u4ea4\u6362\u673a\u200b\u7528\u200b\u624b\u6276\u200b\u7a33\u200b\u4e86\u200b\u53ef\u4ee5\u200b\u4e0a\u200b.
\u200b\u5982\u679c\u200b\u4f60\u8bd5\u200b\u4e86\u200b\u5f88\u591a\u200b\u90fd\u200b\u4e0d\u884c\u200b\u7684\u8bdd\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b\u5b9e\u9a8c\u5ba4\u200b\u91cc\u200b\u6e9c\u8fbe\u200b\u4e00\u5708\u200b\u591a\u200b\u6478\u200b\u51e0\u4e2a\u200b\u4ea4\u6362\u673a\u200b\u56de\u6765\u200b.\u200b\u6211\u4eec\u200b\u7b2c\u4e8c\u6b21\u200b\u6478\u200b\u4e86\u200b\u4e24\u53f0\u200b\u767d\u8272\u200b\u7684\u200b\u5c0f\u5c0f\u7684\u200b\u4ea4\u6362\u673a\u200b\u6765\u200b\u7528\u200b.
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_4","title":"\u4ea4\u6362\u673a\u200b\u5bc6\u7801","text":"\u200b\u6211\u4eec\u200b\u6478\u6765\u200b\u7684\u200b\u4e24\u53f0\u200b\u4ea4\u6362\u673a\u200b\u90fd\u200b\u8981\u6c42\u200b enable \u200b\u5bc6\u7801\u200b\uff0c\u200b\u91cd\u7f6e\u200b\u5bc6\u7801\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6478\u200b\u7684\u200b\u6bd4\u8f83\u200b\u719f\u200b\u4e86\u200b\uff0c\u200b\u6ce8\u610f\u200b\u9002\u7528\u200b\u7684\u200b\u662f\u200b\u5c0f\u578b\u200b\u767d\u8272\u200b\u4ea4\u6362\u673a\u200b\uff0c\u200b\u6b63\u9762\u200b\u578b\u53f7\u200b\u5199\u200b\u7740\u200b C3560 \u200b\u6b65\u9aa4\u200b\uff1a
flash_init
\uff0c\u200b\u7136\u540e\u200bren flash:config.text flash:config.old
\uff0c\u200b\u7136\u540e\u200bboot
\u200b\u5b9e\u9a8c\u200b\u5f00\u59cb\u200b\u524d\u200b\u6211\u4eec\u200b\u8981\u200b\u67e5\u770b\u200b\u5404\u200b PC \u200b\u7684\u200b IP\uff0cwin + R
\uff0c\u200b\u8f93\u5165\u200b cmd \u200b\u6253\u5f00\u200b\u547d\u4ee4\u884c\u200b\uff0c\u200b\u8f93\u5165\u200bipconfig
\u200b\u5c31\u200b\u80fd\u200b\u770b\u5230\u200b ip \u200b\u4e86\u200b\uff0c\u200b\u6ca1\u6709\u200b\u7684\u8bdd\u200b\u68c0\u67e5\u200b\u8fde\u63a5\u200b\uff0c\u200b\u770b\u770b\u200b\u4fe1\u53f7\u706f\u200b\u53d8\u7eff\u200b\u4e86\u200b\u6ca1\u6709\u200b.
\u200b\u4e00\u822c\u800c\u8a00\u200b PC \u200b\u7684\u200b IP \u200b\u90fd\u200b\u633a\u200b\u6b63\u5e38\u200b\u7684\u200b\uff0c\u200b\u4e92\u76f8\u200b\u4e4b\u95f4\u200b\u90fd\u200b\u901a\u200b\uff08\u200b\u6bd4\u8f83\u200b\u6b63\u5e38\u200b\u7684\u200b IP 10.0.0.13 10.0.1.13 10.0.2.13 10.0.3.13 \u200b\u4ed6\u4eec\u200b\u663e\u7136\u200b\u90fd\u200b\u901a\u200b\uff09
\u200b\u7136\u800c\u200b\u6211\u200b\u5f53\u65f6\u200b\u4e24\u4e2a\u200b PC \u200b\u662f\u200b 10 \u200b\u5f00\u5934\u200b\u4e24\u4e2a\u200b\u662f\u200b 192 \u200b\u5f00\u5934\u200b\uff0c\u200b\u4e0d\u901a\u200b\uff0c\u200b\u9700\u8981\u200b\u624b\u52a8\u200b\u8bbe\u5b9a\u200b
\u200b\u8fd9\u65f6\u5019\u200b\u5343\u4e07\u522b\u200b\u53bb\u200b putty \u200b\u91cc\u9762\u200b\u6572\u200b\u547d\u4ee4\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u6211\u200b\u8fd9\u4e48\u200b\u641e\u200b\u56db\u53f0\u200b PC \u200b\u5168\u65ad\u200b\u8054\u200b\u4e86\u200b\uff0c\u200b\u8981\u200b\u5728\u200b windows \u200b\u7684\u200b\u63a7\u5236\u9762\u677f\u200b\u91cc\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u5177\u4f53\u6b65\u9aa4\u200b\u7f51\u4e0a\u200b\u90fd\u200b\u6709\u200b\uff0c\u200b\u8981\u200b\u628a\u200b\u56db\u53f0\u200b\u653e\u5230\u200b\u540c\u4e00\u200b\u7f51\u6bb5\u200b.
\u200b\u606d\u559c\u200b
\u200b\u63a5\u4e0b\u6765\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8ddf\u7740\u200b\u6587\u6863\u200b\u4e00\u6b65\u6b65\u200b\u8d70\u200b\u5b8c\u200b\u5b9e\u9a8c\u200b\u4e86\u200b.
"},{"location":"blog/enable-chatgpt_academic/","title":"Enable ChatGPT_academic","text":"Abstract
\u200b\u901b\u200b\u5927\u8857\u200b\u7684\u200b\u65f6\u5019\u200b\u5076\u7136\u200b\u770b\u5230\u200b\u7684\u200b\u5de5\u5177\u200b\uff0c\u200b\u8dd1\u200b\u8d77\u6765\u200b\u7528\u7528\u200b\u770b\u200b\uff01
\u200b\u51c6\u5907\u200b\u5de5\u4f5c\u200b
\u200b\u8bf7\u200b\u5728\u200b\u9605\u8bfb\u200b\u6b64\u6587\u200b\u524d\u200b\u51c6\u5907\u200b\u597d\u200b ChatGPT \u200b\u7684\u200b API Key \u200b\u548c\u200b\u597d\u200b\u7528\u200b\u7684\u200b\u4ee3\u7406\u200b.\uff08\u200b\u524d\u8005\u200b\u4e3b\u8981\u200b\u662f\u200b\u6ce8\u518c\u200b\u597d\u200b\u8d26\u53f7\u200b\u5c31\u884c\u200b\uff0c\u200b\u5408\u7406\u200b\u5229\u7528\u200b https://sms-activate.org/\uff09
\u200b\u4e3b\u8981\u200b\u7684\u200b\u6d41\u7a0b\u200b\u5c31\u200b\u5728\u200b\u9879\u76ee\u200b\u7684\u200b\u6e90\u5730\u5740\u200b\u8bb2\u200b\u7684\u200b\u5f88\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u7167\u200b\u505a\u200b\u5373\u53ef\u200b.
\u200b\u7b14\u8005\u200b\u6ca1\u6709\u200b\u7528\u200b docker \u200b\u90e8\u7f72\u200b\uff0c\u200b\u90e8\u7f72\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u53ea\u200b\u9047\u5230\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u6362\u200b\u8fc7\u6e90\u200b\u540e\u200b pip \u200b\u627e\u200b\u4e0d\u5230\u200b\u9ad8\u200b\u7248\u672c\u200b\u7684\u200b gradio
\u200b\u89e3\u51b3\u65b9\u6848\u200b\u662f\u200b\uff1a
pip install --upgrade gradio -i https://pypi.org/simple\n
-i \u200b\u662f\u200b --index-url \u200b\u7684\u200b\u7f29\u5199\u200b\uff0c\u200b\u610f\u601d\u200b\u662f\u4ece\u200b\u6307\u5b9a\u200b\u6e90\u200b\u4e0b\u8f7d\u200b
"},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/","title":"\u7528\u200b Mac \u200b\u7684\u200b VSCode \u200b\u8c03\u8bd5\u200b C/C++\u200b\u7a0b\u5e8f","text":"Abstract
\u200b\u5728\u200b Mac \u200b\u7684\u200b\u73af\u5883\u200b\u4e0a\u7528\u200b VSCode \u200b\u6765\u200b debug \u200b\u634f\u200b\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u4e5f\u200b\u78b0\u5230\u200b\u4e9b\u200b\u95ee\u9898\u200b\u7684\u8bdd\u200b\u4e0d\u59a8\u200b\u6765\u200b\u770b\u770b\u200b\ud83d\udc40
\u200b\u73af\u5883\u200b
MacOS: Ventura 13.2.1 VSCode: 1.76.2 x64 C/C++: 1.14.5 CodeLLDB: 1.8.0 Code Runner: 0.12.0
"},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#cc","title":"C/C++","text":"\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b VSCode \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u542f\u7528\u200b\u540e\u200b\uff0c\u200b\u4f1a\u200b\u5728\u200b VSCode \u200b\u4e2d\u200b\u6dfb\u52a0\u200b C/C++\u200b\u7684\u200b\u8bed\u6cd5\u200b\u9ad8\u4eae\u200b\u3001\u200b\u4ee3\u7801\u200b\u63d0\u793a\u200b\u3001\u200b\u4ee3\u7801\u200b\u8df3\u8f6c\u200b\u7b49\u200b\u529f\u80fd\u200b. \u200b\u540c\u65f6\u200b\u53f3\u4e0a\u89d2\u200b\u51fa\u73b0\u200b\u5982\u4e0b\u200b\u56fe\u6807\u200b\uff1a
\u200b\u9009\u62e9\u200b run \u200b\u7684\u8bdd\u200b\uff0c\u200b\u63d2\u4ef6\u200b\u5c31\u200b\u4f1a\u200b\u63a5\u7740\u200b\u8ba9\u200b\u6211\u4eec\u200b\u9009\u62e9\u200b\u4f7f\u7528\u200b\u7684\u200b\u7f16\u8bd1\u5668\u200b
\u200b\u6bd4\u5982\u200b\u6211\u200b\u9009\u62e9\u200b clang++\uff0c\u200b\u90a3\u4e48\u200b\u63d2\u4ef6\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u5f53\u524d\u5de5\u4f5c\u200b\u533a\u4e0b\u200b\u81ea\u52a8\u200b\u751f\u6210\u200b\u76f8\u5e94\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u5e76\u200b\u5f00\u59cb\u8fd0\u884c\u200b.
\u200b\u5bf9\u4e8e\u200b\u8c03\u8bd5\u200b\uff0c\u200b\u5f88\u200b\u9057\u61be\u200b\u7684\u200b\u662f\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u662f\u200b\u8fd0\u884c\u200b\u5728\u200b Debug Console \u200b\u4e2d\u200b\u7684\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\uff0c\u200b\u8fd0\u884c\u200b\u5728\u200b debug console \u200b\u4e2d\u200b\u7684\u200b\u95ee\u9898\u200b\u662f\u200b\u6ca1\u6709\u200b stdin \u200b\u8ba9\u200b\u6211\u4eec\u200b\u8f93\u5165\u200b.
\u200b\u7ecf\u8fc7\u200b\u67e5\u8be2\u200b\uff0c\u200b\u53d1\u73b0\u200b Mac \u200b\u4e0a\u200b C/C++\u200b\u63d2\u4ef6\u200b\u4e0d\u200b\u652f\u6301\u200b debugger \u200b\u8fd0\u884c\u200b\u5728\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\uff0csetting \u200b\u91cc\u200b\u4e5f\u200b\u6ca1\u6709\u200b\u4fee\u6539\u200b\u9009\u9879\u200b\uff0c\u200b\u53ea\u80fd\u200b\u8fd0\u884c\u200b\u5728\u200b debug console \u200b\u6216\u8005\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b.\u200b\u8be6\u89c1\u200b\u5b98\u7f51\u200b
\u200b\u5982\u679c\u200b\u5e0c\u671b\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b\u8fd0\u884c\u200b\u8fdb\u884c\u200b\u8f93\u5165\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u5728\u200b launch.json \u200b\u4e2d\u200b\u914d\u7f6e\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u5f53\u524d\u200b\u7248\u672c\u200b\u9ed8\u8ba4\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u53ea\u4f1a\u200b\u751f\u6210\u200b task.json\uff0c\u200b\u6ca1\u6709\u200b launch.json\uff1a
\u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u5148\u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b task.json.\u200b\u8fd9\u91cc\u200b\u7684\u200b\u4e00\u4e9b\u200b\u53c2\u6570\u200b\u662f\u200b\u53ef\u4ee5\u200b\u4fee\u6539\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u200b args\uff0c\u200b\u5c31\u662f\u200b\u7f16\u8bd1\u200b\u65f6\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5176\u4e2d\u200b-g
\u200b\u53c2\u6570\u200b\uff0c\u200b\u4f1a\u200b\u8ba9\u200b\u7f16\u8bd1\u5668\u200b\u751f\u6210\u200b\u8c03\u8bd5\u4fe1\u606f\u200b\uff0c\u200b\u8fd9\u6837\u200b\u624d\u80fd\u200b\u8fdb\u884c\u200b debug.\u200b\u8fd8\u6709\u200b cwd \u200b\u53c2\u6570\u200b\uff0c\u200b\u8fd0\u884c\u200b\u7a0b\u5e8f\u200b\u7684\u200b\u6587\u4ef6\u5939\u200b\u4f4d\u7f6e\u200b\uff0c\u200b\u5982\u679c\u200b\u4e0d\u5199\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u9ed8\u8ba4\u200b\u5728\u200b\u5f53\u524d\u5de5\u4f5c\u200b\u533a\u200b\u7684\u200b\u6839\u76ee\u5f55\u200b\u4e0b\u200b\u8fd0\u884c\u200b\uff0c\u200b\u800c\u200b\u975e\u200b\u7a0b\u5e8f\u200b\u6240\u5728\u200b\u76ee\u5f55\u200b\uff0c\u200b\u8fd9\u200b\u5728\u200b\u4e00\u4e9b\u200b\u6253\u5f00\u200b\u6587\u4ef6\u200b\u7684\u200b\u64cd\u4f5c\u200b\u4e0a\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u5bfc\u81f4\u200b\u95ee\u9898\u200b.\u200b\u6700\u540e\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b label\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u522b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e2d\u200b\u901a\u8fc7\u200b\u8fd9\u4e2a\u200b label \u200b\u6765\u200b\u8c03\u7528\u200b\u8fd9\u4e2a\u200b task.
\u200b\u6211\u4eec\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u914d\u7f6e\u6587\u4ef6\u200b launch.json\uff1a\u200b\u9009\u62e9\u200b\u4fa7\u680f\u200b\u7684\u200b debug \u200b\u56fe\u6807\u200b\uff0c\u200b\u70b9\u51fb\u200bcreate a launch.json file
:
\u200b\u521a\u200b\u5f00\u59cb\u200b\u662f\u200b\u7a7a\u200b\u7684\u200b\uff0c\u200b\u4ec0\u4e48\u200b\u90fd\u200b\u6ca1\u6709\u200b.\u200b\u70b9\u51fb\u200b\u53f3\u4e0b\u89d2\u200b\u7684\u200bAdd Configuration
\uff0c\u200b\u5c31\u200b\u6709\u200b\u4e00\u4e9b\u200b\u9009\u9879\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6709\u200b\u63d2\u4ef6\u200b\u4e3a\u200b\u6211\u4eec\u200b\u51c6\u5907\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u6a21\u7248\u200b\uff0c\u200b\u6211\u4eec\u200b\u9009\u62e9\u200bC/C++ lldb\uff08\u200b\u542f\u52a8\u200b\uff09
\uff0c\u200b\u610f\u601d\u200b\u662f\u200b C/C++\u200b\u63d2\u4ef6\u200b\u63d0\u4f9b\u200b\u7684\u200b\uff0c\u200b\u542f\u52a8\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u5e76\u200b\u5bf9\u200b\u5176\u200b debug \u200b\u7684\u200b\u914d\u7f6e\u200b\uff0c\u200b\u9009\u62e9\u200b\u9644\u52a0\u200b\u7684\u8bdd\u200b\u662f\u200b\u9644\u52a0\u200b\u5230\u200b\u4e00\u4e2a\u200b\u5df2\u7ecf\u200b\u5728\u200b\u6267\u884c\u200b\u7684\u200b\u8fdb\u7a0b\u200b\u4e0a\u200b\u7684\u200b\uff1a
\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u6a21\u677f\u200b\u957f\u200b\u8fd9\u4e2a\u200b\u6837\u5b50\u200b\uff1a
\u200b\u8fd9\u200b\u5e76\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\uff0c\u200b\u9996\u5148\u200b\u4fee\u6539\u200b program \u200b\u4e3a\u200b
\"program\": \"${workspaceFolder}/${fileBasenameNoExtension}\"\uff0c\n
\uff0c\u200b\u8fd9\u6837\u200b\u4ed6\u200b\u8fd0\u884c\u200b\u7684\u200b\u5c31\u200b\u4f1a\u200b\u662f\u200b\u5f53\u524d\u76ee\u5f55\u200b\u4e0b\u200b\u7684\u200b\u5f53\u524d\u200b\u6587\u4ef6\u200b\uff08\u200b\u4e00\u822c\u200b\u5c31\u662f\u200b\u5149\u6807\u200b\u60ac\u505c\u200b\u7684\u200b\u90a3\u4e2a\u200b\u6587\u4ef6\u200b\uff09\u200b\u540c\u540d\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\uff08\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u6ca1\u200b\u540e\u7f00\u200b\uff09\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7f16\u8bd1\u200b\u51fa\u6765\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u53eb\u505a\u200ba.out
\uff0c\u200b\u8fd9\u4e2a\u200b\u914d\u7f6e\u200b\u5c31\u200b\u4e0d\u200b\u9002\u7528\u200b\uff08\u200b\u4f1a\u200b\u8c03\u7528\u200ba
\uff09\uff0c\u200b\u8bf7\u200b\u5728\u200b\u914d\u7f6e\u200b\u4e2d\u200b\u4fee\u6539\u200b\u4e3a\u200b/a.out
\u200b\u6216\u8005\u200b\u8ba9\u200b\u7f16\u8bd1\u200b\u51fa\u6765\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u540d\u4e3a\u200ba
. \u200b\u65b0\u52a0\u200b\u4e00\u5217\u200bpreLaunchTask
\uff0c\u200b\u503c\u200b\u5c31\u662f\u200b\u4e4b\u524d\u200b task.json \u200b\u4e0a\u200b\u7684\u200b label\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u8fd0\u884c\u200b\u524d\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u524d\u5148\u200b\u8fd0\u884c\u200b task \u200b\u7f16\u8bd1\u200b\u5f53\u524d\u200b\u6587\u4ef6\u200b\uff08\u200b\u8fd9\u6837\u200b\u6bd4\u8f83\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u81ea\u52a8\u200b\u628a\u200b\u6700\u65b0\u200b\u7684\u200b\u6e90\u4ee3\u7801\u200b\u7f16\u8bd1\u200b\uff0c\u200b\u8981\u200b\u591a\u200b\u6587\u4ef6\u200b\u7f16\u8bd1\u200b\u7684\u8bdd\u200b\u4e5f\u200b\u5728\u200b task \u200b\u8bbe\u7f6e\u200b.\u200b\u5982\u679c\u200b\u4e0d\u200b\u4f7f\u7528\u200b task \u200b\u624b\u52a8\u200b\u7f16\u8bd1\u200b\u7684\u8bdd\u200b\uff0c\u200b\u8bb0\u5f97\u200b\u52a0\u4e0a\u200b-g\uff09.\u200b\u6700\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u628a\u200b\"externalConsole\": false\uff0c
\u200b\u6539\u4e3a\u200b\"externalConsole\": true\uff0c
\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\u8fd0\u884c\u200b\u4e86\u200b.
\u200b\u7b14\u8005\u200b\u5230\u200b\u8fd9\u200b\u4e00\u6b65\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b debug \u200b\u5566\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5728\u200b watch \u200b\u7a97\u53e3\u200b\u6267\u884c\u547d\u4ee4\u200b\u6765\u200b\u76d1\u89c6\u200b\u53d8\u91cf\u200b\uff0c\u200b\u5982\u200b\u5168\u5c40\u53d8\u91cf\u200b\u4e00\u7c7b\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b C/C++\u200b\u5bf9\u200b\u4e00\u4e9b\u200b\u7c7b\u578b\u200b\u7684\u200b\u53d8\u91cf\u200b\u7684\u200b\u76d1\u89c6\u200b\u652f\u6301\u200b\u4e0d\u662f\u200b\u5f88\u200b\u597d\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b string\uff1a \u200b\u76d1\u89c6\u200b\u4fe1\u606f\u200b\u5c31\u662f\u200b\u4e00\u5768\u200b.
"},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#code-runner","title":"Code Runner","text":"\u200b\u53e6\u200b\u4e00\u4e2a\u200b VSCode \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u542f\u7528\u200b\u540e\u200b\u53f3\u4e0a\u89d2\u200b\u53c8\u200b\u4f1a\u200b\u591a\u200b\u4e00\u4e2a\u200b\u6807\u200b\uff1a
\u200b\u8fd9\u4e2a\u200b\u662f\u200b\u53ef\u4ee5\u200b\u8dd1\u200b\u5728\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\u91cc\u200b\u7684\u200b\uff1a
"},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#codelldb","title":"CodeLLDB \ud83d\udc4d","text":"\u200b\u8fd9\u4e2a\u200b\u63d2\u4ef6\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b debug\uff0c\u200b\u6211\u200b\u611f\u89c9\u200b\u6bd4\u200b C/C++\u200b\u597d\u7528\u200b\u591a\u200b\u4e86\u200b.
\u200b\u542f\u7528\u200b\u63d2\u4ef6\u200b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b launch.json \u200b\u4e2d\u53ef\u9009\u200b\u914d\u7f6e\u200b\u5c31\u200b\u591a\u200b\u4e86\u200b\u51e0\u4e2a\u200b\uff0c\u200b\u6211\u4eec\u200b\u4f7f\u7528\u200bCodeLLDB (launch)
\u200b\u6a21\u677f\u200b\uff1a
\u200b\u540c\u6837\u200b\u7a0d\u5fae\u200b\u4fee\u6539\u200b\uff1a
\u200b\u56de\u5230\u200b\u4fa7\u8fb9\u200b\u680f\u200b debug \u200b\u6a21\u5757\u200b\uff0c\u200b\u9009\u62e9\u200b\u65b0\u200b\u7684\u200b\u542f\u52a8\u200b\u914d\u7f6e\u200b\uff08\u200b\u8fd9\u91cc\u200b\u9009\u200b\u7684\u200b\u662f\u200b launch.json \u200b\u91cc\u200b\u5199\u200b\u597d\u200b\u7684\u200b\u51e0\u4e2a\u200b\u914d\u7f6e\u200b\uff09\uff1a
\u200b\u8fd9\u4f1a\u200b\u5728\u200b\u6211\u4eec\u200b\u542f\u7528\u200b debug \u200b\u7684\u200b\u65f6\u5019\u200b\u53bb\u200b launch.json \u200b\u91cc\u9762\u200b\u627e\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u7684\u200b\u914d\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u8fdb\u884c\u200b debug.
\u200b\u6709\u65f6\u5019\u200b debug \u200b\u5f39\u200b\u51fa\u200b\u5947\u602a\u200b\u7684\u200b\u62a5\u9519\u200b\uff0c\u200b\u662f\u56e0\u4e3a\u200b\u5f53\u524d\u200b\u6253\u5f00\u200b\u7684\u200b\u662f\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u8bd5\u56fe\u200b\u5bf9\u200b launch.json \u200b\u8fdb\u884c\u200b debug\uff0c\u200b\u6240\u4ee5\u200b\u62a5\u9519\u200b\u4e86\u200b.\u200b\u6211\u4eec\u200b\u6253\u5f00\u200b\u8981\u200b debug \u200b\u7684\u200b\u6e90\u4ee3\u7801\u200b\u6587\u4ef6\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b.
CodeLLDB \u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\uff1a
\u200b\u53ef\u4ee5\u200b\u5728\u200b\u76d1\u89c6\u200b\u91cc\u200b\u76f4\u63a5\u200b\u7528\u200b\u53d8\u91cf\u540d\u200b\u76d1\u89c6\u200b\u53d8\u91cf\u200b\uff1a
\u200b\u53ef\u4ee5\u200b\u5728\u200b debug console \u200b\u4e2d\u200b\u8f93\u5165\u200b\u547d\u4ee4\u200b\uff1a
\u200b\u53d8\u91cf\u200b\u91cc\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u652f\u6301\u200b\u4e5f\u597d\u200b\u4e00\u4e9b\u200b\uff1a
\u200b\u8fd9\u91cc\u200b\u8fd8\u6709\u200b\u5b98\u65b9\u200b\u6587\u6863\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u770b\u200b.
\u200b\u624b\u52a8\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b task.json
\u200b\u5728\u200b\u83dc\u5355\u200b terminal > Configure Tasks \u200b\u9009\u62e9\u200b C/C++\u200b\u6765\u200b\u751f\u6210\u200b\u6a21\u677f\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab1-%E6%97%B6%E9%92%9F%E4%B8%AD%E6%96%AD/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab1 \u200b\u65f6\u949f\u200b\u4e2d\u65ad","text":"Abstract
\u200b\u4e00\u4e2a\u200b kernel \u200b\u7684\u200b\u8fd0\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab1-%E6%97%B6%E9%92%9F%E4%B8%AD%E6%96%AD/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi`\u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\n- `start_kernel`: \u200b\u8fdb\u884c\u200b\u4e00\u4e9b\u200b\u8f93\u51fa\u200b\uff0c\u200b\u8fdb\u5165\u200b test()\u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- `_traps`: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u597d\u200b\u4e0a\u4e0b\u6587\u200b\u540e\u200b\u8c03\u7528\u200b\u4e2d\u65ad\u200b\u5904\u7406\u7a0b\u5e8f\u200b trap_handler\n- `trap_handler`: \u200b\u786e\u8ba4\u200b\u662f\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u540e\u200b\u8c03\u7528\u200b clock_set_next\n- `clock_set_next`: \u200b\u5229\u7528\u200b sbi_ecall \u200b\u8bbe\u7f6e\u200b\u4e0b\u200b\u4e00\u6b21\u200b\u4e2d\u65ad\u200b\u65f6\u95f4\u200b\n- `_traps`: \u200b\u8fd4\u56de\u200b_traps \u200b\u540e\u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b sret \u200b\u8fd4\u56de\u200b\u6b7b\u5faa\u73af\u200b\n- `test`: \u200b\u6b7b\u5faa\u73af\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u91cd\u590d\u200b\u4e0a\u8ff0\u200b\u6d41\u7a0b\u200b\n
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab2-%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab2 \u200b\u7ebf\u7a0b\u200b\u8c03\u5ea6","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u7684\u200b\u8fd0\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab2-%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi`\u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n - `mm_init`: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n - `task_init`: \u200b\u5b8c\u6210\u200b\u5bf9\u200b\u6240\u6709\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB \u200b\u7684\u200b\u521d\u59cb\u5316\u200b(1)\uff0c\u200b\u5305\u62ec\u200b\u5f53\u524d\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b idle \u200b\u7ebf\u7a0b\u200b\n - `test_init`: \u200b\u8be5\u200b\u51fd\u6570\u8c03\u7528\u200b\u4f1a\u586b\u200b\u597d\u200b task_test_counter \u200b\u548c\u200b 1task_test_priority \u200b\u4e24\u4e2a\u200b\u6570\u7ec4\u200b\u7528\u4e8e\u200b\u7ed9\u200b\u6211\u4eec\u200b\u540e\u7eed\u200b\u521d\u59cb\u5316\u200b\u4f7f\u7528\u200b\n - \u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\u4f5c\u4e3a\u200b idle \u200b\u7684\u200b PCB\uff0c\u200b\u586b\u5199\u200b\u5e76\u4e14\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b current\n - \u200b\u8fed\u4ee3\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7ebf\u7a0b\u200b\u5206\u914d\u200b\u5e76\u200b\u586b\u5199\u200b PCB\uff0c\u200b\u6ce8\u610f\u200b\u5176\u4e2d\u200b ra \u200b\u548c\u200b sp \u200b\u7684\u200b\u8bbe\u7f6e\u200b\n - ra: ra \u200b\u56fa\u5b9a\u200b\u4e3a\u200b__dummy\uff0c\u200b\u8fd9\u662f\u200b\u6211\u4eec\u200b\u4e3a\u200b\u7ebf\u7a0b\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u540e\u200b\u8bbe\u7f6e\u200b\u7684\u200b\u8fd4\u56de\u200b\u5730\u5740\u200b\n - sp: \u200b\u76f4\u63a5\u200b\u7528\u200b\u5206\u914d\u200b\u7ed9\u200b PCB \u200b\u7684\u200b\u8fd9\u200b\u4e00\u9875\u200b\u505a\u6808\u200b\uff0c\u200b\u6808\u9876\u200b\u81ea\u7136\u200b\u5c31\u662f\u200b PCB \u200b\u5730\u5740\u200b+4K\n- `start_kernel`: \u200b\u8fdb\u5165\u200b test()\u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- `_traps`: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u597d\u200b\u4e0a\u4e0b\u6587\u200b\u540e\u200b\u8c03\u7528\u200b\u4e2d\u65ad\u200b\u5904\u7406\u7a0b\u5e8f\u200b trap_handler\n- `trap_handler`: \u200b\u786e\u8ba4\u200b\u662f\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u540e\u200b\uff0c\u200b\u8bbe\u7f6e\u200b\u4e0b\u6b21\u200b\u4e2d\u65ad\u200b\u65f6\u95f4\u200b\uff0c\u200b\u8fdb\u5165\u200b do_timer()\u200b\u68c0\u67e5\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u5269\u4f59\u65f6\u95f4\u200b\n- `do_timer`: \u200b\u5982\u679c\u200b\u662f\u200b idle \u200b\u6216\u8005\u200b\u65f6\u95f4\u200b\u7528\u5c3d\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule()\u200b\u8c03\u5ea6\u200b\u8d70\u200b\uff0c\u200b\u5426\u5219\u200b\u65f6\u95f4\u200b\u51cf\u4e00\u200b\n- `schedule`: \u200b\u6839\u636e\u200b policy \u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u8c03\u7528\u200b switch_to()\u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b(2)\uff0c\u200b\u5982\u679c\u200b\u6240\u6709\u200b\u7ebf\u7a0b\u200b\u65f6\u95f4\u200b\u90fd\u200b\u7528\u200b\u5b8c\u200b\u4e86\u200b\u5c31\u200b\u5148\u200b\u521d\u59cb\u5316\u200b\u65f6\u95f4\u200b\u518d\u200b\u9009\u62e9\u200b\n- `switch_to`: \u200b\u524d\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- `__switch_to`: \u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB(3)\n- `__dummy`: \u200b\u4ece\u200b__switch_to \u200b\u8fd4\u56de\u200b\uff0c\u200b\u8fd4\u56de\u200b\u5730\u5740\u200b\u5c31\u662f\u200b PCB \u200b\u4e2d\u200b\u6062\u590d\u200b\u7684\u200b__dummy.\u200b\u6211\u4eec\u200b\u5728\u200b dummy \u200b\u4e2d\u200b\u7ed3\u675f\u200b\u6b64\u6b21\u200b\u4e2d\u65ad\u200b\u7528\u200b sret \u200b\u56de\u5230\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u6267\u884c\u200b\u7684\u200b\u51fd\u6570\u200b dummy\n- `dummy`: \u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u4e3b\u200b\u51fd\u6570\u200b\uff0c\u200b\u5207\u6362\u200b\u56de\u6765\u200b\u540e\u200b\u8fdb\u884c\u200b\u4e00\u6b21\u200b\u8f93\u51fa\u200b\u7136\u540e\u200b\u5faa\u73af\u200b\u7b49\u5f85\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- `_traps`: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4e00\u822c\u200b\u662f\u200b\u5269\u4f59\u65f6\u95f4\u200b\u51cf\u4e00\u200b\u7136\u540e\u200b\u7ee7\u7eed\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u95f4\u200b\u7528\u200b\u5b8c\u200b\uff0c\u200b\u518d\u6b21\u200b\u8fdb\u5165\u200b schedule \u200b\u5faa\u73af\u200b\n
\u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u5bf9\u4e8e\u200b\u975e\u200b idle \u200b\u7ebf\u7a0b\u200b\u7b2c\u4e00\u6b21\u200b\u4ece\u200b __switch_to \u200b\u8fd4\u56de\u200b\u7684\u200b\u90fd\u200b\u662f\u200b __dummy\uff0c \u200b\u8fd9\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b PCB \u200b\u88ab\u200b\u6062\u590d\u200b\u51fa\u6765\u200b\u7684\u200b ra \u200b\u51b3\u5b9a\u200b\u7684\u200b
\u200b\u4f46\u662f\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u7b2c\u4e8c\u6b21\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u5b83\u200b\u6062\u590d\u200b\u7684\u200b PCB \u200b\u5c31\u662f\u200b\u5b83\u200b\u4e4b\u524d\u200b\u81ea\u5df1\u200b\u5b58\u200b\u4e0b\u6765\u200b\u7684\u200b\u800c\u200b\u4e0d\u518d\u200b\u662f\u200b\u521d\u59cb\u5316\u200b\u7684\u200b.\u200b\u8fd9\u4e2a\u200b\u5b58\u200b\u4e0b\u6765\u200b\u7684\u200b ra \u200b\u5c31\u662f\u200b switch_to\uff0c__switch_to \u200b\u51fd\u6570\u200b\u8fd0\u884c\u200b\u65f6\u200b\u7684\u200b ra \u200b\u5f53\u7136\u200b\u662f\u200b__switch_to \u200b\u7684\u200b\u8c03\u7528\u8005\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab3 \u200b\u865a\u62df\u5185\u5b58","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi`\u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b(1)\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n - `setup_vm`: \u200b\u586b\u5199\u200b\u9875\u8868\u200b(2)\n - `relocate`: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u81f3\u6b64\u200b\u865a\u62df\u5185\u5b58\u200b\u5df2\u7ecf\u200b\u542f\u52a8\u200b\n - `mm_init`: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n - `setup_vm_final`: \u200b\u5229\u7528\u200b mm \u200b\u4e2d\u200b\u7684\u200b\u51fd\u6570\u200b\u5206\u914d\u200b\u65b0\u200b\u7684\u200b\u9875\u200b\u6765\u200b\u8bbe\u7f6e\u200b\u591a\u7ea7\u200b\u5206\u6bb5\u200b\u9875\u8868\u200b\uff0c\u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b(3)\n - `task_init`: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n- `start_kernel`: \u200b\u8fdb\u5165\u200b test \u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u7b49\u5f85\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u8d70\u200b\n
\u200b\u6211\u4eec\u200b\u542f\u7528\u200b\u865a\u62df\u5185\u5b58\u200b\u7684\u200b\u90a3\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5199\u200b satp \u200b\u7684\u200b\u90a3\u200b\u4e00\u6b65\u200b\u53ea\u662f\u200b\u4e00\u53e5\u200bcsrw
\uff0c\u200b\u6307\u4ee4\u200b\u5199\u200b\u5b8c\u200b\u5bc4\u5b58\u5668\u200b\u4e5f\u200b\u4e0d\u4f1a\u200b\u5e72\u4ec0\u4e48\u200b\u989d\u5916\u200b\u7684\u200b\u4e8b\u60c5\u200b\uff0cCP \u200b\u8fd8\u662f\u200b\u8981\u200b\u7ee7\u7eed\u200b\u53bb\u200b PC+4 \u200b\u6267\u884c\u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b.
\u200b\u6240\u4ee5\u200b PC+4 \u200b\u8fd9\u4e2a\u200b\u5730\u5740\u200b\u5728\u200b\u865a\u62df\u5185\u5b58\u200b\u4e0b\u8be5\u200b\u600e\u4e48\u200b\u53d6\u6307\u200b(1)\uff0c\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u5c31\u662f\u200b\u601d\u8003\u9898\u200b\u6240\u200b\u5173\u5fc3\u200b\u7684\u200b.
\u200b\u6587\u6863\u200b\u4e2d\u200b\u5176\u5b9e\u200b\u5df2\u7ecf\u200b\u6709\u200b\u94fe\u63a5\u200b\u6307\u5411\u200b\u4e86\u200b\u89e3\u91ca\u200b\u8fd9\u200b\u4e00\u70b9\u200b\u7684\u200b\u6587\u6863\u200b\uff0c\u200b\u5177\u4f53\u200b\u800c\u8a00\u200b\uff0c\u200b\u5728\u200b\u8fd9\u6bb5\u200b\u63cf\u8ff0\u200b\u8f6c\u5316\u200b\u865a\u62df\u5185\u5b58\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u7684\u200b\u624b\u518c\u200b\u4e2d\u200b
\u200b\u4ed4\u7ec6\u9605\u8bfb\u200b\uff0c\u200b\u5176\u4e2d\u200b\u7b2c\u56db\u70b9\u200b\u63d0\u5230\u200b\u82e5\u200b\u5f53\u524d\u9875\u200b\u8868\u9879\u200b\u7684\u200b\u6743\u9650\u200b\u8868\u660e\u200b\u4e86\u200b\u53ef\u8bfb\u200b\u6216\u8005\u200b\u53ef\u200b\u6267\u884c\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5c31\u200b\u4f1a\u200b\u5f53\u4f5c\u200b\u662f\u200b\u6700\u540e\u200b\u4e00\u7ea7\u200b\u9875\u8868\u200b\uff0c\u200b\u5426\u5219\u200b\u624d\u200b\u4f1a\u200b\u628a\u200b\u5b83\u200b\u5f53\u4f5c\u200b\u67d0\u200b\u4e00\u7ea7\u200b\u7684\u200b\u9875\u8868\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#debug","title":"debug \u200b\u6ce8\u610f","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi` \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus(1) \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n - `setup_vm`: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n - `relocate`: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n - `mm_init`: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n - `setup_vm_final`: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n - `task_init`: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n - \u200b\u5bf9\u4e8e\u200b idle \u200b\u4ee5\u5916\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u9700\u8981\u200b\u5728\u200b task_struct \u200b\u4e2d\u200b\u989d\u5916\u200b\u7ed9\u5b9a\u200b\u4ee5\u4e0b\u200b\u4fe1\u606f\u200b\uff1a\n - `sepc`: \u200b\u6b64\u200b\u7ebf\u7a0b\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u540e\u200b\u4ece\u200b S Mode \u200b\u56de\u200b U Mode \u200b\u7684\u200b\u5730\u5740\u200b\uff0c\u200b\u663e\u7136\u200b\u5c31\u662f\u200b\u7528\u6237\u7a0b\u5e8f\u200b\u8d77\u59cb\u200b\u5730\u5740\u200b USER_START\n - `sscratch`: \u200b\u7528\u6237\u200b\u6808\u9876\u200b\uff0c\u200b\u7ea6\u5b9a\u200b\u4e3a\u200b USER_END\n - `sstatus`: \u200b\u8fdb\u884c\u200b\u8bbe\u7f6e\u200b\u4f7f\u5f97\u200b sret \u200b\u540e\u200b\u6211\u4eec\u200b\u56de\u5230\u200b U Mode \u200b\u800c\u200b\u975e\u200b S Mode\n - `satp`: \u200b\u6bcf\u4e2a\u200b\u8fdb\u7a0b\u200b\u90fd\u200b\u6709\u200b\u81ea\u5df1\u200b\u7684\u200b\u7269\u7406\u5730\u5740\u200b\u7a7a\u95f4\u200b\u548c\u200b\u865a\u62df\u5730\u5740\u200b\u7a7a\u95f4\u200b\uff0c\u200b\u5f7c\u6b64\u200b\u9694\u79bb\u200b\n - \u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u5404\u200b\u8fdb\u7a0b\u200b\u95f4\u200b\u9694\u79bb\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u200b\u9700\u8981\u200b\u6bcf\u4e2a\u200b\u8fdb\u7a0b\u200b\u5404\u81ea\u200b\u6709\u200b\u4e00\u4efd\u200b\u4e8c\u8fdb\u5236\u200b\u7684\u200b\u6587\u4ef6\u200b\u7684\u200b\u62f7\u8d1d\u200b(2)\n - \u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\u62f7\u8d1d\u200b\u4e8c\u8fdb\u5236\u200b\u6587\u4ef6\u200b\u540e\u200b\uff0c\u200b\u65b0\u5efa\u200b\u9875\u8868\u200b,\u200b\u628a\u200b\u8fd9\u4e9b\u200b\u9875\u200b\u7684\u200b\u7269\u7406\u200b\u5730\u5740\u6620\u5c04\u200b\u5230\u200b USER_START \u200b\u5f00\u5934\u200b\u7684\u200b\u865a\u62df\u5730\u5740\u200b\n - \u200b\u5206\u914d\u200b\u65b0\u7684\u4e00\u9875\u200b\u4f5c\u6808\u200b\uff0c\u200b\u628a\u200b\u8fd9\u200b\u4e00\u9875\u200b\u7684\u200b\u7269\u7406\u200b\u5730\u5740\u6620\u5c04\u200b\u5230\u200b USER_END-4K\n - \u200b\u6839\u636e\u200b\u65b0\u200b\u9875\u8868\u200b\u5730\u5740\u200b\u8ba1\u7b97\u200bsatp\n- `start_kernel`: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b(3)\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- `schedule`: \u200b\u6839\u636e\u200bpolicy\u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b,\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- `switch_to`: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200bPCB\u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- `__switch_to`: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB(6)\n- `__dummy`: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b(4)\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b USER_START(5)\n- `USER_START`: \u200b\u5f00\u59cb\u200b\u6267\u884c\u200b\u7528\u6237\u200b\u6001\u200b\u4ee3\u7801\u200b\uff0c\u200b\u5305\u62ec\u200b\u5404\u79cd\u200b\u7cfb\u7edf\u200b\u8c03\u7528\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u95f4\u200b\u7247\u7528\u200b\u5b8c\u200b\n- `_traps`: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u5207\u200b\u7cfb\u7edf\u200b\u6808\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u8c03\u5ea6\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\n- `__switch_to`: \u200b\u540c\u200b\u4e0a\u200b\uff0c\u200b\u6b64\u540e\u200b\u8f6e\u6d41\u200b\u8c03\u5ea6\u200b\n
\u200b\u5728\u200b vmlinux.lds \u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u7684\u200b uapp.S \u200b\u6587\u4ef6\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\u5230\u200b _sramdisk\uff0c_eramdisk \u200b\u4e4b\u95f4\u200b
\u200b\u6ce8\u610f\u200b\u8fd9\u200b\u4e00\u9879\u200b\u867d\u7136\u200b\u662f\u200b\u58f0\u660e\u200b\u6743\u9650\u200b\u7684\u200b\u7684\u200b\u4f46\u200b\u5b9a\u4e49\u200b\u4e0d\u200b\u7b49\u540c\u4e8e\u200b\u9875\u8868\u200b\u9879\u200b\u7684\u200b perm\uff0c\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_1","title":"\u6267\u884c\u200b\u6743\u9650","text":"\u200b\u6ce8\u610f\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u9875\u8868\u200b\u548c\u200b sstatus \u200b\u4fdd\u8bc1\u200b\u8fd0\u884c\u200b\u7528\u6237\u200b\u6001\u200b\u4ee3\u7801\u200b\u65f6\u200b\u6743\u9650\u200b\u68c0\u67e5\u200b\u80fd\u591f\u200b\u901a\u8fc7\u200b\uff0c\u200b\u5426\u5219\u200b\u4f1a\u200b\u5bfc\u81f4\u200b scause = 0xc \u200b\u7684\u200b inst page fault \u200b\u6b64\u65f6\u200b\u4e5f\u8bb8\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b gdb \u200b\u4e2d\u8bfb\u200b\u4fe1\u606f\u200b\u4f46\u662f\u200b\u4e00\u200b\u6267\u884c\u200b\u5c31\u200b\u51fa\u9519\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_2","title":"\u62f7\u8d1d\u200b\u95ee\u9898","text":"\u200b\u865a\u62df\u5185\u5b58\u200b\u6620\u5c04\u200b\u662f\u200b\u4ee5\u9875\u200b\u4e3a\u200b\u5355\u4f4d\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u200b 0x00010000 \u200b\u8d77\u200b\u7684\u200b\u865a\u62df\u200b\u9875\u200b\u6620\u5c04\u200b\u5230\u200b 0x80000000 \u200b\u8d77\u200b\u7684\u200b\u7269\u7406\u200b\u9875\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u5165\u53e3\u200b\u5728\u200b 0x100e8\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5e94\u8be5\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u5165\u53e3\u200b\u62f7\u8d1d\u200b\u81f3\u200b 0x800000e8 \u200b\u800c\u200b\u4e0d\u662f\u200b 0x80000000
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_3","title":"\u6808\u200b\u5207\u6362","text":"\u200b\u5728\u200b_traps \u200b\u4e2d\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u4e00\u4e9b\u200b\u5185\u6838\u200b\u7ebf\u7a0b\u200b\u53d1\u8d77\u200b\u7684\u200b\u5f02\u5e38\u200b\u662f\u200b\u4e0d\u200b\u9700\u8981\u200b\u5207\u6362\u200b\u6808\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u901a\u8fc7\u200b\u68c0\u67e5\u200b sscratch \u200b\u4e3a\u200b 0 \u200b\u6765\u200b\u786e\u8ba4\u200b\u8fd9\u200b\u4e00\u70b9\u200b
\u200b\u8fd9\u4e00\u200b\u68c0\u67e5\u200b\u9700\u8981\u200b\u7528\u5230\u200b\u989d\u5916\u200b\u7684\u200b\u5bc4\u5b58\u5668\u200b\uff08\u200b\u5982\u200b t0\uff09\uff0c\u200b\u4f46\u662f\u200b\u6211\u4eec\u200b\u662f\u200b\u8981\u200b\u4fdd\u8bc1\u200b t0 \u200b\u7684\u200b\u503c\u200b\u5728\u200b\u4e2d\u65ad\u200b\u524d\u540e\u200b\u503c\u200b\u4e0d\u53d8\u200b\uff0c\u200b\u6240\u4ee5\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u7528\u200b\uff0c\u200b\u9700\u8981\u200b\u5148\u538b\u6808\u200b\uff0c\u200b\u8fd4\u56de\u200b\u4e4b\u524d\u200b\u8bb0\u5f97\u200b\u6062\u590d\u200b
Bug
\u200b\u8fd9\u91cc\u200b\u63d0\u5230\u200b\u7684\u200b\u538b\u6808\u200b\u7684\u200b\u529e\u6cd5\u200b\u5728\u200b\u6b64\u5904\u200b\u4ecd\u7136\u200b\u53ef\u884c\u200b\uff0c\u200b\u4f46\u200b\u5728\u200bLab5\u200b\u4e2d\u200b\u4f1a\u200b\u9047\u5230\u200b\u95ee\u9898\u200b\uff0c\u200b\u73b0\u5728\u200b\u6709\u200b\u4e00\u4e2a\u200b\u66f4\u597d\u200b\u7528\u200b\u4e5f\u200b\u66f4\u200b\u7b80\u6d01\u200b\u7684\u200b\u65b9\u6cd5\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab5 Demand Paging","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi` \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n - `setup_vm`: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n - `relocate`: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n - `mm_init`: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n - `setup_vm_final`: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n - `task_init`: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n - \u200b\u5bf9\u4e8e\u200b idle \u200b\u4ee5\u5916\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u5728\u200btask_struct\u200b\u4e2d\u200b\u6dfb\u52a0\u200bstack\u200b\u548c\u200bsegment-01(1)\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4e24\u6bb5\u200bvma\n- `start_kernel`: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- `schedule`: \u200b\u6839\u636e\u200bpolicy\u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b,\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- `switch_to`: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200bPCB\u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- `__switch_to`: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB\n- `__dummy`: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b USER_START\n- `ENTRY`: PC\u200b\u8df3\u8f6c\u200b\u81f3\u200bENTRY\uff0c\u200b\u4f46\u662f\u200b\u6b64\u65f6\u200b\u8be5\u9875\u200b\u7684\u200b\u6620\u5c04\u200b\u5e76\u672a\u200b\u5b8c\u6210\u200b\uff0cPAGE FAULT\n- `_traps`: PAGE FAULT\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\u8fdb\u5165\u200btrap_handler\n- `trap_handler`: \u200b\u786e\u8ba4\u200b\u662f\u200bPAGE FAULT\u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200bdo_page_fault\n- `do_page_fault`: \u200b\u6839\u636e\u200bcurrent\u200b\u7684\u200bvma\u200b\u786e\u8ba4\u200b\u662f\u200b\u6bb5\u200b\u9519\u8bef\u200b\u3001\u200b\u6587\u4ef6\u200b\u9875\u200b\u7f3a\u9875\u200b\u8fd8\u662f\u200b\u533f\u540d\u200b\u9875\u200b\u7f3a\u9875\u200b\uff0c\u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\uff0c\u200b\u586b\u5199\u5185\u5bb9\u200b(2)\uff0c\u200b\u586b\u5199\u200b\u9875\u8868\u200b\uff0c\u200b\u8fd4\u56de\u200b\n- `_traps`: \u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b\uff0c\u200b\u6b64\u540e\u200b\u5bf9\u5e94\u200b\u9875\u200b\u5df2\u6709\u200b\u6620\u5c04\u200b\n- `ENTRY`: \u200b\u6062\u590d\u200b\u6267\u884c\u200b\uff0c\u200b\u6b64\u540e\u200b\u8c03\u5ea6\u200b\u6216\u8005\u200b\u9047\u5230\u200b\u65b0\u200b\u7684\u200b\u7f3a\u9875\u200b\u5747\u200b\u540c\u4e0a\u200b\u5904\u7406\u200b\n
\u200b\u6587\u6863\u200b\u4e2d\u200b\u6307\u51fa\u200b\uff0c\u200b\u7531\u200b\u7528\u6237\u200b\u53d1\u8d77\u200b\u7684\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5728\u200b_traps
\u200b\u5f00\u5934\u200b\u5207\u6362\u200b\u5230\u200b\u5185\u6838\u200b\u6808\u200b\uff0c\u200b\u4f46\u662f\u200b\u5bf9\u4e8e\u200b\u5185\u6838\u200b\u53d1\u8d77\u200b\u7684\u200b\u4e2d\u65ad\u200b\u5c31\u200b\u4e0d\u200b\u9700\u8981\u200b\u3002\u200b\u800c\u200b\u8981\u200b\u5224\u65ad\u200b\u4e2d\u65ad\u200b\u662f\u5426\u200b\u7531\u200b\u5185\u6838\u200b\u53d1\u8d77\u200b\u5c31\u8981\u200b\u5224\u65ad\u200bsscratch
\u200b\u662f\u5426\u200b\u4e3a\u200b0\uff0c\u200b\u5728\u200blab4\u200b\u4e2d\u200b\u6211\u200b\u628a\u200bt0\u200b\u538b\u6808\u200b\u540e\u200b\u7528\u200bt0\u200b\u6765\u200b\u68c0\u9a8c\u200b\u3002
\u200b\u4f46\u662f\u200b\u5728\u200blab5\u200b\u4e2d\u200b\u8fd9\u200b\u4e00\u200b\u65b9\u6cd5\u200b\u884c\u4e0d\u901a\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5f53\u200b\u6211\u4eec\u200b\u8bd5\u56fe\u200b\u628a\u200bt0\u200b\u538b\u6808\u200b\u7684\u200b\u65f6\u5019\u200b\u6211\u4eec\u200b\u7684\u200b\u6808\u200b\u53ef\u80fd\u200b\u6839\u672c\u5c31\u662f\u200b\u6ca1\u200b\u5206\u914d\u200b\u7684\u200b\u7528\u6237\u200b\u6808\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u538b\u6808\u200b\u7684\u200b\u884c\u4e3a\u200b\u53ea\u4f1a\u200b\u5f15\u53d1\u200b\u65b0\u200b\u7684\u200bPAGE FAULT\uff0c\u200b\u5982\u6b64\u200b\u6c38\u8fdc\u200b\u5faa\u73af\u200b\u3002
\u200b\u4e3a\u4e86\u200b\u5bfb\u627e\u200b\u89e3\u51b3\u200b\u65b9\u6cd5\u200b\u53ef\u4ee5\u200b\u5148\u200b\u8bd5\u56fe\u200b\u53bb\u200b\u67e5\u770b\u200blinux\u200b\u65f6\u200b\u5982\u4f55\u200b\u89e3\u51b3\u200b\u8fd9\u4e00\u200b\u95ee\u9898\u200b\u7684\u200b\uff0c\u200b\u8fd9\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4ee3\u7801\u200b
\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200blinux\u200b\u4f7f\u7528\u200b\u4e86\u200btp\uff08thread pointer\uff09\u200b\u4ee5\u53ca\u200b\u6307\u4ee4\u200bcsrwr
,\u200b\u524d\u8005\u200b\u5012\u200b\u4e0d\u662f\u200b\u5fc5\u8981\u200b\u7684\u200b\u4f7f\u7528\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3b\u8981\u200b\u5173\u6ce8\u200b\u5230\u200bcsrwr
\u200b\u6307\u4ee4\u200b\u53ef\u4ee5\u200b\u5b9e\u73b0\u200bcsr\u200b\u4e0e\u200b\u5176\u4ed6\u200b\u5bc4\u5b58\u5668\u200b\u7684\u200b\u4ea4\u6362\u200b\uff0c\u200b\u4ece\u800c\u200b\u6211\u4eec\u200bsp\u200b\u4e0e\u200bsscratch
\u200b\u7684\u200b\u5207\u6362\u200b\u5c31\u200b\u4e0d\u200b\u9700\u8981\u200b\u5176\u4ed6\u200b\u5bc4\u5b58\u5668\u200b\u4e86\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u6b63\u786e\u200b\u7684\u200b\u89e3\u51b3\u200b\u65b9\u5f0f\u200b\u3002
\u200b\u5904\u7406\u200b\u7f3a\u9875\u200b\u5f02\u5e38\u200b\u65f6\u8981\u200b\u4ed4\u7ec6\u200b\u5904\u7406\u200b\u6587\u4ef6\u200b\u9875\u200b\u7684\u200b\u590d\u5236\u200b\u95ee\u9898\u200b\uff0c\u200b\u5982\u679c\u200b\u8981\u200b\u590d\u5236\u200b\u7684\u200b\u4e00\u9875\u200b\u4e2d\u200b\u65e2\u6709\u200bfile_content\uff0c\u200b\u4e5f\u200b\u6709\u200b\u4e00\u4e9b\u200b\u4e0d\u200b\u5728\u200bfile\u200b\u4e4b\u4e2d\u200b\u7684\u200b\uff08\u200b\u5982\u200bbss\u200b\u6bb5\u200b\uff09\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u9700\u8981\u200b\u5206\u522b\u200b\u5904\u7406\u200b\u8fd9\u200b\u4e24\u6bb5\u200b\uff0c\u200b\u524d\u8005\u200b\u590d\u5236\u200b\uff0c\u200b\u540e\u8005\u200b\u6e05\u96f6\u200b\u3002
\u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u79cd\u200b\u5904\u7406\u200b\u601d\u8def\u200b\uff1a
bad_addr
\u200b\u6240\u5728\u200b\u9875\u200b\u7684\u200b\u5f00\u5934\u200b\u548c\u200b\u7ed3\u5c3e\u200b\u4e3a\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u62f7\u8d1d\u200b\u8d77\u200b\u5730\u5740\u200b\u548c\u200b\u7ec8\u200b\u5730\u5740\u200bvm_start
vm_start + vm_content_size_in_file
vm_start + vm_content_size_in_file
\u200b\u5728\u200bkernel\u200b\u7ec8\u200b\uff0c\u200b\u6211\u4eec\u200b\u5206\u914d\u200b\u4e86\u200b\u4e00\u200b\u6574\u9875\u200b\uff0c\u200b\u5176\u4e2d\u200b\u7684\u200b\u4f4e\u200b\u5730\u5740\u200b\u653e\u200b\u4e86\u200b\u4e2a\u200btask_struct\uff0c\u200b\u9ad8\u200b\u5730\u5740\u200b\u5c31\u662f\u200b\u6808\u9876\u200b\uff08\u200b\u5982\u4e0b\u200b\u56fe\u200b\uff0c\u200b\u6765\u81ea\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff09\u3002\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u7a0d\u5fae\u200b\u9650\u5236\u200b\u4e00\u4e0b\u200bvmas\u200b\u7684\u200b\u5927\u5c0f\u200b\uff0c\u200b\u4e0d\u80fd\u200b\u628a\u200b\u5206\u914d\u200b\u7684\u200b\u4e00\u9875\u200b\u5168\u7ed9\u200b\u7528\u200b\u4e86\u200b\uff0c\u200b\u8fd8\u8981\u200b\u7559\u70b9\u200b\u7ed9\u200b\u6808\u7528\u200b\u3002
\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u25c4\u2500\u2500\u2500 High Address\n \u2502 \u2502\n \u2502 stack \u2502\n \u2502 \u2502\n \u2502 \u2502\n sp \u2500\u2500\u25ba\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n \u2502 \u2502 \u2502\n \u2502 \u25bc \u2502\n \u2502 \u2502\n \u2502 \u2502\n \u2502 \u2502\n \u2502 \u2502\n 4KB Page \u2502 \u2502\n \u2502 \u2502\n \u2502 \u2502\n \u2502 \u2502\n \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n \u2502 \u2502\n \u2502 \u2502\n \u2502 task_struct \u2502\n \u2502 \u2502\n \u2502 \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u25c4\u2500\u2500\u2500 Low Address\n
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab6 fork","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi` \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n - `setup_vm`: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n - `relocate`: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n - `mm_init`: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n - `setup_vm_final`: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n - `task_init`: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n- `start_kernel`: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- `schedule`: \u200b\u6839\u636e\u200bpolicy\u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b,\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- `switch_to`: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200bPCB\u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- `__switch_to`: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB\n- `__dummy`: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b USER_START\n- `ENTRY`: PC\u200b\u8df3\u8f6c\u200b\u81f3\u200bENTRY\uff0c\u200b\u4f46\u662f\u200b\u6b64\u65f6\u200b\u8be5\u9875\u200b\u7684\u200b\u6620\u5c04\u200b\u5e76\u672a\u200b\u5b8c\u6210\u200b\uff0cPAGE FAULT\n- `_traps`: PAGE FAULT\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\u8fdb\u5165\u200btrap_handler\n- `trap_handler`: \u200b\u786e\u8ba4\u200b\u662f\u200bPAGE FAULT\u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200bdo_page_fault\n- `do_page_fault`: \u200b\u6839\u636e\u200bcurrent\u200b\u7684\u200bvma\u200b\u786e\u8ba4\u200b\u662f\u200b\u6bb5\u200b\u9519\u8bef\u200b\u3001\u200b\u6587\u4ef6\u200b\u9875\u200b\u7f3a\u9875\u200b\u8fd8\u662f\u200b\u533f\u540d\u200b\u9875\u200b\u7f3a\u9875\u200b\uff0c\u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\uff0c\u200b\u586b\u5199\u5185\u5bb9\u200b\uff0c\u200b\u586b\u5199\u200b\u9875\u8868\u200b\uff0c\u200b\u8fd4\u56de\u200b\n- `_traps`: \u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b\uff0c\u200b\u6b64\u540e\u200b\u5bf9\u5e94\u200b\u9875\u200b\u5df2\u6709\u200b\u6620\u5c04\u200b\n- `ENTRY`: \u200b\u6062\u590d\u200b\u6267\u884c\u200b\uff0c\u200b\u76f4\u5230\u200b\u8c03\u7528\u200bfork\n- `_traps`: \u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u8fdb\u5165\u200btrap_handler\n- `trap_handler`: \u200b\u786e\u8ba4\u200b\u662f\u200bfork\u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200bsys_clone\n- `sys_clone`: \u200b\u8fdb\u884c\u200b\u4e00\u5b9a\u200b\u7684\u200b\u62f7\u8d1d\u200b\u4ee5\u200b\u521d\u59cb\u5316\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u521d\u59cb\u5316\u200b\u5b8c\u6210\u200b\u540e\u200b\u52a0\u5165\u200b\u8c03\u5ea6\u200b\u961f\u5217\u200b\n - \u200b\u5c06\u7236\u200b\u8fdb\u7a0b\u200bkernel stack \u200b\u6240\u5728\u200b\u9875\u200b\u62f7\u8d1d\u200b\u4e00\u4efd\u200b\u7ed9\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5305\u62ec\u200b\n - task_struct: \u200b\u4f4d\u4e8e\u200b\u8be5\u9875\u200b\u4f4e\u200b\u5730\u5740\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5185\u5bb9\u200b\u5728\u200b__switch_to\u200b\u5230\u200b\u81f3\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u65f6\u5019\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u9879\u200b\u9700\u8981\u200b\u6539\u52a8\u200b\n - pid: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u65b0\u200bpid\n - thread.sp: \u200b\u6362\u5230\u5b50\u200b\u8fdb\u7a0b\u200b\u540e\u200b\u7cfb\u7edf\u200b\u6808\u200b\u7684\u200b\u8d77\u59cb\u200b\u5730\u5740\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5207\u6362\u200b\u8fc7\u6765\u200b\u65f6\u6808\u200b\u5185\u200b\u5df2\u6709\u200b\u6570\u636e\u200b\n - thread.ra: __switch_to\u200b\u5230\u5b50\u200b\u8fdb\u7a0b\u200b\u540e\u200b\u7684\u200b\u8fd4\u56de\u200b\u5730\u5740\u200b\n - thread.sscratch: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u5728\u200b\u5185\u6838\u200b\u6001\u200b\u7684\u200bsscratch\uff0c\u200b\u5728\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u200b\u65f6\u4f1a\u200b\u4e0e\u200bsp\u200b\u4ea4\u6362\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5b9e\u8d28\u200b\u662f\u5b50\u200b\u8fdb\u7a0b\u200b\u7528\u6237\u200b\u6001\u200b\u7684\u200bsp (1)\n - satp: \u200b\u6839\u636e\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u9875\u8868\u200b\u4fee\u6539\u200b\n - pgd: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u9875\u8868\u200b\n - pt_regs: \u200b\u4f4d\u4e8e\u200b\u8be5\u9875\u200b\u9ad8\u200b\u5730\u5740\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5185\u5bb9\u200b\u5728\u5b50\u200b\u8fdb\u7a0b\u200b\u4ece\u200b\u5185\u6838\u200b\u6001\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u65f6\u200b\u5c06\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u9879\u200b\u9700\u8981\u200b\u6539\u52a8\u200b \n - a0: \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u540e\u200b\u643a\u5e26\u200b\u7684\u200b\u8c03\u7528\u200b\u8fd4\u56de\u503c\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u5f97\u5230\u200b\u7684\u200bfork\u200b\u8fd4\u56de\u503c\u200b\uff0c0\n - sepc: fork\u200b\u5bf9\u5e94\u200becall\u200b\u7684\u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\n- `_traps`: \u200b\u7236\u200b\u8fdb\u7a0b\u200bfork\u200b\u5b8c\u6bd5\u200b\uff0c\u200b\u643a\u5e26\u200b\u5b50\u200b\u8fdb\u7a0b\u200bpid\u200b\u6062\u590d\u200b\u7528\u6237\u200b\u6001\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b\n- `fork`: \u200b\u56de\u5230\u200b\u7528\u6237\u200b\u6001\u200b\uff0c\u200b\u7ee7\u7eed\u6267\u884c\u200b\u76f4\u5230\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u8d70\u200b,\u200b\u968f\u540e\u200b\u8c03\u5ea6\u200b\u7b97\u6cd5\u200b\u9009\u62e9\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\n
\u200b\u6211\u4eec\u200b\u7684\u200btask\u200b\u6570\u7ec4\u200b\u5927\u5c0f\u200b\u662f\u200bNR_TASKS
,\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u505a\u5230\u200b
Abstract
\u200b\u4ecb\u7ecd\u200b\u4e86\u200b lambda \u200b\u6f14\u7b97\u200b\u4e2d\u200b\u7684\u200b Y-combinator\uff0c\u200b\u4e3b\u8981\u200b\u662f\u200b\u5e0c\u671b\u200b\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\u6765\u200b\u5e2e\u52a9\u200b\u7406\u89e3\u200b
\u200b\u9996\u5148\u200b\u8bf7\u200b\u770b\u200b xg\u200b\u7684\u200b\u7b14\u8bb0\u200b\u8fd9\u91cc\u200b\uff0c\u200b\u63a8\u5bfc\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u8bb2\u200b\u7684\u200b\u5f88\u200b\u6e05\u695a\u200b\u4e86\u200b
\u200b\u8fd9\u91cc\u200b\u4e3b\u8981\u200b\u8ba8\u8bba\u200b\u53e6\u5916\u200b\u51e0\u4e2a\u200b\u95ee\u9898\u200b
"},{"location":"blog/y-combinator-%E4%B8%8E%E9%80%92%E5%BD%92/#y-combinator_1","title":"\u4e0d\u7528\u200b Y-combinator \u200b\u53ef\u4ee5\u200b\u5417","text":"\u200b\u5f53\u7136\u200b\u53ef\u4ee5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u6587\u4e2d\u200b\u7684\u200bproto proto
\u200b\u672c\u6765\u200b\u5c31\u662f\u200b\u7b49\u4ef7\u200b\u4e8e\u200bY u
\u200b\u7684\u200b\uff0c\u200b\u8981\u200b\u7528\u200b\u8fd9\u79cd\u200b\u65b9\u5f0f\u200b\u5b9e\u73b0\u200b\u9012\u5f52\u200b\u4e3b\u8981\u200b\u8d70\u200b\u4ee5\u4e0b\u200b\u56db\u6b65\u200b
\u200b\u76f4\u63a5\u200b\u770b\u200b\u8fd9\u200b\u73a9\u610f\u200b\u8fd8\u662f\u200b\u6709\u70b9\u200b\u62bd\u8c61\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\u6765\u200b\u770b\u770b\u200b\u8fd9\u4e2a\u200b\u4e1c\u897f\u200b\u6709\u200b\u54ea\u4e9b\u200b\u6027\u8d28\u200b\uff0c\u200b\u800c\u200b\u820d\u53bb\u200b\u4e2d\u95f4\u200b\u5316\u7b80\u200b\u7684\u200b\u7ec6\u8282\u200b
\\(fact_3\\ fact_3\\ 0 \\rightarrow 1\\)\\(fact_3\\ fact_3\\ 2 \\rightarrow *\\ 2\\ (fact_3\\ fact_3\\ 1)\\) \\[\\begin{align} &fact_3\\ fact_3\\ 0 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ f\\ (pred\\ n))))\\ fact_3\\ 0 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (fact_3\\ fact_3\\ (pred\\ n))))\\ 0 \\\\ =& is0\\ 0\\ 1\\ ( *\\ 0\\ (fact_3\\ fact_3\\ (pred\\ 0))) \\\\ =& 1 \\end{align}\\] \\[\\begin{align} &fact_3\\ fact_3 2 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ f\\ (pred\\ n))))\\ fact_3\\ 2 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (fact_3\\ fact_3\\ (pred\\ n))))\\ 2 \\\\ =& is0\\ 2\\ 1\\ ( *\\ 2\\ (fact_3\\ fact_3\\ (pred\\ 2))) \\\\ =& *\\ 2\\ (fact_3\\ fact_3\\ 1) \\\\ \\end{align}\\]\u200b\u4ee5\u4e0a\u200b\uff0c\u200b\u7b2c\u4e00\u4e2a\u200b\u6027\u8d28\u200b\u662f\u200b base case\uff0c\u200b\u7b2c\u4e8c\u4e2a\u200b\u6027\u8d28\u200b\u662f\u200b indection case\uff0c\u200b\u53ef\u4ee5\u200b\u663e\u7136\u200b\u770b\u51fa\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b
"},{"location":"blog/y-combinator-%E4%B8%8E%E9%80%92%E5%BD%92/#y-combinator_2","title":"Y-combinator \u200b\u7684\u200b\u5b9e\u4f8b","text":"\u200b\u4e0a\u9762\u200b\u90a3\u6837\u200b\u5df2\u7ecf\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b\uff0c\u200b\u4e3a\u4ec0\u4e48\u200b\u8fd8\u200b\u9700\u8981\u200b Y-combinator? \u200b\u56e0\u4e3a\u200b\u4e0a\u9762\u200b\u7684\u200b\u5b9e\u73b0\u200b\u65b9\u6cd5\u200b\u4e2d\u200b\u9012\u5f52\u200b\u7684\u200b\u903b\u8f91\u200b\u548c\u200b\u51fd\u6570\u200b\u7684\u200b\u903b\u8f91\u200b\u6df7\u5728\u200b\u4e86\u200b\u4e00\u8d77\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u9012\u5f52\u200b\u7684\u200b\u903b\u8f91\u200b\u62bd\u8c61\u200b\u6210\u200b Y\uff0c\u200b\u628a\u200b\u51fd\u6570\u200b\u7684\u200b\u903b\u8f91\u200b\u62bd\u8c61\u200b\u6210\u200b u\uff0c\u200b\u5bf9\u200b Y \u200b\u5e94\u7528\u200b u \u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u9012\u5f52\u200b\u7684\u200b u.\u200b\u5177\u4f53\u6765\u8bf4\u200b\u53ef\u4ee5\u200b\u5206\u6210\u200b\u4ee5\u4e0b\u200b\u4e09\u6b65\u200b
\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u7b80\u6d01\u200b\u4e86\u200b\u8bb8\u591a\u200b\uff0c\u200b\u4e0b\u9762\u200b\u518d\u200b\u6765\u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b Y-combinator \u200b\u672c\u8eab\u200b\uff0c\u200b\u76f4\u63a5\u200b\u770b\u200b\u4ed6\u200b\u7684\u200b\u5185\u5bb9\u200b\u7684\u8bdd\u200b\u4e5f\u200b\u662f\u200b\u4e00\u200b\u5768\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5229\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\uff0c\u200b\u4e0d\u7ba1\u200b\u4ed6\u200b\u7684\u200b\u5185\u5bb9\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u5728\u4e4e\u200b\u5316\u7b80\u200b\u7684\u200b\u7ec6\u8282\u200b\uff0c\u200b\u53ea\u200b\u770b\u200b\u51e0\u4e2a\u200b\u6027\u8d28\u200b\uff1a
\\(Y\\ fact_2 \\rightarrow fact_2\\ (Y\\ fact_2)\\)\\(Y\\ fact_2\\ 0 \\rightarrow 1\\)\\(Y\\ fact_2\\ 2 \\rightarrow *\\ 2\\ (Y\\ fact_2\\ 1)\\) \\[\\begin{aligned} &Y\\ fact_2 \\\\ =& (\\lambda f. fact_2\\ (f\\ f)) (\\lambda f. fact_2\\ (f\\ f)) \\\\ =& fact_2\\ ((\\lambda f. fact_2\\ (f\\ f)) (\\lambda f. fact_2\\ (f\\ f))) \\\\ =& fact_2\\ (Y\\ fact_2) \\\\ \\end{aligned}\\] \\[\\begin{aligned} &Y\\ fact_2\\ 0 \\\\ =& fact_2\\ (Y\\ fact_2)\\ 0 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ (pred\\ n))))\\ (Y\\ fact_2)\\ 0 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ ((Y\\ fact_2)\\ (pred\\ n))))\\ 0 \\\\ =& is0\\ 0\\ 1\\ ( *\\ 0\\ ((Y\\ fact_2)\\ (pred\\ 0))) \\\\ =& 1 \\end{aligned}\\] \\[\\begin{aligned} &Y\\ fact_2\\ 2 \\\\ =& fact_2\\ (Y\\ fact_2)\\ 2 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1 ( *\\ n\\ (f\\ (pred\\ n)))) (Y\\ fact_2)\\ 2 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ ((Y\\ fact_2)\\ (pred\\ n))))\\ 2 \\\\ =& is0\\ 2\\ 1\\ ( *\\ 2\\ ((Y\\ fact_2)\\ (pred\\ 2))) \\\\ =& *\\ 2\\ (Y\\ fact_2\\ 1) \\end{aligned}\\]\u200b\u4ee5\u4e0a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u5176\u200b\u6027\u8d28\u200b\u6709\u200b
\u200b\u4ee5\u4e0a\u200b\u63a8\u5bfc\u200b\u7684\u200b\u6bd4\u8f83\u200b\u540a\u200b\u8be1\u200b\u7684\u200b\u5730\u65b9\u200b\u662f\u200b\u9700\u8981\u200b\u4ee5\u200b\u8fd9\u79cd\u200b\u8fd0\u7b97\u200b\u987a\u5e8f\u200b\u624d\u200b\u597d\u200b\u51fa\u200b\u7ed3\u679c\u200b\uff0c\u200b\u867d\u7136\u200b\u6211\u4eec\u200b\u8fd9\u91cc\u200b\u5bf9\u200b\u6709\u200b\u597d\u51e0\u4e2a\u200b\u5b50\u9879\u200b\u7684\u200b\u65f6\u5019\u200b\u5148\u200b\u6f14\u7b97\u200b\u4ec0\u4e48\u200b\u5e76\u200b\u6ca1\u6709\u200b\u89c4\u5b9a\u200b
\u200b\u6709\u200b\u4ee5\u4e0a\u200b\u6027\u8d28\u200b\uff0c\u200b\u6beb\u65e0\u7591\u95ee\u200b\\(Y fact_2\\)\u200b\u4e5f\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b
Reference
Abstract
markdown \u200b\u771f\u200b\u65b9\u4fbf\u200b\u554a\u200b\u771f\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb2\u200b\u4e86\u200b\u600e\u4e48\u200b\u5728\u200b VSCode \u200b\u4e0a\u200b\u914d\u7f6e\u200b\u4e00\u4e2a\u200b\u597d\u7528\u200b\u7684\u200b\u5199\u200b markdown \u200b\u7684\u200b\u73af\u5883\u200b
"},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%8A%E5%86%99-markdown/#_1","title":"\u8d77\u6b65","text":"\u200b\u9996\u5148\u200b\u542f\u7528\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u4e24\u4e2a\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5f00\u59cb\u200b\u5199\u200b markdown\uff0c\u200b\u5e76\u200b\u5728\u200b\u53f3\u4fa7\u200b\u9884\u89c8\u200b\u4e86\u200b
\u200b\u6548\u679c\u56fe\u200b
\u200b\u6ce8\u610f\u200b\u9884\u89c8\u200b\u9700\u8981\u200b\u5728\u200b\u7f16\u8f91\u5668\u200b\u53f3\u4e0a\u89d2\u200b\u70b9\u51fb\u200b\u9884\u89c8\u200b\u6309\u94ae\u200b\u5f00\u542f\u200b\u6216\u8005\u200b\u4f7f\u7528\u200b\u5feb\u6377\u952e\u200b
\u200b\u5982\u679c\u200b\u9700\u8981\u200b\u4fdd\u5b58\u200b\u6210\u200b PDF \u200b\u6216\u8005\u200b\u522b\u7684\u200b\u683c\u5f0f\u200b\uff0c\u200b\u5728\u200b\u9884\u89c8\u200b\u754c\u9762\u200b\u53f3\u952e\u200b\u5c31\u200b\u597d\u200b\uff0cChrome \u200b\u4e00\u680f\u200b\u7684\u200b\u4e09\u4e2a\u200b\u9009\u9879\u200b\u90fd\u200b\u662f\u200b\u4e0d\u200b\u9700\u8981\u200b\u989d\u5916\u200b\u5b89\u88c5\u200b\u7684\u200b\uff1a
\u200b\u6570\u5b66\u516c\u5f0f\u200b\u6e32\u67d3\u200b\u95ee\u9898\u200b\u200b\u6709\u65f6\u5019\u200b\u4fdd\u5b58\u200b\u6210\u200b PDF \u200b\u65f6\u4f1a\u200b\u53d1\u73b0\u200b\u6570\u5b66\u516c\u5f0f\u200b\u6e32\u67d3\u200b\u5931\u8d25\u200b\u4e86\u200b\uff0c\u200b\u8c03\u67e5\u200b\u4e86\u200b\u4e00\u4e0b\u200b\u53d1\u73b0\u200b\u662f\u200b\u751f\u6210\u200b\u7684\u200b\u901f\u5ea6\u200b\u592a\u5feb\u200b\u4e86\u200b\u6570\u5b66\u516c\u5f0f\u200b\u6765\u4e0d\u53ca\u200b\u6e32\u67d3\u200b\uff0c\u200b\u8c03\u8282\u200b\u4ee5\u4e0b\u200b\u53c2\u6570\u200b\u53ef\u4ee5\u200b\u89e3\u51b3\u95ee\u9898\u200b\uff1a
"},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%8A%E5%86%99-markdown/#_2","title":"\u5feb\u6377\u200b\u5730\u200b\u63d2\u5165\u200b\u56fe\u7247","text":"\u200b\u5c31\u200b\u6700\u200b\u539f\u6559\u65e8\u4e3b\u4e49\u200b\u7684\u200b\u63d2\u5165\u65b9\u5f0f\u200b\u800c\u8a00\u200b\uff0c\u200b\u9700\u8981\u200b\u628a\u200b\u56fe\u7247\u200b\u4fdd\u5b58\u200b\u5230\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u5939\u200b\uff0c\u200b\u8d77\u597d\u200b\u540d\u5b57\u200b\uff0c\u200b\u518d\u200b\u5229\u7528\u200b![](url)
\u200b\u683c\u5f0f\u200b\u63d2\u5165\u200b\uff0c\u200b\u6b65\u9aa4\u200b\u76f8\u5f53\u200b\u7e41\u7410\u200b\uff0c\u200b\u8ddf\u200b Word \u200b\u7684\u200b\u56fe\u7247\u200b\u63d2\u5165\u200b\u5b8c\u5168\u200b\u662f\u200b\u4e24\u4e2a\u200b\u91cf\u7ea7\u200b\u7684\u200b\u5de5\u4f5c\u91cf\u200b.
\u200b\u63a8\u8350\u200b\u4f7f\u7528\u200bPaste Image\u200b\u63d2\u4ef6\u200b\uff1a
\u200b\u4fee\u6539\u200b\u5982\u4e0b\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff1a \u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u56fe\u7247\u200b\u63d2\u5165\u200b\u5230\u200b\u5f53\u524d\u200b md \u200b\u6587\u4ef6\u200b\u4e0b\u200b\u7684\u200b images/mdfilename/time.png \u200b\u4f4d\u7f6e\u200b.
\u200b\u7528\u200b\u7cfb\u7edf\u200b\u81ea\u5e26\u200b\u7684\u200b\u622a\u5c4f\u200b\u5de5\u5177\u200b\u622a\u5c4f\u200b\u5230\u200b\u7c98\u8d34\u677f\u200b\u540e\u200b Command+Option+v \u200b\u5373\u53ef\u200b\u5b58\u5165\u200b\u6587\u4ef6\u5939\u200b\u5e76\u200b\u81ea\u52a8\u200b\u5f15\u7528\u200b\u6b63\u786e\u200b\u7684\u200b\u8def\u5f84\u200b.
\u200b\u8bbe\u7f6e\u200b\u9ed8\u8ba4\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b\u200b\u672c\u4eba\u200b\u4f7f\u7528\u200b mkdocs for material \u200b\u642d\u5efa\u200b\u6b64\u200b\u7f51\u9875\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7ed9\u200b\u6b64\u200b\u63d2\u4ef6\u200b\u6dfb\u52a0\u200b\u7684\u200b\u56fe\u7247\u200b\u6dfb\u52a0\u200b\u7edf\u4e00\u200b\u6837\u5f0f\u200b\uff1a
img[src*=\"pic\"] {\nbox-shadow: 4px 4px 15px #666;\nborder-radius: 10px;\n}\n
extra_css:\n- css/extra.css\n
\"pasteImage.suffix\": \"#pic\"\n
Abstract
\u200b\u7528\u200b conda \u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u7684\u200b\u4e00\u4e2a\u200b\u795e\u79d8\u200b\u95ee\u9898\u200b\ud83e\udd14
\u200b\u6700\u8fd1\u200b\u5f00\u59cb\u200b\u4f7f\u7528\u200b conda\uff0c\u200b\u8bd5\u56fe\u200b\u5728\u200b VSCode \u200b\u7ec8\u7aef\u200b\u91cc\u200b\u5207\u6362\u200b\u865a\u62df\u73af\u5883\u200b\uff0c\u200b\u547d\u4ee4\u884c\u200b\u63d0\u793a\u200b\u5df2\u7ecf\u200b\u5207\u6362\u200b\uff0c\u200b\u4f46\u662f\u200b python \u200b\u73af\u5883\u200b\u5b9e\u9645\u4e0a\u200b\u6ca1\u6709\u200b\u53d8\u200b. \u200b\u89e3\u51b3\u65b9\u6848\u200b\u5982\u4e0b\u200b\uff1a
command shift p
\uff0c\u200b\u641c\u7d22\u200b settings\uff0c\u200b\u6253\u5f00\u200b user settings json \"terminal.integrated.env.osx\": {\n \"PATH\": \"\"\n }\uff0c\n
Abstract
\u200b\u4f17\u6240\u5468\u77e5\u200b\u4e2d\u82f1\u6587\u200b\u6df7\u6742\u200b\u7684\u200b\u6392\u7248\u200b\u5176\u5b9e\u200b\u662f\u200b\u6709\u200b\u8bb2\u7a76\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b\u5b9e\u9645\u64cd\u4f5c\u200b\u8d77\u6765\u200b\u8f93\u5165\u6cd5\u200b\u5207\u6765\u5207\u200b\u53bb\u200b\u9ebb\u70e6\u200b\u5f97\u200b\u5f88\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb2\u200b\u7684\u200b\u662f\u200b\u7528\u200b vim \u200b\u7684\u200b Pangu \u200b\u63d2\u4ef6\u200b\u6765\u200b\u6279\u91cf\u200b\u81ea\u52a8\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u65b9\u6cd5\u200b
"},{"location":"blog/%E7%94%A8-vim-%E6%89%B9%E9%87%8F%E6%A0%BC%E5%BC%8F%E5%8C%96/#vim-pangu","title":"\u5b89\u88c5\u200b Vim \u200b\u5de5\u5177\u200b Pangu","text":"\u200b\u9996\u5148\u200b\u5b89\u88c5\u200b vim-plug\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u53ef\u4ee5\u200b\u5e2e\u52a9\u200b\u6211\u4eec\u200b\u65b9\u4fbf\u200b\u7684\u200b\u5b89\u88c5\u200b vim \u200b\u63d2\u4ef6\u200b\u7684\u200b\u63d2\u4ef6\u200b
\u200b\u968f\u540e\u200b\u5b89\u88c5\u200b Pangu \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5728\u200b ~/.vimrc \u200b\u4e2d\u200b\u6dfb\u52a0\u200b
Plug 'hotoo/pangu.vim'\uff0c { 'for': ['markdown'\uff0c 'vimwiki'\uff0c 'text'] }\nlet g:pangu_rule_date = 1\n
\u200b\u968f\u540e\u200b\u5728\u200b vim \u200b\u4e2d\u200b\u6267\u884c\u200b:PlugInstall
\u200b\u5373\u53ef\u200b\u5b89\u88c5\u200b
Pangu \u200b\u7684\u200b \u200b\u5b98\u65b9\u200b\u9996\u9875\u200b\u4e0a\u200b\u5df2\u7ecf\u200b\u6709\u200b\u6bd4\u8f83\u200b\u8be6\u7ec6\u200b\u7684\u200b\u8bf4\u660e\u200b\u4e86\u200b\uff0c\u200b\u60f3\u8981\u200b\u542f\u7528\u200b\u5176\u4e2d\u200b\u7684\u200b\u529f\u80fd\u200b\u7167\u7740\u200b\u505a\u200b\u5c31\u662f\u200b\u4e86\u200b
"},{"location":"blog/%E7%94%A8-vim-%E6%89%B9%E9%87%8F%E6%A0%BC%E5%BC%8F%E5%8C%96/#pangu","title":"\u6279\u91cf\u200b\u4f7f\u7528\u200b Pangu \u200b\u683c\u5f0f\u5316","text":"\u200b\u9996\u5148\u200b\u7528\u200b vim \u200b\u6279\u91cf\u200b\u6253\u5f00\u200b\u60f3\u8981\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u6587\u4ef6\u200b
vim *.md\n
\u200b\u90a3\u4e48\u200b\u6240\u6709\u200b\u7b26\u5408\u200b\u683c\u5f0f\u200b\u7684\u200b\u6587\u4ef6\u200b\u90fd\u200b\u88ab\u200b\u6253\u5f00\u200b\u5728\u200b\u7f13\u5b58\u200b(buffer)\u200b\u4e2d\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b:ls
\u200b\u6765\u200b\u67e5\u770b\u200b\uff0c\u200b\u7528\u200b:n
\u200b\u6765\u200b\u5207\u6362\u200b
\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b vim \u200b\u7684\u200b\u7f13\u5b58\u200b\u548c\u200b\u6587\u4ef6\u200b\u7684\u200b\u5173\u7cfb\u200b\u7406\u89e3\u200b\u6210\u200b\u5185\u5b58\u200b\u548c\u200b\u78c1\u76d8\u200b\u7684\u200b\u5173\u7cfb\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b\u7f13\u5b58\u200b\u4e2d\u200b\u53ef\u4ee5\u200b\u4fee\u6539\u200b\u6587\u4ef6\u200b\uff0c\u200b\u4f46\u200b\u76f4\u5230\u200bw
\u200b\u4e4b\u524d\u200b\u90fd\u200b\u4e0d\u4f1a\u200b\u5199\u5165\u200b\u78c1\u76d8\u200b
\u200b\u8981\u200b\u6279\u91cf\u200b\u5904\u7406\u200b\uff0c\u200b\u4f7f\u7528\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b
:bufdo PanguAll | update\n:bufdo w\n:q\n
\u200b\u5176\u4e2d\u200b\u7684\u200b bufdo \u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u5bf9\u200b\u6240\u6709\u200b\u7f13\u5b58\u200b\u4e2d\u200b\u7684\u200b\u6587\u4ef6\u200b\u6267\u884c\u547d\u4ee4\u200b
\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u628a\u200b\u547d\u4ee4\u200b\u5199\u5165\u200b.vim
\u200b\u540e\u7f00\u200b\u7684\u200b\u811a\u672c\u200b\uff0c\u200b\u7136\u540e\u200b\u76f4\u63a5\u200b\u5728\u200b vim \u200b\u4e2d\u200b\u7528\u200b:source
\u200b\u6267\u884c\u200b\u811a\u672c\u200b\u5c31\u200b\u597d\u200b
Abstract
\u200b\u4e00\u4e2a\u200b\u7b80\u6613\u200b\u7684\u200b\u6559\u7a0b\u200b\u6765\u200b\u4ecb\u7ecd\u200b\u5982\u4f55\u200b\u5728\u200b MacOS \u200b\u4e0a\u7528\u200b docker \u200b\u642d\u5efa\u200b minisql \u200b\u73af\u5883\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6709\u4eba\u200b\u8981\u200b\u95ee\u200b\u4e86\u200b\uff0c\u200b\u4e3a\u4ec0\u4e48\u200b\u4e0d\u200b\u76f4\u63a5\u200b\u672c\u5730\u200b\u90e8\u7f72\u200b\u5462\u200b. \u200b\u6211\u200b\u4e5f\u200b\u60f3\u200b\u672c\u5730\u200b\u90e8\u7f72\u200b\u554a\u200b\uff0c\u200b\u4f46\u662f\u200b\u7f16\u8bd1\u200b\u8d77\u6765\u200b\u7834\u4e8b\u200b\u592a\u591a\u200b\u4e86\u200b\ud83d\ude05\uff0c\u200b\u7d22\u6027\u200b\u8bd5\u200b\u4e00\u79cd\u200b\u8de8\u5e73\u53f0\u200b\u7684\u200b\u65b9\u6848\u200b.
\u200b\u73af\u5883\u200b
MacOS: Ventura 13.4.1 Docker: 4.16.2 Ubuntu: 20.04
"},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#1","title":"1.\u200b\u542f\u52a8\u200b\u5bb9\u5668","text":""},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#11-docker","title":"1.1 \u200b\u4e0b\u8f7d\u200b Docker","text":"\u200b\u9996\u5148\u200b\u4f60\u200b\u8981\u200b\u6709\u200b docker \u200b\u8f6f\u4ef6\u200b\uff0c\u200b\u5148\u53bb\u200b\u5b98\u7f51\u200b\u4e0b\u200b\u4e00\u4e2a\u200b.
"},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#12","title":"1.2 \u200b\u62c9\u53d6\u200b\u955c\u50cf","text":"\u200b\u542f\u52a8\u200b docker \u200b\u8f6f\u4ef6\u200b.\u200b\u6765\u5230\u200b\u547d\u4ee4\u884c\u200b\u4e2d\u200b\u8f93\u5165\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b\u6765\u62c9\u53d6\u200b ubuntu:20.04 \u200b\u955c\u50cf\u200b\uff08minisql \u200b\u5f53\u524d\u200b\u63a8\u8350\u200b\u90e8\u7f72\u200b\u5728\u200b ubuntu:20.04\uff09\uff1a
docker pull ubuntu:20.04\n
\u200b\u955c\u50cf\u200b \u200b\u955c\u50cf\u200b\uff08Image\uff09\u200b\u662f\u200b\u4e00\u4e2a\u200b\u9759\u6001\u200b\u7684\u200b\u3001\u200b\u53ea\u8bfb\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5b83\u200b\u5305\u542b\u200b\u4e86\u200b\u64cd\u4f5c\u7cfb\u7edf\u200b\u3001\u200b\u6587\u4ef6\u7cfb\u7edf\u200b\u548c\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u7684\u200b\u6240\u6709\u200b\u6587\u4ef6\u200b\u548c\u200b\u8bbe\u7f6e\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u6784\u5efa\u200b\u5bb9\u5668\u200b\u7684\u200b\u57fa\u7840\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u4f5c\u200b\u662f\u200b\u4e00\u4e2a\u200b\u6a21\u677f\u200b\u6216\u8005\u200b\u84dd\u56fe\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u901a\u8fc7\u200b Dockerfile \u200b\u6587\u4ef6\u200b\u5b9a\u4e49\u200b\u548c\u200b\u6784\u5efa\u200b\u7684\u200b\uff0cDockerfile \u200b\u4e2d\u200b\u5305\u542b\u200b\u4e86\u200b\u4e00\u7cfb\u5217\u200b\u6307\u4ee4\u200b\u548c\u200b\u914d\u7f6e\u200b\uff0c\u200b\u7528\u4e8e\u200b\u521b\u5efa\u200b\u955c\u50cf\u200b.\u200b\u955c\u50cf\u200b\u53ef\u4ee5\u200b\u5b58\u50a8\u200b\u5728\u200b Docker Registry \u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u955c\u50cf\u200b\u540d\u79f0\u200b\u548c\u200b\u6807\u7b7e\u200b\u6765\u200b\u552f\u4e00\u200b\u6807\u8bc6\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u4e0d\u53ef\u200b\u4fee\u6539\u200b\u7684\u200b\uff0c\u200b\u5982\u679c\u200b\u9700\u8981\u200b\u5bf9\u200b\u955c\u50cf\u200b\u8fdb\u884c\u200b\u66f4\u6539\u200b\uff0c\u200b\u9700\u8981\u200b\u91cd\u65b0\u200b\u6784\u5efa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u955c\u50cf\u200b.
docker imagesdocker pulldocker rmi\u200b\u4f7f\u7528\u200bdocker images
\u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u5f53\u524d\u200b\u5df2\u6709\u200b\u7684\u200b\u955c\u50cf\u200b\u5217\u8868\u200b.\u200b\u8fd9\u200b\u5c06\u200b\u663e\u793a\u200b\u6240\u6709\u200b\u5df2\u200b\u4e0b\u8f7d\u200b\u548c\u200b\u6784\u5efa\u200b\u7684\u200b\u955c\u50cf\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5b83\u4eec\u200b\u7684\u200b\u76f8\u5173\u200b\u4fe1\u606f\u200b\uff0c\u200b\u5982\u200b\u955c\u50cf\u200b ID\u3001\u200b\u540d\u79f0\u200b\u3001\u200b\u6807\u7b7e\u200b\u3001\u200b\u5927\u5c0f\u200b\u7b49\u200b.
\u200b\u4f7f\u7528\u200bdocker pull
\u200b\u547d\u4ee4\u200b\u4ece\u200b Docker Registry \u200b\u4e2d\u62c9\u53d6\u200b\u955c\u50cf\u200b.\u200b\u5982\u679c\u200b\u4e0d\u200b\u6307\u5b9a\u200b\u6807\u7b7e\u200b\uff0c\u200b\u9ed8\u8ba4\u200b\u62c9\u53d6\u200b latest \u200b\u6807\u7b7e\u200b\u7684\u200b\u955c\u50cf\u200b.\u200b\u4f8b\u5982\u200b\uff0cdocker pull ubuntu:20.04
\u200b\u5c06\u62c9\u53d6\u200b Ubuntu 20.04 \u200b\u955c\u50cf\u200b.
\u200b\u4f7f\u7528\u200bdocker rmi
\u200b\u547d\u4ee4\u200b\u5220\u9664\u200b\u955c\u50cf\u200b.\u200b\u4f8b\u5982\u200b\uff0cdocker rmi ubuntu:20.04
\u200b\u5c06\u200b\u5220\u9664\u200b Ubuntu 20.04 \u200b\u955c\u50cf\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b ID \u200b\u6307\u5b9a\u200b\u8981\u200b\u5220\u9664\u200b\u7684\u200b\u955c\u50cf\u200b.
\u200b\u7528\u200bdocker run
\u200b\u542f\u52a8\u200b\u4e00\u4e2a\u200b\u5bb9\u5668\u200b\uff0c\u200b\u53c2\u6570\u200b-it
\u200b\u8868\u793a\u200b\u542f\u52a8\u200b\u5b8c\u540e\u200b\u76f4\u63a5\u200b\u542f\u52a8\u200b\u5bb9\u5668\u200b\u7684\u200b\u7ec8\u7aef\u200b\u4ee5\u4f9b\u200b\u64cd\u4f5c\u200b\uff0c-p
\u200b\u8868\u793a\u200b\u7aef\u53e3\u6620\u5c04\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u628a\u200b loclahost:2333 \u200b\u6620\u5c04\u200b\u4e3a\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\uff0c--name
\u200b\u540e\u63a5\u200b\u5bb9\u5668\u200b\u540d\u5b57\u200b\uff0cubuntu:20.04
\u200b\u8868\u793a\u200b\u4f7f\u7528\u200b\u7684\u200b\u955c\u50cf\u200b.
docker run -it -p 2333:22 --name minisql ubuntu:20.04\n
\u200b\u6267\u884c\u200b\u5b8c\u200b\u547d\u4ee4\u200b\u5e94\u200b\u770b\u5230\u200b\u6211\u4eec\u200b\u4ee5\u200b root \u200b\u7528\u6237\u200b\u8fdb\u5165\u200b\u4e86\u200b\u5bb9\u5668\u200b\u7684\u200b\u7ec8\u7aef\u200b\uff1a \u200b\u7aef\u53e3\u6620\u5c04\u200b \u200b\u7aef\u53e3\u6620\u5c04\u200b\u662f\u200b\u4e00\u79cd\u200b\u5c06\u200b\u4e3b\u673a\u200b\uff08\u200b\u5bbf\u4e3b\u673a\u200b\uff09\u200b\u7aef\u53e3\u200b\u4e0e\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u7aef\u53e3\u200b\u8fdb\u884c\u200b\u7ed1\u5b9a\u200b\u7684\u200b\u6280\u672f\u200b.\u200b\u5b83\u200b\u5141\u8bb8\u200b\u4ece\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u7684\u200b\u7279\u5b9a\u200b\u7aef\u53e3\u200b\u8bbf\u95ee\u200b\u5bb9\u5668\u200b\u5185\u200b\u8fd0\u884c\u200b\u7684\u200b\u670d\u52a1\u200b\u6216\u200b\u5e94\u7528\u7a0b\u5e8f\u200b.
\u200b\u5728\u200b Docker \u200b\u4e2d\u200b\uff0c\u200b\u901a\u8fc7\u200b\u4f7f\u7528\u200b-p
\u200b\u6216\u200b--publish
\u200b\u53c2\u6570\u200b\u6765\u200b\u8fdb\u884c\u200b\u7aef\u53e3\u6620\u5c04\u200b.\u200b\u53c2\u6570\u200b\u7684\u200b\u683c\u5f0f\u200b\u4e3a\u200b\u4e3b\u673a\u200b\u7aef\u53e3\u200b\uff1a\u200b\u5bb9\u5668\u200b\u7aef\u53e3\u200b\uff0c\u200b\u5176\u4e2d\u200b\u4e3b\u673a\u200b\u7aef\u53e3\u200b\u662f\u200b\u60a8\u200b\u5e0c\u671b\u200b\u5728\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u66b4\u9732\u200b\u7684\u200b\u7aef\u53e3\u53f7\u200b\uff0c\u200b\u5bb9\u5668\u200b\u7aef\u53e3\u200b\u662f\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u670d\u52a1\u200b\u6240\u200b\u76d1\u542c\u200b\u7684\u200b\u7aef\u53e3\u53f7\u200b.
docker run -it -p 2333:22 --name minisql ubuntu:20.04
\u200b\u547d\u4ee4\u200b\u5c06\u200b\u4e3b\u673a\u200b\u7684\u200b 2333 \u200b\u7aef\u53e3\u6620\u5c04\u200b\u5230\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b.\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u7684\u200b\u4efb\u4f55\u200b\u8bf7\u6c42\u200b\u53d1\u9001\u5230\u200b 2333 \u200b\u7aef\u53e3\u200b\u65f6\u200b\uff0c\u200b\u5c06\u200b\u88ab\u200b\u8f6c\u53d1\u200b\u5230\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\uff0c22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\u662f\u200b SSH \u200b\u4f7f\u7528\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u7aef\u53e3\u200b.\u200b\u56e0\u6b64\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u8bbf\u95ee\u200b\u4e3b\u673a\u200b\u7684\u200b 2333 \u200b\u7aef\u53e3\u200b\u6765\u200b\u8bbf\u95ee\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u8fd0\u884c\u200b\u7684\u200b SSH \u200b\u670d\u52a1\u200b\uff0c\u200b\u4ee5\u4fbf\u200b\u8fdb\u884c\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u548c\u200b\u64cd\u4f5c\u200b.
\u200b\u6709\u65f6\u5019\u200b\u76f4\u63a5\u200b\u6362\u6e90\u4f1a\u200b\u9047\u5230\u200b\u62a5\u9519\u200b\uff1a \u200b\u8fd9\u200b\u9700\u8981\u200b\u6211\u4eec\u200b\u5148\u200b\u4f7f\u7528\u200b http\uff0c\u200b\u8fd0\u884c\u200b\u5982\u4e0b\u200b\u547d\u4ee4\u200b\u6362\u200b http \u200b\u6e90\u200b\uff1a
echo \"\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n\" > /etc/apt/sources.list\n
\u200b\u8fd9\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b\u4e0b\u200b\u4e00\u6b65\u200b\u4e86\u200b\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u5e0c\u671b\u200b\u5728\u200b\u4e4b\u540e\u200b\u6362\u56de\u200b https \u200b\u6e90\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5728\u200b\u6267\u884c\u200b\u5b8c\u200b 2.2 \u200b\u540e\u200b\uff0c\u200b\u9700\u8981\u200b\u5148\u200b \u200b\u66f4\u65b0\u200b\u8bc1\u4e66\u200b\uff1a
apt install --reinstall ca-certificates\n
\u200b\u6362\u56de\u200b https \u200b\u6e90\u200b\uff1a echo \"\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n\" > /etc/apt/sources.list\n
\u200b\u518d\u6b21\u200b\u66f4\u65b0\u200b apt\uff1a apt update\napt upgrade\n
\u200b\u5373\u53ef\u200b\uff08\u200b\u8be5\u200b\u65b9\u6cd5\u200b\u6765\u81ea\u200b\u6b64\u200b\u535a\u5ba2\u200b) \u200b\u76f4\u63a5\u200b\u6267\u884c\u547d\u4ee4\u200b\u5373\u53ef\u200b
cp /etc/apt/sources.list /etc/apt/sources.list.bak\necho \"\n deb https://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\n deb https://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\n deb https://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\n deb https://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n \" > /etc/apt/sources.list\n
\u200b\u6362\u6e90\u200b \u200b\u6362\u6e90\u200b\u662f\u200b\u6307\u200b\u5c06\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\uff08\u200b\u955c\u50cf\u200b\uff09\u200b\u66ff\u6362\u200b\u4e3a\u200b\u7279\u5b9a\u200b\u5730\u533a\u200b\u6216\u200b\u7f51\u7edc\u200b\u73af\u5883\u200b\u4e0b\u200b\u66f4\u200b\u5feb\u901f\u200b\u3001\u200b\u53ef\u9760\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b.\u200b\u8fd9\u662f\u200b\u4e3a\u4e86\u200b\u63d0\u9ad8\u200b\u8f6f\u4ef6\u5305\u200b\u7684\u200b\u4e0b\u8f7d\u901f\u5ea6\u200b\u3001\u200b\u89e3\u51b3\u200b\u7f51\u7edc\u200b\u8bbf\u95ee\u200b\u9650\u5236\u200b\u6216\u200b\u8bbf\u95ee\u200b\u7279\u5b9a\u200b\u5730\u533a\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u800c\u200b\u91c7\u53d6\u200b\u7684\u200b\u63aa\u65bd\u200b.
\u200b\u66f4\u6362\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\u7684\u200b\u5177\u4f53\u65b9\u6cd5\u200b\u4f1a\u56e0\u200b\u4e0d\u540c\u200b\u7684\u200b\u64cd\u4f5c\u7cfb\u7edf\u200b\u548c\u200b\u8f6f\u4ef6\u5305\u200b\u7ba1\u7406\u5de5\u5177\u200b\u800c\u200b\u6709\u6240\u200b\u5dee\u5f02\u200b.\u200b\u5728\u200b\u57fa\u4e8e\u200b Ubuntu \u200b\u7684\u200b Docker \u200b\u5bb9\u5668\u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7f16\u8f91\u200b /etc/apt/sources.list \u200b\u6587\u4ef6\u200b\uff0c\u200b\u5c06\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\u66ff\u6362\u200b\u4e3a\u200b\u56fd\u5185\u200b\u7684\u200b\u955c\u50cf\u200b\u6e90\u200b\uff0c\u200b\u5982\u200b\u6d59\u6c5f\u5927\u5b66\u200b\u3001\u200b\u6e05\u534e\u5927\u5b66\u200b\u7b49\u200b.\u200b\u8fd9\u6837\u4e00\u6765\u200b\uff0c\u200b\u901a\u8fc7\u200b\u5bb9\u5668\u200b\u4e2d\u200b\u7684\u200b apt-get
\u200b\u6216\u200b apt
\u200b\u547d\u4ee4\u200b\u5b89\u88c5\u200b\u8f6f\u4ef6\u200b\u65f6\u200b\uff0c\u200b\u5c06\u200b\u4ece\u200b\u56fd\u5185\u200b\u955c\u50cf\u200b\u6e90\u200b\u4e0b\u8f7d\u200b\u8f6f\u4ef6\u5305\u200b\uff0c\u200b\u63d0\u9ad8\u200b\u901f\u5ea6\u200b\u548c\u200b\u7a33\u5b9a\u6027\u200b.
\u200b\u9996\u5148\u200b\u66f4\u65b0\u200b apt
apt update\napt upgrade\n
\u200b\u5b89\u88c5\u200b\u4e00\u4e9b\u200b\u5fc5\u8981\u200b\u7684\u200b\u5de5\u5177\u200b\uff1a
apt install openssh-server vim git cmake gcc g++ gdb sudo\n
"},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#3-ssh-vscode","title":"3.\u200b\u914d\u7f6e\u200b SSH\uff0c\u200b\u4f7f\u7528\u200b VSCode \u200b\u5f00\u53d1","text":""},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#31","title":"3.1\uff08\u200b\u53ef\u200b\u9009\u200b\uff09\u200b\u521b\u5efa\u200b\u7528\u6237","text":"\u200b\u5982\u679c\u200b\u5e0c\u671b\u200b\u7528\u975e\u200b root \u200b\u7528\u6237\u200b\u767b\u9646\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5148\u200b\u521b\u5efa\u200b\u5e76\u200b\u8bbe\u7f6e\u200b\u4e00\u4e2a\u200b\u7528\u6237\u200b\uff1a
useradd -m stormckey\npasswd stormckey\n
\u200b\u8fd9\u91cc\u200b\u7684\u200b stormckey \u200b\u6362\u6210\u200b\u4f60\u200b\u81ea\u5df1\u200b\u8d77\u200b\u7684\u200b\u7528\u6237\u540d\u200b \u200b\u7ed9\u200b\u7528\u6237\u200b\u6dfb\u52a0\u200b sudo \u200b\u6743\u9650\u200b\uff0c\u200b\u9700\u8981\u200b\u5728\u200b/etc/sudoers
\u200b\u6587\u4ef6\u200b\u4e2d\u200b# User privilege specification
\u200b\u6dfb\u52a0\u200b\uff1a
\u200b\u6765\u5230\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u7684\u200b\u53d1\u8d77\u8005\u200b\u7aef\u200b\uff08\u200b\u8fd9\u91cc\u200b\u5c31\u662f\u200b\u5bbf\u4e3b\u673a\u200b\uff09\uff0c\u200b\u6267\u884c\u200b\u4e0b\u9762\u200b\u547d\u4ee4\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u8f93\u5165\u200b paseephrase \u200b\u65f6\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff08\u200b\u4e3a\u7a7a\u200b\uff09
ssh-keygen\n
\u200b\u6765\u5230\u200b\u63d0\u793a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u590d\u5236\u200b id_rsa.pub \u200b\u7684\u200b\u5185\u5bb9\u200b\uff0c\u200b\u5c06\u200b\u5b83\u200b\u5199\u5165\u200b\u88ab\u200b\u8fde\u63a5\u7aef\u200b\uff08\u200b\u8fd9\u91cc\u200b\u662f\u200b\u5bb9\u5668\u200b\uff09\u200b\u7684\u200b/home/stormckey/.ssh/authorized_keys
\u200b\u6587\u4ef6\u200b\u4e2d\u200b \u200b\u53e6\u200b\u4e00\u79cd\u200b\u66f4\u200b\u65b9\u4fbf\u200b\u7684\u200b\u65b9\u6848\u200b \u200b\u5728\u200b\u53ef\u4ee5\u200b\u7528\u200b\u5bc6\u7801\u200b\u767b\u5f55\u200b\u4e86\u200b\u4e4b\u540e\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200bssh-copy-id
\u200b\u547d\u4ee4\u200b\u4e00\u952e\u200b\u628a\u200b\u5bc6\u94a5\u200b\u653e\u7f6e\u200b\u5230\u200b\u670d\u52a1\u5668\u200b\u5e76\u200b\u505a\u597d\u200b\u76f8\u5e94\u200b\u7684\u200b\u8bbe\u7f6e\u200b
ssh-copy-id -i ~/.ssh/id_rsa.pub stormckey@localhost -p 2333\n
\u200b\u63a5\u7740\u200b\u914d\u7f6e\u200b\u5bb9\u5668\u200b\u7684\u200b sshd: vim /etc/ssh/sshd_config
\u200b\u53bb\u6389\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u6ce8\u91ca\u200b\uff1a \u200b\u6ce8\u610f\u200b\u7b2c\u4e8c\u5f20\u200b\u56fe\u4e2d\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e00\u5b9a\u200b\u662f\u200b\u4f60\u200b\u4e4b\u524d\u200b\u653e\u516c\u94a5\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u8def\u5f84\u200b\u4ece\u200b\u7528\u6237\u200b\u6839\u76ee\u5f55\u200b\u5f00\u59cb\u200b
\u200b\u66f4\u6539\u200b\u5b8c\u200b\u914d\u7f6e\u200b\u540e\u200b\u542f\u52a8\u200b/\u200b\u91cd\u542f\u200b sshd
service ssh start\n
\u200b\u6211\u4eec\u200b\u6700\u597d\u200b\u628a\u200b\u81ea\u52a8\u200b\u542f\u52a8\u200b ssh \u200b\u670d\u52a1\u200b\u52a0\u5165\u200b bashrc\uff0c\u200b\u8fd9\u6837\u200b\u542f\u52a8\u200b\u5bb9\u5668\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u4f1a\u200b\u81ea\u52a8\u200b\u542f\u52a8\u200b ssh \u200b\u670d\u52a1\u200b\u4e86\u200b echo \"service ssh start\" >> /root/.bashrc\n
\u200b\u6b64\u65f6\u200b\u4f60\u200b\u5728\u200b\u5bbf\u4e3b\u673a\u200b\u4e0a\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200bssh stormckey@localhost -p 2333
\u200b\u767b\u9646\u200b\u5bb9\u5668\u200b\u4e86\u200b\uff1a
\u200b\u4e0b\u8f7d\u200b\u63d2\u4ef6\u200b Remote-SSH \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u70b9\u51fb\u200b\u53f3\u8fb9\u200b\u51fa\u73b0\u200b\u7684\u200b\u63d2\u4ef6\u200b\u56fe\u6807\u200b\uff0c\u200b\u5728\u200b\u4fa7\u680f\u200b\u4e2d\u200b\u9009\u62e9\u200b\u8bbe\u7f6e\u200b SSH\uff1a
\u200b\u5199\u5165\u200b\u5982\u4e0b\u200b\u7684\u200b\u914d\u7f6e\u200b\u4fe1\u606f\u200b\uff1a
\u200b\u8fde\u63a5\u200b\uff01
\u200b\u6b64\u540e\u200b\u5c31\u200b\u6ca1\u6709\u200b\u4ec0\u4e48\u200b\u7279\u522b\u200b\u7684\u200b\u4e86\u200b\uff0c\u200b\u6253\u5f00\u200b\u7ec8\u7aef\u200b\u76f4\u63a5\u200b\u6309\u7167\u200b\u52a9\u6559\u200b\u7684\u200b\u6587\u6863\u200b\u914d\u7f6e\u200b minisql \u200b\u5373\u53ef\u200b.
"},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#4","title":"4.\u200b\u66f4\u200b\u591a\u200b\u8bbe\u7f6e","text":"\u200b\u73b0\u5728\u200b\u4f60\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u4e2a\u200b\u7b80\u964b\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5f00\u59cb\u200b\u5de5\u4f5c\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u5982\u679c\u200b\u4f60\u200b\u559c\u6b22\u200b\u7684\u8bdd\u200b\u53ef\u4ee5\u200b\u52a0\u5165\u200b\u66f4\u200b\u591a\u200b\u8bbe\u7f6e\u200b\uff01
\u200b\u7ec8\u7aef\u200b\u7f8e\u5316\u200b\u200b\u89c1\u6b64\u200b\u535a\u5ba2\u200b
"},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/","title":"\u914d\u7f6e\u200b Github Profile","text":"Abstract
\u200b\u6211\u200b\u914d\u7f6e\u200b Github \u200b\u4e3b\u9875\u200b Profile \u200b\u7684\u200b\u65b9\u6848\u200b\uff0c\u200b\u7075\u611f\u200b\u6765\u81ea\u200bTonycrane \u200b\u7684\u200b GitHub \u200b\u4e3b\u9875\u200b
"},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/#github-profile_1","title":"\u542f\u7528\u200b Github \u200b\u4e3b\u9875\u200b Profile","text":"\u200b\u6211\u4eec\u200b\u5148\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u8ddf\u200b\u81ea\u5df1\u200b\u8d26\u53f7\u200b\u540c\u540d\u200b\u7684\u200b\u516c\u5f00\u200b\u4ed3\u5e93\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u7684\u200b\u7528\u4f5c\u200b\u4e3b\u9875\u200b\u4ed3\u5e93\u200b Github \u200b\u4f1a\u200b\u5728\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u663e\u793a\u200b\u8fd9\u4e00\u200b\u4ed3\u5e93\u200b\u7684\u200b README \u200b\u6587\u6863\u200b\u4f5c\u4e3a\u200b Profile\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u7f16\u5199\u200b\u8fd9\u4e2a\u200b README \u200b\u6587\u6863\u200b\u5373\u53ef\u200b
\u200b\u672c\u4eba\u200b\u4e3b\u9875\u200b\u9884\u89c8\u200b "},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/#metrics-profile","title":"\u542f\u7528\u200b Metrics \u200b\u751f\u6210\u200b Profile \u200b\u56fe\u7247","text":"\u200b\u63a8\u8350\u200b\u4f7f\u7528\u200bMetrics\u200b\u6765\u200b\u751f\u6210\u200b\u597d\u770b\u200b\u7684\u200b Profile
Metrics \u200b\u4f7f\u7528\u200b GitHub Action \u200b\u81ea\u52a8\u66f4\u65b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u7167\u7740\u200b\u94fe\u63a5\u200b\u91cc\u200b\u7684\u200b\u4ecb\u7ecd\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b8c\u6210\u200b\u90e8\u7f72\u200b.Metrics \u200b\u8fd8\u200b\u652f\u6301\u200b\u8bb8\u591a\u200b\u4e0d\u540c\u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5927\u5bb6\u200b\u53ef\u4ee5\u200b\u968f\u610f\u200b\u9009\u62e9\u200b\u81ea\u5df1\u200b\u559c\u6b22\u200b\u7684\u200b\uff0c\u200b\u6700\u540e\u200b\u8d34\u200b\u4e0a\u200b\u7b14\u8005\u200b\u6ce8\u91ca\u200b\u7684\u200b\u7684\u200b Action \u200b\u914d\u7f6e\u200b\u548c\u200b README \u200b\u6e90\u4ee3\u7801\u200b\uff0c\u200b\u6b22\u8fce\u200b\u501f\u9274\u200b\u4f7f\u7528\u200b\uff01
\u200b\u53c2\u8003\u200b\u914d\u7f6e\u200b Metrics.ymlREADME.mdname: Metrics\non:\n# Schedule updates per hour\nschedule: [{cron: \"0 * * * *\"}]\n# (optional) Run workflow manually\nworkflow_dispatch:\n# (optional) Run workflow when pushing on master/main\npush: {branches: [\"master\"\uff0c \"main\"]}\njobs:\n#generate the left picture\ngithub-left-metrics:\n runs-on: ubuntu-latest\n permissions:\n contents: write\n steps:\n - name: left\n # use the official generator\n uses: lowlighter/metrics@latest\n with:\n token: ${{ secrets.METRICS_TOKEN }}\n\n # the file this action generates\n filename: matrics-left.svg\n config_timezone: Asia/Shanghai\n\n\n # enable plugins\n plugin_followup: yes\n\n\n plugin_languages: yes\n # repositories that wont be accounted\n plugin_languages_skipped: stormckey/dotfiles\n plugin_languages_ignored: html\uff0c css\uff0c ruby\uff0c perl\uff0c javascript\n # show the size of source code and percentage of each language\n plugin_languages_details: bytes-size\uff0c percentage\n\n\n plugin_starlists: yes\n plugin_starlists_languages: yes\n\n\n config_order: followup\uff0c languages\uff0c starlists\n\ngithub-right-metrics:\n runs-on: ubuntu-latest\n permissions:\n contents: write\n steps:\n - name: right\n uses: lowlighter/metrics@latest\n with:\n #disable the basic metrics\n base: \"\"\n token: ${{ secrets.METRICS_TOKEN }}\n filename: matrics-right.svg\n config_timezone: Asia/Shanghai\n\n plugin_topics: yes\n plugin_topics_mode: icons\n\n\n plugin_isocalendar: yes\n\n\n plugin_anilist: yes\n plugin_anilist_user: stormckey\n plugin_anilist_sections: favorites\uff0c characters\n\n\n config_order: topics\uff0c isocalendar\uff0c anilist\n
<h3 align=\"center\"> Stormckey </h3>\n\n<p align=\"center\">\n<samp>\n <a href=\"https://stormckey.github.io/\">home page</a> \u2219\n</samp>\n</p>\n\n<p align=\"center\">\n<a href=\"https://github.com/stormckey\">\n <img width=\"400\" align=\"top\" src=\"https://github.com/stormckey/stormckey/blob/main/matrics-left.svg\" />\n</a>\n \n<a href=\"https://github.com/stormckey\">\n <img width=\"400\" align=\"top\" src=\"https://github.com/stormckey/stormckey/blob/main/matrics-right.svg\" />\n</a>\n</p>\n
"},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/","title":"Linux \u200b\u7ec8\u7aef\u200b\u914d\u7f6e","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u6781\u5927\u200b\u5730\u200b\u589e\u5f3a\u200b linux \u200b\u7ec8\u7aef\u200b\u6613\u7528\u6027\u200b\u7684\u200b\u5de5\u5177\u200b
\u200b\u5bf9\u200b\u6211\u200b\u6765\u8bf4\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u8981\u200b\u65b0\u5f00\u200b\u4e00\u4e2a\u200b\u7528\u200b\u4e00\u6bb5\u65f6\u95f4\u200b\u7684\u200b\u73af\u5883\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u628a\u200b\u8fd9\u4e9b\u200b\u914d\u7f6e\u200b\u5148\u8dd1\u200b\u4e00\u904d\u200b
"},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#zsh","title":"\u542f\u7528\u200b zsh","text":"sudo apt install zsh\nchsh -s /bin/zsh\n
\u200b\u91cd\u542f\u200b\u7ec8\u7aef\u200b\uff08docker \u200b\u4e2d\u8bf7\u200b\u91cd\u542f\u200b\u5bb9\u5668\u200b\uff09"},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#zsh_1","title":"\u5b89\u88c5\u200b zsh \u200b\u63d2\u4ef6","text":"\u200b\u5b89\u88c5\u200b p10k
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~/.zsh/powerlevel10k\necho 'source ~/.zsh/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc\n
\u200b\u91cd\u542f\u200b shell \u200b\u5b89\u88c5\u200b autosuggestion
git clone https://gitee.com/renkx/zsh-autosuggestions.git ~/.zsh/plugins/zsh-autosuggestions\necho '#Enable autosuggestion' >> ~/.zshrc\necho 'source ~/.zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc\n
\u200b\u5b89\u88c5\u200b syntaxhighlight
git clone https://gitee.com/renkx/zsh-syntax-highlighting.git ~/.zsh/plugins/zsh-syntax-highlighting\necho '#Enable syntax highlight' >> ~/.zshrc\necho 'source ~/.zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc\n
\u200b\u5b89\u88c5\u200b autojump
sudo apt install autojump\necho '#Enable autojump' >> ~/.zshrc\necho 'source /usr/share/autojump/autojump.sh'>>~/.zshrc\n
"},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#vi","title":"\u5728\u200b\u547d\u4ee4\u884c\u200b\u4e2d\u200b\u542f\u7528\u200b vi","text":"git clone https://github.com/soheilpro/zsh-vi-search.git ~/.zsh/plugins/zsh-vi-search\necho \"#Enable vi mode\" >> ~/.zshrc\necho \"bindkey -v\" >> ~/.zshrc\necho \"source ~/.zsh/plugins/zsh-vi-search/src/zsh-vi-search.zsh\" >> ~/.zshrc\n
"},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/","title":"\u7528\u200b ssh \u200b\u8fde\u63a5\u200b\u540c\u4e00\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u7684\u200b Wsl2","text":"Abstract
\u200b\u4e3a\u4ec0\u4e48\u200b\u4f1a\u200b\u6709\u200b\u8fd9\u4e2a\u200b\u9700\u6c42\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u5927\u5b66\u200b\u5165\u5b66\u200b\u5e26\u200b\u7684\u200b\u7535\u8111\u5ba4\u200b\u662f\u200b\u4e00\u4e2a\u200b\u7eed\u822a\u200b\u7a00\u788e\u200b\u7684\u200b\u5de8\u91cd\u200b\u7684\u200b\u6e38\u620f\u200b\u672c\u200b\uff0c\u200b\u540e\u6765\u200b\u6709\u200b\u4e86\u200b mac \u200b\u4e4b\u540e\u200b\u6e38\u620f\u200b\u672c\u200b\u57fa\u672c\u200b\u6210\u200b\u53f0\u5f0f\u200b\u4e86\u200b\uff08\u200b\u4e0d\u662f\u200b\uff09\uff0c\u200b\u7528\u200b ssh \u200b\u8fde\u4e0a\u53bb\u200b\u4e3b\u8981\u200b\u662f\u200b\u7528\u200b\u4e00\u4e0b\u200b\u663e\u5361\u200b\u5565\u200b\u7684\u200b
Abstract
\u200b\u57fa\u7840\u200b\u7684\u200b\u6d41\u7a0b\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b\u535a\u5ba2\u200b\u5c31\u200b\u597d\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb0\u5f55\u200b\u4e00\u4e0b\u200b\u8e29\u200b\u7684\u200b\u96f7\u200b\u548c\u200b\u66f4\u200b\u8fdb\u9636\u200b\u7684\u200b\u8bbe\u7f6e\u200b
"},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#_1","title":"\u68c0\u67e5\u200b\u901a\u8def","text":"\u200b\u8fd9\u200b\u4e00\u6b65\u200b\u6211\u4eec\u200b\u8981\u200b\u68c0\u67e5\u200b\u6211\u4eec\u200b\u5230\u200b\u8981\u200b\u8fde\u63a5\u200b\u7684\u200b\u7cfb\u7edf\u200b\u7684\u200b\u7f51\u7edc\u200b\u901a\u8def\u200b\u662f\u200b\u6b63\u5e38\u200b\u7684\u200b
Windows \u200b\u4f1a\u200b\u7ed9\u200b Wsl2 \u200b\u5206\u914d\u200b\u4e00\u4e2a\u200b\u865a\u62df\u200b\u7684\u200b\u672c\u5730\u200b\u7684\u200b\u5730\u5740\u200b\uff0c\u200b\u5728\u200b Windows \u200b\u8f93\u5165\u200bipconfig
\u200b\u4ee5\u200b\u67e5\u770b\u200b\u8be5\u200b\u5730\u5740\u200b. \u200b\u6211\u4eec\u200b\u5728\u200b Wsl \u200b\u4e2d\u200b\u542f\u7528\u200b ssh \u200b\u670d\u52a1\u200b\u540e\u200b\uff0c\u200b\u60f3\u8981\u200b\u9a8c\u8bc1\u200b Wsl \u200b\u662f\u5426\u200b\u53ef\u200b\u88ab\u200b\u8fde\u63a5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5148\u200b\u5728\u200b Windows \u200b\u4e2d\u8bd5\u200b\u7740\u200b\u7528\u200b ssh \u200b\u8fde\u63a5\u200b ifconfig \u200b\u4e2d\u200b\u770b\u5230\u200b\u7684\u200b\u5730\u5740\u200b
\u200b\u968f\u540e\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u4ece\u200b\u5c40\u57df\u7f51\u200b\u8fde\u63a5\u200b Windows \u200b\u4e5f\u200b\u662f\u200b\u901a\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u7528\u200bipconfig
\u200b\u5f97\u5230\u200b\u670d\u52a1\u5668\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u8fd9\u53f0\u200b\u673a\u5668\u200b\uff09ip\uff0c\u200b\u5728\u200b\u53e6\u4e00\u53f0\u200b\u673a\u5668\u200b\u4e0a\u200b\uff08\u200b\u5ba2\u6237\u200b\uff09\u200b\u5c1d\u8bd5\u200bping <ip>
\u200b\u6765\u8bd5\u200b\u7740\u200b\u8fde\u63a5\u200b\uff0c\u200b\u6216\u8005\u200b\u76f4\u63a5\u200b\u7528\u200b ssh \u200b\u8fde\u63a5\u200b Windows\uff0c\u200b\u4fdd\u8bc1\u200b\u5c40\u57df\u7f51\u200b\u5230\u200b Windows \u200b\u8fd9\u6761\u200b\u8def\u200b\u90fd\u200b\u662f\u200b\u901a\u200b\u7684\u200b.
Warning
\u200b\u4e00\u4e9b\u200b\u6807\u660e\u200b\u4e3a\u200b\u201cSecure\u201d\u200b\u7684\u200b\u5c40\u57df\u7f51\u200b\u53ef\u80fd\u200b\u4e0d\u200b\u5141\u8bb8\u200b\u5c40\u57df\u7f51\u200b\u5185\u200b\u8fde\u63a5\u200b\uff0c\u200b\u5728\u200b\u8fd9\u4e9b\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u662f\u200b\u4e92\u76f8\u200b ping \u200b\u4e0d\u901a\u200b\u7684\u200b\uff0c\u200b\u5c1d\u8bd5\u200b\u6362\u4e2a\u200b\u5c40\u57df\u7f51\u200b\uff01\u200b\u8fd9\u70b9\u200b\u5751\u200b\u4e86\u200b\u6211\u200b\u5f88\u200b\u4e45\u200b.
\u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u786e\u4fdd\u200b\u628a\u200b\u5c40\u57df\u7f51\u200b\uff0cWindows\uff0cwsl \u200b\u90fd\u200b\u8fde\u63a5\u8d77\u6765\u200b\uff0c\u200b\u9700\u8981\u200b Windows \u200b\u628a\u200b\u6211\u4eec\u200b\u4ece\u200b ssh \u200b\u53d1\u6765\u200b\u7684\u200b\u8fde\u63a5\u200b\u8bf7\u6c42\u200b\u8f6c\u200b\u5230\u200b\u5185\u90e8\u200b\u7684\u200b wsl \u200b\u7684\u200b\u7aef\u53e3\u200b\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u901a\u200b\u4e86\u200b.\uff08\u200b\u5bf9\u5e94\u200b\u7684\u200b\u64cd\u4f5c\u200b\u5728\u4e0a\u6587\u200b\u7684\u200b\u535a\u5ba2\u200b\u4e2d\u200b\u5df2\u7ecf\u200b\u63d0\u53ca\u200b\uff0c\u200b\u5982\u679c\u200b\u8fd8\u6709\u200b\u95ee\u9898\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5c1d\u8bd5\u200b\u8fd9\u7bc7\u200b\u770b\u770b\u200b\u662f\u4e0d\u662f\u200b\u5c40\u57df\u7f51\u200b\u5230\u200b Windows \u200b\u7684\u200b\u95ee\u9898\u200b\uff09
"},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#_2","title":"\u8bbe\u7f6e\u200b\u514d\u5bc6\u200b\u767b\u9646","text":"\u200b\u514d\u5bc6\u200b\u767b\u9646\u200b\u4e5f\u200b\u53ef\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b
\u200b\u6765\u5230\u200b\u5ba2\u6237\u7aef\u200b\uff0c\u200b\u6267\u884c\u200b\u4e0b\u9762\u200b\u547d\u4ee4\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u8f93\u5165\u200b passephrase \u200b\u65f6\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff08\u200b\u4e3a\u7a7a\u200b\uff09
ssh-keygen\n
\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u63d0\u793a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e0b\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u9009\u62e9\u200b\u5176\u516c\u94a5\u200b\uff08.pub \u200b\u540e\u7f00\u200b\uff09\uff0c\u200b\u628a\u200b\u5b83\u200b\u5199\u5165\u200b\u670d\u52a1\u5668\u200b\u767b\u9646\u200b\u7528\u6237\u200b\u7684\u200b ssh \u200b\u914d\u7f6e\u200b\u6587\u4ef6\u5939\u200b\u4e0b\u200b\u7684\u200b\u201cauthorized_keys\"\u200b\u6587\u4ef6\u200b\uff08\u200b\u4e00\u822c\u200b\u4e3a\u200b~/.ssh/authorized_keys
\uff09\uff0c\u200b\u6ce8\u610f\u200b\u4fee\u6539\u200b\"authorized_keys\"\u200b\u7684\u200b\u6743\u9650\u200b\u6539\u4e3a\u200b 600\uff0c\u200b\u6240\u5728\u200b\u6587\u4ef6\u5939\u200b\u6743\u9650\u200b\u6539\u4e3a\u200b 700.
\u200b\u5982\u679c\u200b\u4e0a\u8ff0\u200b\u90fd\u200b\u505a\u200b\u4e86\u200b\u4e4b\u540e\u200b\u4ecd\u7136\u200b\u65e0\u6cd5\u200b\u514d\u5bc6\u200b\u767b\u9646\u200b\uff0c\u200b\u6bd4\u5982\u200bssh -v user@ip -p port
\u200b\u540e\u200b\u770b\u5230\u200b\u8fde\u63a5\u200b\u65f6\u200b\u8bd5\u56fe\u200b\u4f7f\u7528\u200b\u516c\u94a5\u200b\u9a8c\u8bc1\u200b\u4f46\u662f\u200b\u5931\u8d25\u200b\u4e86\u200b\uff0c\u200b\u90a3\u4e48\u200b\u9700\u8981\u200b\u518d\u200b\u5b9a\u4f4d\u95ee\u9898\u200b.\u200b\u5728\u200b\u670d\u52a1\u5668\u7aef\u200b\u4f7f\u7528\u200b\u4e0b\u5217\u200b\u8bed\u53e5\u200b\u542f\u7528\u200b sshd \u200b\u76d1\u542c\u200b\u8fde\u63a5\u200b\u67d0\u4e2a\u200b\u7aef\u53e3\u200b
sudo /usr/sbin/sshd -d -p 4444\n
\u200b\u6ce8\u610f\u200b\u4e0d\u80fd\u200b\u4f7f\u7528\u200b\u5df2\u7ecf\u200b\u88ab\u200b\u5360\u7528\u200b\u7684\u200b\u7aef\u53e3\u200b \u200b\u542f\u7528\u200b\u540e\u200b\u53bb\u200b powershell \u200b\u8fdb\u884c\u200b\u7aef\u53e3\u200b\u8f6c\u53d1\u200b\uff0c\u200b\u4fbf\u200b\u53ef\u4ee5\u200b\u5728\u200b\u7ec8\u7aef\u200b\u91cc\u200b\u770b\u5230\u200b\u670d\u52a1\u5668\u7aef\u200b\u8ba4\u8bc1\u200b\u7684\u200b\u5168\u8fc7\u7a0b\u200b\u4e86\u200b"},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#wsl2-ip","title":"\u8bbe\u7f6e\u200b Wsl2 \u200b\u9759\u6001\u200b ip","text":"\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b
\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u987a\u5e26\u200b\u8bbe\u7f6e\u200b\u4e00\u4e0b\u200b Wsl2 \u200b\u5f00\u673a\u200b\u542f\u52a8\u200b\u548c\u200b\u81ea\u52a8\u200b\u5f00\u59cb\u200b ssh \u200b\u670d\u52a1\u200b
"},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/","title":"\u5728\u200b WSL2 \u200b\u4e0a\u200b\u542f\u7528\u200b CUDA","text":"Abstract
\u200b\u522b\u8bf4\u200b\u4e86\u200b\uff0c\u200b\u5f00\u70bc\u200b\uff01
\u200b\u4e3b\u8981\u200b\u662f\u200b\u53c2\u8003\u200b\u4e86\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b
"},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/#1-windows","title":"1.\u200b\u5728\u200b Windows \u200b\u4e0a\u200b\u5b89\u88c5\u200b\u663e\u5361\u200b\u9a71\u52a8","text":"\u200b\u8fd9\u6b65\u200b\u5f88\u200b\u7b80\u5355\u200b\uff0c\u200b\u5728\u200b\u5b98\u200b\u7f51\u4e0a\u200b\u627e\u5230\u200b\u9002\u5408\u200b\u81ea\u5df1\u200b\u663e\u5361\u200b\u7684\u200b\u7248\u672c\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b. Download Type \u200b\u9009\u9879\u200b\u9009\u200b Game Ready Driver \u200b\u5c31\u200b\u597d\u200b. \u200b\u60f3\u8981\u200b\u67e5\u770b\u200b\u81ea\u5df1\u200b\u7535\u8111\u200b\u663e\u5361\u200b\u578b\u53f7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5148\u200b win+R\uff0c\u200b\u8f93\u5165\u200b dxdiag\uff0c\u200b\u9009\u62e9\u200b dispaly \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u4e86\u200b.
"},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/#2-wsl","title":"2.\u200b\u5728\u200b wsl \u200b\u4e0a\u200b\u5b89\u88c5\u200b\u9a71\u52a8","text":"\u200b\u4e0a\u200b\u4e00\u6b65\u200b\u7ed3\u675f\u200b\u4e4b\u540e\u200btorch.cuda.is_available()
\u200b\u5c31\u200b\u5df2\u7ecf\u200b True \u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u76f4\u63a5\u200b\u6267\u884c\u200b\u8fd8\u662f\u200b\u4f1a\u200b\u62a5\u9519\u200b. \u200b\u542f\u52a8\u200b wsl\uff0c\u200b\u6267\u884c\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin\nsudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600\nwget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb\nsudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb\nsudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub\napt-get update\nsudo apt-get -y install cuda\n
\u200b\u6709\u4e9b\u200b\u5b89\u88c5\u200b\u6bd4\u8f83\u6162\u200b\uff0c\u200b\u6ca1\u6709\u200b\u6362\u200b\u8fc7\u6e90\u200b\u7684\u200b\u53ef\u4ee5\u200b\u6362\u4e0b\u200b\u56fd\u5185\u200b\u955c\u50cf\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200b\u6d59\u5927\u200b\u6e90\u200b \u200b\u7b14\u8005\u200b\u5728\u200b\u4e0a\u9762\u200b\u7684\u200b\u547d\u4ee4\u200b\u6267\u884c\u200b\u4e2d\u200b\u8fd8\u200b\u9047\u5230\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u6700\u540e\u200b\u4e00\u6b65\u200b\u62a5\u9519\u200b liburcu6 \u200b\u6ca1\u6709\u200b\u5b89\u88c5\u200b. \u200b\u53ef\u4ee5\u200b\u5728\u200b\u5b98\u65b9\u200b\u8f6f\u4ef6\u200b\u6e90\u4e0a\u200b\u53ef\u4ee5\u200b\u4e0b\u8f7d\u200b\uff0c\u200b\u6d4f\u89c8\u5668\u200b\u53ef\u80fd\u200b\u63d0\u793a\u200b\u4e0b\u8f7d\u200b\u4e0d\u200b\u5b89\u5168\u200b.\u200b\u5982\u679c\u200b\u53ef\u4ee5\u200b\u7684\u8bdd\u200b\uff0c\u200b\u9009\u62e9\u200b\u5408\u9002\u200b\u7684\u200b\u7248\u672c\u200b\u4e0b\u8f7d\u200b.\u200b\u7528\u200bcat /proc/version
\u200b\u67e5\u770b\u200b\u6211\u4eec\u200b\u7cfb\u7edf\u200b\u7684\u200b\u7248\u672c\u200b\uff0cx86_64 \u200b\u7528\u200b amd64 \u200b\u5373\u53ef\u200b. \u200b\u5982\u679c\u200b\u65e0\u6cd5\u200b\u89e3\u51b3\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u91cc\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u4f7f\u7528\u200b\u547d\u4ee4\u200b\uff1a
sudo add-apt-repository ppa:cloudhan/liburcu6\nsudo apt update\nsudo apt install liburcu6\n
\u200b\u7b2c\u4e00\u6761\u200b\u547d\u4ee4\u200b\u4f3c\u4e4e\u200b\u9700\u8981\u200b\u79d1\u5b66\u200b\u4e0a\u7f51\u200b\uff0c\u200b\u6211\u200b\u6ca1\u5f00\u200b\u7684\u200b\u65f6\u5019\u200b\u8fde\u63a5\u200b\u8d85\u65f6\u200b\u4e86\u200b. \u200b\u968f\u540e\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7ee7\u7eed\u200b\u4e0a\u200b\u4e00\u6b65\u200b\u7684\u200b\u5b89\u88c5\u200b cuda \u200b\u4e86\u200b.\u200b\u5b89\u88c5\u200b\u5b8c\u6bd5\u200b\u540e\u200b\u7528\u200b nvidia-smi \u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u662f\u5426\u200b\u6210\u529f\u200b. \u200b\u6b64\u65f6\u200b\u4ecd\u7136\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b cuda\uff0c\u200b\u9700\u8981\u200b\u518d\u200b\u5b89\u88c5\u200b nvcc\uff0c\u200b\u76f4\u63a5\u200b\u4e0b\u8f7d\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b.
\u200b\u81f3\u6b64\u200b\u5b89\u88c5\u200b\u7ed3\u675f\u200b.
"},{"location":"blog/zsh-%E7%9A%84%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92/","title":"ZSH \u200b\u7684\u200b\u53c2\u6570\u4f20\u9012","text":"Abstract
zsh \u200b\u4e2d\u200b\u4e00\u4e2a\u200b\u53c2\u6570\u4f20\u9012\u200b\u7684\u200b\u65f6\u5019\u200b\u9047\u5230\u200b\u7684\u200b\u795e\u79d8\u200b\u95ee\u9898\u200b\ud83e\udd14
\u200b\u4eca\u5929\u200b\u5728\u200b\u8c03\u7528\u200b DDPM \u200b\u6a21\u578b\u200b\u7684\u200b\u65f6\u5019\u200b\u4f7f\u7528\u200b\u5b98\u65b9\u200b\u4ee3\u7801\u200b\uff0c\u200b\u7adf\u7136\u200b\u62a5\u9519\u200b\u8bf4\u200b\u53c2\u6570\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff1a \u200b\u547d\u4ee4\u200b\u662f\u200b
MODEL_FLAGS=\"--attention_resolutions 32\uff0c16\uff0c8 --class_cond True --diffusion_steps 1000 --dropout 0.1 --image_size 64 --learn_sigma True --noise_schedule cosine --num_channels 192 --num_head_channels 64 --num_res_blocks 3 --resblock_updown True --use_new_attention_order True --use_fp16 True --use_scale_shift_norm True\"\npython classifier_sample.py $MODEL_FLAGS --classifier_scale 1.0 --classifier_path models/64x64_classifier.pt --classifier_depth 4 --model_path models/64x64_diffusion.pt $SAMPLE_FLAGS\n
\u200b\u62a5\u9519\u200b\u4e3a\u200b\uff1a python classifier_sample.py $MODEL_FLAGS --classifier_scale 1.0 --classifier_path models/64x64_classifier.pt --classifier_depth 4 --model_path models/64x64_diffusion.pt $SAMPLE_FLAGS\nusage: classifier_sample.py [-h] [--clip_denoised CLIP_DENOISED] [--num_samples NUM_SAMPLES] [--batch_size BATCH_SIZE]\n [--use_ddim USE_DDIM] [--model_path MODEL_PATH] [--classifier_path CLASSIFIER_PATH]\n [--classifier_scale CLASSIFIER_SCALE] [--image_size IMAGE_SIZE]\n [--num_channels NUM_CHANNELS] [--num_res_blocks NUM_RES_BLOCKS] [--num_heads NUM_HEADS]\n [--num_heads_upsample NUM_HEADS_UPSAMPLE] [--num_head_channels NUM_HEAD_CHANNELS]\n [--attention_resolutions ATTENTION_RESOLUTIONS] [--channel_mult CHANNEL_MULT]\n [--dropout DROPOUT] [--class_cond CLASS_COND] [--use_checkpoint USE_CHECKPOINT]\n [--use_scale_shift_norm USE_SCALE_SHIFT_NORM] [--resblock_updown RESBLOCK_UPDOWN]\n [--use_fp16 USE_FP16] [--use_new_attention_order USE_NEW_ATTENTION_ORDER]\n [--learn_sigma LEARN_SIGMA] [--diffusion_steps DIFFUSION_STEPS]\n [--noise_schedule NOISE_SCHEDULE] [--timestep_respacing TIMESTEP_RESPACING]\n [--use_kl USE_KL] [--predict_xstart PREDICT_XSTART]\n [--rescale_timesteps RESCALE_TIMESTEPS] [--rescale_learned_sigmas RESCALE_LEARNED_SIGMAS]\n [--classifier_use_fp16 CLASSIFIER_USE_FP16] [--classifier_width CLASSIFIER_WIDTH]\n [--classifier_depth CLASSIFIER_DEPTH]\n [--classifier_attention_resolutions CLASSIFIER_ATTENTION_RESOLUTIONS]\n [--classifier_use_scale_shift_norm CLASSIFIER_USE_SCALE_SHIFT_NORM]\n [--classifier_resblock_updown CLASSIFIER_RESBLOCK_UPDOWN]\n [--classifier_pool CLASSIFIER_POOL]\nclassifier_sample.py: error: unrecognized arguments: --attention_resolutions 32\uff0c16\uff0c8 --class_cond True --diffusion_steps 1000 --dropout 0.1 --image_size 64 --learn_sigma True --noise_schedule cosine --num_channels 192 --num_head_channels 64 --num_res_blocks 3 --resblock_updown True --use_new_attention_order True --use_fp16 True --use_scale_shift_norm True\n
\u200b\u8c8c\u4f3c\u200b\u662f\u56e0\u4e3a\u200b\u7528\u200b\u8fd9\u79cd\u200b\u65b9\u5f0f\u200b\u4f20\u9012\u200b\u7684\u200b\u53c2\u6570\u200b\u4e0d\u4f1a\u200b\u88ab\u200b\u6309\u200b\u7a7a\u683c\u200b\u5206\u5f00\u200b\uff0c\u200b\u6240\u4ee5\u200b\u65e0\u6cd5\u200b\u8bc6\u522b\u200b \u200b\u6211\u200b\u8fd8\u200b\u8bd5\u8fc7\u200b\u6362\u7528\u200b bash\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u4f7f\u7528\u200b\"$FLAG\"
\uff0c\u200b\u90fd\u200b\u6ca1\u7528\u200b\ud83d\ude21 \u200b\u89e3\u51b3\u200b\u7684\u200b\u529e\u6cd5\u200b\u662f\u200b\u4f7f\u7528\u200b$=FLAG
\uff08\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b\u89e3\u7b54\u200b\uff09
\u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/os/","title":"OS","text":"\u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/lab/","title":"Lab","text":"\u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/","title":"\u8ba1\u7b97\u673a\u200b\u4f53\u7cfb\u7ed3\u6784","text":"\u200b\u7ea6\u200b 7 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/pl/","title":"PL","text":"\u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/cool/","title":"Cool","text":"\u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/%E9%85%8D%E7%8E%AF%E5%A2%83/","title":"\u914d\u200b\u73af\u5883","text":"\u200b\u7ea6\u200b 3 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/%E7%A5%9E%E7%A7%98-bug/","title":"\u795e\u79d8\u200b bug","text":"\u200b\u7ea6\u200b 3 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/page/2/","title":"Blog","text":""},{"location":"blog/page/3/","title":"Blog","text":""},{"location":"blog/archive/2023/page/2/","title":"2023","text":""},{"location":"blog/archive/2023/page/3/","title":"2023","text":""}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Index","text":""},{"location":"#hi","title":"\uff08 \u0e51> \u0602 < \uff09 Hi!","text":"\u200b\u6b22\u8fce\u200b\u6765\u5230\u200b\u6211\u200b\u7684\u200b\u4e3b\u9875\u200b\uff01\u200b\u968f\u4fbf\u200b\u901b\u901b\u200b\u5427\u200b
\u200b\u66f4\u65b0\u200b\u65e5\u5fd7\u200b | \u200b\u6837\u5f0f\u200b\u4e00\u89c8\u200b | \u200b\u5efa\u200b\u7ad9\u200b\u6307\u5357\u200b
"},{"location":"Build_this_website/","title":"\u5982\u4f55\u200b\u6784\u5efa\u200b\u4e00\u4e2a\u200b\u50cf\u200b\u8fd9\u6837\u200b\u7684\u200b\u7f51\u7ad9\u200b\uff01","text":"\u200b\u7ea6\u200b 905 \u200b\u4e2a\u200b\u5b57\u200b 316 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 7 \u200b\u5206\u949f\u200b
\u200b\u7f51\u7ad9\u200b\u642d\u5efa\u200b\u6559\u7a0b\u200b
\u200b\u672c\u200b\u7ad9\u70b9\u200b\u4f7f\u7528\u200b mkdocs \u200b\u642d\u5efa\u200b\uff0c\u200b\u90e8\u7f72\u200b\u4e8e\u200b Github Pages\uff0c\u200b\u4f7f\u7528\u200b\u4e86\u200bmaterial\u200b\u4e3b\u9898\u200b
"},{"location":"Build_this_website/#1","title":"1.\u200b\u73af\u5883\u200b\u51c6\u5907","text":"\u200b\u5b89\u88c5\u200b python
sudo apt install python3 python3-pip\n
pip \u200b\u6362\u6e90\u200b
pip install pip -U\npip config set global.index-url https://mirrors.zju.edu.cn/pypi/web/simple\n
\u200b\u542f\u7528\u200b\u865a\u62df\u73af\u5883\u200b\uff1a
sudo apt install python3.8-venv\npip install virtualenv\npython -m venv webenv\nsource webenv/bin/activate\n
\u200b\u5b89\u88c5\u200b mkdocs
pip install mkdocs-material\n
\u200b\u51fa\u73b0\u200b\u62a5\u9519\u200b\uff1a
ERROR: mkdocs 1.4.3 has requirement markdown<3.4\uff0c>=3.2.1\uff0c but you'll have markdown 3.4.3 which is incompatible.\n
\u200b\u4fee\u6539\u200b markdown \u200b\u7248\u672c\u200b\uff0c\u200b\u7136\u540e\u200b\u91cd\u65b0\u5b89\u88c5\u200b mkdocs\uff1a
pip install markdown==3.2.1\npip install mkdocs-material\n
\u200b\u56fe\u7247\u200b\u5904\u7406\u200b\u7684\u200b\u4f9d\u8d56\u200b\u5e93\u200b\uff1a
pip install pillow cairosvg\n
\u200b\u53ef\u200b\u9009\u200b\u4f18\u5316\u200b\uff1ayaml \u200b\u8865\u5168\u200b {\n\"yaml.schemas\": {\n \"https://squidfunk.github.io/mkdocs-material/schema.json\": \"mkdocs.yml\"\n}\uff0c\n\"yaml.customTags\": [\n \"!ENV scalar\"\uff0c\n \"!ENV sequence\"\uff0c\n \"tag:yaml.org\uff0c2002:python/name:materialx.emoji.to_svg\"\uff0c\n \"tag:yaml.org\uff0c2002:python/name:materialx.emoji.twemoji\"\uff0c\n \"tag:yaml.org\uff0c2002:python/name:pymdownx.superfences.fence_code_format\"\n]\n}\n
\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u7a7a\u200b\u7684\u200b\u516c\u5f00\u200b\u4ed3\u5e93\u200b\uff0c\u200b\u5e76\u4e14\u200b\u514b\u9686\u200b\u5230\u200b\u672c\u5730\u200b\uff0c\u200b\u5728\u200b\u5176\u4e2d\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b mkdocs site\uff1a
git clone repo\ncd repo\nmkdocs new .\n
\u200b\u5728\u200b mkdocs.yml \u200b\u4e2d\u200b\u542f\u7528\u200b\u4e3b\u9898\u200b\uff1a
theme:\n name: material\n
\u200b\u5982\u679c\u200b\u4f60\u200b\u5e0c\u671b\u200b\u5c06\u200b markdown \u200b\u6e90\u6587\u4ef6\u200b\u4e5f\u200b\u4fdd\u5b58\u200b\u5728\u200b\u540c\u4e00\u4e2a\u200b\u4ed3\u5e93\u200b\u91cc\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5148\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u5ffd\u7565\u200bsite/
\u200b\u7684\u200b.gitignore
\u200b\u6587\u4ef6\u200b\uff0c\u200b\u7136\u540e\u200b\u63d0\u4ea4\u200b\uff0c\u200b\u63a8\u9001\u200b\uff1a
echo \"site/\" > .gitignore\ngit add .\ngit commit -m \"init\"\ngit push -u origin master\n
\u200b\u7136\u540e\u200b\u7528\u200bgh-deploy
\u200b\u547d\u4ee4\u200b\u4e00\u952e\u200b\u90e8\u7f72\u200b\u5230\u200b Github Pages:
mkdocs gh-deploy\n
\u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u7684\u200b\u4ed3\u5e93\u200b\u6709\u200b\u4e24\u4e2a\u200b\u5206\u652f\u200b\u4e86\u200b\uff0cmaster \u200b\u5206\u652f\u200b\u50a8\u5b58\u200b markdown \u200b\u6e90\u6587\u4ef6\u200b\uff0cgh-pages \u200b\u5206\u652f\u200b\u50a8\u5b58\u200b\u7f16\u8bd1\u200b\u540e\u200b\u7684\u200b\u7f51\u7ad9\u200b \u200b\u5728\u200b settings-pages \u200b\u4e2d\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u7f51\u7ad9\u200b\u7684\u200b\u7f51\u5740\u200b\u4e86\u200b\uff0c\u200b\u4e00\u822c\u200b\u4e3a\u200busername.github.io/repo
\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u521b\u5efa\u200b\u7684\u200b\u4ed3\u5e93\u200b\u662f\u200b\u7279\u6b8a\u200b\u7684\u200b\uff0c\u200b\u540d\u4e3a\u200busername.github.io
\uff0c\u200b\u90a3\u4e48\u200b\u7f51\u5740\u200b\u5c31\u662f\u200busername.github.io
\u200b\u4e86\u200b \u200b\u5f53\u524d\u200b\u7684\u200b\u7f51\u7ad9\u200b\u4e3a\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\uff1a
\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b GitHub action \u200b\u6765\u200b\u5e2e\u52a9\u200b\u6211\u4eec\u200b\u6bcf\u6b21\u200b\u66f4\u65b0\u200b master \u200b\u5206\u652f\u200b\u540e\u200b\u81ea\u52a8\u200b\u7f16\u8bd1\u200b\u7f51\u7ad9\u200b\u5e76\u200b\u63a8\u9001\u200b\u5230\u200b gh-pages \u200b\u5206\u652f\u200b\uff0c\u200b\u8fd9\u6837\u200b\u6211\u4eec\u200b\u5c31\u200b\u4e0d\u7528\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u624b\u52a8\u200b\u6267\u884c\u200bmkdocs gh-deploy
\u200b\u4e86\u200b. 1. \u200b\u5728\u200b\u4ed3\u5e93\u200b\u4e2d\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b.github/workflows/auto-deploy.yml
\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5185\u5bb9\u200b\u5982\u4e0b\u200b\uff1a
name: ci\non:\npush:\n branches:\n - master\n - main\npermissions:\ncontents: write\njobs:\ndeploy:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v3\n with:\n fetch-depth: '0'\n - uses: actions/setup-python@v4\n with:\n python-version: 3.x\n - run: echo \"cache_id=$(date --utc '+%V')\" >> $GITHUB_ENV\n - uses: actions/cache@v3\n with:\n key: mkdocs-material-${{ env.cache_id }}\n path: .cache\n restore-keys: |\n mkdocs-material-\n - run: pip install mkdocs-material mkdocs-changelog-plugin mkdocs-glightbox jieba pillow cairosvg mkdocs-tooltips mkdocs-statistics-plugin mkdocs-table-reader-plugin mkdocs-git-revision-date-localized-plugin\n - run: mkdocs gh-deploy --force\n
\u200b\u6ce8\u610f\u200b\uff0c\u200b\u63a8\u9001\u200b\u5230\u200b Github \u200b\u7684\u8bdd\u200b\u9700\u8981\u200b\u4f60\u200b\u7684\u200b token \u200b\u6709\u200b workflow \u200b\u6743\u9650\u200b \u200b\u5982\u679c\u200b\u4f60\u200b\u4f9d\u8d56\u200b\u4e86\u200b\u989d\u5916\u200b\u7684\u200b\u5e93\u200b\uff0c\u200b\u9700\u8981\u200b\u4fee\u6539\u200b action"},{"location":"Build_this_website/#3","title":"3.\u200b\u6dfb\u52a0\u200b\u7279\u6027","text":""},{"location":"Build_this_website/#31-css","title":"3.1 \u200b\u4fee\u6539\u200b\u7f51\u7ad9\u200b\u7684\u200b css \u200b\u6837\u5f0f","text":"\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u65b0\u589e\u200b\u7684\u200b\u6837\u5f0f\u200b\u541b\u200b\u653e\u7f6e\u200b\u4e8e\u200bdocs/css/
\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u6bcf\u4e2a\u200b css \u200b\u6587\u4ef6\u200b\u90fd\u200b\u8981\u200b\u5728\u200bmkdocs.yml
\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a
extra_css:\n - css/extra.css\n
\u200b\u6211\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b\u6837\u5f0f\u200b [data-md-color-primary=indigo] {\n --md-primary-fg-color: #FFACA6;\n}\n[data-md-color-accent=indigo] {\n--md-accent-fg-color: #FFACA6;\n}\n[data-md-color-scheme=default] {\n --md-typeset-a-color: #000000;\n --my-changlog-color: #EFEFEF;\n}\n[data-md-color-scheme=slate] {\n --md-typeset-a-color: #FFFFFF;\n --my-changlog-color: #161616;\n}\n.md-grid {\nmax-width: 1400px;\n}/* make the page wider */\n/* changelog config*/\n.timeline-card{\nbackground-color: var(--my-changlog-color);\n}\n.timeline-content::before{\nbackground-color: var(--my-changlog-color);\n}\n.changelog-type{\nbackground-color: #CC8A85;\n}\n.changelog-type-newpage{\nbackground-color: #FF9C80;\n}\n.changelog-type-refactor::before {\ncontent: \"\u200b\u6587\u6863\u200b\u66f4\u65b0\u200b\";\n}\n\n/*\u200b\u56fe\u7247\u683c\u5f0f\u200b\u8bbe\u7f6e\u200b*/\n/*\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b*/\nimg[src*=\"pic\"] {\nbox-shadow: 2px 2px 10px #666;\nborder-radius: 4px;\n}\n
\u200b\u81ea\u5df1\u200b\u5b9a\u4e49\u200b\u6837\u5f0f\u200b \u200b\u6211\u4eec\u200b\u53ef\u80fd\u200b\u4e0d\u200b\u719f\u6089\u200b css\uff0c\u200b\u6ca1\u4e8b\u200b\uff0c\u200b\u6211\u200b\u4e5f\u200b\u5b8c\u5168\u200b\u4e0d\u200b\u61c2\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u4e00\u4e9b\u200b\u7b80\u5355\u200b\u7684\u200b\u4fee\u6539\u200b\u989c\u8272\u200b\u4fee\u6539\u200b\u5b57\u200b\uff0c\u200b\u76f4\u63a5\u200b\u7528\u200b F12 \u200b\u67e5\u770b\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6837\u5f0f\u200b\u6539\u6210\u200b\u81ea\u5df1\u200b\u559c\u6b22\u200b\u7684\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\uff0c\u200b\u6d4f\u89c8\u5668\u200b\u4e00\u822c\u200b\u90fd\u200b\u652f\u6301\u200b\u76f4\u63a5\u200b\u6539\u200b\u5e76\u4e14\u200b\u663e\u793a\u200b\u4fee\u6539\u200b\u540e\u200b\u7684\u200b\u6548\u679c\u200b\u7684\u200b \u200b\u53e6\u200b\u4e00\u4e2a\u200b\u597d\u7528\u200b\u7684\u200b\u8bbe\u7f6e\u200b\u5c31\u662f\u200b\u4fee\u6539\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u50cf\u200b\u8fd9\u6837\u200b\u5f15\u7528\u200b\u56fe\u7247\u200b
![](images/Build_this_website/2023-07-02-02-35-34.png#pic)\n
\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5728\u200b\u7ed3\u5c3e\u200b\u52a0\u4e0a\u200b#pic\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5bf9\u200b\u56fe\u7247\u200b\u5e94\u7528\u200b\u9ed8\u8ba4\u200b\u6837\u5f0f\u200b\u4e86\u200b\uff0c\u200b\u6211\u7528\u200b\u7684\u200b\u662f\u200b\u5706\u89d2\u200b+\u200b\u9634\u5f71\u200b.\u200b\u8fd9\u4e00\u200b\u6dfb\u52a0\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u53ef\u4ee5\u200b\u7528\u200b VSCode \u200b\u63d2\u4ef6\u200b Paste Image \u200b\u81ea\u52a8\u200b\u5b9e\u73b0\u200b\uff0c\u200b\u6211\u200b\u5728\u200b\u8fd9\u91cc\u200b\u6709\u200b\u4ecb\u7ecd\u200b"},{"location":"Build_this_website/#32-javascript","title":"3.2 \u200b\u6dfb\u52a0\u200b\u989d\u5916\u200b\u7684\u200b javascript","text":"\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u65b0\u589e\u200b\u7684\u200b js \u200b\u6587\u4ef6\u200b\u653e\u7f6e\u200b\u4e8e\u200bdocs/js/
\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u6bcf\u4e2a\u200b js \u200b\u6587\u4ef6\u200b\u90fd\u200b\u8981\u200b\u5728\u200bmkdocs.yml
\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a
extra_javascript:\n - js/extra.js\n
\u200b\u8fd9\u91cc\u200b\u7684\u200b url \u200b\u53ef\u4ee5\u200b\u6307\u5411\u200b\u7f51\u7edc\u200b\u4e0a\u200b\u7684\u200b js \u200b\u6587\u4ef6\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u662f\u200b\u672c\u5730\u200b\u7684\u200b \u200b\u6211\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b js extra.jsmathjax.js document.querySelectorAll('.zoom').forEach(item => {\n item.addEventListener('click'\uff0c function () {\n this.classList.toggle('image-zoom-large');\n })\n});\n
window.MathJax = {\n tex: {\n inlineMath: [[\"\\\\(\"\uff0c \"\\\\)\"]]\uff0c\n displayMath: [[\"\\\\[\"\uff0c \"\\\\]\"]]\uff0c\n processEscapes: true\uff0c\n processEnvironments: true\n }\uff0c\n options: {\n ignoreHtmlClass: \".*|\"\uff0c\n processHtmlClass: \"arithmatex\"\n }\n};\n\ndocument$.subscribe(() => {\n MathJax.typesetPromise()\n})\n
=== tablesort.js
document$.subscribe(function() {\n var tables = document.querySelectorAll(\"article table:not([class])\")\n tables.forEach(function(table) {\n new Tablesort(table)\n })\n})\n
"},{"location":"Build_this_website/#33","title":"3.3 \u200b\u6dfb\u52a0\u200b\u5168\u5c40\u200b\u811a\u6ce8","text":"\u200b\u6240\u6709\u200b\u811a\u6ce8\u200b\u90fd\u200b\u653e\u5728\u200bincludes/abbreviatioins.md
\uff08\u200b\u5728\u200b docs \u200b\u4e4b\u5916\u200b\uff09\uff0c\u200b\u683c\u5f0f\u200b\u4e3a\u200b\uff1a
*[HTML]: Hyper Text Markup Language\n*[W3C]: World Wide Web Consortium\n
\u200b\u5728\u200bmkdocs.yml
\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a
markdown_extensions:\n - abbr\n - attr_list\n - pymdownx.snippets\n - pymdownx.snippets:\n auto_append:\n - includes/abbreviations.md\n
\u200b\u6548\u679c\u56fe"},{"location":"Build_this_website/#34","title":"3.4 \u200b\u542f\u7528\u200b\u7f51\u7ad9\u200b\u6570\u636e\u5206\u6790","text":"\u200b\u5728\u200bmkdocs.yml
\u200b\u4e2d\u200b\u6dfb\u52a0\u200b\uff1a
extra:\n analytics:\n provider: google\n property: G-XXXXXXXXXX\n
\u200b\u968f\u540e\u200b\u524d\u5f80\u200b Google Analytics \u200b\u6ce8\u518c\u200b\u4f7f\u7528\u200b\u5373\u53ef\u200b.
\u200b\u542f\u7528\u200b\u8fd9\u9879\u200b\u529f\u80fd\u200b\u9700\u8981\u200b\u5411\u200b\u6bcf\u4e2a\u200b\u7f51\u9875\u200b\u6ce8\u5165\u200b google code
"},{"location":"Build_this_website/#35","title":"3.5 \u200b\u542f\u7528\u200b\u6700\u65b0\u66f4\u65b0\u200b\u65f6\u95f4","text":"\u200b\u5b89\u88c5\u200b\u5e93\u200b\uff1a
pip install mkdocs-git-revision-date-localized-plugin\n
\u200b\u6dfb\u52a0\u200b\u8bbe\u7f6e\u200b\u5230\u200bmkdocs.yml
\uff1a plugins:\n - git-revision-date-localized:\n enable_creation_date: true\n
"},{"location":"Build_this_website/#36","title":"3.6 \u200b\u542f\u7528\u200b\u8bc4\u8bba\u200b\u533a","text":"\u200b\u539f\u200b\u6587\u6863\u200b\u4ecb\u7ecd\u200b\u7684\u200b\u5f88\u200b\u6e05\u695a\u200b\u4e86\u200b
"},{"location":"Build_this_website/#37","title":"3.7 \u200b\u4ece\u6587\u4ef6\u200b\u8bfb\u53d6\u200b\u8868\u683c","text":"\u200b\u53c2\u8003\u200b\u539f\u200b\u6587\u6863\u200b
"},{"location":"Build_this_website/#38-emojis-icons","title":"3.8 \u200b\u4f7f\u7528\u200b emojis \u200b\u548c\u200b icons","text":"\u200b\u8fd9\u4e2a\u200b\u94fe\u63a5\u200b\u53ef\u4ee5\u200b\u641c\u7d22\u200b emoji
"},{"location":"Build_this_website/#39","title":"3.9 \u200b\u56fe\u7247\u200b\u653e\u5927","text":"\u200b\u5148\u200b\u5b89\u88c5\u200b\u63d2\u4ef6\u200b\uff1a
pip install mkdocs-glightbox\n
\u200b\u7136\u540e\u200b\u52a0\u5165\u200b\u914d\u7f6e\u200b\uff1a
plugins:\n - glightbox\n
"},{"location":"Build_this_website/#310-blog","title":"3.10 \u200b\u542f\u7528\u200b blog","text":"\u200b\u5b98\u65b9\u200b\u7684\u200b\u8d77\u6b65\u200b\u6307\u5bfc\u200b\u5f88\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u7167\u7740\u200b\u8d70\u200b\u5c31\u200b\u597d\u200b\uff01
"},{"location":"Build_this_website/#311","title":"3.11 \u200b\u6211\u200b\u7684\u200b\u6240\u6709\u200b\u914d\u7f6e","text":"\u200b\u4ee5\u4e0b\u200b\u9644\u4e0a\u200b\u6211\u200b\u7684\u200bmkdocs.yml
\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5df2\u7ecf\u200b\u5220\u53bb\u200b\u4e86\u200b\u5bfc\u822a\u200b\u90e8\u5206\u200b\uff0c\u200b\u6240\u4ee5\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u590d\u5236\u200b\u4f7f\u7528\u200b\uff1a
# Project information\nsite_name: Stormckey's Page\nsite_url: https://stormckey.github.io/\nsite_author: Stormckey\n# Repository\nrepo_name: stormckey\nrepo_url: https://github.com/stormckey/stormckey.github.io\n\n# The path to edit the content\nedit_uri: edit/main/docs/\n\n# Copyright\ncopyright: Copyright © stormckey\n\ntheme:\nname: material\ncustom_dir: overrides\nfavicon: cat.svg # put in /docs/cat.svg\nfont:\n text: Roboto Mono\n code: Roboto Mono\nfeatures:\n - content.action.edit # enable the button to edit the source code of the page\n - content.action.view # enable the button to view the source code of the page\n - content.code.copy # enable the button to copy the code block\n - navigation.tabs # enable the row of tabs under the title\n # - navigation.sections # unfold the secondary titles to the left\n # - navigation.footer # enable the next and previous button\n - navigation.indexes # the index page will be incoperate into the tab\n - search.suggest # auto suggestion\n - search.highlight # highlight when search\n - search.share # enable share when search\n - navigation.instant # optimize loading\n - navigation.tracking # URL will change as we scroll down\n - toc.follow # the sidebar will scroll automatically following the user\n - navigation.top # button to back to the top\npalette: # my customized schema\n - media: \"(prefers-color-scheme: light)\"\n scheme: default\n primary: indigo\n accent: indigo\n toggle:\n icon: material/brightness-7\n name: Switch to dark mode\n - media: \"(prefers-color-scheme: dark)\"\n scheme: slate\n toggle:\n icon: material/brightness-4\n name: Switch to light mode\nicon:\n repo: fontawesome/brands/github-alt # the github cat icon in the topright\n logo: material/cat # the cat icon in the topleft\n\nplugins:\n- search\n# - social: #social card\n# enabled: !ENV [CI\uff0c false]\n# cards: !ENV [CI\uff0c false]\n# cards_font: Noto Sans SC\n- git-revision-date-localized:\n enabled: !ENV [CI\uff0c false]\n enable_creation_date: true\n- offline: # enable searching offline\n enabled: !ENV [OFFLINE\uff0c false]\n- table-reader\n- changelog #see https://github.com/TonyCrane/mkdocs-changelog-plugin\n- tooltips\n- statistics\n- glightbox\n\n\n\nmarkdown_extensions:\n#enable admonition\n- admonition\n- pymdownx.details # enable ??? admonition\n- pymdownx.betterem # better emphasize\n- pymdownx.superfences: # allow nest codes\n custom_fences:\n - name: mermaid\n class: mermaid\n format: !!python/name:pymdownx.superfences.fence_code_format\n#enable code config\n- pymdownx.inlinehilite #inline code highlight\n- pymdownx.snippets: #enable to embed arbitrary files\n auto_append:\n - includes/abbreviations.md\n- pymdownx.highlight:\n linenums: true # enable line display\n line_spans: __span\n pygments_lang_class: true # detect language automatically\n anchor_linenums: true # offer line anchor\n- pymdownx.keys # render key symbols\n- pymdownx.smartsymbols\n#enable button\n- attr_list\n#enable content tabs\n- pymdownx.tabbed:\n alternate_style: true\n- tables\n#daigrams are not enabled\n- footnotes\n#enable emoji\n- pymdownx.emoji:\n emoji_index: !!python/name:materialx.emoji.twemoji\n emoji_generator: !!python/name:materialx.emoji.to_svg\n options:\n custom_icons:\n - \"overrides/.icons\"\n#image alignment\n- md_in_html\n#better list\n- def_list\n- pymdownx.tasklist:\n custom_checkbox: true\n#abbr\n- abbr\n#enable math syntax\n- pymdownx.arithmatex:\n generic: true\n#enable table of content\n- toc:\n permalink: true\n permalink_title: Anchor link to this section for reference\n- pymdownx.caret\n- pymdownx.mark\n- pymdownx.tilde\n- pymdownx.critic\n\nextra_javascript:\n- javascripts/extra.js\n- javascripts/mathjax.js\n- https://unpkg.com/tablesort@5.3.0/dist/tablesort.min.js # enable table sort\n- javascripts/tablesort.js # enable table sort\n- https://polyfill.io/v3/polyfill.min.js?features=es6\n- https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js\n\nextra:\nsocial:\n - icon: fontawesome/brands/github # icons to the right bottom of the page\n link: https://github.com/stormckey\n - icon: fontawesome/solid/paper-plane # icons to the right bottom of the page\n link: mailto:sortygraph@gmail.com\nalternate: # change the language\uff0c the link should point to different directories\n - name: English\n link: /\n lang: en\n - name: \u200b\u4e2d\u6587\u200b\n link: /\n lang: zh\nconsent:\n title: Cookie consent\n description: >-\n We use cookies to recognize your repeated visits and preferences\uff0c as well\n as to measure the effectiveness of our documentation and whether users\n find what they're searching for. With your consent\uff0c you're helping us to\n make our documentation better.\nanalytics:\n provider: google\n property: G-XXXXXXXXXX\n\nextra_css:\n- css/hint.min.css\n- css/extra.css\n
"},{"location":"Build_this_website/#3x","title":"3.x \u200b\u66f4\u200b\u591a\u200b\u7279\u6027\u200b\uff08\u200b\u6211\u200b\u8fd8\u200b\u4e0d\u4f1a\u200b\u7528\u200b\u4f46\u200b\u8003\u8651\u200b\u542f\u7528\u200b\u7684\u200b\uff09","text":"\u200b\u7ea6\u200b 308 \u200b\u4e2a\u200b\u5b57\u200b 25 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
Abstraction
\u200b\u6b64\u200b\u9875\u9762\u200b\u5c06\u4f1a\u200b\u5217\u51fa\u200b\u672c\u200b\u7ad9\u70b9\u200b\u76ee\u524d\u200b\u652f\u6301\u200b\u7684\u200b\u6240\u6709\u200b\u663e\u793a\u200b\u6837\u5f0f\u200b \u200b\u8bb8\u591a\u200b\u90fd\u200b\u6765\u81ea\u200b Material for Mkdocs
int main(){\n printf(\"Hello World\");\n printf(\"!/n\");\n}\n
#include <iostream>\nusing namespace std;\n
The range()
function is used to generate a sequence of numbers.
site/\n.DS_Store\n*.docx\n*.pdf\nsrc/*\n*pycache*\n
col1 col2 col3 r1c1 r1c2 r1c3 r2c1 r2c2 r2c3 r3c1 r3c2 r3c3 graph LR\n A[What to eat?] --> B{Hesitate};\n B -->|KFC| C[Hmm...];\n C --> D[Bad!];\n D --> B;\n B ---->|Mcdonald's| E[Yay!];
\u200b\u6587\u6863\u200b\u4ecb\u7ecd\u200b\u4e86\u200b\u6240\u6709\u200b\u652f\u6301\u200b\u7684\u200b\u56fe\u200b
my title
something
no title
my titlesomething
no inline
Now it suppports Note\uff0cAbstract\uff0cInfo\uff0cTip\uff0cSuccess\uff0cQuestion\uff0cWarining\uff0cFailure\uff0cDanger\uff0cBug\uff0cExample\uff0cQuote
inline
somthing
Subscribe to our newsletter
Subscribe to our newsletter
CC++#include <stdio.h>\n\nint main(void) {\n printf(\"Hello world!\\n\");\n return 0;\n}\n
#include <iostream>\n\nint main(void) {\n std::cout << \"Hello world!\" << std::endl;\n return 0;\n}\n
Note
Search for emojis here
Definition
Define sth
Text can be deleted and replacement text added. This can also be combined into onea single operation. Highlighting is also possible and comments can be added inline.
Formatting can also be applied to blocks by putting the opening and closing tags on separate lines and adding new lines between the tags and the content.
This was deleted
H2O
Ctrl+Alt+Del
Image caption
\u3010\u200b\u9f20\u6807\u60ac\u505c\u200b\uff01\u3011{\ud83d\ude0b}
Hover me
The HTML specification is maintained by the W3C.
Lorem ipsum dolor sit amet
Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus tellus non sem sollicitudin\uff0c quis rutrum leo facilisis.
Cras arcu libero
Aliquam metus eros\uff0c pretium sed nulla venenatis\uff0c faucibus auctor ex. Proin ut eros sed sapien ullamcorper consequat. Nunc ligula ante.
Duis mollis est eget nibh volutpat\uff0c fermentum aliquet dui mollis. Nam vulputate tincidunt fringilla. Nullam dignissim ultrices urna non auctor.
Method DescriptionGET
Fetch resource PUT
Update resource DELETE
Delete resource"},{"location":"changelog/","title":"\u66f4\u65b0\u200b\u8bb0\u5f55","text":""},{"location":"changelog/#2023","title":"2023","text":"2023-11-28\u00b6 \u200b\u4f7f\u7528\u200b\u4e86\u200bmeta-manager\u200b\u63d2\u4ef6\u200b,\u200b\u7b80\u5316\u200b\u4e86\u200bmetadata\u200b\u7684\u200b\u4f7f\u7528\u200b
Blog > PL > Y-combinator
\u200b\u65b0\u589e\u200b\u4e86\u200bReference\u200b\u6837\u5f0f\u200b
2023-11-26\u00b6\u200b\u65b0\u589e\u200b\u4e86\u200bDefinition\u200b\u6837\u5f0f\u200b
\u200b\u542f\u7528\u200bblog\u200b\u63d2\u4ef6\u200b
\u200b\u4f7f\u7528\u200bPangu.vim\u200b\u63d2\u4ef6\u200b\u8fdb\u884c\u200b\u6587\u6863\u200b\u683c\u5f0f\u5316\u200b
Blog > Cool > \u200b\u7528\u200bVim\u200b\u6279\u91cf\u200b\u683c\u5f0f\u5316\u200b
2023-11-25\u00b6\u200b\u91cd\u6784\u200b\u4e86\u200bBlog\u200b\u7684\u200b\u5c42\u7ea7\u200b,\u200b\u52a0\u5165\u200b\u4e86\u200bLab\u200b\u90e8\u5206\u200b
\u200b\u52a0\u5165\u200b\u4e86\u200b\u8ba1\u7f51\u200b\u5b9e\u9a8c\u200b\u6307\u5357\u200b
2023-11-20\u00b6\u200b\u65b0\u589e\u200b\u4e86\u200b\u6570\u636e\u200b\u5efa\u6a21\u200b\u4e0e\u200b\u5206\u6790\u200b\u7684\u200b\u7b14\u8bb0\u200b
2023-11-07\u00b6\u200b\u597d\u200b\u670b\u53cb\u200bPeiPei\u200b\u6765\u200b\u5bc4\u5c45\u200b\u4e86\u200b!
2023-07-08\u00b6\u200b\u66f4\u6362\u200b\u4e86\u200b\u66f4\u65b0\u200b\u65e5\u5fd7\u200b\u7684\u200b\u8272\u5f69\u200b
\u200b\u79fb\u9664\u200bDS\u200b\u7b14\u8bb0\u200b
2023-07-04\u00b6\u200b\u6da6\u8272\u200b\u4e86\u200b\u535a\u5ba2\u200b\u548c\u200b\u7b14\u8bb0\u200b\u7684\u200b\u5185\u5bb9\u200b
Home > Build_this_page
\u200b\u91cd\u6784\u200b\u4e86\u200b\u7f51\u7ad9\u200b\u7684\u200b\u7ed3\u6784\u200b\uff0c\u200b\u542f\u7528\u200b\u4e86\u200b\u65b0\u200b\u7684\u200bmaterial\u200b\u529f\u80fd\u200b
Blog > docker_minisql
2023-04-06\u00b6Blog > \u200b\u5728\u200bMac\u200b\u4e0a\u200b\u4f7f\u7528\u200bVSCode\u200b\u8fdb\u884c\u200bC/C++\u200b\u8c03\u8bd5\u200b
2023-04-01\u00b6Blog > \u200b\u6211\u200b\u7684\u200bCLI\u200b\u5de5\u5177\u200b
2023-03-30\u00b6Note > \u200b\u8ba1\u7ec4\u200b\u62fe\u9057\u200b
2023-03-29\u00b6Blog > \u200b\u542f\u7528\u200bchatGPT-academic
2023-03-27\u00b6Note > Missiing Semester > Commandline Environment
2023-03-23\u00b6\u200b\u91cd\u6784\u200b\u4e86\u200b\u5168\u7ad9\u200b\u7684\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b\uff0c\u200b\u73b0\u5728\u200b\u662f\u200b\u9ed8\u8ba4\u200b\u5706\u89d2\u200b\u77e9\u5f62\u200b\u52a0\u200b\u9634\u5f71\u200b
Blog > \u200b\u5728\u200bVSCode\u200b\u4e0b\u200b\u7f16\u5199\u200bMarkdown
Blog > \u200b\u914d\u7f6e\u200bGithub\u200b\u4e2a\u4eba\u200bProfile
2023-03-22\u00b6Blog > \u200b\u7528\u200bssh\u200b\u8fde\u63a5\u200b\u540c\u4e00\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u7684\u200bwsl
Blog > wsl\u200b\u7ec8\u7aef\u200b\u914d\u7f6e\u200b
2023-03-21\u00b6Blog > wsl\u200b\u4e0a\u200b\u542f\u7528\u200bcuda
Blog > VSCode\u200b\u7ec8\u7aef\u200b\u4e0a\u200b\u65e0\u6cd5\u200b\u542f\u7528\u200bconda\u200b\u865a\u62df\u73af\u5883\u200b
2023-03-20\u00b6Blog > zsh\u200b\u4e2d\u200b\u7684\u200b\u53c2\u6570\u4f20\u9012\u200b
2023-03-18\u00b6Home > \u200b\u6700\u8fd1\u200b\u66f4\u65b0\u200b
\u200b\u4fee\u6539\u200b\u4e86\u200b\u7f51\u7ad9\u200b\u7684\u200b\u8272\u5f69\u200b,\u200b\u4f7f\u7528\u200b\u4e86\u200b\u66f4\u200b\u591a\u6837\u200b\u7684\u200b\u56fe\u6807\u200b
Research > Diffusion > DDPM
Research > Diffusion > DDIM
"},{"location":"Note/","title":"\u7b14\u8bb0\u672c\u200b\uff01","text":"\u200b\u5927\u5b66\u200b\u671f\u95f4\u200b\u7684\u200b\u7b14\u8bb0\u200b\u5408\u96c6\u200b
\u200b\u5176\u5b9e\u200b\u6211\u200b\u4e00\u76f4\u200b\u4ee5\u6765\u200b\u90fd\u200b\u4e0d\u600e\u4e48\u200b\u8bb0\u7b14\u8bb0\u200b\uff0c\u200b\u4f46\u200b\u4e4b\u524d\u200b\u51e0\u6b21\u200b\u6570\u5b66\u8bfe\u200b\u4e0d\u200b\u8bb0\u7b14\u8bb0\u200b\u5dee\u70b9\u200b\u66b4\u6bd9\u200b\u4e86\u200b\uff0c\u200b\u6240\u4ee5\u200b\u504f\u200b\u6570\u5b66\u200b\u7684\u200b\u8bfe\u200b\u8fd8\u662f\u200b\u4fdd\u7559\u200b\u4e86\u200b\u8bb0\u7b14\u8bb0\u200b\u7684\u200b\u4e60\u60ef\u200b\u7684\u200b.
\u200b\u53e6\u5916\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u671f\u672b\u200b\u590d\u4e60\u200b\u4ea7\u751f\u200b\u7684\u200b\u7b14\u8bb0\u200b\uff0c\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u6613\u200b\u5fd8\u200b\u77e5\u8bc6\u200b\u7684\u200b\u6574\u7406\u200b
"},{"location":"Note/CO_review/","title":"\u8ba1\u7b97\u673a\u200b\u7ec4\u6210","text":"\u200b\u7ea6\u200b 431 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
\u200b\u6781\u5176\u200b\u7b80\u7565\u200b\uff0c\u200b\u53ea\u6709\u200b\u90e8\u5206\u200b\u6613\u200b\u5fd8\u200b\u3001\u200b\u6216\u200b\u4e0d\u200b\u90a3\u4e48\u200b\u663e\u7136\u200b\u7684\u200b\u77e5\u8bc6\u70b9\u200b\uff08\u200b\u62ff\u6765\u200b\u67e5\u8868\u200b\uff09\uff0c\u200b\u6240\u4ee5\u200b\u796d\u7956\u200b\u53ea\u7528\u200b\u4e86\u200b\u4e00\u9875\u200b
\u200b\u8bb8\u591a\u200b\u5185\u5bb9\u200b\u6458\u81ea\u200b\u54b8\u9c7c\u200b\u6684\u200b\u7684\u200b\u4ee3\u7801\u200b\u7a7a\u95f4\u200b
\u200b\u8fd9\u91cc\u200b\u662f\u200b\u8bfe\u672c\u200b\u4f5c\u4e1a\u200b\u7b54\u6848\u200b
"},{"location":"Note/CO_review/#ch2-instructions","title":"Ch2 Instructions","text":"PC + offset
\u200b\u800c\u200b\u975e\u200b PC + 4 + offset
bgeu
\u200b\u6765\u200b\u68c0\u6d4b\u200b\u8d8a\u754c\u200b\uff08\u200b\u5c0f\u4e8e\u200b\u96f6\u200b\u6216\u8005\u200b\u5927\u4e8e\u200b\u67d0\u4e2a\u200b\u6570\u200b\uff09lui
\u200b\u52a0\u8f7d\u200b\u4e86\u200b\u7acb\u5373\u200b\u6570\u200b\u7684\u200b\u9ad8\u200b 20 \u200b\u4f4d\u540e\u200b\uff0c\u200b\u7528\u200baadi
\u200b\u52a0\u8f7d\u200b\u4f4e\u200b 12 \u200b\u4f4d\u200b\uff0c\u200b\u82e5\u56e0\u200b\u7b26\u53f7\u200b\u6269\u5c55\u200b\u5bfc\u81f4\u200b\u8fdb\u4f4d\u200b\uff0c\u200b\u53ea\u8981\u200b\u591a\u52a0\u200b 1000 \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u62b5\u6d88\u200b FFFFF000 \u200b\u7684\u200b\u5f71\u54cd\u200b\u200b\u8fd8\u6709\u200b\u51e0\u5f20\u200b\u5e38\u7528\u200b\u8868\u200b\uff1a
\uff08\u200b\u4e0b\u56fe\u200b\u91cc\u200b\u7684\u200b j imm \u200b\u8981\u200b\u6539\u6210\u200b PC+imm\uff09
"},{"location":"Note/CO_review/#ch3-arithmetic","title":"Ch3 Arithmetic","text":"\u200b\u7ea6\u200b 424 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
1.
B \u200b\u6811\u200b\u5229\u7528\u200b\u4e86\u200b\u5c40\u90e8\u6027\u200b\u6765\u200b\u52a0\u901f\u200b\u8bbf\u95ee\u200b\n\nB \u200b\u6811\u200b\u7684\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u662f\u200b\u6307\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u7a7a\u200b\u5b69\u5b50\u200b\n\n![](image/B-Tree_B+Tree/media/image1.png)\n
2.
\u200b\u5bf9\u200b B \u200b\u6811\u200b\u7684\u200b\u8282\u70b9\u200b\u5173\u952e\u7801\u200b\u6570\u200b\u7ea6\u5b9a\u200b\uff0c\u200b\u6ce8\u610f\u200b\u4e0b\u9650\u200b\u662f\u200b\u4e0a\u200b\u53d6\u6574\u200b\uff0c\u200b\u53ef\u7528\u200b\u4e0a\u200b\u4e0b\u9650\u200b\u547d\u540d\u200b\n\u200b\u5982\u200b\uff083\uff0c5\uff09\u200b\u6811\u200b/5 \u200b\u9636\u200b B \u200b\u6811\u200b\uff0c5 \u200b\u9636\u200b B \u200b\u6570\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6700\u200b\u591a\u200b 4 \u200b\u4e2a\u200b\u5173\u952e\u7801\u200b\n\n![](image/B-Tree_B+Tree/media/image2.png)\n
3.
B \u200b\u6811\u200b\u5728\u200b\u5185\u5b58\u200b\u4e2d\u200b\u5b9e\u9645\u200b\u7684\u200b\u5b58\u50a8\u200b\u5f62\u5f0f\u200b\u4e3a\u200b\n\n![](image/B-Tree_B+Tree/media/image3.png)\n
4.
\u200b\u6ce8\u610f\u200b \u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u6570\u200b=\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u6570\u200b+1\n\n![](image/B-Tree_B+Tree/media/image4.png)\n\n\n\u200b\u4e5f\u200b\u53ef\u200b\u7406\u89e3\u200b\u4e3a\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u5bf9\u5e94\u200b N \u200b\u79cd\u200b\u6210\u529f\u200b\uff0c\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\u5c31\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b N+1 \u200b\u79cd\u200b\u5931\u8d25\u200b\u7684\u200b\u60c5\u51b5\u200b\n
5.
B \u200b\u6811\u200b\u7684\u200b\u9ad8\u5ea6\u200b\u5c31\u200b\u5728\u200b\u3001\\thetalogmn\n\n![](image/B-Tree_B+Tree/media/image5.png)\n
6.
B \u200b\u6570\u200b\u7684\u200b\u63d2\u5165\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u81f4\u200b\u8282\u70b9\u200b key \u200b\u8fc7\u591a\u200b\uff0c\u200b\u5219\u200b\u9700\u8981\u200b\u5206\u88c2\u200b\uff0c\u200b\u5e76\u200b\u628a\u200b\u4e2d\u70b9\u200b\u4e0a\u79fb\u200b\n\n![](image/B-Tree_B+Tree/media/image6.png)\n\n\n\u200b\u5982\u679c\u200b\u5206\u88c2\u200b\u5230\u200b\u6839\u200b \u200b\u90a3\u4e48\u200b\u9ad8\u5ea6\u200b\u52a0\u200b 1\n
7.
B \u200b\u6811\u200b\u7684\u200b\u5220\u9664\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u81f4\u200b\u4e0b\u200b\u8d8a\u754c\u200b\uff0c\u200b\u4f46\u51e1\u200b\u5de6\u53f3\u200b\u6709\u200b\u4e00\u4e2a\u200b\u5144\u5f1f\u200b\u6709\u200b\u591a\u200b\u7684\u200b\uff08\u200b\u501f\u51fa\u200b\u540e\u200b\u4e0d\u4e0b\u200b\u6ea2\u51fa\u200b\uff09\uff0c\u200b\u65cb\u8f6c\u200b\n\n![](image/B-Tree_B+Tree/media/image7.png)\n\n\n\u200b\u5982\u679c\u200b\u6ca1\u6709\u200b\uff0c \u200b\u4ece\u200b\u4e0a\u9762\u200b\u62fd\u200b\u4e00\u4e2a\u200b\u4e0b\u6765\u200b\uff0c\u200b\u4e09\u200b\u90e8\u5206\u200b\u4e00\u8d77\u200b\u5408\u5e76\u200b\n\n![](image/B-Tree_B+Tree/media/image8.png)\n\n\n\u200b\u5408\u5e76\u200b\u5230\u200b\u6839\u200b\uff0c\u200b\u5c31\u200b\u628a\u200b\u7a7a\u6839\u200b\u5220\u9664\u200b\uff0c\u200b\u81f3\u6b64\u200b\u9ad8\u5ea6\u200b\u51cf\u4e00\u200b\n
8.
B \u200b\u6811\u200b\u628a\u200b\u6570\u636e\u200b\u5b58\u5728\u200b\u8282\u70b9\u200b\u4e2d\u200b\uff0c\u200b\u6bd4\u8d77\u200b B+\u200b\u6811\u200b\u5b58\u5728\u200b\u6839\u4e2d\u200b\uff0cB \u200b\u9664\u4e86\u200b key \u200b\u591a\u200b\u4e86\u200b\u4e2a\u200b\u6307\u9488\u200b\u7684\u200b\u5927\u5c0f\u200b.\u200b\u9664\u53bb\u200b\u6307\u9488\u200b\u7d22\u5f15\u200b\u53ef\u4ee5\u200b\u5bb9\u7eb3\u200b\u5bbd\u200b\u6241\u200b\u7684\u200b\u6811\u200b.\n\n\u200b\u53e6\u5916\u200b\u52a0\u5165\u200b\u8981\u200b\u67e5\u627e\u200b\u67d0\u4e00\u200b\u533a\u95f4\u200b\u7684\u200b\u70b9\u200b\u6bd4\u5982\u200b 20-60\uff0c\u200b\u9700\u8981\u200b\u4f9d\u6b21\u200b\u641c\u7d22\u200b\uff0c\u200b\u5f88\u200b\u9ebb\u70e6\u200b\n\n\u200b\u5f15\u5165\u200b B+\u200b\u6811\u200b\uff1a\n\n![](image/B-Tree_B+Tree/media/image9.png)\n\n\n\u200b\u7d22\u5f15\u200b\u503c\u200b\uff08\u200b\u5185\u90e8\u200b\u70b9\u200b\uff09\u200b\u4e0d\u200b\u91cd\u590d\u200b\uff1b\n\n\u200b\u4e0d\u518d\u200b\u9700\u8981\u200b B \u200b\u6811\u200b\u7684\u200b\u5916\u90e8\u200b\u8282\u70b9\u200b\uff1b\n\n\u200b\u53f6\u5b50\u200b\u5757\u200b\u5355\u5411\u200b\u94fe\u8868\u200b\uff0c\u200b\u65b9\u4fbf\u200b\u67e5\u627e\u200b\u67d0\u4e2a\u200b\u8303\u56f4\u200b\u5185\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u4e0d\u5fc5\u200b\u591a\u904d\u200b\u4ece\u6839\u200b\u51fa\u53d1\u200b.\n\n\u200b\u7d22\u5f15\u200b\u503c\u200b\uff08\u200b\u5185\u90e8\u200b\u70b9\u200b\u7684\u200b key\uff09\u200b\u5b58\u200b\u7684\u200b\u662f\u200b\u53f3\u5b50\u200b\u6811\u200b\u7684\u200b\u6700\u5c0f\u200b\u53f6\u5b50\u200b\u8282\u70b9\u200b\u7684\u200b\u503c\u200b.\n\n\u200b\u5982\u679c\u200b\u6709\u200b\u78c1\u76d8\u200b\u6307\u9488\u200b\uff0c\u200b\u4e5f\u200b\u90fd\u200b\u5b58\u5728\u200b\u6709\u200b\u8282\u70b9\u200b.\n\n\u200b\u63d2\u5165\u200b\u5220\u9664\u200b\u4e0e\u200b B \u200b\u6811\u200b\u76f8\u4eff\u200b.\u200b\u4f46\u200b\u90fd\u200b\u8981\u200b\u6df1\u5165\u200b\u5230\u200b\u53f6\u200b\u8282\u70b9\u200b.\n
"},{"location":"Note/ADS/BST_AVL_Splay/","title":"BST AVL Splay","text":"\u200b\u7ea6\u200b 287 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
\u200b\u6211\u4eec\u200b\u5728\u200b\u8c03\u7528\u200b search \u200b\u65f6\u4f1a\u200b\u591a\u200b\u4f20\u9012\u200b\u4e00\u4e2a\u200b\u5f15\u7528\u200b\u7684\u200b\u53c2\u6570\u200b hot \u200b\u5176\u200b\u610f\u4e49\u200b\u5982\u4e0b\u200b\uff1a
\u200b\u8fd9\u200b\u6709\u5229\u4e8e\u200b\u6211\u4eec\u200b\u5b9e\u73b0\u200b insert delete
2.
BST \u200b\u7684\u200b\u5e73\u5747\u200b\u9ad8\u5ea6\u200b\uff0c\u200b\u6709\u200b\u4e24\u79cd\u200b\u8ba1\u7b97\u200b\u65b9\u5f0f\u200b\n\n 1. \u200b\u968f\u673a\u200b\u7ec4\u6210\u200b\uff1a\u200b\u8ba1\u7b97\u200b\u4e00\u5171\u200b\u6709\u200b\u591a\u5c11\u200b\u79cd\u200b\u53ef\u80fd\u200b\u7684\u200b\u62d3\u6251\u200b\u7ed3\u6784\u200b \u200b\u6839\u53f7\u200b n Catalan\uff08N\uff09\u200b\u79cd\u200b\u7ed3\u6784\u200b\n\n 2. \u200b\u968f\u673a\u200b\u751f\u6210\u200b\uff1a\u200b\u8ba1\u7b97\u200b\u4e00\u5171\u200b\u6709\u200b\u591a\u5c11\u200b\u79cd\u200b\u53ef\u80fd\u200b\u7684\u200b\u8f93\u5165\u200b\u5e8f\u5217\u200b ln N N\uff01\u200b\u79cd\u200b\u5e8f\u5217\u200b\n\n![](image/BST_AVL_Splay/media/image2.png)\n\n\n\u200b\u968f\u673a\u200b\u7ec4\u6210\u200b\u66f4\u52a0\u200b\u53ef\u4fe1\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u968f\u673a\u200b\u751f\u6210\u200b\u4f1a\u200b\u989d\u5916\u200b\u589e\u5927\u200b 213 \u200b\u548c\u200b 231 \u200b\u8fd9\u4e00\u8f83\u200b\u4f4e\u6811\u200b\u7684\u200b\u6743\u91cd\u200b\uff0c\u200b\u91cd\u590d\u200b\u4e86\u200b\n
3.\u200b\u7b49\u4ef7\u200b BST
\u200b\u4e0a\u4e0b\u200b\u5177\u6709\u200b\u4e00\u5b9a\u200b\u7684\u200b\u7075\u6d3b\u200b\u5ea6\u200b\n\n![](image/BST_AVL_Splay/media/image3.png)\n\n\n![](image/BST_AVL_Splay/media/image4.png)\n
4.
![](image/BST_AVL_Splay/media/image5.png)\n\n\n\u200b\u5de6\u200b\u5206\u53c9\u200b\u662f\u200b zig \u200b\u53f3\u200b\u5206\u53c9\u200b\u662f\u200b zag\uff0c\u200b\u65cb\u8f6c\u200b\u53ef\u4ee5\u200b\u4fdd\u6301\u200b BST \u200b\u7684\u200b\u7b49\u4ef7\u200b\n
5.
AVL \u200b\u7684\u200b\u63d2\u5165\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u5bfc\u81f4\u200b\u4e00\u7cfb\u5217\u200b\u7956\u5148\u200b\u7684\u200b\u5931\u8861\u200b\uff0c\u200b\u4f46\u662f\u200b\u5220\u9664\u200b\u53ea\u200b\u53ef\u80fd\u200b\u5bfc\u81f4\u200b\u67d0\u200b\u4e00\u4e2a\u200b\u7956\u5148\u200b\u7684\u200b\u5931\u8861\u200b\n
6.
![](image/BST_AVL_Splay/media/image6.png)\n\n\n\u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u627e\u5230\u200b\u7b2c\u4e00\u4e2a\u200b\u5931\u8861\u200b\u70b9\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5faa\u73af\u200b\u8d70\u200b\u554a\u200b\u8def\u5f84\u200b\u53ea\u8981\u200b\u5f80\u4e0b\u200b\u627e\u200b\u4e24\u6b21\u200b\u9ad8\u5ea6\u200b\u6700\u9ad8\u200b\u7684\u200b\u5b69\u5b50\u200b\u5c31\u200b\u597d\u200b\n
7.
\u200b\u4f38\u5c55\u200b\u6811\u200b\u7684\u200b\u5220\u9664\u200b\u548c\u200b\u63d2\u5165\u200b\uff0c\u200b\u7531\u4e8e\u200b 1 \u200b\u90fd\u200b\u9700\u8981\u200b\u7528\u200b search \u200b\u64cd\u4f5c\u200b\uff0csearch \u200b\u5b8c\u540e\u200b self/hot \u200b\u4f1a\u200b\u6210\u4e3a\u200b\u65b0\u200b\u7684\u200b\u6839\u200b\u8282\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u63d2\u5165\u200b\u5220\u9664\u200b\u53ea\u8981\u200b\u5728\u200b\u641c\u7d22\u200b\u5b8c\u540e\u200b\u5bf9\u200b\u6839\u200b\u64cd\u4f5c\u200b\u5373\u53ef\u200b.\n\n![](image/BST_AVL_Splay/media/image7.png)\n
"},{"location":"Note/ADS/Heap/","title":"\u4f18\u5148\u7ea7\u200b\u961f\u5217\u200b/\u200b\u5806\u200b\u62fe\u9057","text":"\u200b\u7ea6\u200b 100 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"Note/ADS/Heap/#npl","title":"NPL \u200b\u7684\u200b\u53e6\u200b\u4e00\u79cd\u200b\u7406\u89e3","text":"\u200b\u53ef\u4ee5\u200b\u53c2\u770b\u200b\u56fe\u7247\u200b\u7406\u89e3\u200b\uff0c\u200b\u8282\u70b9\u200b NPL \u200b\u4e5f\u200b\u662f\u200b\u8be5\u5b50\u200b\u6811\u200b\u7684\u200b\u6700\u5927\u200b\u5b8c\u5168\u200b\u4e8c\u53c9\u6811\u200b\u6df1\u5ea6\u200b
"},{"location":"Note/ADS/Heap/#_2","title":"\u6700\u5c0f\u200b\u8282\u70b9\u200b\u6570\u200b\u7684\u200b\u8bc1\u660e","text":"\u200b\u5728\u200b\u6b64\u57fa\u7840\u200b\u4e0a\u200b\u5f88\u200b\u597d\u200b\u8bc1\u660e\u200b\u53f3\u4fa7\u200b\u94fe\u200b\u7684\u200b\u957f\u5ea6\u200b\u4e0a\u9650\u200b
"},{"location":"Note/ADS/Heap/#_3","title":"\u9526\u6807\u8d5b\u200b\u6811\u200b\uff0c\u200b\u4e86\u89e3\u200b\u5373\u53ef","text":""},{"location":"Note/ADS/Heap/#_4","title":"\u591a\u53c9\u5806\u200b\uff0c\u200b\u64cd\u4f5c\u200b\u590d\u6742\u5ea6\u200b\u6539\u53d8","text":"\u200b\u8fd9\u200b\u5c06\u200b\u5bfc\u81f4\u200b\u5e94\u7528\u200b\u5728\u200b\u56fe\u200b\u7b97\u6cd5\u200b\u4e0a\u200b\u81ea\u200b\u9002\u5e94\u200b\u6700\u4f18\u200b
"},{"location":"Note/ADS/RBTree/","title":"RBTree","text":"\u200b\u7ea6\u200b 70 \u200b\u4e2a\u200b\u5b57\u200b
1.
\u200b\u56db\u4e2a\u200b\u7ea6\u675f\u6761\u4ef6\u200b\uff1a\n\n![](image/RBTree/media/image1.png)\n
2.
\u200b\u7ea2\u9ed1\u6811\u200b\u5c31\u662f\u200b B-\u200b\u6811\u200b\n\n![](image/RBTree/media/image2.png)\n
3.
\u200b\u5229\u7528\u200b B-\u200b\u6811\u200b\u8bc1\u660e\u200b\u7ea2\u9ed1\u6811\u200b\u7684\u200b\u9ad8\u5ea6\u200b\n\n![](image/RBTree/media/image3.png)\n
4.
\u200b\u5229\u7528\u200b B-Tree \u200b\u8ba4\u8bc6\u200b\u95ee\u9898\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u53ea\u200b\u9700\u200b\u4f7f\u7528\u200b 3\uff0c4 \u200b\u91cd\u6784\u200b\u5373\u53ef\u200b\uff0c\u200b\u91cd\u65b0\u200b\u5f52\u4e8e\u200b RBR\n\n![](image/RBTree/media/image4.png)\n
5.
\u200b\u7ea2\u9ed1\u6811\u200b\u63d2\u5165\u200b\u7684\u200b\u590d\u6742\u5ea6\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u91cd\u6784\u200b\uff08\u200b\u65cb\u8f6c\u200b\uff09\u200b\u81f3\u591a\u200b\u5e38\u6570\u200b\u6b21\u200b\n\n![](image/RBTree/media/image5.png)\n
"},{"location":"Note/Data%20Modeling/","title":"\u6570\u636e\u200b\u5efa\u6a21\u200b\u4e0e\u200b\u5206\u6790","text":"\u200b\u7ea6\u200b 138 \u200b\u4e2a\u200b\u5b57\u200b
\u200b\u8bfe\u7a0b\u200b\u4fe1\u606f\u200b
\u200b\u6388\u8bfe\u200b\u6559\u5e08\u200b\uff1a\u200b\u90ed\u6b63\u521d\u200b
\u200b\u5f00\u200b\u79d1\u5b66\u9662\u200b\uff1a\u200b\u6570\u5b66\u200b\u79d1\u5b66\u200b\u5b66\u9662\u200b
\u200b\u5f00\u8bfe\u200b\u5b66\u671f\u200b\uff1a2023 \u200b\u5e74\u6625\u590f\u200b
\u200b\u9884\u4fee\u200b\u8981\u6c42\u200b\uff1a\u200b\u5fae\u79ef\u5206\u200b\uff0c\u200b\u7ebf\u6027\u4ee3\u6570\u200b\uff0c\u200b\u6982\u7387\u8bba\u200b
\u200b\u6559\u6750\u200b\uff1a \u200b\u7edf\u8ba1\u200b\u5b66\u4e60\u200b\u65b9\u6cd5\u200b \u200b\u674e\u822a\u200b \u200b\u7b2c\u4e8c\u200b\u7248\u200b
\u200b\u672c\u95e8\u200b\u8bfe\u7a0b\u200b\u4e3b\u8981\u200b\u805a\u7126\u200b\u4e8e\u200b\u673a\u5668\u200b\u5b66\u4e60\u200b\u7684\u200b\u7b97\u6cd5\u200b\u8bb2\u89e3\u200b\u4e0e\u200b\u5206\u6790\u200b\uff0c\u200b\u5e76\u4e14\u200b\u5927\u90e8\u5206\u200b\u673a\u5668\u200b\u5b66\u4e60\u200b\u7684\u200b\u65b9\u6cd5\u200b\u4ecd\u200b\u5c5e\u4e8e\u200b\u7edf\u8ba1\u200b\u5b66\u4e60\u200b\u800c\u200b\u975e\u200b\u6df1\u5ea6\u200b\u5b66\u4e60\u200b\u7684\u200b\u8303\u7574\u200b\uff0c\u200b\u6bd4\u8f83\u200b\u4f20\u7edf\u200b. \u200b\u672c\u95e8\u200b\u8bfe\u7a0b\u200b\u4e3a\u200b\u6570\u5b66\u200b\u79d1\u5b66\u200b\u5b66\u9662\u200b\u5f00\u8bbe\u200b\uff0c\u200b\u6570\u5b66\u200b\u6c14\u606f\u200b\u6bd4\u8f83\u200b\u6d53\u539a\u200b.
"},{"location":"Note/Data%20Modeling/Boosting/","title":"\u63d0\u5347\u200b\u65b9\u6cd5","text":"\u200b\u7ea6\u200b 453 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
"},{"location":"Note/Data%20Modeling/Boosting/#adaboost","title":"AdaBoost","text":"\u200b\u8f93\u5165\u200b\uff1a\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u4e00\u79cd\u200b\u5f31\u200b\u5b66\u4e60\u200b\u7b97\u6cd5\u200b \u200b\u8f93\u51fa\u200b\uff1a\u200b\u6700\u7ec8\u200b\u5206\u7c7b\u5668\u200b G(x)
\u200b\u521d\u59cb\u5316\u200b\u8bad\u7ec3\u200b\u6570\u636e\u200b\u7684\u200b\u6743\u503c\u200b\u5206\u5e03\u200b
\\[ D_1 = (w_{11}\uff0c\\cdots\uff0cw_{1i}\uff0c\\cdots\uff0cw_{1N})\uff0cw_{1i} = \\frac{1}{N}\uff0ci=1\uff0c2\uff0c\\cdots\uff0cN \\]\u200b\u8fd0\u884c\u200b\u5f31\u200b\u5b66\u4e60\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u5f97\u5230\u200b\u5f31\u200b\u5206\u7c7b\u5668\u200b\\(G_m(x)\\)
\u200b\u8ba1\u7b97\u8bef\u5dee\u200b\u7387\u200b : \\(e_m = \\sum_{i=1}^{N} P(G_m(x_i) \\neq y_i) = \\sum_{i=1}^{N} w_{mi}I(G_m(x_i) \\neq y_i)\\)
\u200b\u8be5\u200b\u5206\u7c7b\u5668\u200b\u7684\u200b\u6743\u91cd\u200b\u4e3a\u200b\uff1a\\(\\alpha_m = \\frac{1}{2} \\log \\frac{1-e_m}{e_m}\\)
\u200b\u66f4\u65b0\u200b\u65b0\u4e00\u8f6e\u200b\u7684\u200b\u6743\u91cd\u200b\uff0c\u200b\u5176\u4e2d\u200b\u6bcf\u4e2a\u200b\u6837\u672c\u200b\u7684\u200b\u6743\u91cd\u200b\u4e3a\u200b\uff1a\\(w_{m+1\uff0ci} = \\frac{w_{mi}}{Z_m} \\exp(-\\alpha_m y_i G_m(x_i))\\) \uff08\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u5982\u679c\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6743\u91cd\u200b\u4f1a\u200b\u51cf\u5c0f\u200b\uff0c\u200b\u5982\u679c\u200b\u5206\u7c7b\u200b\u9519\u8bef\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6743\u91cd\u200b\u4f1a\u200b\u589e\u5927\u200b\uff09
\u200b\u91cd\u590d\u200b\u7b2c\u4e8c\u6b65\u200b\uff0c\u200b\u76f4\u5230\u200b\u5f3a\u200b\u5206\u7c7b\u5668\u200b\\(G(x) = \\sum_{m=1}^{M} \\alpha_m G_m(x)\\)\u200b\u5df2\u7ecf\u200b\u6ee1\u8db3\u200b\u5206\u7c7b\u200b\u8981\u6c42\u200b
\u200b\u63d0\u5347\u200b\u6811\u662f\u200b\u4ee5\u200b\u51b3\u7b56\u6811\u200b/\u200b\u56de\u5f52\u200b\u6811\u4e3a\u200b\u57fa\u200b\u5206\u7c7b\u5668\u200b\u7684\u200b\u5047\u53d1\u200b\u6a21\u578b\u200b.
\u200b\u6211\u4eec\u200b\u5b9a\u4e49\u200b\u4e00\u4e2a\u200b\u524d\u884c\u200b\u5206\u6b65\u200b\u4e3a\u200b\uff1a
\\[ f_m(x) = f_{m-1}(x) + T(x;\\Theta_m) \\]\u200b\u5176\u4e2d\u200b\u65b0\u6811\u200b\u7684\u200b\u53c2\u6570\u200b\u901a\u8fc7\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6781\u5c0f\u200b\u5316\u200b\u8fdb\u884c\u200b\u66f4\u65b0\u200b\uff1a
\\[ \\Theta_m = \\underset{\\Theta}{\\operatorname{argmin}} \\sum_{i=1}^{N} L(y_i\uff0cf_{m-1}(x_i) + T(x_i;\\Theta)) \\]\u200b\u5bf9\u4e8e\u200b\u56de\u5f52\u200b\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u5199\u51fa\u200b\u5e73\u65b9\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a
\\[ L = (y - f(x))^2 = (y - f_{m-1}(x) - T(x;\\Theta))^2 = [r - T(x;\\Theta)]^2 \\]\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u65b0\u200b\u8bad\u7ec3\u200b\u4e00\u4e2a\u200b\u6811\u200b T \u200b\u6765\u200b\u62df\u5408\u200b\u9910\u53c9\u200b\\(r = y - f_{m-1}(x)\\)\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b.
"},{"location":"Note/Data%20Modeling/Boosting/#_3","title":"\u68af\u5ea6\u200b\u63d0\u5347","text":"\u200b\u5bf9\u4e8e\u200b\u4e00\u822c\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff08\u200b\u975e\u200b\u5e73\u65b9\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff09\uff0c\u200b\u4e0d\u662f\u200b\u90a3\u4e48\u200b\u5bb9\u6613\u200b\u627e\u5230\u200b\u6b8b\u5dee\u200b
\u200b\u901a\u5e38\u200b\u6211\u4eec\u200b\u4f1a\u200b\u7528\u200b\\(\\frac{\\partial L(y_i\uff0cf(x_i))}{\\partial f(x_i)}\\)\u200b\u6765\u200b\u4ee3\u66ff\u200b\u6b8b\u5dee\u200b\uff0c\u200b\u8bad\u7ec3\u200b\u4e00\u68f5\u200b\u65b0\u200b\u7684\u200b\u6811\u6765\u200b\u62df\u5408\u200b\u6b8b\u5dee\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u65b0\u6811\u200b\u7684\u200b\u6bcf\u4e2a\u200b\u5206\u652f\u200b\uff0c\u200b\u7528\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6700\u5c0f\u5316\u200b\u6765\u200b\u786e\u5b9a\u200b\u4ee3\u8868\u200b\u503c\u200b
"},{"location":"Note/Data%20Modeling/Centering/","title":"\u805a\u7c7b\u200b\u65b9\u6cd5","text":"\u200b\u7ea6\u200b 1018 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
Warning
\u200b\u8fd9\u7ae0\u200b\u6211\u200b\u770b\u200b\u7684\u200b\u660f\u660f\u200b\u7684\u200b\uff0c\u200b\u53ea\u7b97\u9884\u200b\u53d1\u5e03\u200b
"},{"location":"Note/Data%20Modeling/Centering/#_2","title":"\u4e00\u4e9b\u200b\u5b9a\u4e49","text":"\u200b\u6837\u672c\u200b\u95f4\u8ddd\u200b
\u200b\u95f5\u53ef\u200b\u592b\u65af\u57fa\u200b\u8ddd\u79bb\u200b\u9a6c\u6c0f\u200b\u8ddd\u79bb\u200b\u76f8\u5173\u7cfb\u6570\u200b\u5939\u89d2\u200b\u4f59\u5f26\u200b \\[ d_{ij} = \\left( \\sum_{k=1}^p \\left| x_{ik} - x_{jk} \\right|^r \\right)^{\\frac{1}{r}} \\]\u200b\u9996\u5148\u200b\u8ba1\u7b97\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b S
\\[ S = \\frac{1}{n-1} \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\]\u200b\u9996\u5148\u200b\u8ba1\u7b97\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b S
\\[ r_{ij} = \\frac{S_{ij}}{\\sqrt{S_{ii}S_{jj}}} \\] \\[ \\cos \\theta_{ij} = \\frac{x_i^T x_j}{\\sqrt{x_i^T x_i x_j^T x_j}} \\]\u200b\u4e00\u4e9b\u200b\u77e9\u9635\u200b
\u200b\u6837\u672c\u200b\u6563\u5e03\u200b\u77e9\u9635\u200b\u534f\u65b9\u5dee\u200b\u77e9\u9635\u200b \\[ S = \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\] \\[ S = \\frac{1}{n-1} \\sum_{i=1}^n (x_i - \\bar{x})(x_i - \\bar{x})^T \\]\u200b\u7c7b\u200b\u76f8\u5173\u200b\u5b9a\u4e49\u200b
\u200b\u7c7b\u7c7b\u200b\u76f4\u5f84\u200b\u7c7b\u200b\u4e2d\u5fc3\u200b\u7c7b\u95f4\u200b\u8ddd\u79bb\u200b\u200b\u4e00\u4e2a\u200b\u7c7b\u200b\u5c31\u662f\u200b\u6570\u636e\u200b\u96c6\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5b50\u96c6\u200b
\u200b\u7c7b\u5185\u200b\u6700\u8fdc\u200b\u95f4\u8ddd\u200b
\\[ D_G = \\underset{x_i\uff0cx_j \\in G}{\\operatorname{max}} d_{ij} \\]\u200b\u4e5f\u200b\u5c31\u662f\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u7684\u200b\u5e73\u5747\u503c\u200b
\\[ \\bar{x} = \\frac{1}{n} \\sum_{x_i \\in G} x_i \\]\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4e24\u7c7b\u200b\u4e2d\u6837\u200b\u7684\u200b\u6700\u200b\u77ed\u8ddd\u79bb\u200b\uff0c\u200b\u6700\u200b\u957f\u8ddd\u79bb\u200b\uff0c\u200b\u4e2d\u5fc3\u200b\u8ddd\u79bb\u200b\u6216\u8005\u200b\u5e73\u5747\u200b\u8ddd\u79bb\u200b
"},{"location":"Note/Data%20Modeling/Centering/#_3","title":"\u805a\u5408\u200b\u805a\u7c7b","text":"\u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u4e09\u8981\u7d20\u200b\u4e3a\u200b\uff1a
\u200b\u7ed9\u5b9a\u200b\u4ee5\u4e0a\u200b\u4e09\u8981\u7d20\u200b\uff0c\u200b\u4e00\u822c\u200b\u7684\u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u7684\u200b\u7b97\u6cd5\u200b\u4e3a\u200b\uff1a
\u200b\u8be5\u200b\u7b97\u6cd5\u200b\u7684\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(n^3m)\\)\uff0c\u200b\u5176\u4e2d\u200b m \u200b\u4e3a\u200b\u7ef4\u5ea6\u200b\u6570\u200b\uff0cn \u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2a\u6570\u200b
\u200b\u805a\u5408\u200b\u805a\u7c7b\u200b\u5c5e\u4e8e\u200b\u5c42\u6b21\u200b\u805a\u7c7b\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4ece\u200b n \u200b\u7c7b\u200b-1 \u200b\u7c7b\u200b\u8fd9\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b\u5206\u7c7b\u200b\u7ed3\u679c\u200b
\u200b\u6ce8\u610f\u200b\u5728\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\\([d_{ij}]\\)\u200b\u77e9\u9635\u200b\u6765\u200b\u52a0\u901f\u200b\u8fd0\u7b97\u200b
"},{"location":"Note/Data%20Modeling/Centering/#k-means","title":"K-means","text":"\u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(mnk)\\)
k \u200b\u7684\u200b\u9009\u53d6\u200b\u5e94\u8be5\u200b\u5927\u5230\u200b\u7c7b\u200b\u76f4\u5f84\u200b\u4e0d\u518d\u200b\u51cf\u5c0f\u200b\u4e3a\u6b62\u200b
"},{"location":"Note/Data%20Modeling/Centering/#_4","title":"\u8c31\u200b\u805a\u7c7b","text":"\u200b\u6570\u5b66\u200b\u4e0a\u200b\uff0c\u200b\u8c31\u200b\u5b57\u200b\u4e00\u822c\u200b\u8ddf\u200b\u7279\u5f81\u503c\u200b\u5206\u89e3\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6709\u5173\u200b
\u200b\u6211\u4eec\u200b\u628a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i)\\}\\)\u200b\u4e2d\u200b\u7684\u200b\u6bcf\u200b\u4e00\u4e2a\u70b9\u200b\u90fd\u200b\u5bf9\u5e94\u200b\u5230\u200b\u4e00\u4e2a\u200b\u65e0\u5411\u200b\u5b8c\u5168\u200b\u56fe\u4e0a\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u4e24\u70b9\u200b\u4e4b\u95f4\u200b\u8fde\u8fb9\u200b\u7684\u200b\u6743\u91cd\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b\u5b83\u4eec\u200b\u7684\u200b\u76f8\u4f3c\u200b\u5ea6\u200b.
\u200b\u76f8\u4f3c\u200b\u5ea6\u200b
\\[ w_{ij} = e^{-\\frac{||x_i - x_j||^2}{2\\sigma^2}} \\]\u200b\u663e\u7136\u200b\uff0c\u200b\u8ddd\u79bb\u200b\u8d8a\u8fd1\u200b\uff0c\u200b\u76f8\u4f3c\u200b\u5ea6\u8d8a\u200b\u5927\u200b.
\u200b\u5bf9\u4e8e\u200b\u90a3\u4e9b\u200b\u8db3\u591f\u200b\u9065\u8fdc\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4e0d\u518d\u200b\u76f8\u8fde\u200b\uff0c\u200b\u76f4\u63a5\u200b\u628a\u200b\u76f8\u4f3c\u200b\u5ea6\u7f6e\u200b 0.\u200b\u5982\u4f55\u200b\u786e\u5b9a\u200b\u8fd9\u4e9b\u200b\u8db3\u591f\u200b\u9065\u8fdc\u200b\u7684\u200b\u70b9\u200b\u5462\u200b - \u200b\u7528\u200b k \u200b\u8fd1\u90bb\u200b\u786e\u5b9a\u200b\u51e0\u4e2a\u200b\u90bb\u8fd1\u200b\u7684\u200b\u70b9\u200b - \u200b\u7528\u200b\u4e00\u4e2a\u200b\\(\\epsilon\\)\u200b\u534a\u5f84\u200b\u6765\u200b\u533a\u5206\u200b\u8fdc\u8fd1\u200b
\u200b\u5b9a\u4e49\u200b\u4e00\u4e2a\u70b9\u200b\u7684\u200b\u5ea6\u200b\u4e3a\u200b\u5176\u200b\u6240\u6709\u200b\u8fb9\u200b\u7684\u200b\u6743\u91cd\u200b\u548c\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4e0b\u9762\u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b
\u200b\u77e9\u9635\u200b\u5b9a\u4e49\u200b
\u200b\u5ea6\u200b\u77e9\u9635\u200b D\u200b\u6743\u91cd\u200b\u77e9\u9635\u200b W\u200b\u62c9\u666e\u62c9\u65af\u200b\u77e9\u9635\u200b L \\[ D_{ii} = \\sum_{j=1}^n w_{ij} \\] \\[ W = [w_{ij}] \\] \\[ L = D - W \\]\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u53d1\u73b0\u200b\u5982\u4e0b\u200b\u6027\u8d28\u200b\uff1a
\u200b\u6240\u4ee5\u200b\u5f53\u200b L \u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u96f6\u200b\u7279\u5f81\u503c\u200b\u53ea\u6709\u200b 1 \u200b\u91cd\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5168\u200b 1 \u200b\u5411\u91cf\u200b
\u200b\u5f53\u200b L \u200b\u7684\u200b\u8fde\u901a\u200b\u56fe\u200b\u591a\u4e8e\u200b\u4e00\u4e2a\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u52a0\u5165\u200b L \u200b\u53ef\u4ee5\u200b\u5199\u6210\u200b\uff1a
\\[ L = \\begin{bmatrix} L_1 & 0 & 0 \\\\ 0 & L_2 & 0 \\\\ 0 & 0 & \\dots \\\\ \\end{bmatrix} \\]\u200b\u90a3\u4e48\u200b\u5176\u200b\u5bf9\u5e94\u200b\u7684\u200b\u96f6\u200b\u7279\u5f81\u5411\u91cf\u200b\u4e3a\u200b\uff1a
\\[ \\begin{bmatrix} 1 \\\\ 1 \\\\ \\vdots \\\\ 0 \\\\ 0 \\\\ \\vdots \\\\ 0 \\\\ 0 \\end{bmatrix} \\begin{bmatrix} 0 \\\\ 0 \\\\ \\vdots \\\\ 1 \\\\ 1 \\\\ \\vdots \\\\ 0 \\\\ 0 \\end{bmatrix}\\dots \\begin{bmatrix} 0 \\\\ 0 \\\\ \\vdots \\\\ 0 \\\\ 0 \\\\ \\vdots \\\\ 1 \\\\ 1 \\end{bmatrix} \\]\u200b\u57fa\u672c\u4e0a\u200b\u53ef\u4ee5\u200b\u8ba4\u4e3a\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u81ea\u5df1\u200b\u6784\u6210\u200b\u4e00\u4e2a\u200b\u5206\u5757\u200b\\(L_i\\)\uff0c\u200b\u8fd9\u4e2a\u200b\\(L_i\\)\u200b\u4e5f\u200b\u6709\u200b\u4e00\u4e2a\u200b\u81ea\u5df1\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u200b\u96f6\u200b\u5411\u91cf\u200b
\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5c06\u200b\u8fd9\u4e9b\u200b\u7279\u5f81\u5411\u91cf\u200b\u62fc\u63a5\u200b\u6210\u200b\u4e00\u4e2a\u200b\u77e9\u9635\u200b
\\[ F = [f_1\uff0cf_2\uff0c\\dots\uff0cf_n] \\]\u200b\u7136\u540e\u200b\u6309\u7167\u200b\u884c\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u805a\u7c7b\u200b\u5c31\u200b\u53ef\u4ee5\u200b\uff08\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6bcf\u4e2a\u200b\u8fde\u901a\u200b\u5b50\u56fe\u200b\u88ab\u200b\u805a\u6210\u200b\u4e00\u7c7b\u200b\uff09
"},{"location":"Note/Data%20Modeling/Decision_Tree/","title":"\u51b3\u7b56\u6811","text":"\u200b\u7ea6\u200b 2599 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 9 \u200b\u5206\u949f\u200b
\u200b\u4e0b\u56fe\u200b\u662f\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5b9e\u4f8b\u200b\uff0c\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5185\u90e8\u200b\u8282\u70b9\u200b\u662f\u200b\u7279\u5f81\u200b\uff0c\u200b\u800c\u53f6\u200b\u8282\u70b9\u200b\u662f\u200b\u7c7b\u522b\u200b
\u200b\u51b3\u7b56\u6811\u200b\u5b9e\u4f8b\u200b\u200b\u51b3\u7b56\u6811\u200b\u7b49\u4ef7\u200b\u4e8e\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b if-then \u200b\u89c4\u5219\u200b\uff0c\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b\u4f8b\u5b50\u200b\u90fd\u200b\u88ab\u200b\u4e14\u200b\u4ec5\u200b\u88ab\u200b\u4e00\u6761\u200b\u8def\u5f84\u200b\u8986\u76d6\u200b.
\u200b\u51b3\u7b56\u6811\u200b\u8fd8\u200b\u7b49\u4ef7\u200b\u4e8e\u200b\u4e00\u79cd\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u4e0d\u8fc7\u200b\u8fd9\u79cd\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\u88ab\u200b\u5f3a\u5316\u200b\u6210\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u7a7a\u95f4\u200b\u7684\u200b\u5212\u5206\u200b.
\u200b\u51b3\u7b56\u6811\u200b\u7b97\u6cd5\u200b\u4e3b\u8981\u200b\u6709\u200b\u4ee5\u4e0b\u200b\u4e09\u4e2a\u200b\u8fc7\u7a0b\u200b\uff1a
\u200b\u9996\u5148\u200b\u6211\u4eec\u200b\u5148\u200b\u5b9a\u4e49\u200b\u71b5\u200b\u548c\u200b\u6761\u4ef6\u200b\u71b5\u200b
\u200b\u71b5\u200b
\u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b X\uff1a
\\[ P(X = x_i) = P_i \\]\u200b\u90a3\u4e48\u200b\u8be5\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u4e3a\u200b\uff1a
\\[ H(X) = -\\sum_{i=1}^{n}P_i\\log P_i \\quad\\quad \\in [0\uff0c\\log n] \\]\u200b\u6ce8\u610f\u200b\uff0c\u200b\u5728\u200b\u8ba8\u8bba\u200b\u71b5\u200b\u662f\u200b\u9ed8\u8ba4\u200b\u5bf9\u6570\u200b\u7684\u200b\u5e95\u200b\u4e3a\u200b 2\uff0c\u200b\u6b64\u65f6\u200b\u71b5\u200b\u7684\u200b\u5355\u4f4d\u200b\u4e3a\u200b bit.
\u200b\u5bf9\u200b\u71b5\u200b\u7684\u200b\u7406\u89e3\u200b\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b\u4e00\u4e2a\u200b\u968f\u673a\u200b\u4e3a\u200b 0-7 \u200b\u7684\u200b\u7b49\u200b\u6982\u7387\u200b\u7684\u200b\u968f\u673a\u53d8\u91cf\u200b\uff0c\u200b\u4ece\u200b\u4e0a\u5f0f\u200b\u53ef\u4ee5\u200b\u5f88\u200b\u5bb9\u6613\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u4ed6\u200b\u7684\u200b\u71b5\u200b\u662f\u200b 3bit\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u9700\u8981\u200b 3bit \u200b\u7684\u200b\u4fe1\u606f\u200b\u624d\u80fd\u200b\u786e\u5b9a\u200b\u8fd9\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u53d6\u503c\u200b. \u200b\u8fd9\u200b\u8ddf\u200b\u76f4\u89c2\u200b\u4e0a\u200b\u4e5f\u200b\u662f\u200b\u543b\u5408\u200b\u7684\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u81f3\u5c11\u200b 3bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u5206\u522b\u200b\u8fd9\u200b\u516b\u4e2a\u200b\u4fe1\u53f7\u200b\uff08000-111\uff09.
\u200b\u4e0a\u5f0f\u200b\u4e2d\u200b\u7684\u200b log \u200b\u7684\u200b\u884c\u4e3a\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\uff0c\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u4fe1\u53f7\u200b\u6709\u200b \u215b \u200b\u7684\u200b\u6982\u7387\u200b\u51fa\u73b0\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u4fe1\u53f7\u200b\u9700\u8981\u200b\\(-\\log_2 1/8 = 3\\)bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u8868\u793a\u200b.\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u4fe1\u53f7\u200b\u6709\u200b \u00bc \u200b\u7684\u200b\u6982\u7387\u200b\u51fa\u73b0\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u4fe1\u53f7\u200b\u9700\u8981\u200b\\(-\\log_2 1/4 = 2\\)bit \u200b\u7684\u200b\u7f16\u7801\u200b\u6765\u200b\u8868\u793a\u200b.\u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u7684\u200b\u8ba1\u7b97\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u7f16\u7801\u200b\u957f\u5ea6\u200b\u6c42\u200b\u671f\u671b\u200b.
\u200b\u800c\u200b\u71b5\u200b\u7684\u200b\u503c\u200b\u8d8a\u200b\u5927\u200b\uff0c\u200b\u6211\u4eec\u200b\u76ee\u524d\u200b\u7684\u200b\u4fe1\u606f\u200b\u5c31\u200b\u8d8a\u5c11\u200b.
\u200b\u5047\u5982\u200b\u6211\u4eec\u200b\u8981\u200b\u9884\u6d4b\u200b\u7684\u200b\u4eba\u200b\u7684\u200b\u8fdb\u653b\u200b\u65b9\u5411\u200b\uff0c\u200b\u82e5\u200b\u654c\u4eba\u200b\u8fdb\u653b\u200b\u65b9\u5411\u200b\u8fd9\u4e00\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u4e3a\u200b 3bits\uff0c\u200b\u7b49\u6548\u200b\u654c\u4eba\u200b\u4ece\u200b\u516b\u4e2a\u200b\u65b9\u5411\u200b\u7b49\u200b\u53ef\u80fd\u200b\u8fdb\u653b\u200b.\u200b\u4f46\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u83b7\u53d6\u200b\u4e86\u200b\u67d0\u4e2a\u200b\u4fe1\u606f\u200b\u540e\u6b64\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u71b5\u200b\u53ea\u200b\u5269\u4e0b\u200b 1bit\uff0c\u200b\u7b49\u6548\u200b\u654c\u4eba\u200b\u4ece\u200b\u4e24\u4e2a\u200b\u65b9\u5411\u200b\u7b49\u200b\u53ef\u80fd\u200b\u8fdb\u653b\u200b\uff0c\u200b\u4fe1\u606f\u200b\u5c31\u200b\u5145\u8db3\u200b\u7684\u200b\u591a\u200b\u4e86\u200b.
\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6709\u200b\u4e00\u4e2a\u200b\u76f4\u89c2\u200b\u7684\u200b\u7406\u89e3\u200b\uff0c\u200b\u67d0\u4e2a\u200b\u4fe1\u606f\u200b\u6765\u200b\u4e4b\u540e\u200b\u6211\u200b\u7684\u200b\u71b5\u200b\u51cf\u5c11\u200b\u7684\u200b\u8d8a\u200b\u591a\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u4fe1\u606f\u200b\u7684\u200b\u4fe1\u606f\u91cf\u200b\u8d8a\u5927\u200b\uff0c\u200b\u8d8a\u200b\u6709\u7528\u200b.
\u200b\u6761\u4ef6\u200b\u71b5\u200b
\u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u8054\u5408\u200b\u5206\u5e03\u200b\uff1a
\\[ P(X = x_i\uff0cY = y_j) = P_{ij} \\]\u200b\u90a3\u4e48\u200b\u6761\u4ef6\u200b\u71b5\u200b
\\[ H(Y|X) = -\\sum_{i=1}^{n} P_i H(Y|X = x_i) = -\\sum_{i=1}^{n} P_i \\sum_{j=1}^{m} P_{j|i} \\log P_{j|i} \\]\u200b\u4ece\u200b\u7b2c\u4e00\u4e2a\u200b\u7b49\u200b\u53f7\u200b\u53ef\u4ee5\u200b\u770b\u5f97\u51fa\u6765\u200b\u6761\u4ef6\u200b\u71b5\u200b\u5176\u5b9e\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5bf9\u4e8e\u200b\u4e0d\u540c\u200b\u7684\u200b X \u200b\u7684\u200b\u53d6\u503c\u200b\u6c42\u200b\u671f\u671b\u200b
\u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\u7279\u5f81\u200b A \u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b D \u200b\u7684\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\uff1a
\\[ g(D\uff0cA) = H(D) - H(D|A) \\]\u200b\u8fd9\u200b\u4e5f\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u7c7b\u200b\u4e0e\u200b\u7279\u5f81\u200b\u7684\u200b\u4e92\u4fe1\u606f\u200b\uff0c\u200b\u5b83\u200b\u8868\u793a\u200b\u5f97\u77e5\u200b\u7279\u5f81\u200b A \u200b\u7684\u200b\u4fe1\u606f\u200b\u800c\u200b\u4f7f\u5f97\u200b\u7c7b\u200b Y \u200b\u7684\u200b\u4fe1\u606f\u200b\u7684\u200b\u4e0d\u786e\u5b9a\u6027\u200b\u51cf\u5c11\u200b\u7684\u200b\u7a0b\u5ea6\u200b.
"},{"location":"Note/Data%20Modeling/Decision_Tree/#_4","title":"\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6bd4","text":"\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u5b58\u5728\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u5c31\u662f\u200b\u5b83\u200b\u504f\u5411\u200b\u4e8e\u200b\u53ef\u200b\u53d6\u503c\u200b\u8f83\u200b\u591a\u200b\u7684\u200b\u7279\u5f81\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u53d6\u503c\u200b\u8f83\u200b\u591a\u200b\u7684\u200b\u7279\u5f81\u200b\u7684\u200b\u6761\u4ef6\u200b\u71b5\u200b\u8f83\u200b\u5c0f\u200b.\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u7b97\u6cd5\u200b\u540c\u6837\u200b\u8003\u8651\u200b\u90a3\u4e9b\u200b\u503c\u200b\u6bd4\u8f83\u200b\u5c11\u200b\u4f46\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u540c\u6837\u200b\u5f88\u200b\u4e0d\u9519\u200b\u7684\u200b\u7279\u5f81\u200b\u7684\u8bdd\u200b.
\\[ g_R(D\uff0cA) = \\frac{g(D\uff0cA)}{H_A(D)} \\]\u200b\u5176\u4e2d\u200b\\(H_A(D) = -\\sum_{i=1}^{n} \\frac{|D_i|}{|D|} \\log \\frac{|D_i|}{|D|}\\)\u200b\u662f\u200b\u5173\u4e8e\u200b\u7279\u5f81\u200b A \u200b\u5bf9\u200b\u6570\u636e\u200b\u96c6\u200b D \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u71b5\u200b\uff0c\\(|D_i|\\)\u200b\u662f\u200b\\(D\\)\u200b\u4e2d\u200b\u5728\u200b\u7279\u5f81\u200b A \u200b\u4e0a\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(a_i\\)\u200b\u7684\u200b\u6837\u672c\u200b\u5b50\u96c6\u200b.A \u200b\u7684\u200b\u53ef\u200b\u53d6\u503c\u200b\u8d8a\u200b\u591a\u200b\uff0c\\(H_A(D)\\)\u200b\u7684\u200b\u503c\u200b\u8d8a\u200b\u5927\u200b.
"},{"location":"Note/Data%20Modeling/Decision_Tree/#_5","title":"\u57fa\u5c3c\u200b\u6307\u6570","text":"\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\u662f\u200b\u53e6\u200b\u4e00\u79cd\u200b\u7279\u5f81\u9009\u62e9\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u5b83\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a
\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b
\\[\\begin{aligned} &Gini(P) = 1 - \\sum_{k=1}^{K} P_k^2 \\\\ &Gini(D) = 1 - \\sum_{k=1}^{K} \\frac{|D_i|}{|D|}^2 \\\\ &Gini(D\uff0cA) = \\sum_{i=1}^{n} \\frac{|D_i|}{|D|} Gini(D_i) \\end{aligned}\\] "},{"location":"Note/Data%20Modeling/Decision_Tree/#_6","title":"\u51b3\u7b56\u6811\u200b\u751f\u6210","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#id3","title":"ID3 \u200b\u7b97\u6cd5","text":"ID3 \u200b\u7b97\u6cd5\u200b\u7684\u200b\u6838\u5fc3\u200b\u662f\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u5404\u4e2a\u200b\u8282\u70b9\u200b\u4e0a\u200b\u5e94\u7528\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u51c6\u5219\u200b\u9009\u62e9\u200b\u7279\u5f81\u200b\uff0c\u200b\u9012\u5f52\u200b\u7684\u200b\u6784\u5efa\u200b\u51b3\u7b56\u6811\u200b.
C4.5 \u200b\u7b97\u6cd5\u200b\u6839\u200b ID3 \u200b\u7b97\u6cd5\u200b\u5b8c\u5168\u200b\u4e00\u6837\u200b\uff0c\u200b\u53ea\u662f\u200b\u7528\u200b\u7684\u200b\u4e0d\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\uff0c\u200b\u800c\u662f\u200b\u4fe1\u606f\u200b\u589e\u76ca\u200b\u6bd4\u200b.
"},{"location":"Note/Data%20Modeling/Decision_Tree/#_7","title":"\u51b3\u7b56\u6811\u200b\u526a\u679d","text":""},{"location":"Note/Data%20Modeling/Decision_Tree/#_8","title":"\u5229\u7528\u200b\u6b63\u5219\u200b\u5316\u200b\u51fd\u6570","text":"\u200b\u5bf9\u200b\u6574\u68f5\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6784\u9020\u200b\u4e00\u4e2a\u200b\u6b63\u5219\u200b\u5316\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a $$ C_{\\alpha}(T) = \\sum_{t \\in T} N_t H_t(T) + \\alpha |T| $$ \u200b\u5176\u4e2d\u200b T \u200b\u4e3a\u200b\u6240\u6709\u200b\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u96c6\u5408\u200b\uff0ct \u200b\u4e3a\u200b\u67d0\u4e2a\u200b\u53f6\u200b\u8282\u70b9\u200b\uff0c\\(N_t\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b t \u200b\u7684\u200b\u6837\u672c\u200b\u4e2a\u6570\u200b\uff0c\\(H_t(T)\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b t \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u71b5\u200b\uff0c\\(|T|\\)\u200b\u4e3a\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u4e2a\u6570\u200b\uff0c\\(\\alpha\\)\u200b\u4e3a\u200b\u6b63\u5219\u200b\u5316\u200b\u53c2\u6570\u200b.
\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u5047\u8bbe\u200b t \u200b\u53f6\u200b\u8282\u70b9\u200b\u7684\u200b\u6240\u6709\u200b\\(N_t\\)\u200b\u4e2a\u200b\u6837\u672c\u200b\u4e2d\u200b\uff0ck \u200b\u7c7b\u200b\u7684\u200b\u6837\u672c\u200b\u6709\u200b\\(N_{tk}\\)\u200b\u4e2a\u200b\uff0c\u200b\u90a3\u4e48\u200b\\(H_t(T) = -\\sum_{k=1}^{K} \\frac{N_{tk}}{N_t} \\log \\frac{N_{tk}}{N_t}\\).
\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5bf9\u200b\u8fd9\u4e2a\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u8fdb\u884c\u200b\u6700\u5c0f\u5316\u200b\uff0c\u200b\u5bb9\u6613\u200b\u770b\u51fa\u200b\uff0c\u200b\u5982\u679c\u200b\u53f6\u200b\u8282\u70b9\u200b\u5168\u90e8\u90fd\u662f\u200b\u5355\u200b\u4e00\u7c7b\u200b\uff0c\u200b\u90a3\u4e48\u200b\u7b2c\u4e00\u9879\u200b\u7684\u200b\u503c\u200b\u4e3a\u200b 0.\u200b\u8fd9\u65f6\u5019\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b\u597d\u200b\uff0c\u200b\u4f46\u662f\u200b\u53f6\u5b50\u200b\u8282\u70b9\u200b\u5bb9\u6613\u200b\u8fc7\u591a\u200b\uff0c\u200b\u7b2c\u4e8c\u9879\u200b\u5f88\u5927\u200b.\u200b\u4f46\u200b\u5982\u679c\u200b\u7b2c\u4e8c\u9879\u200b\u6781\u7aef\u200b\u7684\u200b\u4f18\u5316\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u53f6\u200b\u8282\u70b9\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6811\u662f\u200b\u5c0f\u200b\u4e86\u200b\uff0c\u200b\u4f46\u662f\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u90fd\u200b\u5728\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u5185\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8bf4\u200b\u662f\u200b\u6beb\u65e0\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u6700\u5c0f\u5316\u200b\u8fd9\u4e2a\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\u8981\u200b\u5728\u200b\u4e8c\u8005\u4e4b\u95f4\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u5e73\u8861\u200b\uff0c\u200b\u6811\u200b\u65e2\u200b\u4e0d\u4f1a\u200b\u8fc7\u6df1\u200b\uff0c\u200b\u5206\u7c7b\u200b\u6548\u679c\u200b\u4e5f\u200b\u6709\u200b\u4fdd\u969c\u200b.
\u200b\u7b97\u6cd5\u200b
\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b\\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\mathbb{R}\\)\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u5bf9\u5e94\u200b y.
CART \u200b\u56de\u5f52\u200b\u6811\u200b\u7b97\u6cd5\u200b\u4f1a\u200b\u628a\u200b\u7a7a\u95f4\u200b\u5212\u5206\u200b\u6210\u200b m \u200b\u5757\u200b\\(R_1\uff0cR_2...R_m\\)\uff0c\u200b\u6bcf\u4e2a\u200b\u5355\u5143\u200b\u4e0a\u200b\u51fd\u6570\u200b\u7684\u200b\u8f93\u51fa\u200b\u503c\u200b\u90fd\u200b\u662f\u200b\u56fa\u5b9a\u200b\u7684\u200b\uff1a
\\[ f(x) = \\sum_{m=1}^{M} c_m I(x \\in R_m) \\]\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u9009\u7528\u200b\u5e73\u65b9\u200b\u8bef\u5dee\u200b\uff0c\u200b\u5bb9\u6613\u200b\u8bc1\u660e\u200b\uff0c\u200b\u5728\u200b\u6bcf\u4e2a\u200b\u533a\u57df\u200b\u4e0a\u200b\u6700\u4f73\u200b\u7684\u200b\u8f93\u51fa\u200b\u503c\u200b\u5c31\u662f\u200b\u8be5\u200b\u533a\u57df\u200b\u5185\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u7684\u200b\u5747\u503c\u200b.
\\[ c_m = \\frac{1}{N_m} \\sum_{x_i \\in R_m} y_i \\]\u200b\u7b97\u6cd5\u200b\uff1a
\u200b\u9996\u5148\u200b\u6211\u4eec\u200b\u5148\u200b\u7528\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\u751f\u6210\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u7136\u540e\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b.\u200b\u6211\u4eec\u200b\u7740\u91cd\u200b\u4ecb\u7ecd\u200b\u8fd9\u91cc\u200b\u4f7f\u7528\u200b\u7684\u200b\u526a\u679d\u200b\u7b97\u6cd5\u200b
\u200b\u6211\u4eec\u200b\u5148\u200b\u6784\u9020\u200b\u4e00\u4e2a\u200b\u4ee5\u200b\\(\\alpha\\)\u200b\u4e3a\u200b\u53c2\u6570\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff1a
\\[ C_{\\alpha}(T) = C(T)+ \\alpha |T| \\quad\\quad \\alpha \\in [0\uff0c\\infty) \\]\u200b\u5176\u4e2d\u200b\\(C(T)\\)\u200b\u4e3a\u200b\u7528\u200b\u8be5\u200b\u51b3\u7b56\u6811\u200b\u5bf9\u200b\u8bad\u7ec3\u200b\u96c6\u200b\u8fdb\u884c\u200b\u9884\u6d4b\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff08\u200b\u7528\u200b\u57fa\u5c3c\u200b\u6307\u6570\u200b\uff09. \u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u627e\u5230\u200b\\(\\alpha\\)\u200b\u4ece\u200b 0 \u200b\u5230\u200b\u6b63\u200b\u65e0\u7a77\u7684\u200b\u6bcf\u200b\u4e00\u4e2a\u200b\u533a\u95f4\u200b\u5185\u200b\u7684\u200b\u526a\u679d\u200b\u540e\u200b\u7684\u200b\u6700\u4f18\u200b\u6811\u200b.
\u200b\u5728\u200b\u6b64\u200b\u8bed\u5883\u200b\u4e0b\u200b\uff0c\u200b\u5bf9\u200b\u67d0\u4e2a\u200b\u8282\u70b9\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b\u5c31\u662f\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u7528\u200b\u4e00\u4e2a\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\u4ee3\u66ff\u200b\u4ee5\u200b\u5f53\u524d\u200b\u8282\u70b9\u200b\u4e3a\u6839\u200b\u7684\u200b\u5b50\u6811\u200b\uff0c\u200b\u8be5\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\u542b\u6709\u200b\u5b50\u6811\u4e2d\u200b\u6240\u6709\u200b\u7684\u200b\u6837\u672c\u200b.
\u200b\u6211\u4eec\u200b\u5148\u200b\u6765\u770b\u200b\u6bd4\u8f83\u200b\u6781\u7aef\u200b\u7684\u200b\\(\\alpha\\)\uff0c\u200b\u770b\u200b\u4ed6\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u7684\u200b\u5f71\u54cd\u200b\uff0c\u200b\u5f53\u200b\\(\\alpha\\)\u200b\u4e3a\u200b 0 \u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\\(C(T)\\)\uff0c\u200b\u6b64\u65f6\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u6700\u5c0f\u5316\u200b\\(C(T)\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u6700\u4f18\u200b\u7684\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u5c31\u7b97\u200b\u6211\u4eec\u200b\u5206\u51fa\u200b\u4e86\u200b\u975e\u5e38\u200b\u591a\u200b\u7684\u200b\u8282\u70b9\u200b\u4e5f\u200b\u65e0\u6240\u8c13\u200b.\u200b\u5f53\u200b\\(\\alpha\\)\u200b\u4e3a\u200b\u6b63\u200b\u65e0\u7a77\u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u5c31\u662f\u200b\\(|T|\\)\uff0c\u200b\u6b64\u65f6\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u6700\u5c0f\u5316\u200b\\(|T|\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6700\u5c11\u200b\u7684\u200b\u6811\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6beb\u65e0\u7591\u95ee\u200b\u6240\u6709\u200b\u7684\u200b\u6837\u672c\u200b\u90fd\u200b\u653e\u5728\u200b\u6839\u200b\u8282\u70b9\u200b\u5185\u200b\u5c31\u662f\u200b\u6700\u4f18\u200b\u89e3\u200b.\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c \\(\\alpha\\)\u200b\u8d8a\u5927\u200b\uff0c\u200b\u51b3\u7b56\u6811\u200b\u4f1a\u200b\u88ab\u200b\u526a\u200b\u7684\u200b\u8d8a\u200b\u5e72\u51c0\u200b.
\u200b\u5728\u200b\u4ee5\u4e0a\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u53d1\u73b0\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5355\u72ec\u200b\u8ba8\u8bba\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u662f\u5426\u200b\u8981\u200b\u88ab\u200b\u526a\u679d\u200b\uff08\u200b\u56de\u5fc6\u200b\u4e00\u4e0b\u200b\u4ec0\u4e48\u200b\u53eb\u505a\u200b\u5bf9\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u8fdb\u884c\u200b\u526a\u679d\u200b\uff09\uff0c\u200b\u5047\u8bbe\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b\u6240\u200b\u4ee3\u8868\u200b\u7684\u200b\u5b50\u6811\u4e3a\u200b\\(T_t\\)\uff0c\u200b\u628a\u5b50\u200b\u6811\u5185\u200b\u7684\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u90fd\u200b\u6536\u5230\u200b\u8282\u70b9\u200b\u5185\u6240\u200b\u6784\u6210\u200b\u7684\u200b\u8282\u70b9\u200b\u4e3a\u200b t\uff0c\u200b\u90a3\u4e48\u200b\u8be5\u200b\u8282\u70b9\u200b\u4ece\u4e0d\u200b\u526a\u679d\u200b\u8f6c\u5411\u200b\u526a\u679d\u200b\u7684\u200b\u5173\u952e\u200b\u8282\u70b9\u200b\u5c31\u662f\u200b\u5f53\u4e0b\u200b\u5f0f\u200b\u6210\u7acb\u200b\u65f6\u200b\uff1a
\\[ C(t) + \\alpha * 1 = C(T_t) + \\alpha * |T_t| \\]\u200b\u7b2c\u4e00\u9879\u200b\u662f\u200b\u6211\u4eec\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u653e\u7f6e\u200b\u5355\u4e00\u200b\u8282\u70b9\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u526a\u679d\u200b\u540e\u200b\u7684\u200b\u8282\u70b9\u200b\uff09\u200b\u5e26\u6765\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff0c\u200b\u7b2c\u4e8c\u9879\u200b\u5f0f\u200b\u6211\u4eec\u200b\u5728\u200b\u51b3\u7b56\u6811\u200b\u4e2d\u200b\u653e\u7f6e\u200b\u5b50\u6811\u200b\u5e26\u6765\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b.\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u8fd9\u4e2a\u200b\u4e34\u754c\u200b\u7684\u200b\\(\\alpha_{t}\\)\uff0c\u200b\u90a3\u4e48\u200b\u5982\u679c\u200b\\(\\alpha \\in (0\uff0c\\alpha_{t})\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u4e0d\u200b\u526a\u679d\u200b\uff0c\u200b\u5982\u679c\u200b\\(\\alpha \\in [\\alpha_{t}\uff0c\\infty)\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u526a\u679d\u200b.
\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5bf9\u200b\u51b3\u7b56\u6811\u200b\u5185\u200b\u7684\u200b\u6240\u6709\u200b\u8282\u70b9\u200b\u90fd\u200b\u8ba1\u7b97\u200b\u4e34\u754c\u200b\\(\\alpha\\)\uff0c\u200b\u6211\u4eec\u200b\u4ece\u200b\\(\\alpha = 0\\)\u200b\u5f00\u59cb\u200b\u9010\u6e10\u200b\u589e\u5927\u200b\uff0c\u200b\u6bcf\u6b21\u200b\u8fbe\u5230\u200b\u4e34\u754c\u70b9\u200b\u6211\u4eec\u200b\u5c31\u200b\u526a\u679d\u200b\uff0c\u200b\u76f4\u5230\u200b\u6240\u6709\u200b\u679d\u200b\u90fd\u200b\u88ab\u200b\u526a\u6389\u200b\uff0c\u200b\u76f4\u5230\u200b\u6574\u68f5\u6811\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u8282\u70b9\u200b.
\u200b\u5728\u200b\u4e0a\u8ff0\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u6211\u4eec\u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u4e00\u7cfb\u5217\u200b\u7684\u200b\u4e0d\u540c\u200b\\(\\alpha\\)\u200b\u533a\u95f4\u200b\u4e0b\u200b\u7684\u200b\u51b3\u7b56\u6811\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u4ea4\u53c9\u200b\u9a8c\u8bc1\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6765\u200b\u9009\u62e9\u200b\u6700\u4f18\u200b\u7684\u200b\\(\\alpha\\).
"},{"location":"Note/Data%20Modeling/KNN/","title":"K \u200b\u8fd1\u90bb","text":"\u200b\u7ea6\u200b 732 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
"},{"location":"Note/Data%20Modeling/KNN/#_1","title":"\u95ee\u9898\u200b\u53ca\u200b\u7b97\u6cd5\u200b\u63cf\u8ff0","text":"\u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b\\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\{ c_1\uff0cc_2\uff0c....c_k\\}\\)\uff0c \u200b\u4e00\u5171\u200b\u6709\u200b K \u200b\u79cd\u7c7b\u200b\u522b\u200b\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u7c7b\u522b\u200b\\(y\\). \u200b\u7b97\u6cd5\u200b\u601d\u60f3\u200b\uff1a
\u200b\u5176\u4e2d\u200b\u7684\u200b\\(I(y = c_j)\\)\u200b\u662f\u200b\u6307\u793a\u200b\u51fd\u6570\u200b\uff0c\u200b\u5f53\u200b\\(y = c_j\\)\u200b\u65f6\u200b\uff0c\\(I(y = c_j) = 1\\)\uff0c\u200b\u5426\u5219\u200b\\(I(y = c_j) = 0\\).
"},{"location":"Note/Data%20Modeling/KNN/#k_1","title":"K \u200b\u8fd1\u90bb\u200b\u7684\u200b\u4e09\u8981\u7d20","text":"\u200b\u6709\u200b\u4e86\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u7b97\u6cd5\u200b\u6846\u67b6\u200b\u540e\u200b\uff0cK \u200b\u8fd1\u90bb\u200b\u7b97\u6cd5\u200b\u7531\u200b\u4e09\u4e2a\u200b\u8981\u7d20\u200b\u51b3\u5b9a\u200b\uff1a
\u200b\u8ddd\u79bb\u200b\u5ea6\u91cf\u200bK \u200b\u503c\u200b\u9009\u62e9\u200b\u5206\u7c7b\u200b\u51b3\u7b56\u200b\u89c4\u5219\u200b\u200b\u4e00\u822c\u6765\u8bf4\u200b\u6211\u4eec\u200b\u4f7f\u7528\u200b\\(L_p\\)\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u5373\u200b\uff1a
\\[ L_p(x_i\uff0cx_j) = (\\sum_{l=1}^{n}|x_i^{(l)} - x_j^{(l)}|^p)^{\\frac{1}{p}} \\]\u200b\u5f53\u200b p \u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b 2 \u200b\u65f6\u200b\uff0c\u200b\u5c31\u662f\u200b\u6b27\u6c0f\u200b\u8ddd\u79bb\u200b
\u200b\u5f53\u200b K \u200b\u6bd4\u8f83\u200b\u5c0f\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u6a21\u578b\u200b\u6bd4\u8f83\u590d\u6742\u200b\uff0c\u200b\u5bb9\u6613\u200b\u8fc7\u200b\u62df\u5408\u200b\uff1b \u200b\u5f53\u200b K \u200b\u6bd4\u8f83\u200b\u5927\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u6a21\u578b\u200b\u6bd4\u8f83\u7b80\u5355\u200b\uff0c\u200b\u5bb9\u6613\u200b\u6b20\u200b\u62df\u5408\u200b. \u200b\u4e00\u822c\u6765\u8bf4\u200b K \u200b\u503c\u200b\u90fd\u200b\u4e0d\u4f1a\u200b\u9009\u200b\u7684\u200b\u592a\u5927\u200b.
\u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b\u591a\u6570\u200b\u8868\u51b3\u200b\u89c4\u5219\u200b\uff0c\u200b\u5728\u200b\u6b64\u200b\u60c5\u666f\u200b\u4e0b\u200b\u591a\u6570\u200b\u8868\u51b3\u200b\u89c4\u5219\u200b\u7b49\u6548\u4e8e\u200b\u7ecf\u9a8c\u200b\u98ce\u9669\u200b\u6700\u5c0f\u5316\u200b.
"},{"location":"Note/Data%20Modeling/KNN/#kd-k","title":"\u7528\u200b kd \u200b\u6811\u200b\u5207\u5206\u200b\u7a7a\u95f4\u200b\u6c42\u89e3\u200b K \u200b\u8fd1\u90bb","text":""},{"location":"Note/Data%20Modeling/KNN/#kd","title":"kd \u200b\u6811\u200b\u7684\u200b\u6784\u9020","text":"\u200b\u4e00\u6b21\u200b\u641c\u7d22\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u6700\u8fd1\u200b\u90bb\u70b9\u200b\uff0c\u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u7528\u200b\u4e3a\u200b\\(O(logn)\\)\uff0c\u200b\u5982\u679c\u200b\u8981\u200b\u627e\u51fa\u200b K \u200b\u4e2a\u200b\u6700\u8fd1\u200b\u90bb\u70b9\u200b\uff0c\u200b\u65f6\u95f4\u200b\u590d\u6742\u5ea6\u200b\u4e3a\u200b\\(O(klogn)\\)
PPT \u200b\u4e0a\u200b\u7684\u200b\u4f8b\u5b50\u200b "},{"location":"Note/Data%20Modeling/Logistic_Regression/","title":"\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52","text":"\u200b\u7ea6\u200b 842 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
"},{"location":"Note/Data%20Modeling/Logistic_Regression/#_2","title":"\u903b\u8f91\u200b\u65af\u8c1b\u200b\u5206\u5e03","text":"\u200b\u9996\u5148\u200b\u76f4\u63a5\u200b\u7ed9\u51fa\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u968f\u673a\u53d8\u91cf\u200b\\(X\\)\u200b\u6ee1\u8db3\u200b\\(Logistic(\\mu\uff0c\\gamma)\\)\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\uff1a
\\[ F(x)=\\frac{1}{1+e^{-(x-\\mu)/\\gamma}} \\]\u200b\u5176\u4e2d\u200b\\(\\mu\\)\u200b\u4e3a\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\uff0c\\(\\gamma\\)\u200b\u4e3a\u200b\u5f62\u72b6\u200b\u53c2\u6570\u200b.\u200b\u8be5\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u7684\u200b\u56fe\u50cf\u200b\u4e3a\u200b S \u200b\u578b\u200b\u66f2\u7ebf\u200b\uff0c\\(\\mu\\)\u200b\u4e3a\u200b\u51fd\u6570\u200b\u7684\u200b\u5bf9\u79f0\u4e2d\u5fc3\u200b\uff0c\\(\\gamma\\)\u200b\u63a7\u5236\u200b\u51fd\u6570\u200b\u7684\u200b\u9661\u5ced\u200b\u7a0b\u5ea6\u200b\uff0c\u200b\u503c\u8d8a\u200b\u5927\u200b\uff0c\u200b\u51fd\u6570\u200b\u8d8a\u200b\u9661\u5ced\u200b.
"},{"location":"Note/Data%20Modeling/Logistic_Regression/#_3","title":"\u4e8c\u9879\u200b\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52\u200b\u6a21\u578b","text":"\u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(D=\\{(x_1\uff0cy_1)\uff0c(x_2\uff0cy_2)\uff0c...\uff0c(x_m\uff0cy_m)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(x_i \\in \\mathbb{R}\\)\uff0c\\(y_i \\in \\{0\uff0c1\\}\\)\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u662f\u200b\u5b66\u4e60\u200b\u5230\u200b\u4e00\u4e2a\u200b\u7ebf\u6027\u200b\u6a21\u578b\u200b\u6765\u200b\u8fdb\u884c\u200b\u5206\u7c7b\u200b\uff0c\u200b\u5728\u200b\u611f\u77e5\u673a\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u7528\u200b\u4e00\u4e2a\u200b\u6307\u793a\u200b\u51fd\u6570\u200b\u6765\u200b\u5c06\u200b\u51fd\u6570\u200b\u503c\u200b\u7684\u200b\u7b26\u53f7\u200b\u6620\u5c04\u200b\u5230\u200b\u4e0d\u540c\u200b\u7684\u200b\u5206\u7c7b\u200b.
\u200b\u5bf9\u4e8e\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\u6765\u8bf4\u200b\uff0c\u200b\u6211\u4eec\u200b\u60f3\u8981\u200b\u5f97\u5230\u200b\u7684\u200b\u662f\u200b\u67d0\u4e2a\u200b x \u200b\u4e0b\u200b\u5c5e\u4e8e\u200b 0\uff0c\u200b\u6216\u8005\u200b 1 \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u4e5f\u200b\u662f\u200b\u8fde\u7eed\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u8bd5\u56fe\u7528\u200b\u7ebf\u6027\u200b\u7684\u200b\u6a21\u578b\u200b\u53bb\u200b\u62df\u5408\u200b\uff0c\u200b\u6211\u4eec\u200b\u5148\u4f5c\u200b\u5982\u4e0b\u200b\u7684\u200b\u8f6c\u5316\u200b\uff1a
\u200b\u8fd9\u6837\u200b\u5bf9\u6570\u200b\u51e0\u7387\u200b\u7684\u200b\u53d6\u503c\u200b\u8303\u56f4\u200b\u5c31\u200b\u548c\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u7684\u200b\u4e00\u6837\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8bd5\u7740\u200b\u7528\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u53bb\u200b\u8fdb\u884c\u200b\u62df\u5408\u200b\uff08\u200b\u5982\u679c\u200b\u67d0\u4e2a\u200b\u5206\u5e03\u200b\u7684\u200b\u5bf9\u6570\u51fd\u6570\u200b\u76f8\u5173\u7cfb\u6570\u200b\u5f88\u200b\u9ad8\u200b\uff0c\u200b\u81ea\u7136\u200b\u53ef\u4ee5\u200b\u62df\u5408\u200b\u5230\u200b\u6bd4\u8f83\u200b\u597d\u200b\u7684\u200b\u6548\u679c\u200b\uff0c\u200b\u4f46\u200b\u5982\u679c\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\u7684\u200b\u5bf9\u6570\u200b\u51e0\u7387\u200b\u51e0\u4e4e\u200b\u4e0d\u6210\u200b\u7ebf\u6027\u200b\uff0c\u200b\u90a3\u4e48\u200b\u7ebf\u6027\u200b\u51fd\u6570\u200b\u7684\u200b\u62df\u5408\u200b\u6548\u679c\u200b\u5c31\u200b\u4f1a\u200b\u6bd4\u8f83\u200b\u5dee\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u7528\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\u62df\u5408\u200b\u7684\u200b\u5206\u5e03\u200b\u6700\u597d\u200b\u6709\u200b\u7c7b\u4f3c\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\uff09.
\u200b\u6211\u4eec\u200b\u4ee4\u200b
\\[ \\ln(\\frac{P(Y=1|x)}{1-P(Y=1|x)}) = w\\cdot x + b \\]\u200b\u90a3\u4e48\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a
\\[ P(Y=1|x)=\\frac{exp(w\\cdot x+b)}{1+exp(w\\cdot x+b)} \\] \\[ P(Y=0|x)=\\frac{1}{1+exp(w\\cdot x+b)} \\]\u200b\u8fd9\u200b\u5c31\u662f\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u56de\u5f52\u200b\uff0c\u200b\u73b0\u5728\u200b\u95ee\u9898\u200b\u662f\u200b\u6211\u4eec\u200b\u6709\u7684\u662f\u200b\u4e00\u5bf9\u200b\u6570\u636e\u200b\u70b9\u200b\u800c\u200b\u4e0d\u662f\u200b x \u200b\u548c\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u6211\u4eec\u200b\u8be5\u200b\u5982\u4f55\u200b\u8fdb\u884c\u200b\u62df\u5408\u200b\uff1f
"},{"location":"Note/Data%20Modeling/Logistic_Regression/#_4","title":"\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1","text":"\u200b\u6211\u4eec\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\u7684\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b
\\[ L(w\uff0cb)=\\prod_{i=1}^{m}P(Y=y_i|x_i)=\\prod_{i=1}^{m}(\\frac{exp(w\\cdot x_i+b)}{1+exp(w\\cdot x_i+b)})^{y_i}(\\frac{1}{1+exp(w\\cdot x_i+b)})^{1-y_i} \\]\u200b\u4e3a\u4e86\u200b\u65b9\u4fbf\u200b\u6c42\u89e3\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u6781\u5927\u200b\u5316\u200b\u5bf9\u6570\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b\uff0c\u200b\u8fd9\u200b\u4e5f\u200b\u7b49\u6548\u4e8e\u200b\u6781\u5927\u200b\u5316\u4f3c\u7136\u200b\u51fd\u6570\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5bf9\u6570\u51fd\u6570\u200b\u662f\u200b\u5355\u8c03\u200b\u9012\u589e\u200b\u7684\u200b.
\\[\\begin{aligned} &\\ln L(w\uff0cb) = \\sum_{i=1}^{m}y_i(w\\cdot x_i+b)-\\ln(1+exp(w\\cdot x_i+b)) \\\\ \\end{aligned}\\]\u200b\u90a3\u4e48\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5c31\u200b\u8981\u6c42\u200b\u6211\u4eec\u200b\u627e\u5230\u200b\u4f7f\u200b\u5bf9\u6570\u200b\u4f3c\u7136\u200b\u51fd\u6570\u200b\u6700\u5927\u200b\u7684\u200b\u53c2\u6570\u200b
\\[ \\underset{w\uff0cb}{\\operatorname{arg max}} \\ln L(w\uff0cb) \\]\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b\u6c42\u89e3\u200b\u8fc7\u7a0b\u200b\u9700\u8981\u200b\u7528\u200b\u68af\u5ea6\u200b\u4e0b\u964d\u200b\u6cd5\u200b\u6216\u8005\u200b\u725b\u987f\u200b\u6cd5\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5230\u200b\u56e0\u4e3a\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u51fd\u6570\u200b\u662f\u200b\u51f8\u51fd\u6570\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u4fdd\u8bc1\u200b\u6c42\u89e3\u200b\u7684\u200b\u7ed3\u679c\u200b\u662f\u200b\u5168\u5c40\u200b\u6700\u4f18\u200b\u89e3\u200b.
"},{"location":"Note/Data%20Modeling/Logistic_Regression/#_5","title":"\u591a\u9879\u200b\u903b\u8f91\u200b\u65af\u8c1b\u200b\u56de\u5f52\u200b\u6a21\u578b","text":"\u200b\u7c7b\u4f3c\u200b\u7684\u200b\uff0c\u200b\u591a\u9879\u200b\u903b\u8f91\u200b\u65af\u8482\u200b\u5206\u5e03\u200b\u7684\u200b\u5206\u5e03\u200b\u51fd\u6570\u200b\u5982\u4e0b\u200b\uff1a
\\[\\begin{aligned} &P(Y=1|x)=\\frac{exp(w_1\\cdot x+b_1)}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ &P(Y=2|x)=\\frac{exp(w_2\\cdot x+b_2)}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ &... \\\\ &P(Y=k|x)=\\frac{1}{1+\\sum_{i=1}^{k-1} e^{w_i \\cdot x + b_i}} \\\\ \\end{aligned}\\]"},{"location":"Note/Data%20Modeling/Max_Entropy/","title":"\u6700\u5927\u200b\u71b5\u200b\u6a21\u578b","text":"\u200b\u7ea6\u200b 717 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
\u200b\u601d\u60f3\u200b
\u200b\u6709\u65f6\u5019\u200b\u6211\u4eec\u200b\u5df2\u6709\u200b\u7684\u200b\u6570\u636e\u200b\u5e76\u200b\u4e0d\u8db3\u4ee5\u200b\u6211\u4eec\u200b\u552f\u4e00\u200b\u786e\u5b9a\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u65f6\u5019\u200b\u5bf9\u4e8e\u200b\u6240\u6709\u200b\u5019\u9009\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u8ba4\u4e3a\u200b\u71b5\u200b\u6700\u5927\u200b\u7684\u200b\u90a3\u4e2a\u200b\u5206\u5e03\u200b\u662f\u200b\u6700\u597d\u200b\u7684\u200b.\u200b\u6362\u8a00\u4e4b\u200b\uff0c\u200b\u5728\u200b\u6ee1\u8db3\u200b\u7ea6\u675f\u200b\u7684\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c3d\u53ef\u80fd\u200b\u91c7\u53d6\u200b\u7b49\u200b\u53ef\u80fd\u200b\u5206\u5e03\u200b.
"},{"location":"Note/Data%20Modeling/Max_Entropy/#_2","title":"\u6a21\u578b\u200b\u63cf\u8ff0","text":"\u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u7edf\u8ba1\u200b\u7ecf\u9a8c\u200b\u5206\u5e03\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u9891\u7387\u200b\uff09
\\[\\begin{aligned} &\\tilde{P}(X=x\uff0cY=y) = \\frac{v(X = x\uff0c Y = y)}{N} \\\\ &\\tilde{P}(X=x) = \\frac{v(X = x)}{N} \\\\ \\end{aligned}\\]\u200b\u6211\u4eec\u200b\u5f15\u5165\u200b\u7279\u5f81\u51fd\u6570\u200b\\(f(x\uff0cy) \\ in {0\uff0c1}\\)\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7f6e\u9876\u200b\u67d0\u79cd\u200b\u6761\u4ef6\u200b\uff0c\u200b\u6ee1\u8db3\u6761\u4ef6\u200b\u7684\u200b\\((x\uff0cy)\\)\u200b\u5bf9\u5e94\u200b\u7684\u200b\u7279\u5f81\u51fd\u6570\u200b\u503c\u4e3a\u200b 1\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b 0.\u200b\u6bd4\u5982\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\\(f(x\uff0cy) = 1\\)\u200b\u5f53\u4e14\u200b\u4ec5\u200b\u5f53\u200b\\(x\\)\u200b\u548c\u200b\\(y\\)\u200b\u76f8\u7b49\u200b\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b 0.\u200b\u5b9a\u4e49\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u7279\u5f81\u51fd\u6570\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9a\u4e49\u200b\u5728\u200b\u7279\u5f81\u51fd\u6570\u200b\u4e0a\u200b\u7684\u200b\u671f\u671b\u200b\uff1a
\\[ E_{\\tilde{P}}(f) = \\sum_{x\uff0cy}\\tilde{P}(x\uff0cy)f(x\uff0cy) \\]\u200b\u7b80\u5355\u200b\u6765\u8bf4\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u5bf9\u200b\u67d0\u4e9b\u200b\\((x\uff0cy)\\)\u200b\u4e0a\u200b\u7684\u200b\u9891\u6570\u200b\u6c42\u548c\u200b\uff0c\u200b\u5728\u200b\u4e0a\u4f8b\u200b\u4e2d\u200b\uff0c\u200b\u5c31\u662f\u200b\u5bf9\u200b xy \u200b\u76f8\u7b49\u200b\u7684\u200b\u90a3\u4e9b\u200b\u9879\u200b\u7684\u200b\u9891\u6570\u200b\u6c42\u548c\u200b
\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u5b66\u4e60\u200b\u5230\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u6761\u4ef6\u200b\u5206\u5e03\u200b\\(P(Y|X)\\)\uff0c\u200b\u90a3\u4e48\u200b\u7528\u200b\u6211\u4eec\u200b\u5b66\u5230\u200b\u7684\u200b\u6761\u4ef6\u200b\u5206\u5e03\u200b\u4e0e\u200b X \u200b\u7684\u200b\u7ecf\u9a8c\u200b\u5206\u5e03\u200b\u7b97\u200b\u51fa\u6765\u200b\u7684\u200b\u671f\u671b\u200b\u662f\u200b\uff1a
\\[ E_{P}(f) = \\sum_{x\uff0cy}P(y|x)\\tilde{P}(x)f(x\uff0cy) \\]\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6211\u4eec\u200b\u5b66\u5230\u200b\u7684\u200b\u6761\u4ef6\u200b\u5462\u200b\u5206\u5e03\u200b\u5c3d\u53ef\u80fd\u200b\u7b26\u5408\u5b9e\u9645\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\\(P(y|x)\\tilde{P}(x)\\)\u200b\u5728\u200b\u7279\u5f81\u51fd\u6570\u200b\u7684\u200b\u610f\u4e49\u200b\u4e0a\u200b\u5c3d\u53ef\u80fd\u200b\u8d34\u8fd1\u200b\\(\\tilde{P}(x\uff0cy)\\)\uff0c\u200b\u4e5f\u5c31\u662f\u8bf4\u200b
\\[ E_{P}(f) = E_{\\tilde{P}}(f) \\]\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7528\u200b\u4e0a\u9762\u200b\u4f8b\u5b50\u200b\u4e2d\u200b\u7684\u200b\u7279\u5f81\u51fd\u6570\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5b66\u4e60\u200b\u5230\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u200b\uff0cxy \u200b\u76f8\u7b49\u200b\u7684\u200b\u9891\u6570\u200b\u7b49\u4e8e\u200b\u5b9e\u9645\u200b\u89c2\u6d4b\u200b\u5230\u200b\u7684\u200b xy \u200b\u76f8\u7b49\u200b\u7684\u200b\u9891\u6570\u200b.
\u200b\u8fd9\u91cc\u200b\u5c31\u662f\u200b\u6211\u4eec\u200b\u5728\u200b\u601d\u60f3\u200b\u4e2d\u200b\u63d0\u5230\u200b\u7684\u200b\u7ea6\u675f\u200b\uff0c\u200b\u6ee1\u8db3\u200b\u8fd9\u6837\u200b\u7ea6\u675f\u200b\u7684\u200b\u6a21\u578b\u200b\u5e76\u200b\u4e0d\u200b\u552f\u4e00\u200b\uff0c\u200b\u6211\u4eec\u200b\u8ba1\u7b97\u200b\u5404\u4e2a\u200b\u6a21\u578b\u200b\u7684\u200b\u6761\u4ef6\u200b\u71b5\u200b\uff1a
\\[ H(P) = -\\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)\\log P(y|x) \\]\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6761\u4ef6\u200b\u71b5\u200b\u6700\u5927\u200b\uff0c\u200b\u6761\u4ef6\u200b\u71b5\u200b\u8d8a\u200b\u5927\u200b\u7684\u200b\u5206\u5e03\u200b\u8d8a\u200b\u597d\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b.
"},{"location":"Note/Data%20Modeling/Max_Entropy/#_3","title":"\u6a21\u578b\u200b\u6c42\u89e3","text":"\u200b\u5199\u51fa\u200b\u5f62\u5f0f\u5316\u200b\u8868\u8fbe\u5f0f\u200b\uff1a
\\[\\begin{aligned} \\underset{P \\in C}{\\operatorname{min}} &-H(P) = \\sum_{x\uff0cy}\\tilde{P}(x)P(y|x)\\log P(y|x) \\\\ s.t. &\\sum_{y}P(y|x) = 1 \\\\ & E_{P}(f_i) = E_{\\tilde{P}}(f_i) \\\\ \\end{aligned}\\]\u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u591a\u4e2a\u200b\u7279\u5f81\u51fd\u6570\u200b\u6765\u200b\u8fdb\u884c\u200b\u7ea6\u675f\u200b
\u200b\u4e3a\u200b\u4e86\u89e3\u200b\u89c9\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u7528\u200b\u4ee5\u4e0b\u200b\u4e09\u6b65\u200b
\u200b\u7ea6\u200b 919 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
"},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_2","title":"\u95ee\u9898\u200b\u53ca\u200b\u7b97\u6cd5\u200b\u63cf\u8ff0","text":"\u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c \u200b\u5176\u4e2d\u200b \\(x \\in \\mathbb{R}^n\\)\uff0c\\(y_i \\in \\{ c_1\uff0cc_2\uff0c....c_k\\}\\)\uff0c \u200b\u4e00\u5171\u200b\u6709\u200b K \u200b\u79cd\u7c7b\u200b\u522b\u200b\uff0c\u200b\u73b0\u5728\u200b\u7ed9\u51fa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u6570\u636e\u200b\u70b9\u200b\\(x\\)\uff0c\u200b\u6c42\u51fa\u200b\u5b83\u200b\u7684\u200b\u7c7b\u522b\u200b\\(y\\).
\u200b\u7b97\u6cd5\u200b\u5e0c\u671b\u200b\u5b66\u4e60\u200b\u4e00\u4e2a\u200b\u8054\u5408\u200b\u6982\u7387\u5206\u5e03\u200b\\(P(X\uff0cY)\\)\uff0c\u200b\u800c\u200b\u6211\u4eec\u200b\u73b0\u5728\u200b\u5df2\u7ecf\u200b\u6709\u7684\u662f\u200b\u5148\u9a8c\u200b\u5206\u5e03\u200b\\(P(Y)\\)\u200b\u548c\u200b\u6761\u4ef6\u200b\u6982\u7387\u5206\u5e03\u200b\\(P(X|Y)\\).
\u200b\u4f46\u662f\u200b\u540e\u8005\u200b\u7684\u200b\u7a7a\u95f4\u200b\u592a\u200b\u5927\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u4eec\u200b\u5f15\u5165\u200b\u72ec\u7acb\u6027\u200b\u5047\u8bbe\u200b\uff0c\u200b\u5047\u8bbe\u200b x \u200b\u7684\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u90fd\u200b\u662f\u200b\u72ec\u7acb\u200b\u7684\u200b\uff08\u200b\u4e8b\u5b9e\u4e0a\u200b\u5927\u200b\u6982\u7387\u200b\u5e76\u200b\u4e0d\u662f\u200b\uff0c\u200b\u8fd9\u662f\u200b\u6781\u5927\u200b\u7b80\u5316\u200b\u8ba1\u7b97\u200b\u91cf\u200b\u7684\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u5f15\u5165\u200b\u8bef\u5dee\u200b\u7684\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u8be5\u200b\u7b97\u6cd5\u200b\u7684\u200b\u201c\u200b\u6734\u7d20\u200b\u201d\u200b\u4e4b\u200b\u5904\u200b\uff09:
\\[ P(X = x| Y = c_k) = P(X^{(1)} = x^{(1)}\uff0c X^{(2)} = x^{(2)} ... X^{(n)} = x^{(n)} | Y = c_k)= \\prod_{i=1}^{n}P(X^{(i)} = x^{(i)}| Y = c_k) \\]\u200b\u4e0a\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u5728\u200b\u7c7b\u522b\u200b\u662f\u200b\\(c_k\\)\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0cX \u200b\u8fd9\u4e00\u200b n \u200b\u7ef4\u200b\u968f\u673a\u53d8\u91cf\u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b x \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u5c31\u662f\u200b\\(c_k\\)\u200b\u8fd9\u200b\u4e00\u7c7b\u200b\u4e2d\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(x^{(i)}\\)\u200b\u7684\u200b\u6982\u7387\u200b\u7684\u200b\u4e58\u79ef\u200b.
\u200b\u5b66\u4e60\u200b\u5230\u200b\u4e86\u200b\u8054\u5408\u200b\u6982\u7387\u5206\u5e03\u200b\u4e4b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b\u5206\u7c7b\u200b\u7684\u200b\u65f6\u5019\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\u6700\u5927\u200b\u540e\u9a8c\u200b\u6982\u7387\u200b\uff1a
\\[ y = \\underset{c_k}{\\operatorname{arg max}} P(Y = c_k) \\prod_{i=1}^{n}P(X^{(i)} = x^{(i)}| Y = c_k) \\]\u200b\u4e0a\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u5047\u8bbe\u200b x \u200b\u7684\u200b\u7c7b\u522b\u200b\u662f\u200b\\(c_k\\)\uff0c\u200b\u8ba1\u7b97\u200b\u6bcf\u4e2a\u200b\\(c_k\\)\u200b\u8fd9\u200b\u4e00\u7c7b\u200b\u4e2d\u200b\u51fa\u73b0\u200b x \u200b\u7684\u200b\u6982\u7387\u200b\uff0c\u200b\u627e\u51fa\u200b\u6982\u7387\u200b\u6700\u5927\u200b\u7684\u200b\u90a3\u200b\u4e00\u7c7b\u200b\u4f5c\u4e3a\u200b x \u200b\u7684\u200b\u5206\u7c7b\u200b.
PPT \u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5206\u7c7b\u200b\u5b9e\u4f8b\u200b "},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_3","title":"\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1","text":"\u200b\u5229\u7528\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u4e0b\u9762\u200b\u8fd9\u200b\u4e24\u4e2a\u200b\u6982\u7387\u200b\u7684\u200b\u4f30\u8ba1\u200b\u516c\u5f0f\u200b\uff1a
\\[\\begin{aligned} &P(Y = c_k) = \\frac{\\sum_{i=1}^{N}I(y_i = c_k)}{N} \\\\ &P(X^{(i)} = a_{jl}| Y = c_k) = \\frac{\\sum_{i=1}^{N}I(x_i^{(i)} = a_{jl}\uff0cy_i = c_k)}{\\sum_{i=1}^{N}I(y_i = c_k)} \\end{aligned}\\]\u200b\u6307\u793a\u200b\u51fd\u6570\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5728\u200b\u524d\u9762\u200b\u5df2\u7ecf\u200b\u6709\u200b\u4ecb\u7ecd\u200b\uff0c\u200b\u540e\u7eed\u200b\u90fd\u200b\u9ed8\u8ba4\u200b\u4f7f\u7528\u200b\u8fd9\u4e00\u200b\u5b9a\u4e49\u200b.
\u200b\u7b2c\u4e00\u200b\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u4e0d\u540c\u200b\u7c7b\u522b\u200b\u7684\u200b\u51fa\u73b0\u200b\u6982\u7387\u200b\u7684\u200b\u5148\u9a8c\u6982\u7387\u200b\u76f4\u63a5\u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2d\u8be5\u200b\u7c7b\u522b\u200b\u51fa\u73b0\u200b\u7684\u200b\u9891\u7387\u200b.
\u200b\u7b2c\u4e8c\u200b\u5f0f\u200b\u7684\u200b\u610f\u601d\u200b\u662f\u200b\u5728\u200b\u7c7b\u522b\u200b\u4e3a\u200b\\(c_k\\)\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u7b2c\u200b i \u200b\u7ef4\u200b\u53d6\u503c\u200b\u4e3a\u200b\\(a_{jl}\\)\u200b\u7684\u200b\u6982\u7387\u200b\u4e3a\u200b\u6837\u672c\u200b\u4e2d\u200b\\(c_k\\)\u200b\u7c7b\u4e2d\u200b\u8be5\u200b\u5206\u91cf\u200b\u4e3a\u200b\\(a_{jl}\\)\u200b\u7684\u200b\u6837\u672c\u200b\u5360\u200b\\(c_k\\)\u200b\u7c7b\u200b\u6837\u672c\u200b\u603b\u6570\u200b\u7684\u200b\u6bd4\u91cd\u200b.
\u200b\u601d\u60f3\u200b
\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5728\u200b\u6b64\u5904\u200b\u7684\u200b\u7ed3\u679c\u200b\u57fa\u672c\u4e0a\u200b\u53ef\u4ee5\u200b\u7b80\u5355\u200b\u5f52\u7ed3\u4e3a\u200b\uff1a\u200b\u7528\u200b\u9891\u7387\u200b\u4f30\u8ba1\u200b\u6982\u7387\u200b
"},{"location":"Note/Data%20Modeling/Naive_Bayesian/#_4","title":"\u8d1d\u53f6\u65af\u200b\u4f30\u8ba1","text":"\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u5728\u200b\u4e00\u4e2a\u200b\u60c5\u51b5\u200b\u4e0b\u200b\u53ef\u80fd\u200b\u9047\u5230\u200b\u95ee\u9898\u200b\uff0c\u200b\u5982\u679c\u200b\u67d0\u4e2a\u200b\u6837\u672c\u200b\u6ca1\u6709\u200b\u51fa\u73b0\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5bf9\u200b\u90a3\u4e2a\u200b\u7c7b\u522b\u200b\u4f30\u8ba1\u200b\u7684\u200b\u4fe1\u606f\u200b\u5b8c\u5168\u200b\u4e22\u5931\u200b.
\u200b\u4e3a\u200b\u89e3\u51b3\u200b\u8fd9\u4e00\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u624b\u52a8\u200b\u4e3a\u200b\u6bcf\u200b\u4e00\u200b\u7c7b\u522b\u200b\u6dfb\u52a0\u200b\u9ed8\u8ba4\u200b n \u200b\u6b21\u200b\u7684\u200b\u51fa\u73b0\u200b\u9891\u6570\u200b\uff1a
\\[\\begin{aligned} &P(Y = c_k) = \\frac{\\sum_{i=1}^{N}I(y_i = c_k) + \\lambda}{N + K\\lambda} \\\\ &P(X^{(i)} = a_{jl}| Y = c_k) = \\frac{\\sum_{i=1}^{N}I(x_i^{(i)} = a_{jl}\uff0cy_i = c_k) + \\lambda}{\\sum_{i=1}^{N}I(y_i = c_k) + S_i\\lambda} \\end{aligned}\\]\u200b\u5176\u4e2d\u200b\\(S_i\\)\u200b\u662f\u200b\u7b2c\u200b i \u200b\u7ef4\u200b\u7684\u200b\u53d6\u503c\u200b\u4e2a\u6570\u200b\uff0c\\(\\lambda\\)\u200b\u662f\u200b\u4e00\u4e2a\u200b\u8d85\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e00\u822c\u200b\u53d6\u200b 1.
\u200b\u5728\u200b\u7b2c\u4e00\u200b\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7c7b\u522b\u200b\u90fd\u200b\u52a0\u5165\u200b\u4e86\u200b\\(\\lambda\\)\u200b\u7684\u200b\u9891\u7387\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5206\u5b50\u200b\u5355\u72ec\u200b\u67d0\u7c7b\u200b\u7684\u200b\u9891\u6570\u200b\u52a0\u4e0a\u200b\u4e86\u200b\\(\\lambda\\)\uff0c\u200b\u5206\u6bcd\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u603b\u200b\u7c7b\u522b\u200b\u6570\u200b K \u200b\u4e58\u200b\u4e0a\u200b\\(\\lambda\\).
\u200b\u5728\u200b\u7b2c\u4e8c\u200b\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7c7b\u522b\u200b\u7684\u200b\u6bcf\u4e2a\u200b\u7ef4\u5ea6\u200b\u90fd\u200b\u52a0\u5165\u200b\u4e86\u200b\\(\\lambda\\)\u200b\u7684\u200b\u9891\u7387\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5206\u5b50\u200b\u5355\u72ec\u200b\u67d0\u7c7b\u200b\u7684\u200b\u9891\u6570\u200b\u52a0\u4e0a\u200b\u4e86\u200b\\(\\lambda\\)\uff0c\u200b\u5206\u6bcd\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u8be5\u200b\u7ef4\u5ea6\u200b\u53ef\u80fd\u200b\u7684\u200b\u53d6\u503c\u200b\u4e2a\u200b\u6570\u6570\u200b\u4e58\u200b\u4e0a\u200b\\(\\lambda\\)\uff08\u200b\u56e0\u4e3a\u200b\u6709\u200b\u591a\u5c11\u200b\u4e2a\u200b\u53d6\u503c\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u4eba\u4e3a\u200b\u7684\u200b\u52a0\u4e0a\u200b\u4e86\u200b\u591a\u5c11\u200b\u4e2a\u200b\\(\\lambda\\)\uff09.
\u200b\u53ef\u4ee5\u200b\u8ba4\u4e3a\u200b\u8d1d\u53f6\u65af\u200b\u4f30\u8ba1\u200b\u662f\u200b\u5bf9\u200b\u6781\u5927\u200b\u4f3c\u7136\u200b\u4f30\u8ba1\u200b\u8fdb\u884c\u200b\u4e86\u200b\u5e73\u6ed1\u200b.
"},{"location":"Note/Data%20Modeling/Perceptron/","title":"\u611f\u77e5\u673a","text":"\u200b\u7ea6\u200b 846 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
"},{"location":"Note/Data%20Modeling/Perceptron/#_2","title":"\u539f\u59cb\u200b\u5f62\u5f0f","text":"\u200b\u611f\u77e5\u673a\u200b\u7684\u200b\u7ed3\u6784\u200b\u5982\u4e0b\u200b\u56fe\u200b\u6240\u793a\u200b\uff0c\u200b\u88ab\u200b\u89c6\u4e3a\u200b\u662f\u200b\u6700\u200b\u7b80\u5355\u200b\u7684\u200b\u524d\u9988\u200b\u795e\u7ecf\u7f51\u7edc\u200b\uff0c\u200b\u662f\u200b\u4e00\u79cd\u200b\u4e8c\u5143\u200b\u7ebf\u6027\u200b\u5206\u7c7b\u5668\u200b.
\u200b\u4e0b\u9762\u200b\u7ed9\u51fa\u200b\u5f62\u5f0f\u5316\u200b\u8868\u8ff0\u200b\uff1a
\u200b\u611f\u77e5\u673a\u200b
\u200b\u7ed9\u5b9a\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(y_i \\in \\{1\uff0c-1\\}\\)\u200b\u662f\u200b\u6570\u636e\u200b\u6807\u7b7e\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u627e\u5230\u200b\u4e00\u7ec4\u200b\\((w\uff0cb)\\)\u200b\u4f7f\u5f97\u200b\u51fd\u6570\u200b\\(f(x) = sign(w \\cdot x + b)\\)\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u6700\u5c0f\u200b\uff1a
\\[ \\min L(w\uff0cb) = - \\sum_{i=1}^{n} y_i(w \\cdot x_i + b) \\]\u200b\u6ce8\u610f\u200b\u4e0a\u200b\u6587\u4e2d\u200b\u7684\u200b\\(sign\\)\u200b\u51fd\u6570\u200b\uff0c\u200b\u5b83\u200b\u7684\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a
\\[ sign(x) = \\left\\{ \\begin{aligned} 1\uff0c & x \\geq 0 \\\\ -1\uff0c & x < 0 \\end{aligned} \\right. \\]\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5982\u679c\u200b\\(y_i\\)\u200b\u548c\u200b\\(f(x)\\)\u200b\u82e5\u200b\u662f\u200b\u7b26\u53f7\u200b\u76f8\u540c\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\uff09\uff0c\u200b\u90a3\u4e48\u200b\\(y_i(w \\cdot x_i + b)\\)\u200b\u7684\u200b\u503c\u200b\u5c31\u662f\u200b 1\uff0c\u200b\u53cd\u4e4b\u200b\u5219\u200b\u662f\u200b-1.\u200b\u56e0\u6b64\u200b\u6211\u4eec\u200b\u7684\u200b\u76ee\u6807\u200b\u5c31\u662f\u200b\u5c3d\u53ef\u80fd\u200b\u6700\u5927\u5316\u200b\u6240\u6709\u200b\\(y_i(w \\cdot x_i + b)\\)\u200b\u6c42\u548c\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u8fd9\u200b\u4e5f\u200b\u7b49\u6548\u4e8e\u200b\u6700\u5c0f\u5316\u200b\u5176\u200b\u8d1f\u6570\u200b.\uff08\u200b\u8be5\u200b\u9886\u57df\u200b\u7ea6\u5b9a\u4fd7\u6210\u200b\u5c31\u662f\u200b\u5199\u6210\u200b\u6700\u5c0f\u5316\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\uff0c\u200b\u6700\u5c0f\u5316\u200b\u548c\u200b\u6700\u5927\u5316\u200b\u4e4b\u95f4\u200b\u53ea\u8981\u200b\u52a0\u200b\u4e00\u4e2a\u200b\u8d1f\u53f7\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e92\u76f8\u8f6c\u5316\u200b\uff09
\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b SGD\uff08Stochastic Gradient Descent\uff09\u200b\u6765\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u95ee\u9898\u200b\uff0c\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u7684\u200b\u68af\u5ea6\u200b\u4e3a\u200b\uff1a
\\[\\begin{aligned} &\\nabla_w L(w\uff0cb) = - \\sum_{i=1}^{n} y_i x_i \\\\ &\\nabla_b L(w\uff0cb) = - \\sum_{i=1}^{n} y_i \\end{aligned}\\]\u200b\u4ece\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u968f\u673a\u200b\u9009\u53d6\u200b\u4e00\u4e2a\u200b\u6837\u672c\u200b\\((x_i\uff0cy_i)\\)\uff0c\u200b\u66f4\u65b0\u200b\u53c2\u6570\u200b\uff1a
\\[\\begin{aligned} & w = w + \\eta y_i x_i\\\\ & b = b + \\eta y_i \\\\ \\end{aligned}\\]\u200b\u76f4\u5230\u200b\u6ca1\u6709\u200b\u8bef\u200b\u5206\u7c7b\u200b\u70b9\u200b.\u200b\u5176\u4e2d\u200b\\(\\eta \\in (0\uff0c1]\\)\u200b\u662f\u200b\u5b66\u4e60\u200b\u7387\u200b.
"},{"location":"Note/Data%20Modeling/Perceptron/#_3","title":"\u6536\u655b\u6027","text":"\u200b\u53ef\u4ee5\u200b\u8bc1\u660e\u200b\uff0c\u200b\u611f\u77e5\u673a\u200b\u7684\u200b\u8bef\u200b\u5206\u7c7b\u200b\u6b21\u6570\u200b K \u200b\u5b58\u5728\u200b\u4e00\u4e2a\u200b\u4e0a\u200b\u754c\u200b\uff0c\u200b\u5373\u200b\uff1b
\\[\\begin{aligned} & K \\leq (\\frac{R}{\\gamma})^2 \\\\ & R = \\max_{1 \\leq i \\leq n} ||x_i|| \\\\ & \\gamma = \\min_{1 \\leq i \\leq n} y_i(w^* \\cdot x_i + b^*) \\end{aligned}\\]\u200b\u5176\u4e2d\u200b\\(w^*\uff0cb^*\\)\u200b\u662f\u200b\u6700\u4f18\u200b\u89e3\u200b\uff0c\\(R\\)\u200b\u662f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u6837\u672c\u200b\u70b9\u200b\u7684\u200b\u6700\u5927\u200b\u8303\u6570\u200b\uff0c\\(\\gamma\\)\u200b\u662f\u200b\u6570\u636e\u200b\u96c6\u4e2d\u200b\u6240\u6709\u200b\u6837\u672c\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u6700\u5c0f\u200b\u8ddd\u79bb\u200b. \u200b\u5bf9\u200b\u8bc1\u660e\u200b\u8fc7\u7a0b\u200b\u611f\u5174\u8da3\u200b\u7684\u200b\u53ef\u4ee5\u200b\u770b\u4e66\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e0d\u200b\u5c55\u5f00\u200b.
"},{"location":"Note/Data%20Modeling/Perceptron/#_4","title":"\u5bf9\u5076\u200b\u5f62\u5f0f","text":"\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u53c2\u6570\u200b\u4e3a\u200b\\(w_0 = 0\uff0cb_0 = 0\\)\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a
\\[\\begin{aligned} & w = \\sum \\eta y_i x_i \\\\ & b = \\sum \\eta y_i \\end{aligned}\\]\u200b\u5176\u4e2d\u200b\\(\\eta\\)\u200b\u662f\u200b\u5b66\u4e60\u200b\u7387\u200b.\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u662f\u4ece\u200b 0 \u200b\u5f00\u59cb\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u5f80\u200b\u53c2\u6570\u200b\u4e0a\u52a0\u200b\u4e00\u5b9a\u200b\u7684\u200b\u66f4\u65b0\u200b\u503c\u200b\uff0c\u200b\u6240\u4ee5\u200b\u4e0a\u200b\u5f0f\u200b\u81ea\u7136\u200b\u6210\u7acb\u200b.
\u200b\u5047\u8bbe\u200b\u5176\u4e2d\u200b\u7b2c\u200b i \u200b\u4e2a\u200b\u6570\u636e\u200b\u70b9\u200b\u5728\u200b SGD \u200b\u4e2d\u200b\u88ab\u200b\u968f\u673a\u200b\u9009\u4e2d\u200b\u4e86\u200b\\(n_i\\)\u200b\u6b21\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5b83\u200b\u56e0\u6b64\u200b\u5bfc\u81f4\u200b\u4e86\u200b\\(n_i\\)\u200b\u6b21\u200b\u53c2\u6570\u200b\u7684\u200b\u66f4\u65b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u4e0a\u5f0f\u200b\u5199\u6210\u200b\uff1a
\\[\\begin{aligned} & w = \\sum_{i=1}^{n} \\eta n_i y_i x_i \\\\ & b = \\sum_{i=1}^{n} \\eta n_i y_i \\end{aligned}\\]\u200b\u4ee4\u200b\\(\\alpha_i = \\eta n_i\\)\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\uff1a
\\[\\begin{aligned} & w = \\sum_{i=1}^{n}\\alpha_i y_i x_i \\\\ & b = \\sum_{i=1}^{n}\\alpha_i y_i \\end{aligned}\\]\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u7c7b\u200b\u51fd\u6570\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5199\u6210\u200b\uff1a
\\[ f(x) = sign(\\sum_{i=1}^{n}\\alpha_i y_i\uff08 x_i \\cdot x \uff09 + \\sum_{i=1}^{n}\\alpha_i y_i) \\]\u200b\u6bcf\u6b65\u200b SGD \u200b\u4e2d\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u66f4\u65b0\u200b\\(\\alpha_i\\):
\\[ \\alpha_i = \\alpha_i + \\eta \\]\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u7c7b\u200b\u51fd\u6570\u200b\u4e2d\u200b\u53ea\u6709\u200b\\(\\alpha_i\\)\u200b\u9700\u8981\u200b\u6bcf\u6b21\u200b\u66f4\u65b0\u200b\uff0c\u200b\u9664\u6b64\u4e4b\u5916\u200b\u8fd8\u6709\u200b\u5927\u91cf\u200b\u7684\u200b x \u200b\u7684\u200b\u5185\u79ef\u200b\u8fd0\u7b97\u200b\uff0c\u200b\u4e3a\u4e86\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b x \u200b\u7684\u200b\u5185\u79ef\u200b\u9884\u5148\u200b\u8ba1\u7b97\u51fa\u6765\u200b\uff0c\u200b\u8fd9\u200b\u88ab\u79f0\u4f5c\u200b Gram \u200b\u77e9\u9635\u200b\uff1a
Gram \u200b\u77e9\u9635\u200b
\u200b\u7ed9\u5b9a\u200b n \u200b\u4e2a\u200b\u5411\u91cf\u200b\\(x_1\uff0cx_2\uff0c...\uff0cx_n\\)\uff0c\u200b\u90a3\u4e48\u200b Gram \u200b\u77e9\u9635\u200b\\(G\\)\u200b\u662f\u200b\u7531\u200b\u8fd9\u4e9b\u200b\u5411\u91cf\u200b\u6240\u6709\u200b\u53ef\u80fd\u200b\u7684\u200b\u5185\u79ef\u200b\u7ec4\u6210\u200b\u7684\u200b\u77e9\u9635\u200b\uff0c\u200b\u5373\u200b\uff1a
\\[ g_{ij} = x_i \\cdot x_j \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/","title":"\u652f\u6301\u200b\u5411\u91cf\u200b\u673a","text":"\u200b\u7ea6\u200b 2059 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 7 \u200b\u5206\u949f\u200b
Warning
\u200b\u5f88\u591a\u200b\u4eba\u200b\u90fd\u200b\u5410\u200b\u69fd\u200b\uff0c\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u673a\u200b\u8fd9\u4e2a\u200b\u540d\u5b57\u200b\u8d77\u200b\u7684\u200b\u4f9d\u6258\u200b
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_2","title":"\u6a21\u578b\u200b\u63cf\u8ff0","text":"\u200b\u5bf9\u4e8e\u200b\u6570\u636e\u200b\u96c6\u200b\\(\\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u5176\u4e2d\u200b\\(x_i \\in \\mathbb{R}^n\uff0c y \\in \\{1\uff0c-1\\}\\)\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u8d85\u5e73\u9762\u200b\\(w\\cdot x + b = 0\\)\u200b\u5c06\u200b\u6570\u636e\u200b\u96c6\u200b\u5206\u5f00\u200b.
\u200b\u5b9e\u4f8b\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b
\\[ \\gamma_i = \\frac{y_i(w\\cdot x_i + b)}{\\|w\\|} \\]\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5176\u200b\u7edd\u5bf9\u503c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u70b9\u5230\u200b\u76f4\u7ebf\u200b\u8ddd\u79bb\u200b
\u200b\u5b9e\u4f8b\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b
\\[ \\hat{\\gamma_i} = y_i(w\\cdot x_i + b) \\]\u200b\u53ef\u4ee5\u200b\u770b\u51fa\u200b\uff0c\u200b\u5176\u200b\u7edd\u5bf9\u503c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u9664\u53bb\u200b\u4e86\u200b\\(||w||\\)\u200b\u8fd9\u4e2a\u200b\u56e0\u7d20\u200b
\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u53d8\u91cf\u200b\u7684\u200b\u7edd\u5bf9\u503c\u200b\u542b\u4e49\u200b\u90fd\u200b\u8868\u793a\u200b\u67d0\u79cd\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u800c\u200b\u7b26\u53f7\u200b\u8868\u793a\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\u4e0e\u5426\u200b\uff0c\u200b\u5206\u7c7b\u200b\u6b63\u786e\u200b\u65f6\u95f4\u200b\u9694\u4e3a\u200b\u6b63\u200b\uff0c\u200b\u5206\u7c7b\u200b\u9519\u8bef\u200b\u65f6\u95f4\u200b\u9694\u4e3a\u200b\u8d1f\u200b
\u200b\u7ed9\u5b9a\u200b\u4e00\u7ec4\u200b\u6570\u636e\u200b\u70b9\u200b\u548c\u200b\u4e00\u4e2a\u200b\u8d85\u5e73\u9762\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u8ba1\u7b97\u200b\u51fa\u200b\u5404\u4e2a\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u548c\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b.\u200b\u4f46\u662f\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u6210\u200b\u6bd4\u4f8b\u200b\u7684\u200b\u540c\u65f6\u200b\u653e\u7f29\u200b w \u200b\u548c\u200b b\uff0c\u200b\u90a3\u4e48\u200b\u8d85\u5e73\u9762\u200b\u548c\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\u90fd\u200b\u5b8c\u5168\u200b\u4e0d\u53d8\u200b\uff0c\u200b\u4f46\u662f\u200b\u6240\u6709\u200b\u70b9\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u90fd\u200b\u4f1a\u200b\u968f\u7740\u200b w \u200b\u7684\u200b\u53d8\u5316\u200b\u800c\u200b\u53d8\u5316\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\uff08\u200b\u4e0d\u53d8\u200b\uff09\u200b\u4e58\u200b\u4e0a\u200b w \u200b\u7684\u200b\u6a21\u200b\uff08\u200b\u6b63\u5728\u200b\u88ab\u6210\u200b\u6bd4\u4f8b\u200b\u653e\u7f29\u200b\uff09
\u200b\u4e3a\u4e86\u200b\u63d0\u9ad8\u200b\u5206\u7c7b\u200b\u7684\u786e\u200b\u4fe1\u5ea6\u200b\u548c\u200b\u6cdb\u5316\u200b\u80fd\u529b\u200b\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u6700\u5927\u5316\u200b\u6700\u5c0f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5c3d\u91cf\u200b\u63d0\u9ad8\u200b\u6240\u6709\u200b\u70b9\u5230\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u8ddd\u79bb\u200b\u7684\u200b\u4e0b\u754c\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u8ba9\u200b\u6240\u6709\u200b\u70b9\u200b\u90fd\u200b\u5c3d\u53ef\u80fd\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u8fdc\u200b\u4e00\u70b9\u200b\uff08\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u5f88\u8fd1\u200b\u7684\u8bdd\u200b\uff0c\u200b\u7a0d\u5fae\u200b\u6709\u200b\u4e00\u70b9\u200b\u6270\u52a8\u200b\u5c31\u200b\u5bb9\u6613\u200b\u88ab\u200b\u5206\u6210\u200b\u53e6\u4e00\u7c7b\u200b\uff09
\u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5199\u51fa\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b
\\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\gamma \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq \\gamma\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u5176\u4e2d\u200b\u7684\u200b\\(\\gamma = \\underset {i}{\\operatorname{min}} \\gamma_i\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u6700\u5c0f\u200b\u51e0\u4f55\u200b\u95f4\u9694\u200b
\u200b\u89c2\u5bdf\u200b\u5230\u200b\\(\\gamma\\|w\\| = \\hat{\\gamma}\\)\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5c06\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\u8f6c\u5316\u200b\u4e3a\u200b
\\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\frac{\\hat{\\gamma}}{\\|w\\|} \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq \\hat{\\gamma}\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u6210\u200b\u6bd4\u4f8b\u200b\u7684\u200b\u653e\u7f29\u200b w \u200b\u548c\u200b b \u200b\u6765\u200b\u8c03\u8282\u200b\\(\\hat{\\gamma}\\)\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u653e\u7f29\u200b\\(w\\)\u200b\u4f7f\u5f97\u200b\\(\\hat{\\gamma} = 1\\)\uff0c\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u76ee\u6807\u200b\u8f6c\u5316\u200b\u4e3a\u200b
\\[\\begin{aligned} \\underset {w\uff0cb}{\\operatorname{max}} & \\quad \\frac{1}{\\|w\\|} \\\\ s.t. & \\quad y_i(w\\cdot x_i + b) \\geq 1\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u4f18\u5316\u200b\u95ee\u9898\u200b\u53ef\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(w^*\uff0cb^*\\)\uff0c\u200b\u6784\u6210\u200b\u6700\u4f18\u200b\u5206\u79bb\u200b\u8d85\u5e73\u9762\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8bc1\u660e\u200b\uff0c\u200b\u8be5\u200b\u8d85\u5e73\u9762\u200b\u5b58\u5728\u200b\u4e14\u200b\u552f\u4e00\u200b\uff0c\u200b\u90a3\u4e9b\u200b\u79bb\u200b\u8d85\u5e73\u9762\u200b\u6700\u8fd1\u200b\u7684\u200b\u70b9\u200b\u5c31\u200b\u88ab\u200b\u79f0\u4e3a\u200b\u652f\u6301\u200b\u5411\u91cf\u200b
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_3","title":"\u6a21\u578b\u200b\u6c42\u89e3","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_4","title":"\u5bf9\u5076\u200b\u95ee\u9898","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_5","title":"\u5199\u51fa\u200b\u5bf9\u5076\u200b\u95ee\u9898","text":"\u200b\u62c9\u683c\u6717\u200b\u65e5\u200b\u51fd\u6570\u200b\u4e3a\u200b\uff1a
\\[ L(w\uff0cb\uff0c\\alpha) = \\frac{1}{2}||w||^2 - \\sum_{i=1}^{N}\\alpha_iy_i(w\\cdot x_i + b) + \\sum_{i=1}^{N}\\alpha_i \\]\u200b\u6211\u4eec\u200b\u5c06\u200b\u6700\u5c0f\u200b\u6700\u5927\u200b\u95ee\u9898\u200b\u8f6c\u5316\u200b\u4e3a\u200b\u6700\u5927\u200b\u6700\u5c0f\u200b\u95ee\u9898\u200b\uff0c\u200b\u5199\u51fa\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\uff1a
\\[ \\underset {\\alpha}{\\operatorname{min}} \\underset {w\uff0cb}{\\operatorname{max}} L(w\uff0cb\uff0c\\alpha) \\rightarrow \\underset {\\alpha}{\\operatorname{min}} \\underset {w\uff0cb}{\\operatorname{max}} L(w\uff0cb\uff0c\\alpha) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_6","title":"\u6781\u5c0f\u200b\u5316","text":"\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u8ba9\u200b\\(\\nabla_w L(w\uff0cb\uff0c\\alpha) = 0\\)\u200b\u548c\u200b\\(\\nabla_b L(w\uff0cb\uff0c\\alpha) = 0\\)\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b
\\[\\begin{aligned} & w = \\sum_{i=1}^{N}\\alpha_i y_i x_i \\\\ & 0 = \\sum_{i=1}^{N}\\alpha_i y_i \\\\ \\end{aligned}\\]\u200b\u5e26\u56de\u200b\u539f\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u5f97\u5230\u200b\uff1a
\\[ L(w\uff0cb\uff0c\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_7","title":"\u6781\u5927\u200b\u5316","text":"\u200b\u5728\u200b\u6781\u5c0f\u200b\u5316\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5269\u4e0b\u200b\u7684\u200b\u95ee\u9898\u200b\u5c31\u662f\u200b
\\[\\begin{aligned} \\underset {\\alpha}{\\operatorname{max}} & \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\\\ s.t. & \\quad \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & \\quad \\alpha_i \\geq 0\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u901a\u8fc7\u200b\u67d0\u79cd\u200b\u65b9\u5f0f\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u95ee\u9898\u200b\uff0c\u200b\u6211\u4eec\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^*\\)
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_8","title":"\u539f\u59cb\u200b\u95ee\u9898","text":""},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#kkt","title":"\u5e94\u7528\u200b KKT \u200b\u6761\u4ef6","text":"\u200b\u6709\u200b\u4e86\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u7684\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^* = (\\alpha_1^*\uff0c\\alpha_2^*\uff0c...\uff0c\\alpha_N^*)\\)\uff0c\u200b\u5e94\u7528\u200b KKT \u200b\u6761\u4ef6\u200b\uff1a
\\[\\begin{align} & \\alpha_i^* \\geq 0 \\tag{1}\\\\ & y_i(w^*\\cdot x_i + b^*) - 1 \\geq 0 \\tag{2}\\\\ & \\alpha_i^*(y_i(w^*\\cdot x_i + b^*) - 1) = 0 \\tag{3}\\\\ & \\nabla_w L(w^*\uff0cb^*\uff0c\\alpha^*) = w^* - \\sum_{i=1}^{N}\\alpha_i^* y_i x_i = 0 \\tag{4}\\\\ & \\nabla_b L(w^*\uff0cb^*\uff0c\\alpha^*) = \\sum_{i=1}^{N}\\alpha_i^* y_i = 0 \\tag{5}\\\\ \\end{align}\\]\u200b\u82e5\u200b\\(\\alpha^* = 0\\)\uff0c\u200b\u7531\u200b(4)\u200b\u53ef\u4ee5\u200b\u63a8\u51fa\u200b\\(w^* = 0\\)\uff0c\u200b\u663e\u7136\u200b\u4e0d\u200b\u5bf9\u200b\uff0c\u200b\u6240\u4ee5\u200b\\(\\alpha^*\\)\u200b\u4e0d\u5168\u200b\u4e3a\u200b\u96f6\u200b
\u200b\u82e5\u200b\\(\\alpha_i^* > 0\\)\uff0c\u200b\u7531\u200b(3)\u200b\u53ef\u4ee5\u200b\u63a8\u51fa\u200b\\(y_i(w^*\\cdot x_i + b^*) = 1\\)\uff0c\u200b\u56de\u5fc6\u200b\u524d\u200b\u6587\u200b\u6211\u4eec\u200b\u5df2\u7ecf\u200b\u4ee4\u200b\\(\\hat{\\gamma} = 1\\)\uff0c\u200b\u6240\u4ee5\u200b j \u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u8ddf\u200b\u6700\u5c0f\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u76f8\u7b49\u200b\uff0c\u200b\u6bcf\u4e2a\u200b j \u200b\u90fd\u200b\u56e0\u6b64\u200b\u6210\u4e3a\u200b\u4e00\u4e2a\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u5176\u4e2d\u200b\u65e2\u6709\u200b\u6b63\u4f8b\u200b\u4e5f\u200b\u6709\u200b\u53cd\u4f8b\u200b
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#wb","title":"\u6c42\u200b\u6700\u4f18\u200b w\uff0cb","text":"\u200b\u5229\u7528\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b
\\[\\begin{align} & w^* = \\sum_{i=1}^{N}\\alpha_i^* y_i x_i \\\\ & b^* = y_j - \\sum_{i=1}^{N}\\alpha_i^* y_i (x_i\\cdot x_j) \\\\ \\end{align}\\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_9","title":"\u5f97\u5230\u200b\u5206\u79bb\u200b\u51fd\u6570","text":"\u200b\u5229\u7528\u200b\u6700\u4f18\u200b\u89e3\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5f97\u5230\u200b\u5206\u79bb\u200b\u51fd\u6570\u200b
\\[ f(x) = sign(\\sum_{i=1}^{N}\\alpha_i^* y_i (x_i\\cdot x) + b^*) \\]\u200b\u4ee5\u4e0a\u200b\u4fbf\u662f\u200b\u6c42\u89e3\u200b\u4e8c\u6b21\u200b\u89c4\u5212\u200b\u95ee\u9898\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u95f4\u9694\u200b\u8d85\u5e73\u9762\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u5176\u4e2d\u200b\u53ea\u6709\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u4e2d\u200b\u7684\u200b\u6c42\u200b\u7684\u200b\u6700\u4f18\u200b\\(\\alpha^*\\)\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6ca1\u6709\u200b\u9610\u660e\u200b\uff0c\u200b\u540e\u9762\u200b\u4f1a\u200b\u7ed9\u51fa\u200b
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_10","title":"\u8f6f\u200b\u95f4\u9694","text":"\u200b\u4e00\u822c\u800c\u8a00\u200b\uff0c\u200b\u7531\u4e8e\u200b\u566a\u58f0\u200b\u7684\u200b\u5e72\u6270\u200b\uff0c\u200b\u6211\u4eec\u200b\u5f88\u96be\u200b\u76f4\u63a5\u200b\u62ff\u5230\u200b\u4e00\u4e2a\u200b\u7ebf\u6027\u200b\u53ef\u5206\u200b\u7684\u200b\u6570\u636e\u200b\u96c6\u200b\uff0c\u200b\u800c\u662f\u200b\u4e00\u4e2a\u200b\u8fd1\u4f3c\u200b\u7ebf\u6027\u200b\u53ef\u5206\u200b\u7684\u200b\u6570\u636e\u200b\u96c6\u200b\uff0c\u200b\u6211\u4eec\u200b\u53bb\u6389\u200b\u5927\u90e8\u5206\u200b\u7684\u200b\u566a\u70b9\u200b\u540e\u200b\u53ef\u4ee5\u200b\u505a\u5230\u200b\u7ebf\u6027\u200b\u53ef\u200b\u5206\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u4e9b\u200b\u566a\u70b9\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u8dd1\u200b\u5230\u200b\u4e86\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u751a\u81f3\u200b\u8d85\u5e73\u9762\u200b\u5bf9\u9762\u200b\u7684\u200b\uff0c\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b
\\[ y_i(w\\cdot x_i + b) \\geq 1 - \\xi_i \\quad i = 1\uff0c2\uff0c...\uff0cN (\\xi_i \\geq 0 ) \\]\u200b\u4e5f\u5c31\u662f\u8bf4\u200b\uff0c\u200b\u5e76\u975e\u200b\u6240\u6709\u200b\u70b9\u200b\u7684\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u90fd\u200b\u5927\u4e8e\u200b 1 \u200b\u4e86\u200b\uff08\u200b\u51fd\u6570\u200b\u95f4\u9694\u200b\u4e3a\u200b 1 \u200b\u7684\u200b\u662f\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\uff0c\u200b\u4e0d\u200b\u5927\u4e8e\u200b\u4e00\u200b\u5c31\u200b\u4f4d\u4e8e\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u4e86\u200b\uff09\uff0c
\u200b\u5f53\u7136\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e0d\u80fd\u5141\u8bb8\u200b\u65e0\u200b\u9650\u5236\u200b\u7684\u200b\u677e\u5f1b\u200b\uff0c\u200b\u4e0d\u7136\u200b\u6240\u8c13\u200b\u7684\u200b\u5176\u4ed6\u200b\u5411\u91cf\u200b\u90fd\u200b\u53ef\u4ee5\u200b\u968f\u610f\u200b\u8dd1\u200b\u5230\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4ee5\u5185\u200b\u7684\u8bdd\u200b\uff0c\u200b\u652f\u6301\u200b\u5411\u91cf\u200b\u4e5f\u200b\u5c31\u200b\u6ca1\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fdb\u5f62\u200b\u6b63\u5219\u200b\u5316\u200b
\\[ \\underset {w\uff0cb\uff0c\\xi}{\\operatorname{min}} \\quad \\frac{1}{2}||w||^2 + C\\sum_{i=1}^{N}\\xi_i \\\\ \\]\u200b\u5176\u4e2d\u200b\u7684\u200b C \u200b\u662f\u200b\u4e00\u4e2a\u200b\u6211\u4eec\u200b\u624b\u52a8\u200b\u8bbe\u7f6e\u200b\u7684\u200b\u60e9\u7f5a\u200b\u53c2\u6570\u200b
\u200b\u6211\u4eec\u200b\u7684\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u968f\u4e4b\u200b\u53d8\u6210\u200b\uff1a
\\[\\begin{aligned} \\underset {\\alpha}{\\operatorname{max}} & \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_j(x_i\\cdot x_j) \\\\ s.t. & \\quad \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & \\quad 0 \\leq \\alpha_i \\leq C\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u5176\u4e2d\u200b\u7531\u4e8e\u200b\u677e\u5f1b\u200b\u6761\u4ef6\u200b\uff0c\u200b\u6211\u4eec\u200b\u6781\u5c0f\u200b\u5316\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u65b0\u589e\u200b\u4e86\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u7ea6\u675f\u200b\uff1a
\\[\\begin{aligned} \\nabla_{\\xi_i} L(w\uff0cb\uff0c\\alpha\uff0c\\xi) = C - \\alpha_i - \\mu_i = 0 \\quad i = 1\uff0c2\uff0c...\uff0cN \\\\ \\mu_i \\geq 0 \\quad i = 1\uff0c2\uff0c...\uff0cN \\\\ \\end{aligned}\\]\u200b\u8fd9\u200b\u4e5f\u200b\u662f\u200b\u4e0a\u8ff0\u200b\u6761\u4ef6\u200b\u4e2d\u200b\u51fa\u73b0\u200b\\(\\alpha_i \\leq C\\)\u200b\u7684\u200b\u539f\u56e0\u200b
\u200b\u540c\u6837\u200b\u6c42\u89e3\u200b\u6700\u4f18\u200b\u89e3\u200b\\(\\alpha^*\\)\uff0c\u200b\u7136\u540e\u200b\u5e26\u56de\u200b\u539f\u200b\u5f0f\u200b\uff0c\u200b\u5f97\u5230\u200b\u6700\u4f18\u200b\u89e3\u200b\\(w^*\uff0cb^*\uff0c\\xi^*\\)\uff0c\u200b\u6784\u6210\u200b\u6700\u4f18\u200b\u5206\u79bb\u200b\u8d85\u5e73\u9762\u200b
\u200b\u90a3\u4e9b\u200b\u88ab\u200b\u677e\u5f1b\u200b\u7684\u200b\u70b9\u200b\u7684\u200b\u4f4d\u7f6e\u200b\u548c\u200b\\(\\xi\\)\u200b\u7684\u200b\u7684\u200b\u5173\u7cfb\u200b\u4e3a\u200b\uff1a
"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#_11","title":"\u6838\u200b\u51fd\u6570","text":"\u200b\u6211\u4eec\u200b\u60f3\u8981\u200b\u628a\u200b\u70b9\u200b\\(x\uff0c z \\in \\mathbb{R}^n\\)\u200b\u6620\u5c04\u200b\u5230\u200b\u4e00\u4e2a\u200b\u66f4\u200b\u9ad8\u7ef4\u200b\u7684\u200b\u7a7a\u95f4\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b(\\(\\phi(x)\\)\u200b\u88ab\u200b\u6620\u5c04\u200b\u5230\u200b\u66f4\u200b\u9ad8\u7ef4\u200b\uff09\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u6620\u5c04\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4fdd\u8bc1\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u200b\u4e8c\u8005\u200b\u7684\u200b\u70b9\u79ef\u200b\u662f\u200b\u539f\u200b\u7a7a\u95f4\u200b\u4e2d\u70b9\u79ef\u200b\u7684\u200b\u51fd\u6570\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b
\\[ K(x\uff0cz) = \\phi(x)\\cdot \\phi(z) \\]\u200b\u4e00\u822c\u800c\u8a00\u200b\uff0c\u200b\u7ed9\u5b9a\u200b\u8fd9\u4e2a\u200b\u628a\u200b\u539f\u200b\u5185\u79ef\u200b\u6620\u5c04\u200b\u5230\u200b\u9ad8\u7ef4\u200b\u5185\u79ef\u200b\u7684\u200b K \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\uff0c\u200b\u4e0d\u7528\u200b\u5177\u4f53\u200b\u7ed9\u51fa\u200b\u628a\u200b\u5411\u91cf\u200b\u6620\u5c04\u200b\u5230\u200b\u9ad8\u4f4d\u200b\u5411\u91cf\u200b\u7684\u200b\\(\\phi()\\)
\u200b\u5728\u200b\u5bf9\u5076\u200b\u95ee\u9898\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u6ce8\u610f\u200b\u5230\u200b\\(x_i\\)\u200b\u4e4b\u95f4\u200b\u53ea\u6709\u200b\u5185\u79ef\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u5c31\u200b\u76f4\u63a5\u200b\u7528\u200b\u6620\u5c04\u200b\u540e\u200b\u7684\u200b\u9ad8\u4f4d\u200b\u5185\u79ef\u200b\u8fdb\u884c\u200b\u66ff\u6362\u200b
\\[ \\underset {\\alpha}{\\operatorname{max}} \\quad L(\\alpha) = \\sum_{i=1}^{N}\\alpha_i - \\frac{1}{2}\\sum_{i=1}^{N}\\sum_{j=1}^{N}\\alpha_i\\alpha_jy_iy_jK(x_i\uff0cx_j) \\\\ \\]\u200b\u5e38\u7528\u200b\u6838\u200b\u51fd\u6570\u200b
\u200b\u591a\u9879\u5f0f\u200b\u6838\u200b\u51fd\u6570\u200b
\\[ K(x\uff0cz) = (x\\cdot z + 1)^p \\]\u200b\u9ad8\u65af\u200b\u6838\u200b\u51fd\u6570\u200b(KBF)
\\[ K(x\uff0cz) = \\exp(-\\frac{||x-z||^2}{2\\sigma^2}) \\]"},{"location":"Note/Data%20Modeling/Support_Vector_Machine/#smo","title":"SMO \u200b\u7b97\u6cd5","text":"\u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u7ed9\u51fa\u200b SMO \u200b\u7b97\u6cd5\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u79cd\u200b\u5177\u4f53\u200b\u6c42\u89e3\u200b\u4e0a\u8ff0\u200b\u7684\u200b\\(\\alpha^*\\)\u200b\u7684\u200b\u6570\u503c\u200b\u65b9\u6cd5\u200b.
\u200b\u8f93\u5165\u200b\uff1a\u200b\u6570\u636e\u200b\u96c6\u200b\\(D = \\{(x_i\uff0cy_i)\\}\\)\uff0c\u200b\u6838\u200b\u51fd\u6570\u200b\\(K(x\uff0cz)\\)\uff0c\u200b\u5bb9\u5fcd\u5ea6\u200b\\(\\epsilon\\)
\u200b\u82e5\u200b\u5728\u200b\u5bb9\u5fcd\u5ea6\u200b\\(\\epsilon\\)\u200b\u5185\u200b\u6ee1\u8db3\u200b\uff1a
\\[\\begin{aligned} & \\sum_{i=1}^{N}\\alpha_i y_i = 0 \\\\ & 0 \\leq \\alpha_i \\leq C\uff0c i = 1\uff0c2\uff0c...\uff0cN \\\\ & y_i(g(x_i)) = \\left\\{ \\begin{aligned} & \\geq 1\uff0c \\alpha_i = 0 \\\\ & = 1\uff0c 0 < \\alpha_i < C \\\\ & \\leq 1\uff0c \\alpha_i = C \\\\ \\end{aligned} \\right. \\end{aligned}\\]\u200b\u5219\u200b\u4ee4\u200b\\(\\alpha = (\\alpha_1\uff0c\\alpha_2\uff0c...\uff0c\\alpha_N)\\)\uff0c\u200b\u9000\u51fa\u200b\u5faa\u73af\u200b
\u200b\u7ea6\u200b 127 \u200b\u4e2a\u200b\u5b57\u200b
Abstract
Missing Semester \u200b\u662f\u200b\u6765\u81ea\u200b MIT \u200b\u7684\u200b\u4e00\u95e8\u200b\u8ba1\u7b97\u673a\u200b\u5165\u200b\u4e48\u200b\u8bfe\u7a0b\u200b\uff0c\u200b\u8fd9\u95e8\u200b\u8bfe\u7a0b\u200b\u4e0d\u200b\u4ecb\u7ecd\u200b\u5177\u4f53\u200b\u7684\u200b\u8bed\u8a00\u200b\u7b97\u6cd5\u200b\uff0c\u200b\u800c\u662f\u200b\u4ecb\u7ecd\u200b\u4e00\u4e9b\u200b\u53ef\u4ee5\u200b\u63d0\u9ad8\u6548\u7387\u200b\u7684\u200b\u5de5\u5177\u200b\u7684\u200b\u4f7f\u7528\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u666e\u53ca\u200b\u8ba1\u7b97\u673a\u200b\u5e38\u8bc6\u200b
Warning
\u200b\u539f\u200b\u8bfe\u7a0b\u200b\u5f88\u200b\u4f18\u79c0\u200b\uff0c\u200b\u5982\u679c\u200b\u60a8\u200b\u6709\u7a7a\u200b\u7684\u8bdd\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u524d\u5f80\u200b\u3010\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b\u3011()\u200b\u8fdb\u884c\u200b\u5b66\u4e60\u200b.\u200b\u8fd9\u91cc\u200b\u5b58\u200b\u7684\u200b\u662f\u200b\u6211\u200b\u7684\u200b\u7b14\u8bb0\u200b\uff0c\u200b\u5b83\u4eec\u200b\u662f\u200b\u4e3a\u4e86\u200b\u5728\u200b\u9700\u8981\u200b\u7684\u200b\u65f6\u5019\u200b\u80fd\u591f\u200b\u65b9\u4fbf\u200b\u7684\u200b\u88ab\u200b\u67e5\u627e\u200b\u800c\u200b\u64b0\u5199\u200b\u7684\u200b\uff0c\u200b\u8bf7\u52ff\u200b\u76f4\u63a5\u200b\u5b66\u4e60\u200b
"},{"location":"Note/Missing%20Semester/Data/","title":"Data wrangling","text":"\u200b\u7ea6\u200b 911 \u200b\u4e2a\u200b\u5b57\u200b 2 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
\u200b\u672c\u200b\u8282\u200b\u5217\u4e3e\u200b\u4e00\u4e9b\u200b\u547d\u4ee4\u884c\u200b\u5e38\u7528\u200b\u7684\u200b\u6570\u636e\u5904\u7406\u200b\u5de5\u5177\u200b
"},{"location":"Note/Missing%20Semester/Data/#sed","title":"Sed","text":"Sed \u200b\u662f\u200b Stream editor \u200b\u6d41\u200b\u7f16\u8f91\u5668\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u63a5\u53d7\u200b\u7ba1\u9053\u200b\u8f93\u5165\u200b\uff0c\u200b\u5bf9\u200b\u6bcf\u200b\u4e00\u884c\u200b\u8fdb\u884c\u200b\u5904\u7406\u200b\uff0c\u200b\u7136\u540e\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b.
sed [OPTION] 'edit-command' [input-file]`\n
\u200b\u9009\u9879\u200b\u662f\u200b\u4e00\u4e9b\u200b\u7528\u4e8e\u200b\u63a7\u5236\u200b sed \u200b\u547d\u4ee4\u200b\u884c\u4e3a\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5e38\u89c1\u200b\u7684\u200b\u6709\u200b\uff1a
-n
\u200b\u4e0d\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b-e
\u200b\u4ee5\u540e\u200b\u7684\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b-f
\u200b\u4ee5\u540e\u200b\u7684\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b-i
\u200b\u76f4\u63a5\u200b\u4fee\u6539\u200b\u6587\u4ef6\u200b-r
\u200b\u4f7f\u7528\u200b\u6269\u5c55\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b-E
\u200b\u540c\u200b\u4e0a\u200b-r
\u200b\u4f7f\u7528\u200b\u57fa\u7840\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b-h
\u200b\u4e0d\u200b\u6253\u5370\u6587\u4ef6\u200b\u540d\u200bsed
\u200b\u7684\u200b\u7f16\u8f91\u200b\u547d\u4ee4\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u6765\u200b\u6307\u5b9a\u200b\u5339\u914d\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u5e76\u200b\u901a\u8fc7\u200b\u66ff\u6362\u200b\u3001\u200b\u5220\u9664\u200b\u3001\u200b\u63d2\u5165\u200b\u7b49\u200b\u547d\u4ee4\u200b\u6765\u200b\u4fee\u6539\u200b\u6587\u672c\u200b.\u200b\u4e00\u4e9b\u200b\u5e38\u89c1\u200b\u7684\u200b sed \u200b\u7f16\u8f91\u200b\u547d\u4ee4\u200b\u5305\u62ec\u200b\uff1a
.
\u200b\u4ee3\u8868\u200b\u9664\u4e86\u200b\u6362\u884c\u200b\u4efb\u4f55\u200b\u7684\u200b\u5355\u200b\u5b57\u7b26\u200b*
\u200b\u524d\u200b\u4e00\u4e2a\u200b\u91cd\u590d\u200b 0-\u200b\u65e0\u9650\u200b\u6b21\u200b+
\u200b\u524d\u200b\u4e00\u4e2a\u200b\u91cd\u590d\u200b 1-\u200b\u65e0\u9650\u200b\u6b21\u200b[abc]
abc \u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b(RX1|RX2)
\u200b\u8868\u8fbe\u5f0f\u200b\u4e00\u200b\u6216\u8005\u200b\u4e8c\u200b^
\u200b\u884c\u9996\u200b$
\u200b\u884c\u5c3e\u200b()
\u200b\u6355\u83b7\u200b\uff0c\u200b\u4f4d\u4e8e\u200b\u8865\u8d27\u200b\u5185\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u53ef\u200b\u5728\u200b\u88ab\u200b\u66ff\u4ee3\u200b\u90e8\u5206\u200b\u7528\u200b\u30011 \\2 \\3 \u200b\u5f15\u7528\u200bawk
\u200b\u662f\u200b\u4e00\u79cd\u200b\u5f3a\u5927\u200b\u7684\u200b\u6587\u672c\u5904\u7406\u200b\u5de5\u5177\u200b\uff0c\u200b\u7528\u4e8e\u200b\u4ece\u200b\u7ed3\u6784\u5316\u200b\u6587\u672c\u200b\u6570\u636e\u200b\u4e2d\u200b\u63d0\u53d6\u200b\u548c\u200b\u64cd\u4f5c\u200b\u4fe1\u606f\u200b.\u200b\u5b83\u200b\u53ef\u4ee5\u200b\u9010\u884c\u200b\u8bfb\u53d6\u200b\u8f93\u5165\u200b\u6587\u4ef6\u200b\u6216\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b\u7684\u200b\u6587\u672c\u200b\uff0c\u200b\u6839\u636e\u200b\u6307\u5b9a\u200b\u7684\u200b\u6a21\u5f0f\u200b\u548c\u200b\u52a8\u4f5c\u200b\u8fdb\u884c\u200b\u5339\u914d\u200b\u3001\u200b\u5904\u7406\u200b\u548c\u200b\u8f93\u51fa\u200b.
awk
\u200b\u7684\u200b\u57fa\u672c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a
awk 'pattern { action }' file\n
\u200b\u5176\u4e2d\u200b\uff0cpattern
\u200b\u662f\u200b\u7528\u4e8e\u200b\u5339\u914d\u200b\u6587\u672c\u200b\u7684\u200b\u6a21\u5f0f\u200b\uff0caction
\u200b\u662f\u200b\u5728\u200b\u5339\u914d\u200b\u5230\u200b\u7684\u200b\u6587\u672c\u200b\u4e0a\u200b\u6267\u884c\u200b\u7684\u200b\u64cd\u4f5c\u200b\uff0cfile
\u200b\u662f\u200b\u5f85\u5904\u7406\u200b\u7684\u200b\u8f93\u5165\u200b\u6587\u4ef6\u200b.
awk
\u200b\u7684\u200b\u5de5\u4f5c\u200b\u539f\u7406\u200b\u662f\u200b\u9010\u884c\u200b\u8bfb\u53d6\u200b\u8f93\u5165\u200b\u6587\u672c\u200b\uff0c\u200b\u5e76\u200b\u6839\u636e\u200b\u6307\u5b9a\u200b\u7684\u200b\u6a21\u5f0f\u200b\u8fdb\u884c\u200b\u5339\u914d\u200b.\u200b\u5f53\u200b\u67d0\u884c\u200b\u5339\u914d\u200b\u5230\u200b\u6307\u5b9a\u200b\u6a21\u5f0f\u200b\u65f6\u200b\uff0c\u200b\u6267\u884c\u200b\u76f8\u5e94\u200b\u7684\u200b\u52a8\u4f5c\u200b.\u200b\u52a8\u4f5c\u200b\u53ef\u4ee5\u200b\u662f\u200b\u6253\u5370\u200b\u884c\u200b\u3001\u200b\u8ba1\u7b97\u200b\u3001\u200b\u8d4b\u503c\u200b\u53d8\u91cf\u200b\u3001\u200b\u8fdb\u884c\u200b\u6761\u4ef6\u200b\u5224\u65ad\u200b\u7b49\u200b.
awk
\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e30\u5bcc\u200b\u7684\u200b\u5185\u7f6e\u200b\u529f\u80fd\u200b\u548c\u200b\u53d8\u91cf\u200b\uff0c\u200b\u4f7f\u200b\u5176\u200b\u80fd\u591f\u200b\u5bf9\u200b\u6587\u672c\u200b\u8fdb\u884c\u200b\u7075\u6d3b\u5904\u7406\u200b.\u200b\u4e00\u4e9b\u200b\u5e38\u7528\u200b\u7684\u200b awk
\u200b\u529f\u80fd\u200b\u5305\u62ec\u200b\uff1a
awk
\u200b\u9ed8\u8ba4\u200b\u5c06\u200b\u6bcf\u200b\u4e00\u884c\u200b\u4ee5\u200b\u7a7a\u683c\u200b\u6216\u200b\u5236\u8868\u7b26\u200b\u4e3a\u200b\u5206\u9694\u7b26\u200b\u5212\u5206\u200b\u4e3a\u200b\u591a\u4e2a\u200b\u5b57\u200b\u6bb5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b $n
\u200b\u7684\u200b\u5f62\u5f0f\u200b\u5f15\u7528\u200b\u5b57\u200b\u6bb5\u200b\uff08\u200b\u4f8b\u5982\u200b $1
\u3001$2
\uff09.awk
\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u8bb8\u591a\u200b\u5185\u7f6e\u200b\u53d8\u91cf\u200b\uff0c\u200b\u5982\u200b NR
\uff08\u200b\u5f53\u524d\u200b\u884c\u200b\u6570\u200b\uff09\u3001NF
\uff08\u200b\u5f53\u524d\u200b\u884c\u200b\u7684\u200b\u5b57\u200b\u6bb5\u6570\u200b\uff09\u200b\u548c\u200b $0
\uff08\u200b\u6574\u884c\u200b\u6587\u672c\u200b\uff09\u200b\u7b49\u200b.awk
\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e30\u5bcc\u200b\u7684\u200b\u5185\u7f6e\u200b\u51fd\u6570\u200b\uff0c\u200b\u5982\u200b\u5b57\u7b26\u4e32\u200b\u5904\u7406\u51fd\u6570\u200b\u3001\u200b\u6570\u5b66\u200b\u51fd\u6570\u200b\u3001\u200b\u65e5\u671f\u200b\u51fd\u6570\u200b\u7b49\u200b.\u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u4e2a\u200b\u7b80\u5355\u200b\u7684\u200b\u793a\u4f8b\u200b\uff0c\u200b\u5c55\u793a\u200b\u4e86\u200b\u5982\u4f55\u200b\u4f7f\u7528\u200b awk
\u200b\u63d0\u53d6\u200b\u6587\u4ef6\u200b\u4e2d\u4ee5\u200b\u5192\u53f7\u200b\u5206\u9694\u200b\u7684\u200b\u7b2c\u4e00\u5217\u200b\u548c\u200b\u7b2c\u4e8c\u5217\u200b\uff0c\u200b\u5e76\u200b\u8f93\u51fa\u200b\u5b83\u4eec\u200b\uff1a
awk -F':' '{ print $1\uff0c $2 }' file.txt\n
awk
\u200b\u662f\u200b\u4e00\u79cd\u200b\u975e\u5e38\u200b\u5b9e\u7528\u200b\u7684\u200b\u6587\u672c\u5904\u7406\u200b\u5de5\u5177\u200b\uff0c\u200b\u9002\u7528\u200b\u4e8e\u200b\u5904\u7406\u200b\u7ed3\u6784\u5316\u200b\u7684\u200b\u6587\u672c\u200b\u6570\u636e\u200b\uff0c\u200b\u5982\u200b\u65e5\u5fd7\u200b\u6587\u4ef6\u200b\u3001CSV \u200b\u6587\u4ef6\u200b\u3001\u200b\u62a5\u544a\u200b\u7b49\u200b.\u200b\u5b83\u200b\u5177\u6709\u200b\u5f3a\u5927\u200b\u7684\u200b\u529f\u80fd\u200b\u548c\u200b\u7075\u6d3b\u6027\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5927\u5927\u7b80\u5316\u200b\u6587\u672c\u5904\u7406\u200b\u4efb\u52a1\u200b\uff0c\u200b\u63d0\u9ad8\u200b\u6570\u636e\u5206\u6790\u200b\u548c\u200b\u8f6c\u6362\u200b\u7684\u200b\u6548\u7387\u200b.
\u200b\u8f85\u52a9\u200b\u4f7f\u7528\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b
\u200b\u7ea6\u200b 897 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
\u200b\u4e00\u4e2a\u200b\u81ea\u200b\u5e95\u5411\u4e0a\u200b\u7684\u200b\u5b66\u4e60\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u6700\u540e\u200b\u9644\u4e0a\u200b\u4e86\u200b\u5e38\u7528\u200b\u6307\u4ee4\u200b\uff0c\u200b\u6682\u65e0\u200b\u64cd\u4f5c\u200b\u6f14\u793a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b\u539f\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b
"},{"location":"Note/Missing%20Semester/Git/#terminology","title":"Terminology","text":"\u200b\u5b9a\u4e49\u200b
blob
\u200b\u4e00\u4e2a\u200b\u6587\u4ef6\u200b\u88ab\u79f0\u4f5c\u200bblob. tree
\u200b\u4e00\u4e2a\u200b\u6587\u4ef6\u5939\u200b\u88ab\u79f0\u4f5c\u200btree. commit
\u200b\u6574\u4e2a\u200b\u4ed3\u5e93\u200b\u7684\u200b\u5feb\u7167\u200b\u88ab\u79f0\u4f5c\u200bcommit. history
commit \u200b\u7684\u200b\u6709\u200b\u5411\u200b\u65e0\u200b\u73af\u56fe\u200b\u6784\u6210\u200bhistory. object
\u200b\u4e00\u4e2a\u200bobject\u200b\u662f\u200b blob\u3001tree \u200b\u6216\u8005\u200b commit\uff0c\u200b\u6bcf\u4e2a\u200b\u5bf9\u8c61\u200b\u90fd\u200b\u6709\u200b\u81ea\u5df1\u200b\u5bf9\u5e94\u200b\u7684\u200b hash. reference
\u200b\u4e00\u4e2a\u200breference\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5bf9\u8c61\u200b\u7684\u200b\u522b\u540d\u200b\uff0c\u200b\u9664\u4e86\u200b\u522b\u540d\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b hash \u200b\u6765\u200b\u5f15\u7528\u200b\u4e00\u4e2a\u200b\u5bf9\u8c61\u200b. main/master
main/master \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u7684\u200b reference \u200b\u603b\u662f\u200b\u6307\u5411\u200b\u5f00\u53d1\u200b\u4e2d\u200b\u7684\u200b\u6700\u65b0\u200b\u7a33\u5b9a\u200b\u7248\u672c\u200b. HEAD
HEAD \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u5f15\u7528\u200b\u6307\u5411\u200b\u6211\u4eec\u200b\u76ee\u524d\u200b\u5728\u200b\u5386\u53f2\u200b\u4e2d\u200b\u7684\u200b\u4f4d\u7f6e\u200b. Git repository
\u200b\u4e00\u4e2a\u200b Git repository* \u200b\u662f\u200b object \u200b\u548c\u200b reference \u200b\u7684\u200b\u96c6\u5408\u200b. Staging area
Staging area \u200b\u662f\u200b\u4e00\u79cd\u200b\u673a\u5236\u200b\u6765\u200b\u8ba9\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u54ea\u4e9b\u200b\u5bf9\u8c61\u200b\u8981\u200b\u88ab\u200b commit\uff0c \u200b\u800c\u200b\u975e\u200b\u6574\u4e2a\u200b\u4ed3\u5e93\u200b."},{"location":"Note/Missing%20Semester/Git/#git-data-model","title":"Git Data Model","text":"\u200b\u9996\u5148\u200b\u5b9a\u4e49\u6570\u636e\u200b\u5bf9\u8c61\u200b
// a file is a bunch of bytes\ntype blob = array<byte>\n\n// a directory contains named files and directories\ntype tree = map<string\uff0c tree | blob>\n\n// a commit has parents\uff0c metadata\uff0c and the top-level tree\ntype commit = struct {\n parents: array<commit>\n author: string\n message: string\n snapshot: tree\n}\n\n//An object is a blob\uff0ctree\uff0cor commit\ntype object = blob | tree | commit\n
\u200b\u5728\u200b Git \u200b\u5b58\u50a8\u200b\u7ed3\u6784\u200b\u4e2d\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u5bf9\u8c61\u200b\u5bf9\u5e94\u200b\u4e00\u4e2a\u200b hash
objects = map<string\uff0c object>\n\ndef store(object):\n id = sha1(object)\n objects[id] = object\n\ndef load(id):\n return objects[id]\n
"},{"location":"Note/Missing%20Semester/Git/#commands","title":"Commands","text":"Basic
git help <command>
: get help for a git commandgit init
: creates a new git repo\uff0c with data stored in the .git directorygit status
: tells you what\u2019s going ongit add <filename>
: adds files to staging areagit commit
: creates a new commitgit log
: shows a flattened log of historygit log --all --graph --decorate
: visualizes history as a DAGgit diff <filename>
: show the differences between current file and HEAD version filegit diff <revision> <filename>
: shows differences between current file and specified snapshotgit diff <reversin> <reversion> <filename>
shows the differences between two specified version of filegit checkout <revision>
: updates HEAD and current branchgit checkout <filename>
: erase all the changes we made after the HEAD version for this filegit cat-file -p <hash>
: The instruction to catch a tree or blobBranching and Merging
git branch
: shows branchesgit branch <name>
: creates a branchgit checkout -b <name>
: creates a branch and switches to itgit branch <name>
; git checkout <name>
git merge <revision>
: merges into current branch;wait for latter adjustments when conflictions occur(But the file has been changed already)git merge --abort
: erase the changes git try to make when an merge conflict occursgit merge --continue
: continue to merge after you fix the merge conflictiongit mergetool
: use a fancy tool to help resolve merge conflictsgit rebase
: rebase set of patches onto a new baseMore on rebase
Commonly used to \"move\" an entire branch to another base\uff0c creating copies of the commits in the new location.
Rebase the current branch on top of another specified branch: git rebase new_base_branch
Start an interactive rebase\uff0c which allows the commits to be reordered\uff0c omitted\uff0c combined or modified: git rebase -i target_base_branch_or_commit_hash
Continue a rebase that was interrupted by a merge failure\uff0c after editing conflicting files: git rebase --continue
Continue a rebase that was paused due to merge conflicts\uff0c by skipping the conflicted commit: git rebase --skip
Abort a rebase in progress (e.g. if it is interrupted by a merge conflict): git rebase --abort
Move part of the current branch onto a new base\uff0c providing the old base to start from: git rebase --onto new_base old_base
Reapply the last 5 commits in-place\uff0c stopping to allow them to be reordered\uff0c omitted\uff0c combined or modified: git rebase -i HEAD~5
Auto-resolve any conflicts by favoring the working branch version (theirs
keyword has reversed meaning in this case): git rebase -X theirs branch_name
Remotes
git remote
: list remotesgit remote add <name> <url>
: add a remote ;name is origin by convention if we have only one remote; url can be a web address or a local directorygit push <remote> <local branch>:<remote branch>
: send objects to remote\uff0c and update remote referencegit branch --set-upstream-to=<remote>/<remote branch>
: set up correspondence between local and remote branchgit fetch
: retrieve objects/references from a remote; be aware of the changes pushed here from the remotegit pull
: same as git fetch; git mergegit clone
: download repository from remoteUndo
git commit --amend
: edit a commit\u2019s contents/messagegit reset HEAD <file>
: unstage a filegit checkout <file>
: discard changesAdvanced Git
git config
: Git is highly customizablegit clone --depth=1
: shallow clone\uff0c without entire version historygit add -p
: interactive staginggit rebase -i
: interactive rebasinggit blame
: show who last edited which linegit stash
: temporarily remove modifications to working directorygit bisect
: binary search history (e.g. for regressions).gitignore
: specify intentionally untracked files to ignore\u200b\u7ea6\u200b 2838 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 9 \u200b\u5206\u949f\u200b
\u200b\u4e00\u4e2a\u200b\u79bb\u6563\u200b\u7684\u200b\u77e5\u8bc6\u200b\u5217\u8868\u200b
"},{"location":"Note/Missing%20Semester/Shell/#_1","title":"\u57fa\u7840\u77e5\u8bc6","text":""},{"location":"Note/Missing%20Semester/Shell/#_2","title":"\u5185\u7f6e\u200b\u53d8\u91cf\u200b/\u200b\u7279\u6b8a\u200b\u53d8\u91cf","text":"$0$1\uff0c $2\uff0c $3\uff0c ...$@$#$?$$$USER$HOME$PWD$HOSTNAME$RANDOM$IFS$PATH\u200b\u5f53\u524d\u200b\u811a\u672c\u200b\u7684\u200b\u540d\u79f0\u200b.\u200b\u5bf9\u4e8e\u200b\u88ab\u200b\u6267\u884c\u200b\u7684\u200b\u811a\u672c\u200b\uff0c\u200b\u5b83\u200b\u662f\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b\u7684\u200b\u8def\u5f84\u200b\u548c\u200b\u540d\u79f0\u200b.
\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u53d8\u91cf\u200b\uff0c\u200b\u8868\u793a\u200b\u811a\u672c\u200b\u6216\u200b\u51fd\u6570\u200b\u7684\u200b\u53c2\u6570\u200b.\\(1 \u200b\u8868\u793a\u200b\u7b2c\u4e00\u4e2a\u200b\u53c2\u6570\u200b\uff0c\\)2 \u200b\u8868\u793a\u200b\u7b2c\u4e8c\u4e2a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4f9d\u6b64\u7c7b\u63a8\u200b.
\u200b\u8868\u793a\u200b\u6240\u6709\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u7684\u200b\u5217\u8868\u200b.\u200b\u5728\u200b\u811a\u672c\u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\"$@\"\u200b\u5c06\u200b\u6240\u6709\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u53c2\u6570\u4f20\u9012\u200b\u7ed9\u200b\u5176\u4ed6\u200b\u547d\u4ee4\u200b\u6216\u200b\u51fd\u6570\u200b.
\u200b\u8868\u793a\u200b\u4f4d\u7f6e\u200b\u53c2\u6570\u200b\u7684\u200b\u6570\u91cf\u200b.
\u200b\u4e0a\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u9000\u51fa\u200b\u72b6\u6001\u200b.\u200b\u5982\u679c\u200b\u547d\u4ee4\u200b\u6210\u529f\u200b\u6267\u884c\u200b\uff0c\u200b\u5219\u200b\u5176\u503c\u200b\u4e3a\u200b 0\uff0c\u200b\u5426\u5219\u200b\u4e3a\u200b\u975e\u96f6\u503c\u200b.
\u200b\u5f53\u524d\u200b\u811a\u672c\u200b\u7684\u200b\u8fdb\u7a0b\u200b ID\uff08PID\uff09.
\u200b\u5f53\u524d\u200b\u7528\u6237\u200b\u7684\u200b\u7528\u6237\u540d\u200b.
\u200b\u5f53\u524d\u200b\u7528\u6237\u200b\u7684\u200b\u4e3b\u76ee\u5f55\u200b\u8def\u5f84\u200b.
\u200b\u5f53\u524d\u5de5\u4f5c\u200b\u76ee\u5f55\u200b\u7684\u200b\u8def\u5f84\u200b.
\u200b\u5f53\u524d\u200b\u4e3b\u673a\u200b\u7684\u200b\u4e3b\u673a\u540d\u200b.
\u200b\u4e00\u4e2a\u200b\u968f\u673a\u200b\u6574\u6570\u200b.
\u200b\u5185\u90e8\u200b\u5b57\u200b\u6bb5\u200b\u5206\u9694\u7b26\u200b\uff0c\u200b\u7528\u4e8e\u200b\u6307\u5b9a\u200b\u7531\u200b\u54ea\u4e2a\u200b\u5b57\u7b26\u200b\u5206\u5272\u200b\u8f93\u5165\u200b\u6570\u636e\u200b\u7684\u200b\u5b57\u200b\u6bb5\u200b.\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0c\u200b\u5b83\u200b\u5305\u542b\u200b\u7a7a\u683c\u200b\u3001\u200b\u5236\u8868\u7b26\u200b\u548c\u200b\u6362\u884c\u7b26\u200b.
\u200b\u4e00\u4e2a\u200b\u7531\u200b\u5192\u53f7\u200b\u5206\u9694\u200b\u7684\u200b\u76ee\u5f55\u200b\u5217\u8868\u200b\uff08\u200b\u73af\u5883\u53d8\u91cf\u200b\uff09\uff0cshell \u200b\u5728\u200b\u5176\u4e2d\u200b\u67e5\u627e\u200b\u547d\u4ee4\u200b.
"},{"location":"Note/Missing%20Semester/Shell/#_3","title":"\u91cd\u5b9a\u5411","text":">>><2>2>>&>\u200b\u6216\u200b&>>\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b.\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u521b\u5efa\u200b\u8be5\u200b\u6587\u4ef6\u200b\uff1b\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u5df2\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u8986\u76d6\u6587\u4ef6\u200b\u5185\u5bb9\u200b.
\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u8ffd\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u7684\u200b\u672b\u5c3e\u200b.\u200b\u5982\u679c\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff0c\u200b\u5219\u200b\u4f1a\u200b\u521b\u5efa\u200b\u8be5\u200b\u6587\u4ef6\u200b.
\u200b\u5c06\u200b\u6587\u4ef6\u200b\u7684\u200b\u5185\u5bb9\u200b\u4f5c\u4e3a\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b.
\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b.
\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u8ffd\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u7684\u200b\u672b\u5c3e\u200b.
\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u548c\u200b\u6807\u51c6\u200b\u9519\u8bef\u200b\u8f93\u51fa\u200b\u5408\u5e76\u200b\u91cd\u5b9a\u5411\u200b\u5230\u200b\u6587\u4ef6\u200b.
"},{"location":"Note/Missing%20Semester/Shell/#_4","title":"\u6587\u4ef6\u200b\u6743\u9650","text":"\u6587\u4ef6\u7c7b\u578b\u200b\u6743\u9650\u200b\u6743\u9650\u200b\u5b57\u7b26\u4e32\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u6743\u9650\u200b\u4fee\u6539\u200b-\uff1a\u200b\u666e\u901a\u200b\u6587\u4ef6\u200b d\uff1a\u200b\u76ee\u5f55\u200b l\uff1a\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b\uff08\u200b\u8f6f\u200b\u94fe\u63a5\u200b\uff09 c\uff1a\u200b\u5b57\u7b26\u200b\u8bbe\u5907\u200b\u6587\u4ef6\u200b b\uff1a\u200b\u5757\u200b\u8bbe\u5907\u200b\u6587\u4ef6\u200b s\uff1a\u200b\u5957\u200b\u63a5\u5b57\u200b\uff08socket\uff09\u200b\u6587\u4ef6\u200b p\uff1a\u200b\u547d\u540d\u200b\u7ba1\u9053\u200b\uff08FIFO\uff09\u200b\u6587\u4ef6\u200b
r\uff1a\u200b\u8bfb\u53d6\u200b\u6743\u9650\u200b w\uff1a\u200b\u5199\u5165\u200b\u6743\u9650\u200b x\uff1a\u200b\u6267\u884c\u200b\u6743\u9650\u200b
\u200b\u7531\u200b 10 \u200b\u4e2a\u5b57\u7b26\u200b\u7ec4\u6210\u200b\uff0c\u200b\u7b2c\u4e00\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u7c7b\u578b\u200b\uff0c\u200b\u540e\u9762\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u7684\u200b\u6743\u9650\u200b\uff0c\u200b\u518d\u200b\u540e\u9762\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u200b\u7684\u200b\u6743\u9650\u200b\uff0c\u200b\u6700\u540e\u200b\u4e09\u4e2a\u200b\u5b57\u7b26\u200b\u8868\u793a\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u7684\u200b\u6743\u9650\u200b. \u200b\u4f8b\u5982\u200b\uff0c-rw-r--r--\u200b\u8868\u793a\u200b\u666e\u901a\u200b\u6587\u4ef6\u200b\uff0c\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u5177\u6709\u200b\u8bfb\u53d6\u200b\u548c\u200b\u5199\u5165\u200b\u6743\u9650\u200b\uff0c\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u548c\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u5177\u6709\u200b\u8bfb\u53d6\u200b\u6743\u9650\u200b.
\u200b\u7531\u200b\u4e09\u4e2a\u200b\u516b\u8fdb\u5236\u200b\u6570\u5b57\u200b\u7ec4\u6210\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u6570\u5b57\u200b\u8868\u793a\u200b\u6587\u4ef6\u200b\u6240\u6709\u8005\u200b\u3001\u200b\u6587\u4ef6\u200b\u6240\u5c5e\u200b\u7ec4\u548c\u200b\u5176\u4ed6\u200b\u7528\u6237\u200b\u7684\u200b\u6743\u9650\u200b. \u200b\u6bcf\u4e2a\u200b\u6570\u5b57\u200b\u7684\u200b\u8ba1\u7b97\u65b9\u6cd5\u200b\u662f\u200b\u5c06\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4e09\u4e2a\u200b\u6743\u9650\u200b\u8f6c\u6362\u200b\u4e3a\u200b\u516b\u8fdb\u5236\u200b\u6570\u200b\u62fc\u63a5\u200b\u8d77\u6765\u200b. \u200b\u4f8b\u5982\u200b\uff0c-rw-r--r--\u200b\u5bf9\u5e94\u200b\u7684\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u4e3a\u200b 644\uff0c-rwxr-xr-x \u200b\u5bf9\u5e94\u200b\u7684\u200b\u6743\u9650\u200b\u6570\u5b57\u200b\u4e3a\u200b 755.
chmod
\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6743\u9650\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u6570\u5b57\u200b\u8868\u793a\u6cd5\u200b\uff08\u200b\u5982\u200b chmod 755 file.txt\uff09\u200b\u6216\u200b\u7b26\u53f7\u200b\u8868\u793a\u6cd5\u200b\uff08\u200b\u5982\u200b chmod u+x file.txt\uff09\u200b\u6765\u200b\u4fee\u6539\u200b\u6743\u9650\u200b. chown
\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6240\u6709\u8005\u200b. chgrp
\uff1a\u200b\u7528\u4e8e\u200b\u66f4\u6539\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u7684\u200b\u6240\u5c5e\u200b\u7ec4\u200b. umask
\uff1a\u200b\u8bbe\u7f6e\u200b\u65b0\u521b\u5efa\u200b\u6587\u4ef6\u200b\u548c\u200b\u76ee\u5f55\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u6743\u9650\u200b\u63a9\u7801\u200b.
tee
touch
cat
cp
mv
rm
ln
mkdir
rmdir
find
grep
alias command | tee [OPTION]... [FILE]...\n
tee
\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5e38\u7528\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5de5\u5177\u200b\uff0c\u200b\u7528\u4e8e\u200b\u4ece\u200b\u6807\u51c6\u200b\u8f93\u5165\u200b\u8bfb\u53d6\u6570\u636e\u200b\u5e76\u200b\u5c06\u200b\u5176\u200b\u540c\u65f6\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b\u548c\u200b\u6307\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e2d\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4ee5\u200b\u8ffd\u52a0\u200b\u6a21\u5f0f\u200b\u5c06\u200b\u8f93\u51fa\u200b\u9644\u52a0\u200b\u5230\u200b\u6587\u4ef6\u200b\u4e2d\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u8986\u76d6\u6587\u4ef6\u200b\u5185\u5bb9\u200b. -i\uff1a\u200b\u5ffd\u7565\u200b\u4e2d\u65ad\u200b\u4fe1\u53f7\u200b\uff08SIGINT\uff09\uff0c\u200b\u5373\u4f7f\u200b\u6536\u5230\u200b\u4e2d\u65ad\u200b\u4fe1\u53f7\u200b\u4e5f\u200b\u7ee7\u7eed\u200b\u8fd0\u884c\u200b. -p\uff1a\u200b\u4f7f\u7528\u200b\u539f\u59cb\u6570\u636e\u200b\u5757\u200b\u5927\u5c0f\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u6309\u884c\u200b\u7f13\u51b2\u200b\u8f93\u51fa\u200b. -u\uff1a\u200b\u7981\u7528\u200b\u8f93\u51fa\u200b\u7f13\u51b2\u533a\u200b\uff0c\u200b\u7acb\u5373\u200b\u5c06\u200b\u6570\u636e\u200b\u5199\u5165\u200b\u6587\u4ef6\u200b. touch [OPTION]... FILE...\n
\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u7a7a\u200b\u6587\u4ef6\u200b\uff0c\u200b\u6216\u8005\u200b\u66f4\u65b0\u200b\u5df2\u200b\u5b58\u5728\u200b\u6587\u4ef6\u200b\u7684\u200b\u6700\u540e\u200b\u66f4\u6539\u200b\u65f6\u95f4\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4ec5\u200b\u66f4\u6539\u200b\u8bbf\u95ee\u200b\u65f6\u95f4\u200b. -c\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\u65f6\u624d\u200b\u521b\u5efa\u200b\u6587\u4ef6\u200b. -d\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b. -m\uff1a\u200b\u4ec5\u200b\u66f4\u6539\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b. -r\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b. -t\uff1a\u200b\u4f7f\u7528\u200b\u6307\u5b9a\u200b\u7684\u200b\u65e5\u671f\u200b\u65f6\u95f4\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u5f53\u524d\u200b\u65f6\u95f4\u200b. cat [OPTION]... [FILE]...\n
\u200b\u5c06\u200b\u6587\u4ef6\u200b\u7684\u200b\u5185\u5bb9\u200b\u8f93\u51fa\u200b\u5230\u200b\u6807\u51c6\u200b\u8f93\u51fa\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -n\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b. -b\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b\uff0c\u200b\u4f46\u200b\u4e0d\u200b\u5bf9\u200b\u7a7a\u884c\u200b\u7f16\u53f7\u200b. -s\uff1a\u200b\u5c06\u200b\u8fde\u7eed\u200b\u7684\u200b\u7a7a\u884c\u200b\u538b\u7f29\u6210\u200b\u4e00\u4e2a\u200b\u7a7a\u884c\u200b. cp [OPTION]... SOURCE... DIRECTORY\ncp [OPTION]... SOURCE... DEST\ncp [OPTION]... -t DIRECTORY SOURCE...\n
\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u590d\u5236\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\uff0c\u200b\u6216\u8005\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u590d\u5236\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e2d\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -a\uff1a\u200b\u4fdd\u7559\u200b\u6587\u4ef6\u200b\u7684\u200b\u6240\u6709\u200b\u5c5e\u6027\u200b\uff0c\u200b\u9012\u5f52\u200b\u590d\u5236\u200b\u76ee\u5f55\u200b. -i\uff1a\u200b\u5728\u200b\u8986\u76d6\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b. -r\uff1a\u200b\u9012\u5f52\u200b\u590d\u5236\u200b\u76ee\u5f55\u200b. -u\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6e90\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u6bd4\u200b\u76ee\u6807\u200b\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u8f83\u65b0\u65f6\u200b\u624d\u200b\u590d\u5236\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u590d\u5236\u200b\u7684\u200b\u8fdb\u5ea6\u200b. mv [OPTION]... SOURCE... DIRECTORY\nmv [OPTION]... SOURCE... DEST\n
\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u79fb\u52a8\u200b\u5230\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\uff0c\u200b\u6216\u8005\u200b\u5c06\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b\u91cd\u547d\u540d\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -i\uff1a\u200b\u5728\u200b\u8986\u76d6\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b. -u\uff1a\u200b\u4ec5\u200b\u5728\u200b\u6e90\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u6bd4\u200b\u76ee\u6807\u200b\u6587\u4ef6\u200b\u7684\u200b\u4fee\u6539\u200b\u65f6\u95f4\u200b\u8f83\u65b0\u65f6\u200b\u624d\u200b\u79fb\u52a8\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u79fb\u52a8\u200b\u7684\u200b\u8fdb\u5ea6\u200b. rm [OPTION]... FILE...\n
\u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\u6216\u200b\u76ee\u5f55\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -f\uff1a\u200b\u5f3a\u5236\u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\uff0c\u200b\u4e0d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b. -i\uff1a\u200b\u5728\u200b\u5220\u9664\u200b\u6587\u4ef6\u200b\u4e4b\u524d\u200b\u63d0\u793a\u200b\u7528\u6237\u200b\u786e\u8ba4\u200b. -r\uff1a\u200b\u9012\u5f52\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u5220\u9664\u200b\u7684\u200b\u8fdb\u5ea6\u200b. ln [OPTION]... [-T] TARGET LINK_NAME\nln [OPTION]... TARGET\nln [OPTION]... TARGET... DIRECTORY\nln [OPTION]... -t DIRECTORY TARGET...\n
\u200b\u521b\u5efa\u200b\u786c\u200b\u94fe\u63a5\u200b\u6216\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -s\uff1a\u200b\u521b\u5efa\u200b\u7b26\u53f7\u200b\u94fe\u63a5\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u521b\u5efa\u200b\u94fe\u63a5\u200b\u7684\u200b\u8fdb\u5ea6\u200b. mkdir [OPTION]... DIRECTORY...\n
\u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -m\uff1a\u200b\u8bbe\u7f6e\u200b\u76ee\u5f55\u200b\u7684\u200b\u6743\u9650\u200b. -p\uff1a\u200b\u9012\u5f52\u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u521b\u5efa\u200b\u76ee\u5f55\u200b\u7684\u200b\u8fdb\u5ea6\u200b. rmdir [OPTION]... DIRECTORY...\n
\u200b\u5220\u9664\u200b\u7a7a\u76ee\u5f55\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -p\uff1a\u200b\u9012\u5f52\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b. -v\uff1a\u200b\u663e\u793a\u200b\u5220\u9664\u200b\u76ee\u5f55\u200b\u7684\u200b\u8fdb\u5ea6\u200b. find [OPTION]... [PATH...] [EXPRESSION]\n
\u200b\u5728\u200b\u6307\u5b9a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e2d\u200b\u67e5\u627e\u6587\u4ef6\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -name\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u540d\u200b\u67e5\u627e\u200b. -type\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u7c7b\u578b\u200b\u67e5\u627e\u200b. -size\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u5927\u5c0f\u200b\u67e5\u627e\u200b. -perm\uff1a\u200b\u6309\u7167\u200b\u6587\u4ef6\u200b\u6743\u9650\u200b\u67e5\u627e\u200b. -exec\uff1a\u200b\u5bf9\u200b\u67e5\u627e\u200b\u5230\u200b\u7684\u200b\u6587\u4ef6\u200b\u6267\u884c\u200b\u6307\u5b9a\u200b\u7684\u200b\u547d\u4ee4\u200b. grep [OPTION]... PATTERN [FILE]...\n
\u200b\u5728\u200b\u6587\u4ef6\u200b\u4e2d\u200b\u67e5\u627e\u200b\u5339\u914d\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -i\uff1a\u200b\u5ffd\u7565\u200b\u5927\u5c0f\u5199\u200b. -v\uff1a\u200b\u53cd\u5411\u200b\u5339\u914d\u200b. -n\uff1a\u200b\u8f93\u51fa\u200b\u884c\u53f7\u200b. -c\uff1a\u200b\u8f93\u51fa\u200b\u5339\u914d\u200b\u7684\u200b\u884c\u6570\u200b. -r\uff1a\u200b\u9012\u5f52\u200b\u67e5\u627e\u200b. alias [OPTION]... [NAME[=VALUE]]...\n
\u200b\u521b\u5efa\u200b\u547d\u4ee4\u200b\u522b\u540d\u200b. \u200b\u5e38\u7528\u200b\u9009\u9879\u200b\u5305\u62ec\u200b\uff1a -p\uff1a\u200b\u663e\u793a\u200b\u6240\u6709\u200b\u522b\u540d\u200b. -r\uff1a\u200b\u5220\u9664\u200b\u6307\u5b9a\u200b\u7684\u200b\u522b\u540d\u200b."},{"location":"Note/Missing%20Semester/Shell/#_6","title":"\u811a\u672c\u200b\u8bed\u6cd5","text":""},{"location":"Note/Missing%20Semester/Shell/#shebang","title":"SheBang","text":"Bash \u200b\u811a\u672c\u200b\u901a\u5e38\u200b\u4ee5\u200b shebang \u200b\u4f5c\u4e3a\u200b\u811a\u672c\u200b\u6587\u4ef6\u200b\u7684\u200b\u7b2c\u4e00\u884c\u200b\uff0c\u200b\u6307\u5b9a\u200b\u8981\u200b\u7528\u4e8e\u200b\u89e3\u91ca\u200b\u811a\u672c\u200b\u7684\u200b\u89e3\u91ca\u5668\u200b.\u200b\u5e38\u89c1\u200b\u7684\u200b shebang \u200b\u4e3a\u200b#!/bin/bash\uff0c\u200b\u8868\u793a\u200b\u4f7f\u7528\u200b Bash \u200b\u89e3\u91ca\u5668\u200b\u89e3\u91ca\u200b\u811a\u672c\u200b.
\u200b\u73af\u5883\u53d8\u91cf\u200b\u8def\u5f84\u200b
\u200b\u5982\u679c\u200b\u8981\u200b\u5728\u200b\u811a\u672c\u200b\u4e2d\u200b\u4f7f\u7528\u200b shebang\uff0c\u200b\u6700\u597d\u200b\u4f7f\u7528\u200b#!/usr/bin/env bash
\uff0c\u200b\u8fd9\u6837\u200b\u53ef\u4ee5\u200b\u907f\u514d\u200b\u4f7f\u7528\u200b\u7edd\u5bf9\u8def\u5f84\u200b\uff0c\u200b\u800c\u662f\u200b\u4f7f\u7528\u200b\u73af\u5883\u53d8\u91cf\u200b\u4e2d\u200b\u7684\u200b\u8def\u5f84\u200b.
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u53d8\u91cf\u200b\u4e0d\u200b\u9700\u8981\u200b\u58f0\u660e\u200b\uff0c\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\u5373\u53ef\u200b.\u200b\u53d8\u91cf\u540d\u200b\u548c\u200b\u7b49\u200b\u53f7\u200b\u4e4b\u95f4\u200b\u4e0d\u80fd\u200b\u6709\u200b\u7a7a\u683c\u200b\uff0c\u200b\u7b49\u200b\u53f7\u200b\u540e\u9762\u200b\u7684\u200b\u503c\u200b\u4e0d\u80fd\u200b\u4f7f\u7528\u200b\u7a7a\u683c\u200b\u5305\u56f4\u200b.\u200b\u53d8\u91cf\u540d\u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b\u5927\u5199\u5b57\u6bcd\u200b\uff0c\u200b\u4f46\u662f\u200b\u4e0d\u662f\u200b\u5fc5\u987b\u200b\u7684\u200b.
"},{"location":"Note/Missing%20Semester/Shell/#_8","title":"\u547d\u4ee4\u200b\u66ff\u6362","text":"\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7528\u4e8e\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b.\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7684\u200b\u8bed\u6cd5\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a
\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u7528\u4e8e\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u4f5c\u4e3a\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u53c2\u6570\u200b.\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u7684\u200b\u8bed\u6cd5\u200b\u4e3a\u200b<(command)
. \u200b\u53ef\u4ee5\u200b\u5c06\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u770b\u4f5c\u200b\u662f\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u7684\u200b\u7279\u6b8a\u200b\u5f62\u5f0f\u200b\uff0c\u200b\u547d\u4ee4\u200b\u66ff\u6362\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b\uff0c\u200b\u800c\u200b\u8fdb\u7a0b\u200b\u66ff\u6362\u200b\u5c06\u200b\u547d\u4ee4\u200b\u7684\u200b\u8f93\u51fa\u200b\u7ed3\u679c\u200b\u4f5c\u4e3a\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u547d\u4ee4\u200b\u7684\u200b\u53c2\u6570\u200b.
\u200b\u4f8b\u5982\u200b\uff1afiles=$(ls)
\u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u7528\u4e8e\u200b\u751f\u6210\u200b\u4e00\u4e2a\u200b\u5b57\u7b26\u4e32\u200b\u5217\u8868\u200b.\u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u7684\u200b\u8bed\u6cd5\u200b\u4e3a\u200b{string1\uff0cstring2\uff0c...}
.
\u200b\u4f8b\u5982\u200b\uff1aecho {1..10}
\u200b\u82b1\u200b\u62ec\u53f7\u200b\u6269\u5c55\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b\u7b1b\u5361\u5c14\u200b\u79ef\u200b\u8fd0\u7b97\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u4e3a\u200b{string1\uff0cstring2\uff0c...}{string1\uff0cstring2\uff0c...}
.
\u200b\u901a\u914d\u7b26\u200b\u7528\u4e8e\u200b\u5339\u914d\u200b\u6587\u4ef6\u540d\u200b.\u200b\u5e38\u89c1\u200b\u7684\u200b\u901a\u914d\u7b26\u200b\u5305\u62ec\u200b\uff1a
*
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u6570\u91cf\u200b\u7684\u200b\u4efb\u610f\u200b\u5b57\u7b26\u200b.?
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u7b26\u200b.[characters]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u5b57\u7b26\u96c6\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[!characters]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u5b57\u7b26\u96c6\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[[:class:]]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u5b57\u7b26\u200b\u7c7b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[^class]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u5b57\u7b26\u200b\u7c7b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[x-y]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u8303\u56f4\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[^x-y]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u4e0d\u200b\u5c5e\u4e8e\u200b\u6307\u5b9a\u200b\u8303\u56f4\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u200b.[:alnum:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b\u6216\u200b\u6570\u5b57\u200b.[:alpha:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b.[:blank:]
\uff1a\u200b\u5339\u914d\u200b\u7a7a\u683c\u200b\u6216\u200b\u5236\u8868\u7b26\u200b.[:digit:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u6570\u5b57\u200b.[:lower:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5c0f\u5199\u5b57\u6bcd\u200b.[:upper:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5927\u5199\u5b57\u6bcd\u200b.[:space:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u7a7a\u767d\u200b\u5b57\u7b26\u200b.[:punct:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u6807\u70b9\u7b26\u53f7\u200b.[:word:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5b57\u6bcd\u200b\u3001\u200b\u6570\u5b57\u200b\u6216\u200b\u4e0b\u5212\u7ebf\u200b.[:xdigit:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u5341\u516d\u8fdb\u5236\u200b\u6570\u5b57\u200b.[:graph:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u56fe\u5f62\u200b\u5b57\u7b26\u200b.[:print:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u53ef\u200b\u6253\u5370\u200b\u5b57\u7b26\u200b.[:cntrl:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b\u63a7\u5236\u5b57\u7b26\u200b.[:ascii:]
\uff1a\u200b\u5339\u914d\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u200b ASCII \u200b\u5b57\u7b26\u200b.Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u7b97\u672f\u200b\u8fd0\u7b97\u200b\u4f7f\u7528\u200b$((expression))
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho $((1+1))
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u903b\u8f91\u8fd0\u7b97\u200b\u4f7f\u7528\u200b&&
\u3001||
\u200b\u548c\u200b!
\uff0c\u200b\u4f8b\u5982\u200b\uff1a[ -d /tmp ] && echo \"Directory exists\"
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u6761\u4ef6\u200b\u5224\u65ad\u200b\u4f7f\u7528\u200bif
\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a
if [[ condition ]]; then\n #statements\nelif [[ condition ]]; then\n #statements\nelse\n #statements\nfi\n
"},{"location":"Note/Missing%20Semester/Shell/#_15","title":"\u5faa\u73af","text":"Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u5faa\u73af\u200b\u4f7f\u7528\u200bfor
\u200b\u548c\u200bwhile
\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a
for (( i = 0; i < 10; i++ )); do\n #statements\ndone\n\nfor i in {1..10}; do\n #statements\ndone\n\nfor i in $(ls); do\n #statements\ndone\n\nwhile [[ condition ]]; do\n #statements\ndone\n
"},{"location":"Note/Missing%20Semester/Shell/#_16","title":"\u51fd\u6570","text":"Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u51fd\u6570\u200b\u4f7f\u7528\u200bfunction
\u200b\u8bed\u53e5\u200b\uff0c\u200b\u8bed\u6cd5\u200b\u5982\u4e0b\u200b\uff1a
function name {\n #statements\n}\n
"},{"location":"Note/Missing%20Semester/Shell/#_17","title":"\u6570\u7ec4","text":"Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u6570\u7ec4\u200b\u4f7f\u7528\u200barray=(element1 element2 element3)
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aarray=(1 2 3)
\u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200barray[index]
\u200b\u8bed\u6cd5\u200b\u8bbf\u95ee\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[1]}
\u200b\u6570\u7ec4\u200b\u957f\u5ea6\u200b\u4f7f\u7528\u200b${#array[@]}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${#array[@]}
\u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200b${array[@]:index:length}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[@]:1:2}
\uff0c\u200b\u8fd9\u4f1a\u200b\u83b7\u53d6\u200b\u6570\u7ec4\u200b\u4e2d\u200b\u4ece\u200b\u7b2c\u4e8c\u4e2a\u200b\u5143\u7d20\u200b\u5f00\u59cb\u200b\u7684\u200b\u4e24\u4e2a\u200b\u5143\u7d20\u200b \u200b\u6570\u7ec4\u200b\u5143\u7d20\u200b\u4f7f\u7528\u200b${array[@]/pattern/string}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${array[@]/2/4}
\uff0c\u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u6570\u7ec4\u200b\u4e2d\u200b\u7684\u200b\u6240\u6709\u200b 2 \u200b\u66ff\u6362\u200b\u4e3a\u200b 4
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b'string'
\u200b\u6216\u8005\u200b\"string\"
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho 'Hello World!'
\u200b\u5b57\u7b26\u4e32\u200b\u957f\u5ea6\u200b\u4f7f\u7528\u200b${#string}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${#string}
\u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b${string:position:length}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${string:1:2}
\u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b${string/substring/replacement}
\u200b\u8bed\u6cd5\u200b\u83b7\u53d6\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1aecho ${string/Hello/Hi}
\uff0c\u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u5b57\u7b26\u4e32\u200b\u4e2d\u200b\u7684\u200b\u7b2c\u4e00\u4e2a\u200b Hello \u200b\u66ff\u6362\u200b\u4e3a\u200b Hi
Here \u200b\u6587\u6863\u200b\u7528\u4e8e\u200b\u5c06\u200b\u591a\u884c\u200b\u6587\u672c\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b.
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u6587\u6863\u200b\u4f7f\u7528\u200b<<
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a
read -d '' string <<EOF\nHello\nWorld!\nEOF\necho \"$string\"\n
\u200b\u8fd9\u4f1a\u200b\u5c06\u200b Hello World!\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u53d8\u91cf\u200b string"},{"location":"Note/Missing%20Semester/Shell/#here_1","title":"Here \u200b\u5b57\u7b26\u4e32","text":"Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u5b57\u7b26\u4e32\u200b\u4f7f\u7528\u200b<<<
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1acat <<<\"Hello World!\"
Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b Here \u200b\u811a\u672c\u200b\u4f7f\u7528\u200b<<-
\u200b\u8bed\u6cd5\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a
cat <<-EOF\n Hello\n World!\nEOF\n
"},{"location":"Note/Missing%20Semester/Shell/#_19","title":"\u8f93\u5165","text":"Bash \u200b\u811a\u672c\u200b\u4e2d\u200b\u7684\u200b\u8f93\u5165\u200b\u4f7f\u7528\u200bread
\u200b\u8bed\u53e5\u200b \u200b\u5176\u200b\u53c2\u6570\u200b\u5305\u62ec\u200b\uff1a - -p
\uff1a\u200b\u63d0\u793a\u7b26\u200b - -n
\uff1a\u200b\u8bfb\u53d6\u200b\u7684\u200b\u5b57\u7b26\u200b\u6570\u200b - -t
\uff1a\u200b\u8d85\u65f6\u200b\u65f6\u95f4\u200b - -s
\uff1a\u200b\u4e0d\u200b\u56de\u663e\u200b\u8f93\u5165\u200b\u7684\u200b\u5b57\u7b26\u200b - -a
\uff1a\u200b\u5c06\u200b\u8f93\u5165\u200b\u8d4b\u503c\u200b\u7ed9\u200b\u6570\u7ec4\u200b - -d
\uff1a\u200b\u5206\u9694\u7b26\u200b - -r
\uff1a\u200b\u4e0d\u200b\u5bf9\u200b\u53cd\u200b\u659c\u6760\u200b\u8fdb\u884c\u200b\u8f6c\u4e49\u200b - -e
\uff1a\u200b\u4f7f\u7528\u200b Readline \u200b\u5e93\u200b - -i
\uff1a\u200b\u9ed8\u8ba4\u503c\u200b - -u
\uff1a\u200b\u8f93\u5165\u200b\u7684\u200b\u6587\u4ef6\u200b\u63cf\u8ff0\u7b26\u200b
\u200b\u4f8b\u5982\u200b\uff1a
read -p \"Enter your name: \" name\necho \"Hello $name\"\n
"},{"location":"Note/Missing%20Semester/Vim/","title":"Vim \uff08Revisited\uff09","text":"\u200b\u7ea6\u200b 758 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
\u200b\u91cd\u5199\u200b\u8fd9\u7bc7\u200b\u7b14\u8bb0\u200b\u7684\u200b\u65f6\u5019\u200b\u6211\u200b\u5df2\u7ecf\u200b\u7528\u200b\u4e86\u200b\u4e00\u6bb5\u65f6\u95f4\u200b vim\uff0c\u200b\u7b14\u8bb0\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u8fc7\u4e8e\u200b\u7b80\u7565\u200b\uff0c\u200b\u8be6\u7ec6\u200b\u53ef\u200b\u53c2\u8003\u200b\u8bfe\u7a0b\u200b\u7f51\u7ad9\u200b
"},{"location":"Note/Missing%20Semester/Vim/#_1","title":"\u57fa\u7840","text":""},{"location":"Note/Missing%20Semester/Vim/#_2","title":"\u6a21\u5f0f","text":"\u200b\u6211\u4eec\u200b\u5199\u200b\u4ee3\u7801\u200b\u4e8b\u200b\u5e76\u200b\u4e0d\u200b\u4e00\u76f4\u200b\u90fd\u200b\u662f\u200b\u8fde\u7eed\u200b\u7684\u200b\u8f93\u5165\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u8df3\u8f6c\u200b\u5230\u200b\u67d0\u4e2a\u200b\u5730\u65b9\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u505a\u200b\u4e9b\u5c0f\u200b\u4fee\u6539\u200b\u66ff\u6362\u200b\uff0c\u200b\u6709\u65f6\u200b\u662f\u200b\u9605\u8bfb\u200b\u4ee3\u7801\u200b\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u8fde\u7eed\u200b\u8f93\u5165\u200b. \u200b\u4e3a\u6b64\u200b\uff0cvim \u200b\u4f7f\u7528\u200b\u4e0d\u540c\u200b\u6a21\u5f0f\u200b\u6765\u200b\u4fbf\u5229\u200b\u5404\u4e2a\u200b\u4e0d\u540c\u200b\u76ee\u7684\u200b\u7684\u200b\u64cd\u4f5c\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u76f8\u540c\u200b\u7684\u200b\u952e\u200b\u5728\u200b\u4e0d\u540c\u200b\u6a21\u5f0f\u200b\u4e0b\u200b\u610f\u4e49\u200b\u4e0d\u540c\u200b.
vim \u200b\u4e2d\u200b\u6700\u200b\u5e38\u7528\u200b\u7684\u200b\u6a21\u5f0f\u200b\u6709\u200b
normalinsertreplacevisualcommand-line\u200b\u9ed8\u8ba4\u200b\u521d\u59cb\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u4efb\u4f55\u200b\u6a21\u5f0f\u200b\u90fd\u200b\u53ef\u4ee5\u200b\u6309\u200b\u56de\u5230\u200b normal.\u200b\u9605\u8bfb\u200b\u6a21\u5f0f\u200b
i
\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u8fde\u7eed\u200b\u7684\u200b\u8f93\u5165\u200b\uff0c\u200b\u53ea\u7528\u200b i \u200b\u53ef\u4ee5\u200b\u65e0\u7f1d\u200b\u9000\u5316\u200b\u56de\u200b\u539f\u5148\u200b\u4ec0\u4e48\u200b\u529f\u80fd\u200b\u90fd\u200b\u6ca1\u6709\u200b\u7684\u200b\u7f16\u8f91\u5668\u200b.\u200b\u8f93\u5165\u200b\u6a21\u5f0f\u200b
R
\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u8fde\u7eed\u200b\u7684\u200b\u66ff\u6362\u200b.\u200b\u66ff\u6362\u200b\u6a21\u5f0f\u200b
v
\u200b\u8fdb\u5165\u200b\uff0c\u200b\u8fdb\u884c\u200b\u9009\u62e9\u200b\uff0cV \u200b\u8fdb\u5165\u200b\u884c\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u6309\u884c\u200b\u9009\u62e9\u200b\uff0c C-v \u200b\u8fdb\u5165\u200b\u5757\u200b\u6a21\u5f0f\u200b\uff0c\u200b\u6309\u200b\u4efb\u610f\u200b\u8fb9\u957f\u200b\u9009\u62e9\u200b\u957f\u65b9\u5f62\u200b.\u200b\u9009\u62e9\u200b\u6a21\u5f0f\u200b
:
\u200b\u8fdb\u5165\u200b\uff0c\u200b\u5904\u7406\u200b\u547d\u4ee4\u884c\u200b\u64cd\u4f5c\u200b\uff08\u200b\u6700\u200b\u57fa\u672c\u200b\u7684\u200b\u6709\u200b :w \u200b\u4fdd\u5b58\u200b :q \u200b\u9000\u51fa\u200b :wq \u200b\u4fdd\u5b58\u200b\u9000\u51fa\u200b :q!\u200b\u5f3a\u5236\u200b\u9000\u51fa\u200b\uff09.\u200b\u547d\u4ee4\u884c\u200b\u6a21\u5f0f\u200b
\u200b\u4e00\u4e2a\u200b Vim \u200b\u8fdb\u7a0b\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b\u6807\u7b7e\u200b\u9875\u200b\uff0c\u200b\u4e00\u4e2a\u200b\u6807\u7b7e\u200b\u9875\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b\u7a97\u53e3\u200b\uff0c\u200b\u800c\u200b\u4e00\u4e2a\u200b\u7a97\u53e3\u200b\u50cf\u200b\u53ea\u200b\u773c\u775b\u200b\u770b\u200b\u5411\u200b\u4e00\u4e2a\u200b\u7279\u5b9a\u200b\u7684\u200b\u6587\u4ef6\u200b(Buffer)
"},{"location":"Note/Missing%20Semester/Vim/#_4","title":"\u64cd\u4f5c","text":"Normal move
Normal edit
Commandline mode
\u200b\u7ea6\u200b 1800 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 6 \u200b\u5206\u949f\u200b
\u200b\u8bb0\u5f55\u200b missing semester\u200b\u6b64\u5802\u200b\u8bfe\u200b\u7684\u200b\u4e00\u4e9b\u200b\u7b14\u8bb0\u200b
"},{"location":"Note/Missing%20Semester/commandline_env/#job-control","title":"Job Control","text":"\u200b\u7ec8\u7aef\u200b\u7684\u200b\u4f5c\u4e1a\u63a7\u5236\u200b\uff08Job Control\uff09\u200b\u662f\u200b\u4e00\u79cd\u200b\u5728\u200b\u547d\u4ee4\u884c\u200b\u73af\u5883\u200b\u4e0b\u200b\u7ba1\u7406\u200b\u548c\u200b\u63a7\u5236\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff08Job\uff09\u200b\u7684\u200b\u673a\u5236\u200b.\u200b\u5b83\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e00\u4e9b\u200b\u547d\u4ee4\u200b\u548c\u200b\u6280\u672f\u200b\uff0c\u200b\u4f7f\u200b\u7528\u6237\u200b\u80fd\u591f\u200b\u5728\u200b\u7ec8\u7aef\u200b\u540c\u65f6\u200b\u8fd0\u884c\u200b\u591a\u4e2a\u200b\u547d\u4ee4\u200b\uff0c\u200b\u5e76\u200b\u5728\u200b\u9700\u8981\u200b\u65f6\u200b\u5bf9\u200b\u5176\u200b\u8fdb\u884c\u200b\u7ba1\u7406\u200b.
\u200b\u4f5c\u4e1a\u200b
\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\uff08Foreground Job\uff09\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\uff08Background Job\uff09\u200b\u4f5c\u4e1a\u72b6\u6001\u200b\u548c\u200b\u4fe1\u53f7\u200b\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u6d3b\u52a8\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u5b83\u4f1a\u200b\u5728\u200b\u7ec8\u7aef\u200b\u663e\u793a\u200b\u5176\u200b\u8f93\u51fa\u200b\uff0c\u200b\u5e76\u200b\u5360\u7528\u200b\u7ec8\u7aef\u200b\u7684\u200b\u8f93\u5165\u200b.\u200b\u53ea\u6709\u200b\u5f53\u524d\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\u6216\u200b\u88ab\u200b\u6682\u505c\u200b\u65f6\u200b\uff0c\u200b\u624d\u80fd\u200b\u6267\u884c\u200b\u5176\u4ed6\u200b\u547d\u4ee4\u200b.
\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\u662f\u200b\u5728\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u5b83\u200b\u4e0d\u4f1a\u200b\u5360\u7528\u200b\u7ec8\u7aef\u200b\u7684\u200b\u8f93\u5165\u200b\u548c\u200b\u8f93\u51fa\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u7279\u6b8a\u5b57\u7b26\u200b &
\u200b\u5c06\u200b\u547d\u4ee4\u200b\u653e\u7f6e\u200b\u5728\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b\uff0c\u200b\u4ece\u800c\u200b\u5141\u8bb8\u200b\u540c\u65f6\u200b\u8fd0\u884c\u200b\u591a\u4e2a\u200b\u547d\u4ee4\u200b.
\u200b\u6bcf\u4e2a\u200b\u4f5c\u4e1a\u200b\u90fd\u200b\u5177\u6709\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\uff0c\u200b\u5982\u200b\u8fd0\u884c\u200b\u4e2d\u200b\u3001\u200b\u505c\u6b62\u200b\u6216\u200b\u5b8c\u6210\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4fe1\u53f7\u200b\u6765\u200b\u63a7\u5236\u200b\u4f5c\u4e1a\u200b\u7684\u200b\u884c\u4e3a\u200b\uff0c\u200b\u5982\u200b Ctrl-C
\uff08\u200b\u4e2d\u65ad\u200b\u4f5c\u4e1a\u200b\uff09\u200b\u548c\u200b Ctrl-D
\uff08\u200b\u7ed3\u675f\u200b\u4f5c\u4e1a\u200b\u8f93\u5165\u200b\uff09.
\u200b\u4f5c\u4e1a\u63a7\u5236\u200b\u547d\u4ee4\u200b
jobsfgbgkillman signalCtrl-CCtrl-Zjobs
\u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5217\u51fa\u200b\u5f53\u524d\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u4f5c\u4e1a\u200b.\u200b\u6bcf\u4e2a\u200b\u4f5c\u4e1a\u200b\u90fd\u200b\u6709\u200b\u4e00\u4e2a\u200b\u552f\u4e00\u200b\u7684\u200b ID\uff0c\u200b\u524d\u9762\u200b\u5e26\u6709\u200b\u4e00\u4e2a\u200b +
\u200b\u53f7\u200b\u7684\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u7684\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\uff0c\u200b\u524d\u9762\u200b\u5e26\u6709\u200b\u4e00\u4e2a\u200b -
\u200b\u53f7\u200b\u7684\u200b\u4f5c\u4e1a\u200b\u662f\u200b\u5f53\u524d\u200b\u7684\u200b\u540e\u53f0\u4f5c\u4e1a\u200b.
fg
\u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5c06\u200b\u540e\u53f0\u4f5c\u4e1a\u200b\u5207\u6362\u200b\u5230\u200b\u524d\u53f0\u200b\u8fd0\u884c\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b %
\u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b.
bg
\u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5c06\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b\u5207\u6362\u200b\u5230\u200b\u540e\u53f0\u200b\u8fd0\u884c\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b %
\u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b.
kill
\u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u5411\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b\u4fe1\u53f7\u200b.\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0ckill
\u200b\u547d\u4ee4\u200b\u4f1a\u200b\u53d1\u9001\u200b SIGTERM
\u200b\u4fe1\u53f7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b -SIGNAL
\u200b\u9009\u9879\u200b\u6765\u200b\u6307\u5b9a\u200b\u4fe1\u53f7\u200b\u7c7b\u578b\u200b.\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u4f5c\u4e1a\u200b ID \u200b\u6216\u200b\u4f5c\u4e1a\u200b PID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b %
\u200b\u7b26\u53f7\u200b\u52a0\u4e0a\u200b\u4f5c\u4e1a\u200b ID \u200b\u4f5c\u4e3a\u200b\u53c2\u6570\u200b.
man signal
\u200b\u547d\u4ee4\u200b\u7528\u4e8e\u200b\u67e5\u770b\u200b\u6240\u6709\u200b\u53ef\u4ee5\u200b\u53d1\u9001\u7ed9\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u4fe1\u53f7\u200b.
Ctrl-C
\u200b\u5feb\u6377\u952e\u200b\u7528\u4e8e\u200b\u5411\u524d\u200b\u53f0\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b SIGINT
\u200b\u4fe1\u53f7\u200b\uff0c\u200b\u901a\u5e38\u200b\u7528\u4e8e\u200b\u7ec8\u6b62\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b.
Ctrl-Z
\u200b\u5feb\u6377\u952e\u200b\u7528\u4e8e\u200b\u5411\u524d\u200b\u53f0\u200b\u4f5c\u4e1a\u200b\u53d1\u9001\u200b SIGTSTP
\u200b\u4fe1\u53f7\u200b\uff0c\u200b\u901a\u5e38\u200b\u7528\u4e8e\u200b\u6682\u505c\u200b\u524d\u53f0\u200b\u4f5c\u4e1a\u200b.
\u200b\u9996\u5148\u200b\u7406\u89e3\u200b tmux \u200b\u7684\u200b\u81ea\u4e0a\u200b\u5411\u4e0b\u200b\u4e09\u4e2a\u200b\u4e0d\u540c\u200b\u5c42\u7ea7\u200b\uff1asession\uff0cwindow\uff0cpane
sessionwindowpanesession \u200b\u662f\u200b tmux \u200b\u7684\u200b\u6700\u9ad8\u200b\u5c42\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b tmux \u200b\u7684\u200b\u5b9e\u4f8b\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b session\uff0c\u200b\u6bcf\u4e2a\u200b session \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b window\uff0c\u200b\u6bcf\u4e2a\u200b window \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty
window \u200b\u662f\u200b session \u200b\u7684\u200b\u7b2c\u4e8c\u5c42\u200b\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b\u7ec8\u7aef\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b window\uff0c\u200b\u6bcf\u4e2a\u200b window \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty
pane \u200b\u662f\u200b window \u200b\u7684\u200b\u7b2c\u4e09\u5c42\u200b\u7ea7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u4e00\u4e2a\u200b\u5206\u5c4f\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b pane\uff0c\u200b\u6bcf\u4e2a\u200b pane \u200b\u53ef\u4ee5\u200b\u6709\u200b\u591a\u4e2a\u200b tty
"},{"location":"Note/Missing%20Semester/commandline_env/#session","title":"\u65b0\u5efa\u200b\u4e00\u4e2a\u200b session","text":"tmuxtmux new -t NAMEtmux a NAMEtmux lsCtrl-b d\u200b\u76f4\u63a5\u200b\u8fdb\u5165\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b session
\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u540d\u4e3a\u200b NAME \u200b\u7684\u200b session
\u200b\u91cd\u65b0\u200b\u8fde\u63a5\u200b\u5230\u200b\u540d\u4e3a\u200b NAME \u200b\u7684\u200b session
\u200b\u5217\u51fa\u200b\u6240\u6709\u200b session
detach \u200b\u5f53\u524d\u200b session
"},{"location":"Note/Missing%20Semester/commandline_env/#session_1","title":"session \u200b\u4ee5\u5185\u200b\u7684\u200b\u64cd\u4f5c","text":"C-b cC-b n/p/NUMBERC-b \uff0cC-b &\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b window
\u200b\u5207\u6362\u200b\u5230\u200b\u4e0b\u200b\u4e00\u4e2a\u200b/\u200b\u4e0a\u200b\u4e00\u4e2a\u200b/\u200b\u7b2c\u200b x \u200b\u4e2a\u200b window
\u200b\u91cd\u547d\u540d\u200b\u5f53\u524d\u200b window
\u200b\u5173\u95ed\u200b\u5f53\u524d\u200b window
"},{"location":"Note/Missing%20Semester/commandline_env/#window","title":"window \u200b\u4ee5\u5185\u200b\u7684\u200b\u64cd\u4f5c","text":"C-b \\\"C-b %C-b oC-b xC-b zC-b ARROWC-b SPACE\u200b\u4e0a\u4e0b\u200b\u5206\u88c2\u200b pane\uff0c\u200b\u8fd9\u4f1a\u200b\u662f\u200b\u65b0\u200b\u7684\u200b\u8fdb\u7a0b\u200b\u548c\u200b\u65b0\u200b\u7684\u200b tty
\u200b\u5de6\u53f3\u200b\u5206\u88c2\u200b pane
\u200b\u5207\u6362\u200b\u5230\u200b\u4e0b\u200b\u4e00\u4e2a\u200b pane
\u200b\u5173\u95ed\u200b\u5f53\u524d\u200b pane
\u200b\u653e\u5927\u200b\u7f29\u5c0f\u200b\u5f53\u524d\u200b pane
\u200b\u5728\u200b pane \u200b\u4e4b\u95f4\u200b\u79fb\u52a8\u200b
\u200b\u4e00\u952e\u200b\u5207\u6362\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u5e03\u5c40\u200b\u6a21\u5f0f\u200b
"},{"location":"Note/Missing%20Semester/commandline_env/#dotfiles","title":"Dotfiles","text":"Dotfile \u200b\u662f\u200b\u4ee5\u70b9\u200b\uff08.\uff09\u200b\u5f00\u5934\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u5728\u200b Unix-like \u200b\u7cfb\u7edf\u200b\u4e2d\u200b\u88ab\u200b\u5e7f\u6cdb\u200b\u4f7f\u7528\u200b.\u200b\u5b83\u4eec\u200b\u901a\u5e38\u200b\u4f4d\u4e8e\u200b\u7528\u6237\u200b\u7684\u200b\u4e3b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b58\u50a8\u200b\u4e2a\u4eba\u5316\u200b\u548c\u200b\u81ea\u5b9a\u4e49\u200b\u7684\u200b\u914d\u7f6e\u200b\u9009\u9879\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5176\u4ed6\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u548c\u200b\u5de5\u5177\u200b\u7684\u200b\u8bbe\u7f6e\u200b.
Dotfile \u200b\u7684\u200b\u540d\u79f0\u200b\u4ee5\u200b\u4e00\u4e2a\u200b\u6216\u200b\u591a\u4e2a\u200b\u70b9\u200b\u5f00\u5934\u200b\uff0c\u200b\u4f8b\u5982\u200b .bashrc
\u3001.vimrc
\u3001.gitconfig
\u200b\u7b49\u200b.\u200b\u7531\u4e8e\u200b\u5728\u200b\u9ed8\u8ba4\u200b\u60c5\u51b5\u200b\u4e0b\u200b\uff0cUnix-like \u200b\u7cfb\u7edf\u200b\u4f1a\u200b\u5c06\u200b\u4ee5\u70b9\u200b\u5f00\u5934\u200b\u7684\u200b\u6587\u4ef6\u200b\u89c6\u4e3a\u200b\u9690\u85cf\u200b\u6587\u4ef6\u200b\uff0c\u200b\u56e0\u6b64\u200b\u8fd9\u4e9b\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u5728\u200b\u6587\u4ef6\u200b\u7ba1\u7406\u5668\u200b\u4e2d\u200b\u9ed8\u8ba4\u200b\u662f\u200b\u4e0d\u200b\u53ef\u89c1\u200b\u7684\u200b.\u200b\u4f46\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u7279\u5b9a\u200b\u7684\u200b\u9009\u9879\u200b\u6216\u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u548c\u200b\u7f16\u8f91\u200b\u5b83\u4eec\u200b.
Dotfile \u200b\u7684\u200b\u7528\u9014\u200b\u56e0\u200b\u6587\u4ef6\u540d\u200b\u548c\u200b\u6240\u200b\u9488\u5bf9\u200b\u7684\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u800c\u5f02\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u4e9b\u200b\u5e38\u89c1\u200b\u7684\u200b\u4f8b\u5b50\u200b\uff1a
.bashrc
\uff1aBash Shell \u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b Shell \u200b\u7684\u200b\u884c\u4e3a\u200b\u548c\u200b\u73af\u5883\u53d8\u91cf\u200b..vimrc
\uff1aVim \u200b\u6587\u672c\u7f16\u8f91\u200b\u5668\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b Vim \u200b\u7684\u200b\u7f16\u8f91\u5668\u200b\u8bbe\u7f6e\u200b\u548c\u200b\u63d2\u4ef6\u200b..gitconfig
\uff1aGit \u200b\u7248\u672c\u200b\u63a7\u5236\u7cfb\u7edf\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u8bbe\u7f6e\u200b Git \u200b\u7684\u200b\u7528\u6237\u200b\u4fe1\u606f\u200b\u3001\u200b\u522b\u540d\u200b\u548c\u200b\u5176\u4ed6\u200b\u9009\u9879\u200b..ssh/config
\uff1aSSH \u200b\u5ba2\u6237\u7aef\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u914d\u7f6e\u200b SSH \u200b\u8fde\u63a5\u200b\u7684\u200b\u4e3b\u673a\u200b\u548c\u200b\u9009\u9879\u200b..tmux.conf
\uff1atmux \u200b\u7ec8\u7aef\u200b\u590d\u7528\u200b\u5de5\u5177\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u7528\u4e8e\u200b\u5b9a\u4e49\u200b tmux \u200b\u7684\u200b\u4f1a\u200b\u8bdd\u200b\u548c\u200b\u7a97\u683c\u200b\u8bbe\u7f6e\u200b.\u200b\u901a\u8fc7\u200b\u7f16\u8f91\u200b\u548c\u200b\u5b9a\u5236\u200b Dotfile\uff0c\u200b\u7528\u6237\u200b\u53ef\u4ee5\u200b\u6309\u7167\u200b\u4e2a\u4eba\u200b\u504f\u597d\u200b\u548c\u200b\u9700\u6c42\u200b\u6765\u200b\u914d\u7f6e\u200b\u5404\u79cd\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u548c\u200b\u5de5\u5177\u200b.\u200b\u5b83\u4eec\u200b\u5141\u8bb8\u200b\u7528\u6237\u200b\u4fee\u6539\u200b\u9ed8\u8ba4\u8bbe\u7f6e\u200b\u3001\u200b\u6dfb\u52a0\u200b\u5feb\u6377\u952e\u200b\u3001\u200b\u5b9a\u4e49\u200b\u522b\u540d\u200b\u3001\u200b\u8bbe\u7f6e\u200b\u73af\u5883\u53d8\u91cf\u200b\u7b49\u200b\uff0c\u200b\u4ee5\u200b\u63d0\u5347\u200b\u5de5\u4f5c\u6548\u7387\u200b\u548c\u200b\u4e2a\u4eba\u5316\u200b\u4f53\u9a8c\u200b.
~/.zshrc \u200b\u662f\u200b zsh \u200b\u7684\u200b\u9ed8\u8ba4\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u4e3a\u200b\u6bcf\u6b21\u200b\u542f\u52a8\u200b zsh\uff0c\u200b\u90fd\u200b\u4f1a\u200b\u6267\u884c\u200b\u5176\u4e2d\u200b\u7684\u200b\u8bed\u53e5\u200b.\u200b\u6bd4\u5982\u200b\u4f60\u200b\u5728\u200b\u91cc\u9762\u200b\u5199\u200b\u4e0a\u200b\u4e00\u53e5\u200becho Hello
\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u6bcf\u6b21\u200b\u542f\u52a8\u200b zsh \u200b\u7684\u200b\u65f6\u5019\u200b\u81ea\u52a8\u200b\u95ee\u5019\u200b\u4f60\u200b\u4e00\u53e5\u200b
\u200b\u5728\u200b github \u200b\u4e0a\u200b\u53ef\u4ee5\u200b\u627e\u5230\u200b\u8bb8\u591a\u200b\u4eba\u200b\u5206\u4eab\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e5f\u200b\u8d34\u200b\u4e0a\u200b\u6211\u200b\u81ea\u5df1\u200b\u7684\u200b
"},{"location":"Note/Missing%20Semester/commandline_env/#_1","title":"\u7b26\u53f7\u200b\u8fde\u63a5","text":"\u200b\u5f88\u591a\u200b\u65f6\u5019\u200b\u628a\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u653e\u5728\u200b\uff5e\u200b\u76ee\u5f55\u200b\u4e0b\u200b\u5e76\u200b\u4e0d\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u597d\u200b\u6df7\u4e71\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u597d\u200b\u5efa\u7acb\u200b GitHub \u200b\u4ed3\u5e93\u200b\u8fdb\u884c\u200b\u7ba1\u7406\u200b\uff0c\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u7684\u200b\u8bfb\u53d6\u200b\u4f4d\u7f6e\u200b\u5f80\u5f80\u200b\u662f\u200b\u5b9a\u200b\u6b7b\u200b\u7684\u200b\uff0c\u200b\u79fb\u52a8\u200b\u5230\u200b\u522b\u5904\u200b\u5c31\u200b\u5931\u6548\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5229\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u6765\u200b\u6574\u7406\u200b\u4ed6\u4eec\u200b.
ln -s TRUE_PATH VIRTUAL_PATH
: \u200b\u8f6f\u200b\u8fde\u63a5\u200b\uff0cVIRTUAL_PATH \u200b\u4e0a\u200b\u5b9e\u9645\u4e0a\u200b\u4ec0\u4e48\u200b\u6587\u4ef6\u200b\u90fd\u200b\u6ca1\u6709\u200b\uff0c\u200b\u4f46\u200b\u6211\u4eec\u200b\u8bd5\u56fe\u200b\u8bfb\u5199\u200b\u8fd9\u4e2a\u200b\u6587\u4ef6\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u4f1a\u200b\u88ab\u200b\u5bfc\u5411\u200b TRUE_PATH \u200b\u4e0a\u200b\u90a3\u4e2a\u200b\u771f\u5b9e\u200b\u5b58\u5728\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5229\u7528\u200b\u8fd9\u4e2a\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7edf\u4e00\u200b\u8f6c\u79fb\u200b\u6211\u4eec\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e86\u200b.
\u200b\u6ce8\u610f\u200b\u521b\u5efa\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u65f6\u200b VIRTUAL_PATH \u200b\u4e0d\u80fd\u200b\u5b58\u5728\u200b
\u200b\u82e5\u200b\u5220\u53bb\u200b TRUE_PATH\uff0c\u200b\u7b26\u53f7\u200b\u8fde\u63a5\u200b\u4ecd\u7136\u200b\u5b58\u5728\u200b\uff0c\u200b\u4f46\u200b\u5df2\u200b\u4e0d\u53ef\u200b\u8bbf\u95ee\u200b\uff08\u200b\u663e\u793a\u6587\u4ef6\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff09
"},{"location":"Note/Missing%20Semester/commandline_env/#remote-machine","title":"Remote Machine","text":"\u200b\u8be6\u60c5\u200b\u53ef\u4ee5\u200b\u770b\u200b\u8fd9\u200b\u4e00\u7bc7\u200b\uff0c\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5177\u4f53\u200b\u7684\u200b ssh \u200b\u8fde\u63a5\u200b\u5b9e\u8df5\u200b.\u200b\u5728\u200b:ocitons-link-16:\u200b\u8fd9\u200b\u4e00\u7bc7\u200b\u4e2d\u6709\u200b\u5173\u4e8e\u200b docker \u200b\u7684\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u7684\u200b\u5b9e\u8df5\u200b\uff0c\u200b\u66f4\u52a0\u200b\u8be6\u7ec6\u200b.
\u200b\u5e38\u7528\u200b\u6307\u4ee4\u200b
ssh USERNAME@IP_ADDRESSssh-keygenssh-copy-id USERNAME@IP_ADDRESSscp -p xxxx LOCAL_PATH USERNAME@IP_ADDRESS:REMOTE_PATHscp -p xxxx USERNAME:IP_ADDRESS LOCAL_PATH\u200b\u8fde\u63a5\u200b remote machine
\u200b\u81ea\u52a8\u200b\u751f\u6210\u200b\u8ff7\u836f\u200b\uff0c\u200b\u6ce8\u610f\u200b keyphrase \u200b\u5e94\u8be5\u200b\u4e3a\u7a7a\u200b\uff08\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff09
\u200b\u590d\u5236\u200b\u516c\u94a5\u200b\u5230\u200b remote machine \u200b\u7684\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u200b\u4e2d\u200b
\u200b\u5c06\u200b\u672c\u5730\u200b\u6587\u4ef6\u200b\u590d\u5236\u5230\u200b remote machine
\u200b\u5c06\u200b remote machine \u200b\u6587\u4ef6\u200b\u590d\u5236\u5230\u200b\u672c\u5730\u200b
\uff5e/.ssh/config \u200b\u91cc\u9762\u200b\u53ef\u4ee5\u200b\u8bbe\u7f6e\u200b remote machine \u200b\u522b\u540d\u200b \u200b\u9ed8\u8ba4\u200b\u7aef\u53e3\u200b \u200b\u9ed8\u8ba4\u200b ip \u200b\u5730\u5740\u200b\u7b49\u200b\u5c5e\u6027\u200b
Tip
\u200b\u5728\u200b remote machine \u200b\u4f7f\u7528\u200b tmux\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b\u8fde\u63a5\u200b\u5173\u95ed\u200b\u540e\u200b\uff0c\u200b\u8fde\u63a5\u200b\u56de\u6765\u200b\uff0c\u200b\u518d\u200b\u91cd\u65b0\u200b attach\uff0c\u200b\u4e4b\u524d\u200b\u8fd0\u884c\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u90fd\u200b\u4f1a\u200b\u4ecd\u7136\u200b\u5b58\u5728\u200b. \u200b\u5728\u200b\u8fdc\u7a0b\u200b\u7684\u200b tmux \u200b\u7684\u200b\u5feb\u6377\u952e\u200b\u9700\u8981\u200b\u6309\u200b\u4e24\u6b21\u200b C-a
Tip
VSCode \u200b\u7684\u200b Remote ssh \u200b\u76f8\u5f53\u200b\u597d\u7528\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8ba9\u200b\u4f60\u200b\u7528\u200b VSCode \u200b\u5bf9\u200b\u8fdc\u7a0b\u200b\u673a\u5668\u200b\u4e0a\u200b\u64cd\u4f5c\u200b\uff0c\u200b\u5305\u62ec\u200b debug \u200b\u5565\u200b\u7684\u200b
"},{"location":"PeiPei/","title":"PeiPei!","text":"\u200b\u6b22\u8fce\u200b\u6765\u5230\u200b PeiPei \u200b\u5bc4\u5c45\u200b\u5728\u200b\u5927\u795e\u200b Stormckey \u200b\u7684\u200b\u535a\u5ba2\u200b\u4e0a\u200b\uff01
\u200b\u8fd9\u91cc\u200b\u4f1a\u653e\u200b\u4e00\u4e9b\u200b\u6015\u200b\u81ea\u5df1\u200b\u5fd8\u8bb0\u200b\u7684\u200b\u5c0f\u200b Tips\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e9b\u200b\u6709\u8da3\u200b\u7684\u200b\u4e1c\u897f\u200b\uff01
"},{"location":"PeiPei/markdown/","title":"Markdown All in One","text":"\u200b\u7ea6\u200b 379 \u200b\u4e2a\u200b\u5b57\u200b 5 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
Typst YYDS!!!
\u200b\u9020\u5b8c\u200b\u677f\u5b50\u200b\u4e4b\u540e\u200b\u5199\u200b\u6587\u6863\u200b\u771f\u7684\u200b\u662f\u200b\u592a\u723d\u4e86\u200b\uff0cTypst \u200b\u771f\u7684\u200b\u592a\u597d\u200b\u7528\u200b\u4e86\u200b\uff0c\u200b\u5f3a\u70c8\u63a8\u8350\u200b\uff01 \u200b\u5199\u200b\u7684\u200b\u65f6\u5019\u200b\u50cf\u200b Markdown \u200b\u4e00\u6837\u200b\u7b80\u5355\u200b\uff0c\u200b\u5bfc\u51fa\u200b\u7684\u200b\u50cf\u200b LaTeX \u200b\u4e00\u6837\u200b\u6f02\u4eae\u200b \ud83d\ude0b \u200b\u6211\u200b\u81ea\u5df1\u200b\u7684\u200b\u6a21\u677f\u200b\u5728\u200b typst-template \u200b\u91cc\u200b\uff0c\u200b\u6b22\u8fce\u200b\u4f7f\u7528\u200b\uff01
"},{"location":"PeiPei/markdown/#vscode-like-highlighting","title":"VSCode like highlighting","text":"\u200b\u5373\u200b\u4f7f\u7528\u200b\u4e86\u200b VSCode \u200b\u7684\u200b MPE \u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0cMarkdown \u200b\u91cc\u200b\u7684\u200b\u4ee3\u7801\u200b\u5757\u200b\u8fd8\u662f\u200b\u5341\u5206\u200b\u7684\u200b\u4e11\u964b\u200b.\u200b\u8fd9\u91cc\u200b\u63d0\u4f9b\u200b\u4e86\u200b\u4e00\u79cd\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u8ba9\u200b Markdown \u200b\u91cc\u200b\u7684\u200b\u4ee3\u7801\u200b\u5757\u200b\u7684\u200b\u9ad8\u4eae\u200b\u6548\u679c\u200b\u548c\u200b VSCode \u200b\u91cc\u200b\u7684\u200b\u4e00\u6837\u200b.
\u200b\u9996\u5148\u200b\uff0c\u200b\u5982\u679c\u200b\u5bfc\u51fa\u200b\u7684\u200b\u662f\u200b\u767d\u8272\u200b\u5e95\u200b\uff0c\u200b\u5c31\u200b\u628a\u200b VSCode \u200b\u7684\u200b\u4e3b\u9898\u200b\u6539\u6210\u200b\u767d\u8272\u200b\u5e95\u200b\u7684\u200b\uff0c\u200b\u5982\u679c\u200b\u662f\u200b\u9ed1\u8272\u200b\u5e95\u200b\uff0c\u200b\u5c31\u200b\u6539\u6210\u200b\u9ed1\u8272\u200b\u5e95\u200b\u7684\u200b.\u200b\u4e0b\u9762\u200b\u7684\u200b\u914d\u7f6e\u200b\u662f\u200b\u767d\u8272\u200b\u5e95\u200b\u7684\u200b.
\u200b\u5b89\u88c5\u200b Paste Special \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u76f4\u63a5\u200b\u5728\u200b VSCode \u200b\u91cc\u200b\u590d\u5236\u200b\u5199\u200b\u597d\u200b\u7684\u200b\u4ee3\u7801\u200b\uff0c\u200b\u5728\u200b Markdown \u200b\u6587\u4ef6\u200b\u91cc\u200b\u7c98\u8d34\u200b\u65f6\u200b\u53f3\u952e\u200b\u9009\u62e9\u200b Paste Special
\uff0c\u200b\u7c98\u8d34\u200b\u4e3a\u200b HTML \u200b\u683c\u5f0f\u200b.\u200b\u4e3a\u4e86\u200b\u548c\u200b MPE \u200b\u7684\u200b\u9ed8\u8ba4\u200b\u683c\u5f0f\u200b\u5339\u914d\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5bf9\u200b css \u200b\u8fdb\u884c\u200b\u4e00\u4e9b\u200b\u5fae\u8c03\u200b.
\u200b\u4f8b\u5982\u200b\u5982\u679c\u200b\u7c98\u8d34\u200b\u5b8c\u200b\u7684\u200b\u5982\u4e0b\u200b\uff1a
<div style=\"color: #3b3b3b;background-color: #1f1f1f;font-family: Fira Code Retina\uff0c \u200b\u601d\u6e90\u200b\u9ed1\u4f53\u200b HW\uff0c Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;\">...</div>\n
\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u628a\u200b\u5b83\u200b\u6539\u6210\u200b\uff1a
<div style=\"color: #3b3b3b;background-color: #f5f5f5;font-family: Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 1.4;white-space: pre;border-radius: 3px;padding: .8em;margin-top: 0;margin-bottom: 16px;overflow: auto;\">...</div>\n
\u200b\u4e3b\u8981\u200b\u662f\u200b\u52a0\u200b\u4e86\u200b\u5706\u89d2\u200b\u3001padding \u200b\u548c\u200b margin.\u200b\u5b57\u4f53\u200b\u548c\u200b\u884c\u9ad8\u200b\u53ef\u6539\u200b\u53ef\u4e0d\u200b\u6539\u200b\uff0c\u200b\u770b\u200b\u4e2a\u4eba\u200b\u559c\u597d\u200b.\u200b\u53e6\u5916\u200b\uff0c\u200b\u4e3a\u4e86\u200b\u6253\u5370\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u66f4\u6539\u200b white-space
\u200b\u4e3a\u200b pre-wrap
\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u81ea\u52a8\u200b\u6362\u884c\u200b\u4e86\u200b\uff0c\u200b\u540c\u65f6\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u53bb\u6389\u200b overflow: auto;
\uff1a
<div style=\"color: #3b3b3b;background-color: #f5f5f5;font-family: Consolas\uff0c 'Courier New'\uff0c monospace\uff0c Consolas\uff0c 'Courier New'\uff0c monospace;font-weight: normal;font-size: 14px;line-height: 1.4;white-space: pre-wrap;border-radius: 3px;padding: .8em;margin-top: 0;margin-bottom: 16px;\">...</div>\n
"},{"location":"PeiPei/markdown/#-img-src","title":"![]()
-> <img src=\"\" />
","text":"\u200b\u5728\u200b Markdown \u200b\u91cc\u200b\u63d2\u5165\u200b\u56fe\u7247\u200b\u65f6\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e00\u822c\u200b\u4f7f\u7528\u200b ![]()
\u200b\u7684\u200b\u65b9\u5f0f\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u6837\u200b\u5bfc\u51fa\u200b\u7684\u200b PDF \u200b\u91cc\u200b\u7684\u200b\u56fe\u7247\u200b\u662f\u200b\u4e0d\u4f1a\u200b\u5c45\u4e2d\u200b\u7684\u200b\uff0c\u200b\u800c\u4e14\u200b\u4e5f\u200b\u6ca1\u6709\u200b\u529e\u6cd5\u200b\u8bbe\u7f6e\u200b\u56fe\u7247\u200b\u7684\u200b\u5bbd\u200b\u9ad8\u200b.\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u628a\u200b ![]()
\u200b\u6539\u6210\u200b <img src=\"\" />
.\u200b\u4f7f\u7528\u200b\u4ee5\u4e0b\u200b\u6b63\u5219\u8868\u8fbe\u5f0f\u200b\u66ff\u6362\u200b\uff1a
!\\[(.*?)\\]\\((.*?)\\)\n
\u200b\u66ff\u6362\u200b\u4e3a\u200b\uff1a
<img src=\"$2\" alt=\"$1\" style=\"max-width: 100%\" />\n
"},{"location":"PeiPei/repository/","title":"\u4ed3\u5e93\u200b\u6574\u7406","text":"\u200b\u7ea6\u200b 340 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 1 \u200b\u5206\u949f\u200b
\u200b\u8fd9\u91cc\u200b\u662f\u200b\u4e00\u4e9b\u200b\u6211\u200b\u4e2a\u4eba\u200b\u7684\u200b GitHub \u200b\u8d26\u53f7\u200b\u7684\u200b public repo \u200b\u7684\u200b\u6574\u7406\u200b\u3002
"},{"location":"PeiPei/repository/#_2","title":"\u6709\u8da3\u200b\u7684","text":"\u200b\u7ea6\u200b 746 \u200b\u4e2a\u200b\u5b57\u200b 37 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 3 \u200b\u5206\u949f\u200b
\u200b\u6211\u200b\u7684\u200b\u4e00\u4e9b\u200b\u81ea\u7528\u200b\u6a21\u677f\u200b\u5728\u200b typst-template
"},{"location":"PeiPei/typst/#_1","title":"\u5982\u4f55\u200b\u5f00\u59cb","text":"\u200b\u56e0\u4e3a\u200b Typst \u200b\u6bd4\u8f83\u200b\u65b0\u200b\uff0c\u200b\u6240\u4ee5\u200b\u76f8\u5173\u200b\u7684\u200b\uff08\u200b\u7279\u522b\u200b\u662f\u200b\u4e2d\u6587\u200b\u7684\u200b\uff09\u200b\u6587\u6863\u200b\u8fd8\u200b\u4e0d\u662f\u200b\u5f88\u591a\u200b\uff0c\u200b\u6240\u4ee5\u200b\u76ee\u524d\u200b\u8fd8\u662f\u200b\u9760\u200b\u5b98\u65b9\u200b\u7684\u200b\u6587\u6863\u200b\uff1aTypst Documentation\uff0c\u200b\u8fc7\u200b\u4e00\u904d\u200b\u91cc\u9762\u200b\u7684\u200b Tutorial \u200b\u90e8\u5206\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u57fa\u672c\u4e0a\u200b\u638c\u63e1\u200b Typst \u200b\u7684\u200b\u4f7f\u7528\u200b\u4e86\u200b\u3002\u200b\u4e4b\u540e\u200b\u5c31\u662f\u200b\u5199\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u5565\u200b\u5c31\u200b\u5728\u200b\u6587\u6863\u200b\u91cc\u200b\u641c\u200b\u5565\u200b\u3002
\u200b\u53e6\u5916\u200b\u5c31\u662f\u200b\u770b\u770b\u200b awesome-typst-cn \u200b\u91cc\u9762\u200b\u7684\u200b\u4e00\u4e9b\u200b\u8d44\u6e90\u200b\uff0c\u200b\u6bd4\u5982\u200b Typst \u200b\u7684\u200b\u6a21\u677f\u200b\uff0cTypst \u200b\u7684\u200b\u63d2\u4ef6\u200b\u7b49\u7b49\u200b\u3002\u200b\u6bd4\u8f83\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u5c31\u200b\u4e0d\u518d\u200b\u8d58\u8ff0\u200b\u4e86\u200b\u3002\u200b\u7279\u522b\u200b\u662f\u200b\u9047\u5230\u200b\u5565\u200b\u95ee\u9898\u200b\u53ef\u4ee5\u200b\u5148\u200b\u770b\u770b\u200b\u8fd9\u200b\u91cc\u9762\u200b\u7684\u200b\u6a21\u677f\u200b\u91cc\u200b\u65f6\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b\u7684\u200b\u3002
\u200b\u5c24\u5176\u200b\u63a8\u8350\u200b\u5176\u4e2d\u200b\u7684\u200b nju-thesis-typst\uff0c\u200b\u8fd9\u662f\u200b\u5357\u4eac\u5927\u5b66\u200b\u7684\u200b\u672c\u79d1\u751f\u200b\u6bd5\u4e1a\u8bba\u6587\u200b\u7684\u200b\u6a21\u677f\u200b\uff0c\u200b\u91cc\u9762\u200b\u7684\u200b README \u200b\u91cc\u200b\u6709\u200b\u8be6\u7ec6\u200b\u7684\u200b\u4f7f\u7528\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u800c\u4e14\u200b\u4ee3\u7801\u200b\u4e5f\u200b\u975e\u5e38\u200b\u7b80\u6d01\u200b\u9ad8\u6548\u200b\uff0c\u200b\u57fa\u672c\u200b\u628a\u200b\u6240\u6709\u200b\u5751\u200b\u90fd\u200b\u89e3\u51b3\u200b\u4e86\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u4f5c\u4e3a\u200b\u53c2\u8003\u200b\u3002
"},{"location":"PeiPei/typst/#vscode","title":"VSCode \u200b\u63d2\u4ef6","text":"\u200b\u9996\u5148\u200b\u662f\u200b awesome-typst-cn \u200b\u91cc\u200b\u63a8\u8350\u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u200b\u5c31\u200b\u4e0d\u518d\u200b\u8d58\u8ff0\u200b\u4e86\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u770b\u200b\u4e0a\u9762\u200b\u7684\u200b\u94fe\u63a5\u200b\u3002\u200b\u6211\u200b\u81ea\u5df1\u200b\u7528\u200b\u4e86\u200b Typst LSP \u200b\u548c\u200b Typst Preview \u200b\u8fd9\u200b\u4e24\u4e2a\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b VSCode \u200b\u91cc\u200b\u76f4\u63a5\u200b\u9884\u89c8\u200b Typst \u200b\u7684\u200b\u6548\u679c\u200b\uff0c\u200b\u5341\u5206\u200b\u65b9\u4fbf\u200b\u3002
\u200b\u9664\u6b64\u4e4b\u5916\u200b\uff0c\u200b\u6211\u200b\u8fd8\u200b\u7528\u200b\u4e86\u200b VSCode \u200b\u7684\u200b Paste Image \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u7c98\u8d34\u200b\u56fe\u7247\u200b\uff0c\u200b\u5341\u5206\u200b\u65b9\u4fbf\u200b\u3002\u200b\u7136\u540e\u200b\u987a\u5e26\u200b\u4fee\u6539\u200b\u4e00\u4e0b\u200b\u7c98\u8d34\u200b\u683c\u5f0f\u200b\uff1a
\"pasteImage.insertPattern\": \"#figure(\\n image(\\\"${imageSyntaxPrefix}${imageFilePath}${imageSyntaxSuffix}\\\", width: 100%),\\n caption: \\\"\\\",\\n) <>\",\n
\u200b\u8fd9\u6837\u200b\u7c98\u8d34\u200b\u7684\u200b\u56fe\u7247\u200b\u5c31\u200b\u4f1a\u200b\u53d8\u6210\u200b\uff1a
#figure(\n image(\"xxx\", width: 100%),\n caption: \"\",\n) <>\n
"},{"location":"PeiPei/typst/#_2","title":"\u4e00\u4e9b\u200b\u6280\u5de7","text":""},{"location":"PeiPei/typst/#_3","title":"\u4e2d\u82f1\u6587\u200b\u4e0d\u540c\u200b\u5b57\u4f53","text":"\u200b\u7ed9\u200b text \u200b\u4f20\u5165\u200b font \u200b\u65f6\u200b\uff0c\u200b\u5982\u679c\u200b\u4f20\u5165\u200b\u4e00\u4e2a\u200b array\uff0cTypst \u200b\u4f1a\u200b\u6309\u200b\u987a\u5e8f\u200b\u9009\u62e9\u200b\u7b2c\u4e00\u4e2a\u200b\u5b58\u5728\u200b\u7684\u200b\u5b57\u4f53\u200b\u3002\u200b\u6240\u4ee5\u200b\u53ef\u4ee5\u200b\u8fd9\u6837\u200b\u5199\u200b\uff1a
#set text(font: (\"Times New Roman\", \"SimSun\"))\n
\u200b\u8fd9\u6837\u200b\u4e2d\u6587\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b\u5b8b\u4f53\u200b\uff0c\u200b\u82f1\u6587\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b Times New Roman\u3002\u200b\u53e6\u5916\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b\u81ea\u5e26\u200b\u7684\u200b SimSun\u3001SimHei \u200b\u4e4b\u7c7b\u200b\u7684\u200b\u5b57\u4f53\u200b\u4e0d\u200b\u652f\u6301\u200b Typst \u200b\u4f20\u5165\u200b\u7684\u200b weight \u200b\u53c2\u6570\u200b\uff0c\u200b\u5efa\u8bae\u200b\u4f7f\u7528\u200b\u601d\u6e90\u200b\u9ed1\u4f53\u200b\u3001\u200b\u601d\u6e90\u200b\u5b8b\u4f53\u200b\u4e4b\u7c7b\u200b\u7684\u200b\u5b57\u4f53\u200b\u3002Typst \u200b\u7684\u200b weight \u200b\u662f\u200b\u9009\u62e9\u200b\u53d8\u4f53\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u624b\u52a8\u200b\u52a0\u7c97\u200b\u5b57\u4f53\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5982\u679c\u200b\u5b57\u4f53\u200b\u4e0d\u200b\u652f\u6301\u200b\u53d8\u4f53\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u663e\u793a\u200b\u4e0d\u200b\u51fa\u6765\u200b\u3002
\u200b\u4e2d\u6587\u5b57\u4f53\u200b\u4e5f\u200b\u4e0d\u200b\u652f\u6301\u200b\u659c\u4f53\u200b\uff0c\u200b\u5e94\u8be5\u200b\u7528\u200b\u6977\u4f53\u200b\u4ee3\u66ff\u200b\u3002show
\u200b\u4e00\u4e0b\u200b\u518d\u200b\u8bbe\u7f6e\u200b text
\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b\u3002\u200b\u4f8b\u5982\u200b\uff1a
#show emph: text.with(font: (\"Linux Libertine\", \"STKaiti\"))\n
\u200b\u66f4\u200b\u8be6\u7ec6\u200b\u7684\u200b\u770b\u200b\u8fd9\u4e2a\u200b issue
"},{"location":"PeiPei/typst/#_4","title":"\u6bb5\u843d\u200b\u9996\u200b\u884c\u200b\u7f29\u8fdb","text":"Typst \u200b\u548c\u200b \\(\\LaTeX\\) \u200b\u4e00\u6837\u200b\uff0c\u200b\u8bbe\u7f6e\u200b\u9996\u200b\u884c\u200b\u7f29\u8fdb\u200b\u540e\u200b\uff0c\u200b\u6bcf\u4e2a\u200b\u7ae0\u8282\u200b\u7684\u200b\u7b2c\u4e00\u4e2a\u200b\u6bb5\u843d\u200b\u4ecd\u7136\u200b\u4e0d\u4f1a\u200b\u7f29\u8fdb\u200b\u3002\u200b\u53ea\u597d\u200b\u52a0\u200b\u4e00\u4e2a\u200b\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\uff0c\u200b\u52a0\u4e0a\u200b\u4e00\u4e2a\u200b v(-1em)
\u200b\u6765\u200b\u5b9e\u73b0\u200b\uff1a
#let fake-par = {\n v(-1em)\n show par: set block(spacing: 0pt)\n par(\"\")\n}\n
\u200b\u4e4b\u540e\u200b\u901a\u8fc7\u200b show \u200b\u547d\u4ee4\u200b\u5728\u200b heading
terms
list
enum
figure
table
raw
\u200b\u4e4b\u7c7b\u200b\u7684\u200b\u4e1c\u897f\u200b\u540e\u9762\u200b\u52a0\u4e0a\u200b\u8fd9\u4e2a\u200b\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b\uff0c\u200b\u4f8b\u5982\u200b\u7ed9\u200b heading
\u200b\u52a0\u4e0a\u200b\uff1a
show heading: it => {\n it\n v(5pt)\n fake-par\n}\n
\u200b\u5f53\u7136\u200b\u4e3a\u4e86\u200b\u7f8e\u89c2\u200b\u6211\u200b\u8fd9\u91cc\u200b\u53e6\u5916\u200b\u52a0\u200b\u4e86\u200b\u4e2a\u200b v(5pt)
\uff0c\u200b\u53ef\u4ee5\u200b\u6839\u636e\u200b\u81ea\u5df1\u200b\u7684\u200b\u559c\u597d\u200b\u8c03\u6574\u200b\u3002\u200b\u5bf9\u4e8e\u200b\u4ee3\u7801\u200b\u5757\u200b raw
\u200b\u8981\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u884c\u5185\u200b\u4ee3\u7801\u200b\u548c\u200b\u4ee3\u7801\u200b\u5757\u200b\u7684\u200b raw
\u200b\u8981\u200b\u505a\u200b\u533a\u522b\u200b\uff0c\u200b\u884c\u5185\u200b\u4ee3\u7801\u200b\u4e0d\u200b\u9700\u8981\u200b\u5728\u200b\u540e\u9762\u200b\u52a0\u5047\u200b\u7684\u200b\u6bb5\u843d\u200b\uff0c\u200b\u6240\u4ee5\u200b\u8981\u52a0\u200b\u4e00\u4e2a\u200b block: true
\u200b\u6765\u200b\u533a\u5206\u200b\uff1a
show raw.where(block: true): it => {\n it\n fake-par\n}\n
\u200b\u53e6\u5916\u200b terms
\u200b\u5982\u679c\u200b\u8bbe\u7f6e\u200b\u4e86\u200b\u9996\u884c\u200b\u7f29\u8fdb\u200b\u4f1a\u200b\u6709\u200b\u4e00\u4e9b\u200b\u95ee\u9898\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5728\u200b terms
\u200b\u5757\u200b\u91cc\u200b\u8981\u200b\u53d6\u6d88\u200b\u7f29\u8fdb\u200b\uff0c\u200b\u4f8b\u5982\u200b\uff1a
show terms: it => {\n set par(first-line-indent: 0pt)\n set terms(indent: 10pt, hanging-indent: 9pt)\n it\n fake-par\n}\n
"},{"location":"PeiPei/typst/#_5","title":"\u4ee3\u7801\u200b\u5757\u200b\u663e\u793a\u200b\u884c\u53f7","text":"#show raw.where(block: true): it => { set par(justify: false); grid(\n columns: (100%, 100%),\n column-gutter: -100%,\n block(width: 100%, inset: 1em, for i, line in it.text.split(\"\\n\") {\n box(width: 0pt, align(right, str(i + 1) + h(2em)))\n hide(line)\n linebreak()\n }),\n block(radius: 1em, fill: luma(246), width: 100%, inset: 1em, it),\n)}\n
\u200b\u53e6\u5916\u200b\u8fd9\u4e2a\u200b issue \u200b\u91cc\u9762\u200b\u4e5f\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u5176\u4ed6\u200b\u7684\u200b\u65b9\u6cd5\u200b\u3002
"},{"location":"Research/","title":"Research","text":"\u200b\u867d\u7136\u200b\u662f\u200b\u79d1\u7814\u200b\u83dc\u200b\ud83d\udc36\u200b\u4f46\u200b\u8fd8\u662f\u200b\u628a\u200b\u4e00\u4e9b\u200b\u7b14\u8bb0\u200b\u653e\u5728\u200b\u8fd9\u91cc\u200b\u597d\u200b\u4e86\u200b QaQ
Research list
Useful pages:
\u200b\u7ea6\u200b 734 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
Abstract
\u200b\u5bf9\u4e8e\u200b DDIM\uff0c\u200b\u9996\u5148\u200b\u8fd8\u662f\u200b\u63a8\u8350\u200b\u9605\u8bfb\u200b\u82cf\u5251\u6797\u200b\u7684\u200b\u535a\u5ba2\u200b.\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b\u53ef\u4ee5\u200b\u8ddf\u8bfb\u200b\uff0c\u200b\u6587\u7ae0\u200b\u4e2d\u6709\u200b\u6211\u200b\u5374\u200b\u6ca1\u6709\u200b\u63d0\u200b\u7684\u200b\u90e8\u5206\u200b\u5c31\u662f\u200b\u6211\u200b\u8ba4\u4e3a\u200b\u6ca1\u4ec0\u4e48\u200b\u597d\u200b\u8865\u5145\u200b\u7684\u200b\u4e86\u200b.
"},{"location":"Research/Diffusion%20Model/DDIM/#_1","title":"\u6e05\u6d17","text":"\u200b\u4ece\u200b DDPM \u200b\u90a3\u7bc7\u200b\u535a\u5ba2\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u5df2\u7ecf\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\\(p(x_t|x_{t-1})\\)\u200b\u8fd9\u4e00\u200b\u524d\u540e\u200b\u8fde\u7eed\u200b\u65f6\u95f4\u200b\u7684\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u5df2\u7ecf\u200b\u6ca1\u6709\u200b\u4f7f\u7528\u200b\u5230\u200b\u4e86\u200b\uff0c\u200b\u5c3d\u7ba1\u200b\u6211\u4eec\u200b\u5f53\u65f6\u200b\u7ed9\u5b9a\u200b\u4e86\u200b\u8fd9\u200b\u4e00\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u7684\u200b\u8868\u8fbe\u5f0f\u200b\uff0c\u200b\u5e76\u200b\u4ee5\u6b64\u200b\u63a8\u51fa\u200b\u4e86\u200b\\(p(x_t|x_0)\\).\u200b\u4f46\u662f\u200b\u65e2\u7136\u200b\u6ca1\u6709\u200b\u7528\u5230\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5b8c\u6210\u200b\u540e\u7eed\u200b\u63a8\u5bfc\u200b\u63a8\u5bfc\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u4fdd\u7559\u200b\u540e\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u7684\u200b\u524d\u63d0\u200b\u4e0b\u200b\uff0c\u200b\u4e0d\u518d\u200b\u5b9a\u200b\u6b7b\u200b\u524d\u9762\u200b\u7684\u200b\u72b6\u6001\u200b\u8f6c\u79fb\u200b\u51fd\u6570\u200b\u4e86\u200b\uff0c\u200b\u5148\u200b\u5c06\u200b\u5176\u200b\u5f53\u4f5c\u200b\u5f85\u5b9a\u200b\uff0c\u200b\u770b\u770b\u200b\u8fd9\u200b\u4e00\u65b0\u200b\u7684\u200b\u81ea\u7531\u5ea6\u200b\u4f1a\u200b\u5e26\u6765\u200b\u4ec0\u4e48\u200b.
\u200b\u4e8e\u662f\u200b\u5728\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c06\u200b\u8fd9\u200b\u4e00\u9879\u200b\u79ef\u6389\u200b\uff0c\u200b\u968f\u540e\u200b\u4fdd\u6301\u200b\u6211\u4eec\u200b\u8d70\u51fa\u200b\u7684\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u6b63\u6001\u5206\u5e03\u200b\u7684\u200b\u5047\u8bbe\u200b\uff0c\u200b\u7528\u200b\u5f85\u5b9a\u200b\u7cfb\u6570\u200b\u6cd5\u200b\u6c42\u89e3\u200b.
\u200b\u7136\u540e\u200b\u6211\u4eec\u200b\u5c31\u200b\u770b\u89c1\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u65b9\u7a0b\u200b\u4e66\u5c11\u200b\u4e86\u200b\u53e6\u200b\u4e00\u4e2a\u200b\uff0c\u200b\u8fd9\u200b\u4e8b\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u4e0d\u518d\u200b\u9650\u5236\u200b\\(p(x_t|x_{t-1})\\)\u200b\u81ea\u7136\u200b\u5c31\u200b\u591a\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u5173\u4e8e\u200b\u8fd9\u4e2a\u200b\u51fd\u6570\u200b\u53ef\u4ee5\u200b\u662f\u200b\u4ec0\u4e48\u200b\u7684\u200b\u81ea\u7531\u5ea6\u200b\uff08\u200b\u5f53\u7136\u200b\u8fd9\u4e2a\u200b\u51fd\u6570\u200b\u4e0d\u200b\u4e00\u5b9a\u200b\u8fd8\u662f\u200b DDPM \u200b\u7684\u200b\u5f62\u5f0f\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u4ed6\u200b\u8fd8\u662f\u200b\u8981\u200b\u6ee1\u8db3\u200b\u5176\u4ed6\u200b\u7ed9\u5b9a\u200b\u7684\u200b\u6027\u8d28\u200b\uff0c\u200b\u6bd4\u5982\u200b\u4fdd\u8bc1\u200b\\(p(x_t|x_0)\\)\u200b\u5f62\u5f0f\u200b\u5982\u200b\u524d\u200b\uff09\uff0c\u200b\u6211\u4eec\u200b\u8c03\u8282\u200b\u8fd9\u4e2a\u200b\u65b0\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5c31\u662f\u200b\u6362\u200b\u4e0d\u540c\u200b\u7684\u200b\u6ee1\u8db3\u6761\u4ef6\u200b\u7684\u200b\\(p(x_t|x_{t-1})\\)\u200b\u89e3\u200b\uff0c\u200b\u4f7f\u200b\u5176\u200b\u8868\u73b0\u200b\u51fa\u200b\u4e0d\u540c\u200b\u7684\u200b\u7279\u6027\u200b.
\u200b\u968f\u540e\u200b\u7684\u200b\u81ea\u7136\u200b\u5c31\u662f\u200b\u51e0\u4e2a\u200b\u4e0d\u540c\u200b\u7684\u200b\u4f8b\u5b50\u200b\u4e86\u200b.\u200b\u9996\u5148\u200b\uff0c\u200b\u4e00\u5b9a\u200b\u5b58\u5728\u200b\u67d0\u4e2a\u200b\\(\\sigma_t\\)\u200b\u4f7f\u5f97\u200b\\(p(x_t|x_{t-1})\\)\u200b\u8fd8\u662f\u200b\u8ddf\u200b DDPM \u200b\u4e00\u6837\u200b\u7684\u200b\u53d6\u503c\u200b\uff0c\u200b\u6211\u4eec\u200b\u628a\u200b DDPM \u200b\u4e2d\u200b\u7684\u200b\u65b9\u5dee\u200b\u5e26\u5165\u200b\uff0c\u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u8ddf\u200b DDPM \u200b\u4e2d\u200b\u4e00\u6837\u200b\u7684\u200b\u7ed3\u679c\u200b.\u200b\u4ee5\u53ca\u200b\u6587\u7ae0\u200b\u4e2d\u200b\u5efa\u8bae\u200b\u7684\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u65b9\u5dee\u200b\uff0c\u200b\u90fd\u200b\u80fd\u200b\u5f97\u5230\u200b\u4e0d\u9519\u200b\u7684\u200b\u7ed3\u679c\u200b.\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u53d6\u200b\u4e00\u4e9b\u200b\u7279\u6b8a\u200b\u7684\u200b\u503c\u200b\uff0c\u200b\u6bd4\u5982\u200b\u5b8c\u5168\u200b\u53bb\u6389\u200b\u65b9\u5dee\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u5f80\u56de\u200b\u8d70\u200b\u7684\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5411\u91cf\u200b\u800c\u200b\u4e0d\u518d\u200b\u662f\u200b\u4e00\u4e2a\u200b\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u6837\u200b\u8d70\u200b\u7684\u200b\u6548\u679c\u200b\u5f88\u200b\u597d\u200b.
"},{"location":"Research/Diffusion%20Model/DDIM/#_2","title":"\u52a0\u901f","text":"\u200b\u8fd9\u90e8\u5206\u200b\u539f\u200b\u8bba\u6587\u200b\u7684\u200b\u601d\u60f3\u200b\u5b9e\u5728\u200b\u662f\u200b\u7cbe\u5999\u200b\uff0c\u200b\u7528\u200b\u7c7b\u6bd4\u200b\u800c\u8a00\u200b\uff0c\u200b\u6211\u4eec\u200b\u4ece\u200b\u8d77\u70b9\u200b\u51fa\u53d1\u200b\u8d70\u200b\u4e86\u200b 1000 \u200b\u6b65\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u6bcf\u200b 5 \u200b\u6b65\u8bb0\u200b\u4e00\u6b65\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u770b\u4f5c\u200b\u662f\u200b 200 \u200b\u6b65\u200b\u8d70\u200b\u5230\u200b\u4e86\u200b\u540c\u4e00\u4e2a\u200b\u5730\u65b9\u200b\uff0c\u200b\u53ea\u8981\u200b\u6211\u4eec\u200b\u7684\u200b\u6a21\u578b\u200b\u9884\u6d4b\u200b\u7684\u200b\u8db3\u591f\u200b\u597d\u200b\uff0c\u200b\u5b8c\u5168\u200b\u7406\u89e3\u200b\u6211\u4eec\u200b\u662f\u200b\u6cbf\u7740\u200b\u90a3\u6761\u200b\u8def\u5f80\u200b\u5916\u200b\u8d70\u200b\u7684\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u200b 200 \u200b\u6b65\u200b\u4e5f\u200b\u8db3\u4ee5\u200b\u8ba9\u200b\u6211\u4eec\u200b\u8d70\u200b\u56de\u6765\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u52a0\u901f\u200b.\u200b\u8fd9\u4e00\u200b\u8fc7\u7a0b\u200b\u662f\u200b\u6709\u70b9\u50cf\u200b C++\u200b\u91cc\u200b\u7684\u200b upcasat\uff0c\u200b\u6211\u200b\u539f\u5148\u200b\u5f53\u200b\u4f60\u200b\u662f\u200b\u4e2a\u200b Shape \u200b\u7c7b\u200b\uff0c\u200b\u4f46\u200b\u6211\u200b\u77e5\u9053\u200b\u4f60\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u4e2a\u200b Circle\uff0c\u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u628a\u200b\u6307\u9488\u200b\u6539\u6210\u200b Circle*\u200b\u6765\u200b\u628a\u200b\u4f60\u200b\u5f53\u505a\u200b\u4e00\u4e2a\u200b circle \u200b\u5bf9\u5f85\u200b\uff0c\u200b\u5bf9\u8c61\u200b\u5e76\u200b\u6ca1\u6709\u200b\u53d8\u200b\uff0c\u200b\u53ea\u662f\u200b\u6211\u4eec\u200b\u5904\u7406\u200b\u4ed6\u200b\u7684\u200b\u65b9\u5f0f\u200b\u53d8\u200b\u4e86\u200b\uff0c\u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u4fee\u6539\u200b\u597d\u200b\u9002\u5408\u200b\u4e8e\u200b 200 \u200b\u6b65\u200b\u7684\u200b\\(\\alpha\uff0c\\beta\\)\u200b\u6765\u200b\u53cd\u5411\u200b\u91c7\u6837\u200b.
\u200b\u6700\u540e\u200b\u4e00\u6bb5\u200b\u628a\u200b DDPM \u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u200b\u9636\u200b\u5fae\u5206\u65b9\u7a0b\u200b\u7684\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u503c\u5f97\u4e00\u770b\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/","title":"DDPM","text":"\u200b\u7ea6\u200b 2473 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 8 \u200b\u5206\u949f\u200b
\u200b\u5173\u4e8e\u200b DDPM \u200b\u7684\u200b\u4e09\u79cd\u200b\u7406\u89e3\u200b\u65b9\u5f0f\u200b\u548c\u200b\u4e00\u4e9b\u200b\u76f4\u89c2\u200b\u7684\u200b\u89e3\u91ca\u200b
"},{"location":"Research/Diffusion%20Model/DDPM/#ddpm_1","title":"\u8ba4\u8bc6\u200b DDPM","text":"\u200b\u9996\u5148\u200b\uff0c\u200b\u8ba4\u8bc6\u200b DDPM \u200b\u6700\u597d\u200b\u7684\u200b\u65b9\u5f0f\u200b\u5c31\u662f\u200b\u5148\u200b\u53bb\u200b\u8bfb\u4e00\u8bfb\u200b\u5927\u4f6c\u200b\u5bf9\u4e8e\u200b\u76f4\u89c2\u200b\u7406\u89e3\u200b DDPM \u200b\u7684\u200b\u8bb2\u89e3\u200b\u535a\u5ba2\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u5f15\u7528\u200b\u3010\u200b\u82cf\u5251\u6797\u200b](https://kexue.fm/archives/9119) \u200b\u5927\u4f6c\u200b\u7684\u200b\u535a\u5ba2\u200b\uff0c\u200b\u5efa\u8bae\u200b\u5927\u5bb6\u200b\u5148\u200b\u8bfb\u5b8c\u200b\u7b2c\u4e00\u7bc7\u200b\u6269\u6563\u200b\u6a21\u578b\u200b\u6f2b\u8c08\u200b\uff0c\u200b\u660e\u767d\u200b DDPM \u200b\u662f\u200b\u505a\u200b\u4ec0\u4e48\u200b\u7684\u200b\uff0c\u200b\u518d\u200b\u56de\u5230\u200b\u672c\u6587\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/#_1","title":"\u5728\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u6e38\u200b\u8d70","text":"DDPM\uff0c\u200b\u6309\u7167\u200b\u539f\u6587\u200b\u7684\u200b\u4ecb\u7ecd\u200b\uff0c\u200b\u4e0d\u200b\u53ea\u200b\u53ef\u4ee5\u200b\u7528\u4e8e\u200b\u5904\u7406\u200b\u56fe\u50cf\u200b\u4fe1\u606f\u200b\uff0c\u200b\u4f46\u662f\u200b\u539f\u6587\u200b\u7684\u200b\u5206\u6790\u200b\u4e3b\u8981\u200b\u662f\u4ece\u200b\u56fe\u50cf\u200b\u6765\u8bb2\u200b\u7684\u200b\uff08\u200b\u662f\u200b\u5427\u200b\uff09\uff0c\u200b\u6240\u4ee5\u200b\u6211\u200b\u4e5f\u200b\u4ece\u200b\u56fe\u50cf\u200b\u5206\u6790\u200b\u7684\u200b\u89d2\u5ea6\u200b\u6765\u8bf4\u200b\u4e00\u4e0b\u200b\u5427\u200b.
\u200b\u4ec0\u4e48\u200b\u662f\u200b\u56fe\u50cf\u200b\uff1f\u200b\u6309\u7167\u200b\u6700\u200b\u7b80\u5355\u200b\u7684\u200b\u89d2\u5ea6\u200b\u7406\u89e3\u200b\uff0c\u200b\u56fe\u50cf\u200b\u5c31\u662f\u200b\u50cf\u7d20\u200b\u503c\u200b\u77e9\u9635\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u628a\u200b\u4e00\u5e45\u200b\u56fe\u200b\u4ece\u200b\u5de6\u4e0a\u89d2\u200b\u5230\u200b\u53f3\u4e0b\u89d2\u200b\u7684\u200b\u6240\u6709\u200b\u50cf\u7d20\u200b\u503c\u200b\uff08\u200b\u53ef\u80fd\u200b\u5206\u200b RGB \u200b\u4e09\u4e2a\u200b\u77e9\u9635\u200b\uff09\u200b\u90fd\u200b\u5b58\u50a8\u200b\u8d77\u6765\u200b\uff0c\u200b\u5c31\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u8fd9\u4e2a\u200b\u4e2a\u200b\u56fe\u50cf\u200b\u7684\u200b\u6240\u6709\u200b\u4fe1\u606f\u200b.
\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u518d\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u56fe\u50cf\u200b\u4ece\u200b\u77e9\u9635\u200b\u62fc\u63a5\u200b\u6210\u200b\u4e00\u4e2a\u200b\u5411\u91cf\u200b\uff0c\u200b\u56fe\u50cf\u200b\u5c31\u200b\u6210\u200b\u4e86\u200b\u4e00\u4e2a\u200b\u5f88\u200b\u9ad8\u200b\u7ef4\u5ea6\u200b\u7684\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\uff08\u200b\u6bd4\u5982\u200b 1024*1024 \u200b\u7ef4\u200b\uff09\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\uff0c\u200b\u6709\u4e9b\u200b\u70b9\u200b\u662f\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u56fe\u50cf\u200b\uff08\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u603b\u80fd\u200b\u62ff\u6765\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u56fe\u50cf\u200b\uff0c\u200b\u628a\u200b\u56fe\u50cf\u200b\u6620\u5c04\u200b\u5230\u200b\u70b9\u200b\u4e0a\u200b\uff09\uff0c\u200b\u5927\u90e8\u5206\u200b\u5374\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u566a\u58f0\u200b\u56fe\u200b\uff08\u200b\u60f3\u8c61\u200b\u4e00\u4e0b\u200b\u7535\u89c6\u200b\u82b1\u5c4f\u200b\uff0c\u200b\u6211\u4eec\u200b\u968f\u673a\u200b\u5728\u200b\u7a7a\u95f4\u200b\u91cc\u53d6\u200b\u4e00\u4e2a\u70b9\u200b\u5927\u6982\u200b\u5c31\u662f\u200b\u8fd9\u6837\u200b\u7684\u200b\uff09\uff0cDDPM \u200b\u5c31\u662f\u200b\u8bd5\u56fe\u200b\u4ece\u200b\u8fd9\u4e2a\u200b\u7a7a\u95f4\u200b\u7684\u200b\u968f\u673a\u200b\u4e00\u4e2a\u70b9\u200b\u51fa\u53d1\u200b\uff0c\u200b\u5e0c\u671b\u200b\u627e\u5230\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5728\u200b\u9ad8\u200b\u7ef4\u7a7a\u95f4\u200b\u4e2d\u6e38\u200b\u8d70\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/#_2","title":"\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u5206\u5e03","text":"\u200b\u6211\u4eec\u200b\u5f88\u200b\u597d\u200b\u7406\u89e3\u200b\u4f5c\u4e3a\u200b\u4e00\u4e2a\u70b9\u200b\u7684\u200b\u56fe\u50cf\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u70b9\u200b\u5750\u6807\u200b\u62ff\u200b\u51fa\u6765\u200b\uff0c\u200b\u8fd8\u539f\u6210\u200b\u77e9\u9635\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8fd8\u539f\u200b\u5230\u200b\u56fe\u50cf\u200b\u4e86\u200b\uff0c\u200b\u90a3\u4e48\u200b\u4ec0\u4e48\u200b\u662f\u200b\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\uff1f
\u200b\u60f3\u8c61\u200b\u4e00\u4e2a\u200b\u5750\u6807\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u548c\u200b\u4e00\u4e2a\u200b\u5747\u503c\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u4e8c\u7ef4\u200b\u6b63\u6001\u5206\u5e03\u200b\uff0c\u200b\u8fd9\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u4e8c\u8005\u200b\u7684\u200b\u533a\u522b\u200b\uff0c\u200b\u4e00\u4e2a\u70b9\u200b\u53ef\u4ee5\u200b\u51c6\u786e\u200b\u8fd8\u539f\u200b\u5230\u200b\u4e00\u5e45\u200b\u56fe\u50cf\u200b\uff0c\u200b\u4f46\u200b\u6982\u7387\u5206\u5e03\u200b\u5e76\u200b\u4e0d\u200b\u51c6\u786e\u200b\uff0c\u200b\u4ed6\u200b\u53ea\u662f\u200b\u544a\u8bc9\u200b\u6211\u4eec\u200b\u8fd9\u5e45\u200b\u56fe\u200b\u662f\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u5b83\u200b\u4e5f\u200b\u53ef\u80fd\u200b\u662f\u200b\u5176\u4ed6\u200b\u56fe\u50cf\u200b\uff0c\u200b\u5b83\u200b\u662f\u200b\u5176\u4ed6\u200b\u56fe\u50cf\u200b\u7684\u200b\u6982\u7387\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u6982\u7387\u5206\u5e03\u200b\u7b97\u200b\u51fa\u200b\uff0c\u200b\u6bd4\u5982\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u786e\u5b9a\u200b\u4ed6\u200b\u662f\u200b\uff081\uff0c3\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u662f\u200b\u591a\u5c11\u200b.
\u200b\u90a3\u4e48\u200b\uff0c\u200b\u7ed9\u5b9a\u200b\u4e00\u4e2a\u200b\u56fe\u50cf\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u6211\u4eec\u200b\u5982\u4f55\u200b\u83b7\u53d6\u200b\u56fe\u50cf\u200b\u5462\u200b\uff1f\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u53d6\u200b\u5747\u503c\u200b\u7684\u200b\u5230\u200b\u56fe\u50cf\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\uff081\uff0c2\uff09\uff0c\u200b\u8fd9\u4e48\u200b\u505a\u200b\u7684\u200b\u9053\u7406\u200b\u662f\u200b\uff1a\u200b\u5b83\u200b\u662f\u200b\u8fd9\u5e45\u200b\u56fe\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u6309\u7167\u200b\u6982\u7387\u200b\u53bb\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u53ef\u80fd\u200b\u662f\u200b\uff081\uff0c2\uff09\uff0c\u200b\u4e5f\u200b\u53ef\u80fd\u200b\u662f\u200b\uff082\uff0c4\uff09\uff0c\u200b\u4f46\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u6700\u9ad8\u200b\uff0c\u200b\u4e00\u4e9b\u200b\u5f88\u200b\u79bb\u8c31\u200b\u7684\u200b\u70b9\u200b\uff08\u200b\u504f\u79bb\u200b\u5747\u503c\u200b\u5f88\u200b\u8fdc\u200b\uff09\u200b\u7684\u200b\u6982\u7387\u200b\u5c31\u200b\u5f88\u200b\u4f4e\u200b.
\u200b\u56de\u5230\u200b DDPM \u200b\u7684\u200b\u5411\u524d\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u8d77\u70b9\u200b\u662f\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\uff081\uff0c2\uff09\uff0c\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e86\u200b\u4e00\u6b65\u200b\u4e4b\u540e\u200b\uff0c\u200b\u5c31\u200b\u4e0d\u518d\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u800c\u662f\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\u53ef\u4ee5\u200b\u8fd1\u4f3c\u200b\u770b\u6210\u200b\u5747\u503c\u200b\u4e3a\u200b\uff081\uff0c2\uff09\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u60f3\u50cf\u200b\u6211\u4eec\u200b\u4ece\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e00\u4e2a\u70b9\u200b\u51fa\u53d1\u200b\uff0c\u200b\u8d70\u200b\u4e86\u200b\u4e00\u6b65\u200b\u540e\u200b\uff0c\u200b\u53ef\u80fd\u200b\u5728\u200b\u4ee5\u200b\u5176\u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u4efb\u4f55\u200b\u4e00\u4e2a\u200b\u5730\u65b9\u200b\u4e0a\u200b\uff0c\u200b\u4e0d\u540c\u200b\u7684\u200b\u8ddd\u79bb\u200b\uff0c\u200b\u6982\u7387\u200b\u90fd\u200b\u4e0d\u540c\u200b\uff08\u200b\u53ef\u4ee5\u200b\u7c7b\u6bd4\u200b\u7535\u5b50\u4e91\u200b\uff09.\u200b\u6211\u4eec\u200b\u518d\u200b\u8d70\u200b\u7b2c\u4e8c\u6b65\u200b\uff0c\u200b\u8ddd\u79bb\u200b\u5c31\u200b\u4f1a\u200b\u66f4\u200b\u8fdc\u200b\u4e00\u4e9b\u200b\uff0c\u200b\u6982\u7387\u5206\u5e03\u200b\u66f4\u200b\u5206\u6563\u200b\u4e00\u4e9b\u200b.
\u200b\u6309\u7167\u200b\u539f\u6587\u200b\u8d70\u51fa\u200b\u4e00\u5343\u6b65\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u56fe\u50cf\u200b\u5c31\u200b\u4f1a\u200b\u53d8\u6210\u200b\u4e00\u4e2a\u200b\u4ee5\u200b\u539f\u56fe\u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u5f25\u6563\u200b\u7684\u200b\u5e7f\u9614\u200b\u7684\u200b\u7c7b\u4f3c\u200b\u7403\u200b\u7684\u200b\u6982\u7387\u5206\u5e03\u200b\u5185\u200b\u4e86\u200b.\u200b\u56e0\u200b\u5176\u200b\u5e7f\u9614\u200b\uff0c\u200b\u6211\u4eec\u200b\u5927\u6982\u200b\u6700\u7ec8\u200b\u4f1a\u200b\u505c\u200b\u5728\u200b\u67d0\u200b\u4e00\u4e2a\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u4e0a\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6211\u200b\u8bf4\u200b\u7684\u200b\u505c\u200b\u5728\u200b\u4e00\u4e2a\u200b\u566a\u70b9\u200b\u4e0a\u200b\uff0c\u200b\u662f\u200b\u6307\u200b\u4ece\u200b\u6700\u7ec8\u200b\u7684\u200b\u5206\u5e03\u200b\u4e2d\u53d6\u200b\u5747\u503c\u200b\u6216\u8005\u200b\u968f\u673a\u200b\u91c7\u6837\u200b\u5f97\u5230\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u4ee5\u200b\u4ece\u200b\u5206\u5e03\u200b\u8dcc\u56de\u200b\u786e\u5b9a\u200b\u503c\u200b.
\u200b\u539f\u6587\u4e2d\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u6bcf\u6b65\u200b\u600e\u4e48\u200b\u8d70\u200b\u7684\u200b\u516c\u5f0f\u200b\uff0c\u200b\u5176\u200b\u5177\u6709\u200b\u7684\u200b\u826f\u597d\u200b\u6027\u8d28\u200b\u5c31\u662f\u200b\uff1a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u4ece\u200b\u7ed9\u200b\u8ba2\u200b\u7684\u200b\u8d77\u70b9\u200b\uff0c\\(\\alpha\\)\uff0c\\(\\beta\\)\u200b\u4e2d\u200b\u76f4\u63a5\u200b\u63a8\u51fa\u200b\u7b2c\u200b N \u200b\u6b65\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u5e03\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\uff0c1k \u200b\u6b65\u540e\u200b\\(\\bar \\alpha\\)\u200b\u63a5\u8fd1\u200b\u4e8e\u6797\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u5206\u5e03\u200b\u53d6\u200b\u5747\u503c\u200b\u4e5f\u200b\u662f\u200b\u53d6\u200b\u4e0d\u5230\u200b\u539f\u56fe\u200b\u7684\u200b\u4e86\u200b\uff0c\u200b\u5747\u503c\u200b\u5df2\u7ecf\u200b\u5728\u200b 0 \u200b\u9644\u8fd1\u200b.\u200b\u603b\u4f53\u200b\u5206\u5e03\u200b\u63a5\u8fd1\u200b\u9ad8\u65af\u5206\u5e03\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/#_3","title":"\u56de\u5230\u200b\u8d77\u70b9","text":"\u200b\u4ece\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u8d70\u51fa\u200b 1000 \u200b\u6b65\u200b\uff0c\u200b\u5230\u8fbe\u200b\u7684\u200b\u7ec8\u70b9\u200b\uff0c\u200b\u8fd1\u4e4e\u200b\u670d\u4ece\u200b\u9ad8\u65af\u5206\u5e03\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u76f4\u63a5\u200b\u4ece\u200b\u9ad8\u65af\u5206\u5e03\u200b\u91c7\u6837\u200b\uff0c\u200b\u5c31\u200b\u80fd\u200b\u5f97\u5230\u200b\u8fd1\u4f3c\u200b\u4ece\u200b\u67d0\u4e2a\u200b/\u200b\u4efb\u4f55\u200b\u4e00\u4e2a\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\u51fa\u8d70\u200b\u6240\u200b\u8fbe\u5230\u200b\u7684\u200b\u7ec8\u70b9\u200b\u4e86\u200b\uff0c\u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u60f3\u200b\u56de\u53bb\u200b\uff0c\u200b\u600e\u4e48\u200b\u56de\u200b\uff1f
\u200b\u5230\u200b\u8fd9\u91cc\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u89e3\u7b54\u200b\u539f\u200b\u6a21\u578b\u200b\u4e2d\u200b\u4e00\u4e2a\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u4ee4\u4eba\u56f0\u60d1\u200b\u7684\u200b\u70b9\u200b\u4e86\u200b\uff0c\u200b\u5047\u5982\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e86\u200b 500 \u200b\u6b65\u200b\uff0c\u200b\u5230\u200b\u4e86\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8d70\u200b\u4e0b\u200b\u4e00\u6b65\u200b\uff0c\u200b\u5c31\u662f\u200b\u8d70\u200b\u5230\u200b 500 \u200b\u4e3a\u200b\u5706\u5fc3\u200b\u7684\u200b\u4e00\u4e2a\u200b\u6982\u7387\u5206\u5e03\u200b\u4e0a\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u8bad\u7ec3\u200b\u4e00\u4e2a\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u6765\u200b\u62df\u5408\u200b\u7684\u8bdd\u200b\uff0c\u200b\u4e0d\u200b\u5c31\u662f\u200b\u5728\u200b\u62df\u5408\u200b\u9ad8\u65af\u200b\u5417\u200b\uff0c\u200b\u9ad8\u65af\u200b\u53c8\u200b\u4f55\u987b\u200b\u62df\u5408\u200b\u5462\u200b\uff1f
\u200b\u95ee\u9898\u200b\u5c31\u200b\u5728\u200b\u8fd9\u91cc\u200b\u4e86\u200b\uff0c\u200b\u73b0\u5728\u200b\u6211\u4eec\u200b\u968f\u673a\u200b\u91c7\u4e86\u200b\u4e00\u4e2a\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8bf4\u200b\u662f\u200b\u7ec8\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u8d70\u200b\u56de\u53bb\u200b\uff0c\u200b\u5f53\u7136\u200b\u4e0d\u80fd\u200b\u4ee5\u200b\u6bcf\u200b\u4e00\u6b65\u200b\u90fd\u200b\u662f\u200b\u9ad8\u65af\u200b\u8d70\u200b\uff0c\u200b\u90a3\u200b\u6700\u7ec8\u200b\u8d70\u5230\u200b\u7684\u200b\u8fd8\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u77e5\u9053\u200b\uff0c\u200b\u6211\u200b\u73b0\u5728\u200b\u5728\u200b\u8fd9\u91cc\u200b\uff0c\u200b\u90a3\u200b\u6211\u200b\u4e0a\u200b\u4e00\u6b65\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u662f\u4ece\u200b\u54ea\u91cc\u200b\u6765\u200b\u7684\u200b\uff1f\u200b\u6211\u8981\u200b\u56de\u5230\u200b\u90a3\u4e2a\u200b\u5730\u65b9\u200b\u53bb\u200b.
\u200b\u60f3\u8c61\u200b\u4e00\u4e0b\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u91c7\u6837\u200b\u7684\u200b\u70b9\u200b\u5728\u200b\u8d77\u70b9\u200b\u90a3\u4e2a\u200b\u5706\u200b\u7684\u200b\u4e0a\u65b9\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u7684\u200b\u56de\u7b54\u200b\u662f\u200b\uff1a\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u4e0b\u9762\u200b\u6765\u200b\uff0c\u200b\u8981\u200b\u56de\u53bb\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5f80\u4e0b\u8d70\u200b.\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u5728\u200b\u4e0b\u9762\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u4e0a\u9762\u200b\u6765\u200b\uff0c\u200b\u5f80\u4e0a\u8d70\u200b.\u200b\u6240\u4ee5\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u4ece\u200b\u54ea\u91cc\u200b\u6765\u4f1a\u200b\u968f\u7740\u200b\u6211\u200b\u73b0\u5728\u200b\u5728\u200b\u54ea\u91cc\u200b\u800c\u200b\u53d8\u5316\u200b\uff0c\u200b\u6240\u4ee5\u200b\uff0c\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u9884\u6d4b\u200b\u7684\u200b\u65f6\u5019\u200b\u9700\u8981\u200b\u6211\u4eec\u200b\u73b0\u5728\u200b\u7684\u200b\u4f4d\u7f6e\u200b\uff08\\(x_t\\)\uff09\u200b\u548c\u200b\u65f6\u95f4\u200b\uff0c\u200b\u6765\u200b\u62df\u5408\u200b\u6211\u4eec\u200b\u6700\u6709\u200b\u53ef\u80fd\u200b\u6765\u200b\u7684\u200b\u4f4d\u7f6e\u200b.
\u200b\u4e8e\u662f\u200b\u6211\u4eec\u200b\u5f00\u59cb\u200b\u8bad\u7ec3\u200b\uff0c\u200b\u7b2c\u4e00\u6b21\u200b\u8bad\u7ec3\u200b\u53ef\u80fd\u200b\u7f51\u7edc\u200b\u4e00\u6b65\u6b65\u200b\u5f80\u4e0a\u8d70\u200b\uff0c\u200b\u4f7f\u5f97\u200b\u6a21\u578b\u200b\u503e\u5411\u200b\u4e8e\u200b\u5728\u200b\u8fd9\u4e9b\u200b\u8def\u5f84\u200b\u70b9\u4e0a\u200b\u8f93\u51fa\u200b\uff1a\u200b\u563f\u200b\uff0c\u200b\u6211\u200b\u662f\u4ece\u200b\u4e0b\u9762\u200b\u6765\u200b\u7684\u200b\uff0c\u200b\u5f80\u4e0b\u8d70\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u56de\u53bb\u200b.\u200b\u7b2c\u4e8c\u6b21\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u80fd\u200b\u5f80\u200b\u5de6\u200b\u8d70\u200b\uff0c\u200b\u540c\u6837\u200b\u8ba9\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u5728\u200b\u8fd9\u6761\u200b\u8def\u5f84\u200b\u4e0a\u200b\u61c2\u5f97\u200b\u5982\u4f55\u200b\u56de\u5f52\u200b.\u200b\u6700\u7ec8\u200b\uff0c\u200b\u8bad\u7ec3\u200b\u5b8c\u6bd5\u200b\u540e\u200b\uff0c\u200b\u795e\u7ecf\u7f51\u7edc\u200b\u5c31\u200b\u61c2\u5f97\u200b\u5982\u4f55\u200b\u4ece\u200b\u4efb\u610f\u200b\u4e00\u4e2a\u70b9\u200b\u8d70\u200b\u56de\u53bb\u200b\u4e86\u200b.
\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u8bbe\u8ba1\u200b\u5408\u9002\u200b\u7684\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u8ba9\u200b\u8bad\u7ec3\u200b\u8fc7\u7a0b\u200b\u53ef\u4ee5\u200b\u66f4\u597d\u200b\u7684\u200b\u9886\u8def\u200b\u56de\u53bb\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u6587\u7ae0\u200b\u4e2d\u200b\u6570\u5b66\u200b\u90e8\u5206\u200b\u5206\u6790\u200b\u7684\u200b\u5de5\u4f5c\u200b\u4e86\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/#_4","title":"\u795e\u5947\u200b\u7684\u200b\u8bed\u610f\u200b\u878d\u5408","text":"\u200b\u6211\u200b\u4e5f\u200b\u4e0d\u200b\u77e5\u9053\u200b\u5728\u200b\u8fd9\u91cc\u200b\u9002\u7528\u200b\u4e8e\u200b\u4ee5\u200b\u878d\u5408\u200b\u5bf9\u200b\u4e0d\u200b\u5bf9\u200b\uff0c\u200b\u4f46\u200b\u4e8b\u5b9e\u200b\u5c31\u662f\u200b\uff0c\u200b\u8f93\u5165\u200b\u7684\u200b\u8d77\u70b9\u200b\u4e0d\u200b\u552f\u4e00\u200b\uff0c\u200b\u6211\u4eec\u200b\u6700\u540e\u200b\u8d70\u200b\u56de\u6765\u200b\u7684\u8bdd\u200b\uff0c\u200b\u4e0d\u4ec5\u200b\u53ef\u4ee5\u200b\u8d70\u200b\u56de\u200b\u8d77\u70b9\u200b\uff0c\u200b\u800c\u4e14\u200b\u53ef\u4ee5\u200b\u8d70\u200b\u56de\u200b\u8d77\u70b9\u200b\u4e4b\u95f4\u200b\u7684\u200b\u6709\u200b\u610f\u4e49\u200b\u7684\u200b\u70b9\u200b\uff0c\u200b\u6bd4\u5982\u200b\u8f93\u5165\u200b\u6ee1\u6708\u200b\u548c\u200b\u534a\u6708\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u751f\u6210\u200b \u00be \u200b\u6708\u200b\uff0c\u200b\u8fd9\u200b\u4e24\u5e45\u200b\u56fe\u200b\u5728\u200b\u7a7a\u95f4\u200b\u4e2d\u200b\u7684\u200b\u4e0d\u540c\u70b9\u200b\u4e0a\u200b\uff0c\u200b\u76f8\u805a\u200b\u6709\u200b\u4e00\u6bb5\u8ddd\u79bb\u200b\uff0c\u200b\u4ed6\u4eec\u200b\u4e2d\u95f4\u200b\u7684\u200b\u70b9\u200b\u5927\u90e8\u5206\u200b\u90fd\u200b\u662f\u200b\u65e0\u200b\u610f\u4e49\u200b\u7684\u200b\u566a\u70b9\u200b\uff0c\u200b\u4f46\u662f\u200b\u5374\u200b\u80fd\u200b\u88ab\u200b\u6210\u529f\u200b\u8d70\u200b\u5230\u200b\uff0c\u200b\u5b9e\u5728\u200b\u662f\u200b\u795e\u5947\u200b.
"},{"location":"Research/Diffusion%20Model/DDPM/#_5","title":"\u8fdb\u4e00\u6b65\u200b\u7684\u200b\u5b66\u4e60","text":"\u200b\u4ee5\u4e0a\u200b\u662f\u200b\u5bf9\u200b DDPM \u200b\u7684\u200b\u4e00\u4e2a\u200b\u7406\u89e3\u200b\u7684\u200b\u89d2\u5ea6\u200b\uff0c\u200b\u5927\u4f6c\u200b\u7684\u200b\u535a\u5ba2\u200b\u8fd8\u200b\u7ed9\u51fa\u200b\u4e86\u200b\u5bf9\u4e8e\u200b DDPM \u200b\u7684\u200b\u4e24\u79cd\u200b\u4e0d\u540c\u200b\u7684\u200b\u7406\u89e3\u200b\u7684\u200b\u89c6\u89d2\u200b
\u200b\u6211\u4eec\u200b\u5148\u8bfb\u200b\u7b2c\u4e00\u7bc7\u200b\uff0c\u200b\u8fd9\u7bc7\u200b\u53ef\u4ee5\u200b\u8ddf\u8bfb\u200b.\u200b\u9996\u5148\u200b\u6587\u7ae0\u200b\u8bf4\u660e\u200b\u4e86\u200b\u628a\u200b\u95ee\u9898\u200b\u5206\u89e3\u6210\u200b\u591a\u200b\u6b65\u200b\u53ef\u4ee5\u200b\u5927\u5e45\u5ea6\u63d0\u9ad8\u200b\u62df\u5408\u200b\u80fd\u529b\u200b\uff0c\u200b\u8fd9\u200b\u662f\u200b\u5f88\u200b\u6709\u200b\u6559\u4e49\u200b\u7684\u200b\u89c2\u5bdf\u200b.
\u200b\u8054\u5408\u200b\u6563\u5ea6\u200b\u7684\u200b\u6700\u200b\u6d88\u5316\u200b\u76ee\u6807\u200b\u4e5f\u200b\u5f88\u200b\u597d\u200b\u7406\u89e3\u200b\uff0c\u200b\u9996\u5148\u200b\u8981\u200b\u77e5\u9053\u200b KL \u200b\u6563\u5ea6\u200b\u662f\u200b\u8861\u91cf\u200b\u4e24\u4e2a\u200b\u5206\u5e03\u200b\u4e4b\u95f4\u200b\u76f8\u8fd1\u200b\u7a0b\u5ea6\u200b\u7684\u200b\u975e\u8d1f\u200b\u51fd\u6570\u200b\uff0cKL \u200b\u6563\u5ea6\u200b\u4e3a\u200b\u96f6\u5f53\u4e14\u200b\u4ec5\u200b\u5f53\u200b\u4e24\u4e2a\u200b\u5206\u5e03\u200b\u5b8c\u5168\u76f8\u540c\u200b.\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u8d70\u200b\u51fa\u6765\u200b\u7684\u200b\u8def\u200b\u8ddf\u200b\u8d70\u200b\u56de\u53bb\u200b\u7684\u200b\u8def\u200b\u662f\u200b\u5c3d\u53ef\u80fd\u200b\u76f8\u8fd1\u200b\u7684\u200b\uff0c\u200b\u6240\u4ee5\u200b\u8981\u200b\u6700\u5c0f\u5316\u200b KL \u200b\u6563\u5ea6\u200b.
\u200b\u968f\u540e\u200b\u5c31\u662f\u200b\u6570\u5b66\u200b\u5904\u7406\u200b\uff0c\u200b\u53bb\u6389\u200b\u6700\u5c0f\u5316\u200b\u76ee\u6807\u200b\u4e2d\u200b\u7684\u200b\u65e0\u5173\u200b\u5e38\u6570\u200b\u9879\u200b.\u200b\u5e76\u200b\u5316\u7b80\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u4f7f\u200b\u4e4b\u200b\u53ef\u7528\u200b.
\u200b\u8d85\u53c2\u200b\u8bbe\u7f6e\u200b\u4e2d\u200b\uff0c\u200b\u8981\u6c42\u200b\u8fb9\u7f18\u200b\u5206\u5e03\u200b\u76f8\u7b49\u200b\uff0c\u200b\u5176\u5b9e\u200b\u5c31\u662f\u200b\u8981\u6c42\u200b\u7ec8\u70b9\u200b\u7684\u200b\u5206\u5e03\u200b\u8981\u200b\u8fd1\u4f3c\u4e8e\u200b\u9ad8\u65af\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\\(\\bar \\alpha\\)\u200b\u8fd1\u4e4e\u200b 0 \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e86\u200b.
\u200b\u6709\u200b\u4e86\u200b\u4e0a\u8ff0\u200b\u7684\u200b\u94fa\u57ab\u200b\uff0c\u200b\u6211\u200b\u8ba4\u4e3a\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b\u7684\u200b\u8109\u7edc\u200b\u662f\u200b\u76f8\u5f53\u200b\u6e05\u6670\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u8fdb\u5165\u200b\u4e0b\u200b\u4e00\u7bc7\u200b.
\u200b\u7b2c\u4e09\u7bc7\u200b\u7684\u200b\u524d\u9762\u200b\u4e00\u5927\u90e8\u5206\u200b\u90fd\u200b\u8ddf\u200b\u7b2c\u4e00\u7bc7\u200b\u5b8c\u5168\u200b\u4e00\u6837\u200b\uff0c\u200b\u4f46\u200b\u5230\u200b\u4e86\u200b\u8d1d\u53f6\u65af\u200b\u7684\u200b\u90e8\u5206\u200b\uff0c\u200b\u5f00\u59cb\u200b\u6709\u200b\u4e86\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u77e5\u9053\u200b\uff0c\u200b\u5728\u200b DDPM \u200b\u4e2d\u200b\uff0c\\(p(x_{t-1}|x_t) = p(x_{t-1}|x_t\uff0cx_0)\\)\uff0c\u200b\u56e0\u4e3a\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u9a6c\u5c14\u53ef\u592b\u200b\u8fc7\u7a0b\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u6bcf\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u200b\u4ec5\u200b\u4e0e\u200b\u524d\u200b\u4e00\u200b\u72b6\u6001\u200b\u6709\u5173\u200b\uff0c\u200b\u800c\u200b\u4e0e\u200b\u66f4\u200b\u524d\u200b\u7684\u200b\u72b6\u6001\u200b\u65e0\u5173\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u7406\u89e3\u200b\u6210\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u200b\u9700\u8981\u200b\u77e5\u9053\u200b 500 \u200b\u6b65\u5230\u200b\u54ea\u91cc\u200b\u4e86\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u7ed9\u5b9a\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u80fd\u200b\u6709\u200b 501 \u200b\u6b65\u200b\u7684\u200b\u5206\u5e03\u200b\uff0c\u200b\u7b2c\u200b 0-499 \u200b\u6b65\u200b\uff0c\u200b\u7ed9\u200b\u4e0d\u200b\u7ed9\u200b\u90fd\u200b\u65e0\u6240\u8c13\u200b\uff0c\u200b\u4e0d\u200b\u6539\u53d8\u200b\u5206\u5e03\u200b\uff0c\u200b\u4f46\u662f\u200b\u5f15\u5165\u200b\u4e86\u200b\u8d77\u70b9\u200b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u662f\u200b\u53ef\u4ee5\u200b\u4ece\u200b\u8d77\u70b9\u200b\u76f4\u63a5\u200b\u63a8\u200b\\(x_t\uff0cx_{t-1}\\)\u200b\u7684\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u8ba9\u200b\u6211\u4eec\u200b\u7684\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e2d\u200b\u8bb8\u591a\u200b\u9879\u200b\u6210\u4e3a\u200b\u5df2\u77e5\u200b.
\u200b\u968f\u540e\u200b\u6211\u4eec\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u4e00\u8def\u200b\u63a8\u5bfc\u200b\u51fa\u200b\u635f\u5931\u200b\u51fd\u6570\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u5728\u200b\u8fd9\u4e2a\u200b\u63a8\u5bfc\u200b\u6d41\u7a0b\u200b\u4e0b\u200b\\(x_0\\)\u200b\u7ed9\u5b9a\u200b\uff0c\u200b\u6211\u4eec\u200b\u80fd\u200b\u76f4\u63a5\u200b\u5f97\u5230\u200b\u5f80\u56de\u200b\u8d70\u200b\u7684\u200b\u65b9\u5411\u200b\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u552f\u4e00\u200b\u9700\u8981\u200b\u8bad\u7ec3\u200b\u7684\u200b\u662f\u200b\u6a21\u578b\u200b\u731c\u200b\u539f\u70b9\u200b\u7684\u200b\u80fd\u529b\u200b\uff0c\u200b\u800c\u200b\u8fd9\u200b\u4e00\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\uff0c\u200b\u6b63\u5982\u200b\u63a8\u5bfc\u200b\u51fa\u6765\u200b\u7684\u200b\u90a3\u6837\u200b\uff0c\u200b\u662f\u200b\u8ddf\u200b\u524d\u9762\u200b\u51e0\u4e2a\u200b\u89c6\u89d2\u200b\u4e00\u6837\u200b\u7684\u200b.
\u200b\u5230\u200b\u4e86\u200b\u9884\u4f30\u200b\u4fee\u6b63\u200b\u4e00\u8282\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u884c\u4e3a\u200b\u6709\u200b\u53ef\u4ee5\u200b\u88ab\u200b\u89e3\u91ca\u200b\u4e3a\u200b\uff0c\u200b\u5148\u731c\u200b\u51fa\u200b\u4e00\u4e2a\u200b\u8d77\u70b9\u200b\uff0c\u200b\u5f80\u56de\u200b\u8d70\u200b\uff0c\u200b\u5e76\u200b\u901a\u8fc7\u200b\u635f\u5931\u200b\u51fd\u6570\u200b\u4fee\u6b63\u200b\u8d77\u70b9\u200b\uff0c\u200b\u7136\u540e\u200b\u8d70\u200b\u4e0b\u200b\u4e00\u6b21\u200b\uff0c\u200b\u8fd9\u6837\u200b\u6211\u4eec\u200b\u8d77\u70b9\u200b\u731c\u200b\u7684\u200b\u8d8a\u6765\u8d8a\u200b\u51c6\u200b\uff0c\u200b\u56de\u5230\u200b\u8d77\u70b9\u200b\u7684\u200b\u80fd\u529b\u200b\u4e5f\u200b\u8d8a\u6765\u8d8a\u200b\u5f3a\u200b\u4e86\u200b.
\u200b\u6b64\u5904\u200b\u7684\u200b\u7b2c\u4e09\u79cd\u200b\u7406\u89e3\u200b\u662f\u200b\u4e0e\u200b\u540e\u6765\u200b\u7684\u200b DDIM \u200b\u6709\u200b\u5f88\u200b\u5f3a\u200b\u7684\u200b\u5173\u8054\u6027\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b\u6211\u4eec\u200b\u5229\u7528\u200b\u4e86\u200b\u8d1d\u53f6\u65af\u200b\u516c\u5f0f\u200b\u4e4b\u540e\u200b\u5176\u5b9e\u200b\u53ea\u200b\u9700\u8981\u200b\u5404\u4e2a\u200b\u65f6\u95f4\u200b\u70b9\u200b\u5bf9\u4e8e\u200b\\(x_0\\)\u200b\u7684\u200b\u5206\u5e03\u200b\u800c\u200b\u4e0d\u200b\u9700\u8981\u200b\u5176\u200b\u5bf9\u4e8e\u200b\u524d\u200b\u4e00\u4e2a\u200b\u65f6\u95f4\u200b\u70b9\u200b\u7684\u200b\u5206\u5e03\u200b\u4e86\u200b\uff0c\u200b\u4f46\u662f\u200b\u8981\u200b\u6ce8\u610f\u200b\uff0c\u200b\u6211\u4eec\u200b\u4ece\u540e\u200b\u5f80\u524d\u200b\u63a8\u200b\u4ecd\u7136\u200b\u9700\u8981\u200b\u4e00\u6b65\u200b\u4e00\u6b65\u200b\u8d70\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u4e00\u6b65\u200b\u8d70\u200b\u5b8c\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u9000\u5316\u200b\u56de\u200b VAE \u200b\u4e86\u200b.
"},{"location":"blog/","title":"Blog","text":""},{"location":"blog/Minisql/","title":"Minisql","text":"\u200b\u7ea6\u200b 544 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
Abstract
Minisql \u200b\u662f\u200b\u8ba1\u7b97\u673a\u79d1\u5b66\u200b\u4e0e\u200b\u6280\u672f\u200b\u4e13\u4e1a\u200b\u5927\u4e8c\u200b\u6625\u590f\u200b\u7684\u200b\u5fc5\u4fee\u8bfe\u200b\u6570\u636e\u5e93\u7cfb\u7edf\u200b\u590f\u200b\u5b66\u671f\u200b\u7684\u200b\u5927\u7a0b\u200b.\u200b\u672c\u200b\u535a\u5ba2\u200b\u8bb0\u5f55\u200b\u4e86\u200b\u672c\u4eba\u200b\u5b9e\u73b0\u200b\u8fd9\u4e00\u200b\u6846\u67b6\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u7684\u200b\u95ee\u9898\u200b\u548c\u200b\u611f\u60f3\u200b.
"},{"location":"blog/Minisql/#_1","title":"\u7b80\u4ecb","text":"\u200b\u5f88\u200b\u65e9\u5c31\u200b\u542c\u8bf4\u200b\u4e86\u200b Minisql \u200b\u7684\u200b\u5927\u540d\u200b\u4e86\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u8fd9\u4e2a\u200b\u5927\u4e8c\u200b\u6625\u590f\u200b\u5230\u6765\u200b\u7684\u200b\u636e\u8bf4\u200b\u975e\u5e38\u200b\u5e9e\u5927\u200b\u7684\u200b\u4e00\u4e2a\u200b\u5de5\u7a0b\u200b\uff0c\u200b\u6211\u200b\u5fc3\u91cc\u200b\u5176\u5b9e\u200b\u662f\u200b\u65e2\u200b\u975e\u5e38\u200b\u5bb3\u6015\u200b\u53c8\u200b\u975e\u5e38\u200b\u671f\u5f85\u200b\u7684\u200b\uff0c\u200b\u4e4b\u524d\u200b\u505a\u200b\u7684\u200b\u5927\u7a0b\u200b\u603b\u200b\u611f\u89c9\u200b\u7f3a\u200b\u90a3\u4e48\u200b\u70b9\u200b\u610f\u601d\u200b\uff0c\u200b\u4f46\u200b\u5230\u200b\u8fd9\u91cc\u200b\u5c31\u200b\u611f\u89c9\u200b\u5473\u200b\u5bf9\u200b\u4e86\u200b\uff08\u200b\u7b11\u200b\u54ed\u200b\uff09.
\u200b\u8fd9\u200b\u7ed9\u200b\u9879\u76ee\u200b\u662f\u200b\u53ef\u4ee5\u200b\u7ec4\u961f\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5355\u5237\u200b\u7684\u200b\uff0c\u200b\u6211\u200b\u9009\u62e9\u200b\u4e86\u200b\u5355\u5237\u200b\u5b8c\u6210\u200b\uff0c\u200b\u4e2a\u4eba\u200b\u8ba4\u4e3a\u200b\u5de5\u4f5c\u91cf\u200b\u662f\u200b\u5355\u4eba\u200b\u53ef\u4ee5\u200b\u627f\u62c5\u200b\u7684\u200b\uff0c\u200b\u4e5f\u200b\u6bd4\u8f83\u200b\u63a8\u8350\u200b\u5355\u4eba\u200b\u5b8c\u6210\u200b.\u200b\u4e00\u662f\u200b\u5f88\u591a\u200b\u6a21\u5757\u200b\u53ea\u6709\u200b\u81ea\u5df1\u200b\u4e0a\u200b\u624b\u5199\u200b\u8fc7\u200b\u4e86\u200b\uff0cdebug \u200b\u8fc7\u200b\u4e86\u200b\u624d\u200b\u6709\u200b\u771f\u5207\u200b\u7684\u200b\u611f\u53d7\u200b\uff1b\u200b\u4e8c\u662f\u200b\u6211\u200b\u89c9\u5f97\u200b\u5f88\u9177\u200b\uff01\ud83d\ude0e
"},{"location":"blog/Minisql/#_2","title":"\u6536\u83b7","text":"\u200b\u8fd9\u90e8\u5206\u200b\u535a\u5ba2\u200b\u7684\u200b\u7ec4\u7ec7\u200b\u5f62\u5f0f\u200b\u5927\u4f53\u200b\u8fd8\u662f\u200b\u6309\u7167\u200b\u9879\u76ee\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u533a\u5206\u200b\u7684\u200b\u6a21\u5757\u200b\u987a\u5e8f\u200b\u6765\u200b\u7684\u200b\uff0c\u200b\u5728\u200b\u6700\u200b\u5f00\u5934\u200b\u8fd8\u6709\u200b\u4e00\u4e2a\u200b\u642d\u5efa\u200b\u73af\u5883\u200b\u7684\u200b\u8e29\u200b\u5751\u200b\u8bb0\u5f55\u200b.
\u200b\u5728\u200b\u5177\u4f53\u200b\u5b9e\u73b0\u200b\u7684\u200b\u5404\u200b\u90e8\u5206\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u200b\u4e3b\u8981\u200b\u662f\u200b\u4f1a\u200b\u4ecb\u7ecd\u200b\u8fd9\u4e9b\u200b\u6a21\u5757\u200b\u91cc\u9762\u200b\u5404\u4e2a\u200b\u7ed3\u6784\u200b\u3001\u200b\u51fd\u6570\u200b\u5728\u200b\u4ec0\u4e48\u200b\u60c5\u5883\u200b\u4e0b\u200b\u5e94\u8be5\u200b\u88ab\u200b\u8c03\u7528\u200b\uff0c\u200b\u88ab\u200b\u8c03\u7528\u200b\u6765\u200b\u505a\u200b\u4ec0\u4e48\u200b\u4e8b\u200b\uff0c\u200b\u6574\u4e2a\u200b\u5927\u200b\u7684\u200b\u6a21\u5757\u200b\u5728\u200b\u505a\u200b\u4ec0\u4e48\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5982\u4f55\u200b\u4f18\u5316\u200b.
\u200b\u53ef\u4ee5\u200b\u8bf4\u200b\u548c\u200b\u9879\u76ee\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u7684\u200b\u5185\u5bb9\u200b\u5728\u200b\u503e\u5411\u6027\u200b\u4e0a\u200b\u6709\u200b\u4e00\u4e9b\u200b\u91cd\u53e0\u200b\uff0c\u200b\u4f46\u200b\u4eba\u5bb6\u200b\u8bf4\u200b\u8fc7\u200b\u4e86\u200b\u6211\u200b\u5c31\u200b\u5c3d\u91cf\u200b\u4e0d\u518d\u200b\u91cd\u590d\u200b\u4e86\u200b\uff0c\u200b\u4e3b\u8981\u200b\u662f\u4ece\u200b\u4e00\u4e2a\u200b\u5b9e\u73b0\u200b\u8005\u200b\u7684\u200b\u89d2\u5ea6\u200b\u6765\u8bb2\u200b\u56f0\u60d1\u200b\u548c\u200b\u7406\u89e3\u200b\u7684\u200b.
"},{"location":"blog/Minisql/minisql_part0/","title":"Minisql Environment Configurations","text":"\u200b\u7ea6\u200b 602 \u200b\u4e2a\u200b\u5b57\u200b 24 \u200b\u884c\u200b\u4ee3\u7801\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
Abstract
\u200b\u867d\u7136\u200b\u5df2\u7ecf\u200b\u642d\u51fa\u200b\u80fd\u200b\u7528\u200b\u7684\u200b\u73af\u5883\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u8fd8\u662f\u200b\u5f88\u96be\u200b\u4e0d\u200b\u5728\u200b\u5f00\u5934\u200b\u653e\u200b\u4e0a\u200b\u4e09\u4e2a\u200b\u6d41\u6c57\u200b\u9ec4\u8c46\u200b\u6765\u200b\u8868\u8fbe\u200b\u6211\u200b\u5bf9\u200b\u642d\u200b\u73af\u5883\u200b\u8fd9\u4ef6\u200b\u4e8b\u200b\u7684\u200b\u65e0\u8bed\u200b\ud83d\ude05\ud83d\ude05\ud83d\ude05
"},{"location":"blog/Minisql/minisql_part0/#_1","title":"\u521d\u8bd5\u200b\uff1a\u200b\u672c\u5730\u200b\u8fd0\u884c","text":"\u200b\u672c\u4eba\u200b\u76ee\u524d\u200b\u4f7f\u7528\u200b\u7684\u200b\u7684\u200b MacBookPro\uff0cMacOS Ventura13.3.1. \u200b\u76f4\u8bf4\u200b\u7684\u8bdd\u200b\uff0c\u200b\u672c\u5730\u200b\u8fd0\u884c\u200b\u7684\u200b\u5c1d\u8bd5\u200b\u5931\u8d25\u200b\u4e86\u200b\ud83d\ude05
"},{"location":"blog/Minisql/minisql_part0/#cmake","title":"Cmake","text":"\u200b\u7b2c\u4e00\u4e2a\u200b\u5751\u200b\u662f\u200b cmake \u200b\u9636\u6bb5\u200b \u200b\u6709\u200b\u5982\u4e0b\u200b\u7684\u200b\u7ecf\u5178\u200b\u62a5\u9519\u200b\uff08\u200b\u7ecf\u5178\u200b\u662f\u56e0\u4e3a\u200b\u6211\u89c1\u200b\u8fc7\u200b\u4ed6\u200b\u65e0\u6570\u6b21\u200b\u4e86\u200b\uff09\uff1a
cmake .. \u2500\u256f\nCMake Error at /Users/xxx/opt/anaconda3/lib/cmake/GTest/GTestTargets.cmake:37 (message):\n Some (but not all) targets in this export set were already defined.\n\n Targets Defined: GTest::gtest;GTest::gtest_main\n\n Targets not yet defined: GTest::gmock;GTest::gmock_main\n\nCall Stack (most recent call first):\n /Users/xxx/opt/anaconda3/lib/cmake/GTest/GTestConfig.cmake:32 (include)\n thirdparty/glog/CMakeLists.txt:71 (find_package)\n
\u200b\u6211\u200b\u4e0d\u200b\u61c2\u200b cmake\uff0c\u200b\u4e5f\u200b\u641c\u200b\u4e0d\u5230\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u611f\u89c9\u200b\u53ef\u80fd\u200b\u8ddf\u200b\u7248\u672c\u200b\u517c\u5bb9\u200b\u5565\u200b\u7684\u200b\u6709\u5173\u200b\uff08\u200b\u6709\u200b\u77e5\u9053\u200b\u7684\u200b\u5927\u4f6c\u200b\u53ef\u4ee5\u200b\u76f4\u63a5\u200b\u5728\u200b\u8bc4\u8bba\u200b\u533a\u91cc\u200b\u8bf4\u200b\u8bf4\u200b\uff0c\u200b\u611f\u8c22\u200b\uff01\uff09\u200b\u4e0d\u8fc7\u200b\u6211\u200b\u770b\u5230\u200b\u4e86\u200b\u62a5\u9519\u200b\u8def\u5f84\u200b\u4e0a\u200b\u4e86\u200b anaconda3\uff0c\u200b\u60f3\u200b\u8d77\u6765\u200b\u6211\u200b\u7ec8\u7aef\u200b\u7684\u200b\u73af\u5883\u200b\u8fd8\u662f\u200b conda base\uff0c\u200b\u6240\u4ee5\u200b\u6211\u200b\u4e00\u4e2a\u200bconda deactivae
\u200b\u540e\u200b\uff0c\u200b\u91cd\u5efa\u200b build \u200b\u76ee\u5f55\u200b\uff0c\u200b\u518d\u200b cmake \u200b\u5c31\u200b\u6ca1\u6709\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u4e86\u200b.
\u200b\u4f46\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u53ea\u662f\u200b\u88ab\u200b\u6682\u65f6\u200b\u4fee\u590d\u200b\u4e86\u200b\u7b97\u662f\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u8c03\u7528\u200b VSCode \u200b\u7684\u200b cmake \u200b\u63d2\u4ef6\u200b\u5565\u200b\u7684\u200b\u8fd8\u662f\u200b\u4f1a\u200b\u8fd9\u6837\u200b\uff0c\u200b\u6211\u200b\u4e5f\u200b\u6ca1\u200b\u627e\u200b\u51fa\u6765\u200b\u8fd9\u91cc\u200b\u7684\u200b\u8981\u200b\u600e\u4e48\u200b\u89e3\u51b3\u200b.
"},{"location":"blog/Minisql/minisql_part0/#make","title":"Make","text":"Cmake \u200b\u901a\u200b\u4e86\u200b Make \u200b\u53c8\u200b\u4e0d\u901a\u200b\ud83d\ude05 \u200b\u62a5\u9519\u200b\u5982\u4e0b\u200b\uff1a
In file included from /Users/xxx/Desktop/minisql/src/executor/execute_engine.cpp:1:\nIn file included from /Users/xxx/Desktop/minisql/src/include/executor/execute_engine.h:5:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/string:551:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/string_view:222:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/algorithm:1851:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__algorithm/ranges_sample.h:13:\nIn file included from /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__algorithm/sample.h:18:\n/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__random/uniform_int_distribution.h:162:5: error: static_assert failed due to requirement '__libcpp_random_is_valid_inttype<char>::value' \"IntType must be a supported integer type\"\n static_assert(__libcpp_random_is_valid_inttype<_IntType>::value\uff0c \"IntType must be a supported integer type\");\n ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n/Users/xxx/Desktop/minisql/test/include/utils/utils.h:24:41: note: in instantiation of template class 'std::uniform_int_distribution<char>' requested here\n std::uniform_int_distribution<char> uniform_dist(33\uff0c 122);\n
\u200b\u770b\u8d77\u6765\u200b\u662f\u200b\u6846\u67b6\u200b\u91cc\u200b\u5b9e\u4f8b\u200b\u5316\u200b\u6a21\u677f\u200b\u7684\u200b\u65f6\u5019\u200b\u7528\u200b\u7684\u200b\u7684\u200b char \u200b\u7c7b\u578b\u200b\uff0c\u200b\u4f46\u662f\u200b\u8fd9\u91cc\u200b\u4e0d\u8ba9\u200b\u7528\u200b char \u200b\u7c7b\u578b\u200b\uff0c\u200b\u90a3\u200b\u600e\u4e48\u529e\u200b\uff0c\u200b\u8981\u200b\u6211\u200b\u53bb\u200b\u6539\u200b\u6846\u67b6\u200b\u5417\u200b\uff0c\u200b\u8fd9\u200b\u73a9\u610f\u200b\u4e07\u4e00\u200b\u8026\u5408\u200b\u7684\u200b\u5f88\u200b\u7d27\u200b\u6211\u200b\u7684\u200b\u7406\u89e3\u200b\u6210\u672c\u200b\u52a0\u200b\u4fee\u6539\u200b\u6210\u672c\u200b\u4f30\u8ba1\u200b\u90fd\u200b\u591f\u200b\u6211\u200b\u53d7\u200b\u7684\u200b\u4e86\u200b.\u200b\u8fd9\u91cc\u200b\u7684\u200b\u4e24\u4e2a\u200b\u9009\u62e9\u200b\u4e00\u4e2a\u200b\u662f\u200b\u6362\u4e2a\u200b SDK \u200b\u7248\u672c\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u4e0d\u200b\u77e5\u9053\u200b\u80fd\u200b\u4e0d\u80fd\u200b\u8d77\u6548\u200b\uff0c\u200b\u53e6\u200b\u4e00\u4e2a\u200b\u5c31\u662f\u200b\u8dd1\u200b\u8def\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u8fd8\u6709\u200b\u4e00\u53f0\u200b Windows \u200b\u6e38\u620f\u200b\u672c\u200b\uff0c\u200b\u6240\u4ee5\u200b\u679c\u65ad\u200b\u6da6\u200b\u4e86\u200b."},{"location":"blog/Minisql/minisql_part0/#wsl2","title":"\u4e8c\u8bd5\u200b\uff1aWSL2","text":"\u200b\u6211\u200b\u7684\u200b Win \u200b\u672c\u200b\u65e9\u5c31\u200b\u88c5\u200b\u8fc7\u200b WSL2 \u200b\u4e86\u200b\uff0c\u200b\u4e4b\u524d\u200b\u8dd1\u200b\u4e00\u4e9b\u200b\u6a21\u578b\u200b\u7684\u200b\u65f6\u5019\u200b\u628a\u200b ssh \u200b\u5565\u200b\u7684\u200b\u4e5f\u200b\u914d\u597d\u200b\u4e86\u200b\uff08\u200b\u4e0d\u8fc7\u200b\u7389\u6e56\u200b\u53ea\u80fd\u200b\u7528\u200b\u52a8\u6001\u200b IP \u200b\u6211\u200b\u4e09\u5929\u4e24\u5934\u200b\u5c31\u200b\u5f97\u200b\u6362\u200b\u4e00\u4e0b\u200b\ud83d\ude05\uff09\uff0c\u200b\u6240\u4ee5\u200b\u6210\u672c\u200b\u5176\u5b9e\u200b\u4e0d\u200b\u5927\u200b. \u200b\u8fd9\u91cc\u200b\u9047\u5230\u200b\u4e24\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u4e00\u662f\u200b cmake \u200b\u9636\u6bb5\u200b\u8ddf\u200b\u4e0a\u9762\u200b\u4e00\u6837\u200b\u7684\u200b\u95ee\u9898\u200b\uff0c\u200b\u89e3\u51b3\u200b\u65b9\u6cd5\u200b\u8fd8\u662f\u200bconda deactivate
\uff0c\u200b\u4e8c\u662f\u200b\u63d0\u793a\u200b\u6ca1\u6709\u200b gflag \u200b\u6a21\u5757\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u6700\u200b\u7b80\u5355\u200b\uff0c\u200b\u76f4\u63a5\u200b\u5b89\u88c5\u200b\u4e00\u4e0b\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b
sudo apt-get install gflags\n
\u200b\u7136\u540e\u200b\u5c31\u200b\u80fd\u200b\u8dd1\u200b\u4e86\u200b\uff0c\u200b\u867d\u7136\u200b\u5728\u200b\u8fd9\u91cc\u200b\u7528\u200b\u5404\u79cd\u200b Cmake \u200b\u63d2\u4ef6\u200b\u4e00\u7c7b\u200b\u7684\u200b\u8fd8\u662f\u200b\u6ca1\u200b\u4e00\u4e2a\u200b\u80fd\u200b\u8dd1\u200b\u7684\u200b\uff08\u200b\u62a5\u200b Cmake \u200b\u9636\u6bb5\u200b\u7684\u200b\u90a3\u4e2a\u200b\u9519\u200b\uff09\uff0c\u200b\u6211\u200b\u8bd5\u56fe\u7528\u200b Clion \u200b\u8fdc\u7a0b\u200b\u5f00\u53d1\u200b\u7ed3\u679c\u200b\u540e\u7aef\u200b\u4e5f\u200b\u5d29\u574f\u200b\u4e86\u200b\u5f00\u200b\u4e0d\u200b\u8d77\u6765\u200b\uff0c\u200b\u5404\u79cd\u200b\u4e8b\u60c5\u200b\u641e\u200b\u5f97\u200b\u6211\u200b\u5f88\u70e6\u200b\uff0c\u200b\u4f46\u200b\u603b\u7b97\u200b\u6709\u4e2a\u200b\u80fd\u200b\u7528\u200b\u7684\u200b VSCode + ssh + WSL2 \u200b\u7684\u200b\u65b9\u6848\u200b\u80fd\u200b\u8dd1\u200b\u4e86\u200b\uff0c\u200b\u4ed6\u200b\u7684\u200b\u4f18\u70b9\u200b\u662f\u200b\u80fd\u200b\u8dd1\u200b\uff0c\u200b\u7f3a\u70b9\u200b\u662f\u200b\u80fd\u200b\u8dd1\u200b\u7684\u200b\u8865\u96c6\u200b\uff0c\u200b\u4f46\u200b\u6211\u200b\u5b9e\u5728\u200b\u6298\u817e\u200b\u4e0d\u52a8\u200b\u4e86\u200b\u5c31\u200b\u5148\u200b\u8fd9\u6837\u200b\u4e86\u200b.
"},{"location":"blog/Minisql/minisql_part1/","title":"Minisql#1 Disk and BufferPoolManager","text":"\u200b\u7ea6\u200b 475 \u200b\u4e2a\u200b\u5b57\u200b \u200b\u9884\u8ba1\u200b\u9605\u8bfb\u200b\u65f6\u95f4\u200b 2 \u200b\u5206\u949f\u200b
Abstract
\u200b\u8fd9\u200b\u4e00\u90e8\u5206\u200b\u4e3b\u8981\u200b\u8d1f\u8d23\u200b\u4e0e\u200b\u5185\u5b58\u200b\u78c1\u76d8\u7a7a\u95f4\u200b\u7533\u8bf7\u200b\u91ca\u653e\u200b\u7b49\u200b\u6253\u4ea4\u9053\u200b\uff0c\u200b\u5728\u200b\u9879\u76ee\u200b\u4e2d\u200b\u7684\u200b\u5730\u4f4d\u200b\u5927\u6982\u200b\u76f8\u5f53\u4e8e\u200bnew
delete
\uff0c\u200b\u6240\u4ee5\u200b\u8fd9\u200b\u4e00\u90e8\u5206\u200b\u5728\u200b\u540e\u7eed\u200b\u4f1a\u200b\u88ab\u200b\u9891\u7e41\u200b\u8c03\u7528\u200b\uff0c\u200b\u4e5f\u200b\u662f\u200b\u76f4\u63a5\u200b\u4e0e\u200b\u78c1\u76d8\u200b IO \u200b\u6253\u4ea4\u9053\u200b\u7684\u200b\uff0c\u200b\u5b9e\u73b0\u200b\u65e2\u200b\u8981\u6c42\u200b\u6b63\u786e\u200b\u53c8\u200b\u8981\u6c42\u200b\u6548\u7387\u200b
\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u624b\u5934\u4e0a\u200b\u73b0\u5728\u200b\u6709\u200b 65536\uff084096*16\uff09\u200b\u9875\u200b\uff08\u200b\u4e00\u9875\u200b\u4e3a\u200b 4096Bytes\uff09\u200b\u7684\u200b\u6570\u636e\u200b\u9700\u8981\u200b\u5b58\u5728\u200b\u78c1\u76d8\u200b\u4e0a\u200b\uff0c\u200b\u6700\u200b\u81ea\u7136\u200b\u7684\u200b\u60f3\u6cd5\u200b\u5c31\u662f\u200b\u6570\u7ec4\u200b\uff0c\u200b\u5b9e\u9645\u4e0a\u200b\u662f\u200b\u53d8\u957f\u200b\u6570\u7ec4\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u6587\u4ef6\u200b\u5c3e\u200b\u7ee7\u7eed\u200b\u5199\u5165\u200b\u65b0\u200b\u7684\u200b\u9875\u200b.
\u200b\u4f46\u662f\u200b\uff0c\u200b\u6570\u636e\u5e93\u200b\u4f1a\u200b\u5bf9\u200b\u6570\u636e\u200b\u8fdb\u884c\u200b\u5220\u9664\u200b.\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u5206\u914d\u200b\u51fa\u53bb\u200b\u7b2c\u200b 0-9 \u200b\u9875\u200b\u7528\u4e8e\u200b\u8bb0\u5f55\u200b\u67d0\u4e2a\u200b\u8868\u200b\uff0c\u200b\u7136\u540e\u200b\u5220\u9664\u200b\u4e86\u200b\u5176\u4e2d\u200b\u7b2c\u200b 2\uff0c4\uff0c6 \u200b\u9875\u200b\u7684\u200b\u6570\u636e\u200b\uff0c\u200b\u90a3\u4e48\u200b\u4e0b\u6b21\u200b\u518d\u200b\u8bf7\u6c42\u200b\u9875\u9762\u200b\u6765\u200b\u5b58\u50a8\u200b\u4fe1\u606f\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u200b\u7a7a\u95f2\u200b\u7684\u200b\u4e09\u9875\u200b\u6765\u200b\u5b58\u50a8\u200b.\u200b\u4e0d\u200b\u8fd9\u6837\u200b\u505a\u200b\uff0c\u200b\u90a3\u4e48\u200b\u9762\u5bf9\u200b\u7533\u8bf7\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u5220\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u7533\u8bf7\u200b 100 \u200b\u9875\u200b\uff0c\u200b\u5220\u200b 100 \u200b\u9875\u200b\u8fd9\u6837\u200b\u7684\u200b\u64cd\u4f5c\u200b\uff0c\u200b\u672c\u6765\u200b\u53ea\u8981\u200b 100 \u200b\u9875\u200b\u7684\u200b\u7a7a\u95f4\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b9e\u73b0\u200b\uff0c\u200b\u5b9e\u9645\u4e0a\u200b\u5374\u4f1a\u82b1\u200b\u7684\u200b\u591a\u5f97\u591a\u200b.
\u200b\u8fd9\u200b\u5c31\u200b\u5f15\u51fa\u200b\u4e86\u200b BitMap\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u62ff\u51fa\u200b\u4e00\u9875\u200b\u6765\u200b\uff0c\u200b\u628a\u200b\u8fd9\u200b\u4e00\u9875\u200b 4096 \u200b\u4e2a\u200b Byte\uff0c\u200b\u5373\u200b 32768 \u200b\u4e2a\u200b bit\uff0c\u200b\u6bcf\u4e2a\u200b bit \u200b\u7684\u200b 0 \u200b\u6307\u793a\u200b\u8be5\u9875\u200b\u672a\u200b\u88ab\u200b\u4f7f\u7528\u200b\uff0c1 \u200b\u6307\u793a\u200b\u5df2\u7ecf\u200b\u88ab\u200b\u4f7f\u7528\u200b\uff0c\u200b\u8fd9\u6837\u200b\u8fd9\u200b\u4e00\u9875\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7ba1\u7406\u200b\u5176\u540e\u200b\u7684\u200b 32768 \u200b\u9875\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u6bcf\u6b21\u200b\u90fd\u200b\u73b0\u5728\u200b\u5176\u4e2d\u200b\u627e\u200b 0\uff0c\u200b\u6ca1\u6709\u200b 0 \u200b\u4e86\u200b\uff0c\u200b\u624d\u200b\u53bb\u200b\u65b0\u5f00\u200b\u4e00\u9875\u200b.
\u200b\u5f53\u7136\u200b\u5b9e\u9645\u4e0a\u200b\u8fd9\u200b\u4e00\u9875\u200b\u7684\u200b 4096B \u200b\u6211\u4eec\u200b\u4e0d\u4f1a\u200b\u90fd\u200b\u62ff\u200b\u53bb\u200b\u7528\u6765\u200b\u8bb0\u5f55\u200b\u4f7f\u7528\u200b\u60c5\u51b5\u200b\uff0c\u200b\u8fd8\u6709\u200b\u4e00\u4e9b\u200b\u5143\u200b\u6570\u636e\u200b\u6bd4\u5982\u200b\u8bb0\u5f55\u200b\u76ee\u524d\u200b\u4ee5\u200b\u5360\u7528\u200b\u7684\u200b\u6709\u200b 10 \u200b\u9875\u200b\u7b49\u7b49\u200b.
\u200b\u4f46\u200b\u6ce8\u610f\u200b\u7b2c\u4e00\u6bb5\u200b\u5047\u8bbe\u200b\u6211\u4eec\u200b\u6709\u200b 65536 \u200b\u9875\u200b\u8981\u200b\u5b58\u200b\uff0c\u200b\u4e00\u9875\u200b BitMap \u200b\u4e0d\u591f\u200b\uff0c\u200b\u90a3\u200b\u5c31\u200b\u591a\u6765\u200b\u51e0\u4e2a\u200b.\u200b\u6211\u4eec\u200b\u628a\u200b 1 \u200b\u9875\u200b BitMap \u200b\u548c\u200b\u540e\u9762\u200b\u7684\u200b\uff08\u200b\u5927\u6982\u200b\uff0932767 \u200b\u9875\u200b\u79f0\u4e3a\u200b\u4e00\u6bb5\u200b(extent)\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u4e24\u6bb5\u200b\u6765\u200b\u5b58\u50a8\u200b 65536 \u200b\u9875\u200b\uff0c\u200b\u5728\u200b\u6700\u200b\u524d\u9762\u200b\u6765\u4e2a\u200b Disk Meta Page \u200b\u6765\u200b\u7ba1\u7406\u200b\u6240\u6709\u200b\u9875\u200b.
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/","title":"\u8ba1\u7b97\u673a\u200b\u4f53\u7cfb\u7ed3\u6784\u200b - lab4 Cache","text":"Abstract
\u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b Cache \u200b\u8bbe\u8ba1\u200b\u7684\u200b\u601d\u60f3\u200b\uff0c\u200b\u4ece\u200b\u6a21\u5757\u200b\u62bd\u8c61\u200b\u7684\u200b\u5c42\u9762\u200b\u8bb2\u8bb2\u200b\u5404\u200b\u6a21\u5757\u200b\u7684\u200b\u529f\u80fd\u200b\u548c\u200b\u4ea4\u4e92\u200b\u7684\u200b\u903b\u8f91\u200b.
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a
\u200b\u672c\u6b21\u200b\u5b9e\u9a8c\u200b\u662f\u200b\u8981\u200b\u5b9e\u73b0\u200b\u4e00\u4e2a\u200b Cache\uff0c\u200b\u5177\u4f53\u6765\u8bf4\u200b\uff0c\u200b\u4f1a\u200b\u5b9e\u73b0\u200b\u4e00\u4e2a\u200b CMU(Cache Management Unit)\u200b\u6765\u200b\u5b8c\u6210\u200b CPU\uff0c Memory\uff0c Cache \u200b\u4e4b\u95f4\u200b\u7684\u200b\u4ea4\u4e92\u200b\u548c\u200b\u63a7\u5236\u200b\uff0c\u200b\u7ed3\u6784\u200b\u5982\u4e0b\u200b\uff1a
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#memory","title":"Memory","text":"\u200b\u5728\u200b\u672c\u200b\u5b9e\u9a8c\u200b\u4e2d\u200b Memory \u200b\u53ea\u200b\u4e0e\u200b CMU \u200b\u4ea4\u4e92\u200b.
Memory \u200b\u4e0e\u200b CMU \u200b\u7684\u200b\u4ea4\u4e92\u200b\u53ea\u6709\u200b\u4e00\u79cd\u200b\uff1a
Cache \u200b\u5185\u90e8\u200b\u7ef4\u62a4\u200b\u7740\u200b\u6240\u6709\u200b Cache line \u200b\u548c\u200b\u6807\u8bb0\u200b\u4f4d\u200b\uff0c\u200b\u5e76\u4e14\u200b\u4e0e\u200b CMU \u200b\u8fdb\u884c\u200b\u4ea4\u4e92\u200b\uff0c\u200b\u4e3b\u8981\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a
\u200b\u4e3a\u4e86\u200b\u505a\u597d\u200b\u8fd9\u4e9b\u200b\u4e8b\u200b\uff0cCache \u200b\u5185\u90e8\u200b\u4f1a\u200b\u8fdb\u884c\u200b\u5b9e\u73b0\u200b\u5408\u9002\u200b\u7684\u200b\u7ec4\u5408\u200b\u903b\u8f91\u200b\u6765\u200b\u8fdb\u884c\u200b\u7d22\u5f15\u200b\uff0c\u200b\u6bd4\u8f83\u200b\u7b49\u7b49\u200b
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84---lab4--cache/#cpu","title":"CPU","text":"CPU \u200b\u4e0e\u200b CMU \u200b\u7684\u200b\u4ea4\u4e92\u200b\u6709\u200b\u4e24\u79cd\u200b\uff1a
CMU \u200b\u5185\u90e8\u200b\u7ef4\u62a4\u200b\u4e00\u4e2a\u200b\u72b6\u6001\u673a\u200b\uff0c\u200b\u8fd9\u4e2a\u200b\u72b6\u6001\u200b\u673a\u4f1a\u200b\u6839\u636e\u4e0a\u8ff0\u200b\u4e09\u4e2a\u200b\u7ec4\u4ef6\u200b\u7684\u200b\u63a7\u5236\u200b\u4fe1\u53f7\u200b\u8fdb\u884c\u200b\u8df3\u8f6c\u200b\uff1a
\u200b\u540c\u65f6\u200b CMU \u200b\u4e5f\u200b\u4f1a\u200b\u6839\u636e\u200b\u81ea\u5df1\u200b\u7684\u200b\u72b6\u6001\u200b\uff0c\u200b\u5bf9\u200b\u4e0a\u8ff0\u200b\u4e09\u4e2a\u200b\u7ec4\u4ef6\u200b\u8fdb\u884c\u200b\u63a7\u5236\u200b\uff1a
Abstract
\u200b\u8fd9\u91cc\u200b\u5217\u51fa\u200b\u4e86\u200b\u5f88\u591a\u200b\u597d\u7528\u200b\u7684\u200b CLI(commandline interface)\u200b\u5de5\u5177\u200b
\u200b\u5982\u679c\u200b\u4ed4\u7ec6\u200b\u770b\u770b\u200b\u7684\u200b\u5316\u4f1a\u200b\u53d1\u73b0\u200b\u5927\u591a\u6570\u200b\u90fd\u200b\u662f\u200b\u62ff\u200b Rust \u200b\u91cd\u5199\u200b\u7684\u200b(Rewrite it in Rust!)
Abstract
\u200b\u56e0\u4e3a\u200b\u8fd9\u4e2a\u200b\u5b9e\u9a8c\u200b\u505a\u200b\u7684\u200b\u65f6\u5019\u200b\u51e0\u4e4e\u200b\u6ca1\u4ec0\u4e48\u200b\u6307\u5bfc\u200b\uff0c\u200b\u53ea\u6709\u200b\u4e00\u4e2a\u200b\u795e\u79d8\u200b\u7684\u200b\u6587\u6863\u200b\uff0c\u200b\u4e00\u200b\u6574\u4e2a\u200b\u5b9e\u9a8c\u5ba4\u200b\u7684\u200b\u7ebf\u200b\u548c\u200b\u4e00\u200b\u7bb1\u5b50\u200b\u7684\u200b\u795e\u79d8\u200b\u673a\u5668\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5c31\u200b\u6fc0\u60c5\u200b\u5199\u4e2a\u200b\u7ecf\u9a8c\u200b
\u200b\u4e3b\u8981\u200b\u662f\u200b\u8bb2\u200b\u4e86\u200b\u8bb2\u200b\u600e\u4e48\u200b\u8ba9\u200b\u5b9e\u9a8c\u200b\u8dd1\u200b\u8d77\u6765\u200b\uff0c\u200b\u8fd8\u6709\u200b\u5404\u79cd\u200b\u610f\u5916\u200b\u95ee\u9898\u200b\u7684\u200b\u5904\u7406\u200b\u4e4b\u7c7b\u200b\u7684\u200b
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u5b9e\u9a8c\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u5e74\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u62a5\u544a\u200b\u6a21\u677f\u200b\uff1a
\u200b\u5f80\u671f\u200b\u53c2\u8003\u200b\uff1a \uff08\u200b\u6765\u81ea\u200b\u6d59\u6c5f\u5927\u5b66\u200b\u8bfe\u7a0b\u200b\u5171\u4eab\u200b\u8ba1\u5212\u200b\uff09
\u200b\u6307\u5bfc\u8001\u5e08\u200b\uff1a\u200b\u9ec4\u6b63\u8c26\u200b
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_1","title":"\u8ba4\u8bc6\u200b\u5b9e\u9a8c\u5ba4\u200b\u7684\u200b\u4eea\u5668","text":"\u200b\u679c\u200b\u54a9\u200b\u90a3\u200b\u585e\u200b\u8fd9\u91cc\u200b\u6ca1\u6709\u200b\u7167\u7247\u200b\uff0c\u200b\u4f46\u662f\u200b\u6bd4\u8f83\u200b\u5173\u952e\u200b\u7684\u200b\u51e0\u4e2a\u200b\u8bbe\u5907\u200b\u7684\u200b\u5916\u89c2\u200b\u90fd\u200b\u4f1a\u200b\u5927\u6982\u200b\u63cf\u8ff0\u200b\u4e00\u4e0b\u200b\uff1a
\u200b\u4ea4\u6362\u673a\u200b\u8def\u7531\u5668\u200b\u7f51\u7ebf\u200bPC\u200b\u663e\u793a\u5c4f\u200b\u548c\u200b\u952e\u76d8\u200b\u200b\u6b63\u9762\u200b\u6709\u200b\u5f88\u591a\u200b\u7aef\u53e3\u200b\uff0c\u200b\u6ca1\u6709\u200b\u5f00\u200b\u5173\u952e\u200b\uff0c\u200b\u6b63\u9762\u200b\u6709\u200b mode \u200b\u952e\u200b
\u200b\u6682\u65f6\u200b\u7528\u200b\u4e0d\u5230\u200b\uff0c\u200b\u6bd4\u8d77\u200b\u4ea4\u6362\u673a\u200b\u7aef\u53e3\u200b\u6ca1\u200b\u90a3\u4e48\u200b\u591a\u200b\uff0c\u200b\u6709\u5f00\u200b\u5173\u952e\u200b
\u200b\u5b9e\u9a8c\u5ba4\u200b\u91cc\u200b\u770b\u8d77\u6765\u200b\u662f\u200b\u7f51\u7ebf\u200b\u7684\u200b\u57fa\u672c\u200b\u5c31\u662f\u200b\u7f51\u7ebf\u200b\uff08\u200b\u5e9f\u8bdd\u200b\uff09\uff0c
\u200b\u6bd4\u8f83\u200b\u7279\u6b8a\u200b\u7684\u200b\u4e8b\u200b\u5982\u679c\u200b\u4e24\u7aef\u200b\u900f\u660e\u200b\u5934\u200b\u5185\u90e8\u200b\u7684\u200b\u7ebf\u200b\u7684\u200b\u989c\u8272\u200b\u987a\u5e8f\u200b\u4e0d\u200b\u4e00\u6837\u200b\uff0c\u200b\u90a3\u200b\u5c31\u662f\u200b\u4ea4\u53c9\u200b\u7f51\u7ebf\u200b.
\u200b\u5982\u679c\u200b\u4e00\u6839\u200b\u6241\u6241\u7684\u200b\u6de1\u84dd\u8272\u200b\u7684\u200b\uff0c\u200b\u53e6\u4e00\u7aef\u200b\u662f\u200b\u4e32\u53e3\u200b\u7684\u200b\u7ebf\u200b\uff0c\u200b\u90a3\u4e2a\u200b\u662f\u200b\u62ff\u6765\u200b\u8fde\u200b console \u200b\u548c\u200b PC \u200b\u7684\u200b.
\u200b\u673a\u7bb1\u200b\u91cc\u200b\u4e0a\u65b9\u200b\u8fde\u200b\u7740\u200b\u6446\u200b\u4e86\u200b\u56db\u53f0\u200b PC\uff0c\u200b\u4e00\u822c\u200b\u4ece\u200b\u4e0a\u200b\u5f80\u200b\u4e0b\u200b\u6807\u53f7\u200b 1-4
\u200b\u5f00\u673a\u200b\u65b9\u5f0f\u200b\u5f88\u8ff7\u200b\uff0c\u200b\u6211\u200b\u662f\u200b\u6309\u200b F1 \u200b\u7136\u540e\u200b\u9000\u51fa\u200b\uff0c\u200b\u611f\u89c9\u200b\u80af\u5b9a\u200b\u4e0d\u662f\u200b\u6b63\u5e38\u200b\u9014\u5f84\u200b
\u200b\u6700\u200b\u4e0b\u9762\u200b\u6446\u7740\u200b\u7684\u200b\u663e\u793a\u5c4f\u200b\u548c\u200b\u952e\u76d8\u200b\uff0c\u200b\u901a\u8fc7\u200b\u6309\u952e\u200b\u9009\u62e9\u200b\u53ef\u4ee5\u200b\u8fde\u63a5\u200b\u5230\u200b\u4e0d\u540c\u200b\u7684\u200b PC\uff0c\u200b\u987a\u7740\u200b\u663e\u793a\u5c4f\u200b\u7684\u200b\u7ebf\u200b\u5f80\u540e\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u56db\u53f0\u200b PC \u200b\u5728\u200b\u540e\u9762\u200b\u662f\u200b\u63d2\u200b\u5230\u200b\u4e86\u200b 1-4 \u200b\u53e3\u4e0a\u200b\u7684\u200b\uff08\u200b\u6211\u200b\u5f53\u65f6\u200b\u662f\u200b\u6ca1\u6709\u200b PC4\uff0c\u200b\u6709\u200b PC5 \u200b\u63d2\u200b\u5728\u200b 5 \u200b\u4e0a\u9762\u200b\uff0c\u200b\u6211\u200b\u7ed9\u200b\u6539\u200b\u63d2\u200b\u5230\u200b 4 \u200b\u4e86\u200b\uff09
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_2","title":"\u8d77\u6b65","text":"\u200b\u5176\u5b9e\u200b\u4e5f\u200b\u5c31\u200b\u8d77\u6b65\u200b\u662f\u200b\u6700\u96be\u200b\u7684\u200b\uff0c\u200b\u540e\u9762\u200b\u57fa\u672c\u200b\u5c31\u200b\u6309\u7167\u200b\u6587\u6863\u200b\u6765\u200b\u505a\u200b\u5c31\u662f\u200b.
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_3","title":"\u8fde\u4e0d\u4e0a\u200b\u4ea4\u6362\u673a","text":"\u200b\u8fde\u63a5\u200b\u4ea4\u6362\u673a\u200b\u8981\u200b\u505a\u200b\u7684\u200b\u6709\u200b\uff1a
\u200b\u5c31\u200b\u6211\u200b\u800c\u8a00\u200b\uff0c\u200b\u673a\u7bb1\u200b\u91cc\u200b\u7684\u200b\u4e0b\u9762\u200b\u7684\u200b\u4e00\u53f0\u200b\u4ea4\u6362\u673a\u200b\u662f\u200b\u6b7b\u6d3b\u200b\u8fde\u4e0d\u4e0a\u200b\uff0c\u200b\u6700\u540e\u200b\u8bd5\u200b\u4e86\u200b\u534a\u5929\u200b\u662f\u200b\u4e0a\u9762\u200b\u7684\u200b\u53e6\u4e00\u53f0\u200b\u4ea4\u6362\u673a\u200b\u7528\u200b\u624b\u6276\u200b\u7a33\u200b\u4e86\u200b\u53ef\u4ee5\u200b\u4e0a\u200b.
\u200b\u5982\u679c\u200b\u4f60\u8bd5\u200b\u4e86\u200b\u5f88\u591a\u200b\u90fd\u200b\u4e0d\u884c\u200b\u7684\u8bdd\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5728\u200b\u5b9e\u9a8c\u5ba4\u200b\u91cc\u200b\u6e9c\u8fbe\u200b\u4e00\u5708\u200b\u591a\u200b\u6478\u200b\u51e0\u4e2a\u200b\u4ea4\u6362\u673a\u200b\u56de\u6765\u200b.\u200b\u6211\u4eec\u200b\u7b2c\u4e8c\u6b21\u200b\u6478\u200b\u4e86\u200b\u4e24\u53f0\u200b\u767d\u8272\u200b\u7684\u200b\u5c0f\u5c0f\u7684\u200b\u4ea4\u6362\u673a\u200b\u6765\u200b\u7528\u200b.
"},{"location":"blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C---lab2-%E4%BD%BF%E7%94%A8%E4%BA%8C%E5%B1%82%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%84%E7%BD%91/#_4","title":"\u4ea4\u6362\u673a\u200b\u5bc6\u7801","text":"\u200b\u6211\u4eec\u200b\u6478\u6765\u200b\u7684\u200b\u4e24\u53f0\u200b\u4ea4\u6362\u673a\u200b\u90fd\u200b\u8981\u6c42\u200b enable \u200b\u5bc6\u7801\u200b\uff0c\u200b\u91cd\u7f6e\u200b\u5bc6\u7801\u200b\u7684\u200b\u65b9\u6cd5\u200b\u6478\u200b\u7684\u200b\u6bd4\u8f83\u200b\u719f\u200b\u4e86\u200b\uff0c\u200b\u6ce8\u610f\u200b\u9002\u7528\u200b\u7684\u200b\u662f\u200b\u5c0f\u578b\u200b\u767d\u8272\u200b\u4ea4\u6362\u673a\u200b\uff0c\u200b\u6b63\u9762\u200b\u578b\u53f7\u200b\u5199\u200b\u7740\u200b C3560 \u200b\u6b65\u9aa4\u200b\uff1a
flash_init
\uff0c\u200b\u7136\u540e\u200bren flash:config.text flash:config.old
\uff0c\u200b\u7136\u540e\u200bboot
\u200b\u5b9e\u9a8c\u200b\u5f00\u59cb\u200b\u524d\u200b\u6211\u4eec\u200b\u8981\u200b\u67e5\u770b\u200b\u5404\u200b PC \u200b\u7684\u200b IP\uff0cwin + R
\uff0c\u200b\u8f93\u5165\u200b cmd \u200b\u6253\u5f00\u200b\u547d\u4ee4\u884c\u200b\uff0c\u200b\u8f93\u5165\u200bipconfig
\u200b\u5c31\u200b\u80fd\u200b\u770b\u5230\u200b ip \u200b\u4e86\u200b\uff0c\u200b\u6ca1\u6709\u200b\u7684\u8bdd\u200b\u68c0\u67e5\u200b\u8fde\u63a5\u200b\uff0c\u200b\u770b\u770b\u200b\u4fe1\u53f7\u706f\u200b\u53d8\u7eff\u200b\u4e86\u200b\u6ca1\u6709\u200b.
\u200b\u4e00\u822c\u800c\u8a00\u200b PC \u200b\u7684\u200b IP \u200b\u90fd\u200b\u633a\u200b\u6b63\u5e38\u200b\u7684\u200b\uff0c\u200b\u4e92\u76f8\u200b\u4e4b\u95f4\u200b\u90fd\u200b\u901a\u200b\uff08\u200b\u6bd4\u8f83\u200b\u6b63\u5e38\u200b\u7684\u200b IP 10.0.0.13 10.0.1.13 10.0.2.13 10.0.3.13 \u200b\u4ed6\u4eec\u200b\u663e\u7136\u200b\u90fd\u200b\u901a\u200b\uff09
\u200b\u7136\u800c\u200b\u6211\u200b\u5f53\u65f6\u200b\u4e24\u4e2a\u200b PC \u200b\u662f\u200b 10 \u200b\u5f00\u5934\u200b\u4e24\u4e2a\u200b\u662f\u200b 192 \u200b\u5f00\u5934\u200b\uff0c\u200b\u4e0d\u901a\u200b\uff0c\u200b\u9700\u8981\u200b\u624b\u52a8\u200b\u8bbe\u5b9a\u200b
\u200b\u8fd9\u65f6\u5019\u200b\u5343\u4e07\u522b\u200b\u53bb\u200b putty \u200b\u91cc\u9762\u200b\u6572\u200b\u547d\u4ee4\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u6211\u200b\u8fd9\u4e48\u200b\u641e\u200b\u56db\u53f0\u200b PC \u200b\u5168\u65ad\u200b\u8054\u200b\u4e86\u200b\uff0c\u200b\u8981\u200b\u5728\u200b windows \u200b\u7684\u200b\u63a7\u5236\u9762\u677f\u200b\u91cc\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u5177\u4f53\u6b65\u9aa4\u200b\u7f51\u4e0a\u200b\u90fd\u200b\u6709\u200b\uff0c\u200b\u8981\u200b\u628a\u200b\u56db\u53f0\u200b\u653e\u5230\u200b\u540c\u4e00\u200b\u7f51\u6bb5\u200b.
\u200b\u606d\u559c\u200b
\u200b\u63a5\u4e0b\u6765\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8ddf\u7740\u200b\u6587\u6863\u200b\u4e00\u6b65\u6b65\u200b\u8d70\u200b\u5b8c\u200b\u5b9e\u9a8c\u200b\u4e86\u200b.
"},{"location":"blog/enable-chatgpt_academic/","title":"Enable ChatGPT_academic","text":"Abstract
\u200b\u901b\u200b\u5927\u8857\u200b\u7684\u200b\u65f6\u5019\u200b\u5076\u7136\u200b\u770b\u5230\u200b\u7684\u200b\u5de5\u5177\u200b\uff0c\u200b\u8dd1\u200b\u8d77\u6765\u200b\u7528\u7528\u200b\u770b\u200b\uff01
\u200b\u51c6\u5907\u200b\u5de5\u4f5c\u200b
\u200b\u8bf7\u200b\u5728\u200b\u9605\u8bfb\u200b\u6b64\u6587\u200b\u524d\u200b\u51c6\u5907\u200b\u597d\u200b ChatGPT \u200b\u7684\u200b API Key \u200b\u548c\u200b\u597d\u200b\u7528\u200b\u7684\u200b\u4ee3\u7406\u200b.\uff08\u200b\u524d\u8005\u200b\u4e3b\u8981\u200b\u662f\u200b\u6ce8\u518c\u200b\u597d\u200b\u8d26\u53f7\u200b\u5c31\u884c\u200b\uff0c\u200b\u5408\u7406\u200b\u5229\u7528\u200b https://sms-activate.org/\uff09
\u200b\u4e3b\u8981\u200b\u7684\u200b\u6d41\u7a0b\u200b\u5c31\u200b\u5728\u200b\u9879\u76ee\u200b\u7684\u200b\u6e90\u5730\u5740\u200b\u8bb2\u200b\u7684\u200b\u5f88\u200b\u8be6\u7ec6\u200b\u4e86\u200b\uff0c\u200b\u7167\u200b\u505a\u200b\u5373\u53ef\u200b.
\u200b\u7b14\u8005\u200b\u6ca1\u6709\u200b\u7528\u200b docker \u200b\u90e8\u7f72\u200b\uff0c\u200b\u90e8\u7f72\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u53ea\u200b\u9047\u5230\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u6362\u200b\u8fc7\u6e90\u200b\u540e\u200b pip \u200b\u627e\u200b\u4e0d\u5230\u200b\u9ad8\u200b\u7248\u672c\u200b\u7684\u200b gradio
\u200b\u89e3\u51b3\u65b9\u6848\u200b\u662f\u200b\uff1a
pip install --upgrade gradio -i https://pypi.org/simple\n
-i \u200b\u662f\u200b --index-url \u200b\u7684\u200b\u7f29\u5199\u200b\uff0c\u200b\u610f\u601d\u200b\u662f\u4ece\u200b\u6307\u5b9a\u200b\u6e90\u200b\u4e0b\u8f7d\u200b
"},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/","title":"\u7528\u200b Mac \u200b\u7684\u200b VSCode \u200b\u8c03\u8bd5\u200b C/C++\u200b\u7a0b\u5e8f","text":"Abstract
\u200b\u5728\u200b Mac \u200b\u7684\u200b\u73af\u5883\u200b\u4e0a\u7528\u200b VSCode \u200b\u6765\u200b debug \u200b\u634f\u200b\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u4e5f\u200b\u78b0\u5230\u200b\u4e9b\u200b\u95ee\u9898\u200b\u7684\u8bdd\u200b\u4e0d\u59a8\u200b\u6765\u200b\u770b\u770b\u200b\ud83d\udc40
\u200b\u73af\u5883\u200b
MacOS: Ventura 13.2.1 VSCode: 1.76.2 x64 C/C++: 1.14.5 CodeLLDB: 1.8.0 Code Runner: 0.12.0
"},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#cc","title":"C/C++","text":"\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b VSCode \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u542f\u7528\u200b\u540e\u200b\uff0c\u200b\u4f1a\u200b\u5728\u200b VSCode \u200b\u4e2d\u200b\u6dfb\u52a0\u200b C/C++\u200b\u7684\u200b\u8bed\u6cd5\u200b\u9ad8\u4eae\u200b\u3001\u200b\u4ee3\u7801\u200b\u63d0\u793a\u200b\u3001\u200b\u4ee3\u7801\u200b\u8df3\u8f6c\u200b\u7b49\u200b\u529f\u80fd\u200b. \u200b\u540c\u65f6\u200b\u53f3\u4e0a\u89d2\u200b\u51fa\u73b0\u200b\u5982\u4e0b\u200b\u56fe\u6807\u200b\uff1a
\u200b\u9009\u62e9\u200b run \u200b\u7684\u8bdd\u200b\uff0c\u200b\u63d2\u4ef6\u200b\u5c31\u200b\u4f1a\u200b\u63a5\u7740\u200b\u8ba9\u200b\u6211\u4eec\u200b\u9009\u62e9\u200b\u4f7f\u7528\u200b\u7684\u200b\u7f16\u8bd1\u5668\u200b
\u200b\u6bd4\u5982\u200b\u6211\u200b\u9009\u62e9\u200b clang++\uff0c\u200b\u90a3\u4e48\u200b\u63d2\u4ef6\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u5f53\u524d\u5de5\u4f5c\u200b\u533a\u4e0b\u200b\u81ea\u52a8\u200b\u751f\u6210\u200b\u76f8\u5e94\u200b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u5e76\u200b\u5f00\u59cb\u8fd0\u884c\u200b.
\u200b\u5bf9\u4e8e\u200b\u8c03\u8bd5\u200b\uff0c\u200b\u5f88\u200b\u9057\u61be\u200b\u7684\u200b\u662f\u200b\uff0c\u200b\u6211\u4eec\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u662f\u200b\u8fd0\u884c\u200b\u5728\u200b Debug Console \u200b\u4e2d\u200b\u7684\u200b\uff0c\u200b\u800c\u200b\u4e0d\u662f\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\uff0c\u200b\u8fd0\u884c\u200b\u5728\u200b debug console \u200b\u4e2d\u200b\u7684\u200b\u95ee\u9898\u200b\u662f\u200b\u6ca1\u6709\u200b stdin \u200b\u8ba9\u200b\u6211\u4eec\u200b\u8f93\u5165\u200b.
\u200b\u7ecf\u8fc7\u200b\u67e5\u8be2\u200b\uff0c\u200b\u53d1\u73b0\u200b Mac \u200b\u4e0a\u200b C/C++\u200b\u63d2\u4ef6\u200b\u4e0d\u200b\u652f\u6301\u200b debugger \u200b\u8fd0\u884c\u200b\u5728\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\uff0csetting \u200b\u91cc\u200b\u4e5f\u200b\u6ca1\u6709\u200b\u4fee\u6539\u200b\u9009\u9879\u200b\uff0c\u200b\u53ea\u80fd\u200b\u8fd0\u884c\u200b\u5728\u200b debug console \u200b\u6216\u8005\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b.\u200b\u8be6\u89c1\u200b\u5b98\u7f51\u200b
\u200b\u5982\u679c\u200b\u5e0c\u671b\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b\u8fd0\u884c\u200b\u8fdb\u884c\u200b\u8f93\u5165\u200b\u7684\u8bdd\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u5728\u200b launch.json \u200b\u4e2d\u200b\u914d\u7f6e\u200b.\u200b\u6ce8\u610f\u200b\uff0c\u200b\u5f53\u524d\u200b\u7248\u672c\u200b\u9ed8\u8ba4\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u53ea\u4f1a\u200b\u751f\u6210\u200b task.json\uff0c\u200b\u6ca1\u6709\u200b launch.json\uff1a
\u200b\u90a3\u200b\u6211\u4eec\u200b\u5c31\u200b\u5148\u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b task.json.\u200b\u8fd9\u91cc\u200b\u7684\u200b\u4e00\u4e9b\u200b\u53c2\u6570\u200b\u662f\u200b\u53ef\u4ee5\u200b\u4fee\u6539\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u200b args\uff0c\u200b\u5c31\u662f\u200b\u7f16\u8bd1\u200b\u65f6\u200b\u7684\u200b\u53c2\u6570\u200b\uff0c\u200b\u5176\u4e2d\u200b-g
\u200b\u53c2\u6570\u200b\uff0c\u200b\u4f1a\u200b\u8ba9\u200b\u7f16\u8bd1\u5668\u200b\u751f\u6210\u200b\u8c03\u8bd5\u4fe1\u606f\u200b\uff0c\u200b\u8fd9\u6837\u200b\u624d\u80fd\u200b\u8fdb\u884c\u200b debug.\u200b\u8fd8\u6709\u200b cwd \u200b\u53c2\u6570\u200b\uff0c\u200b\u8fd0\u884c\u200b\u7a0b\u5e8f\u200b\u7684\u200b\u6587\u4ef6\u5939\u200b\u4f4d\u7f6e\u200b\uff0c\u200b\u5982\u679c\u200b\u4e0d\u5199\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u9ed8\u8ba4\u200b\u5728\u200b\u5f53\u524d\u5de5\u4f5c\u200b\u533a\u200b\u7684\u200b\u6839\u76ee\u5f55\u200b\u4e0b\u200b\u8fd0\u884c\u200b\uff0c\u200b\u800c\u200b\u975e\u200b\u7a0b\u5e8f\u200b\u6240\u5728\u200b\u76ee\u5f55\u200b\uff0c\u200b\u8fd9\u200b\u5728\u200b\u4e00\u4e9b\u200b\u6253\u5f00\u200b\u6587\u4ef6\u200b\u7684\u200b\u64cd\u4f5c\u200b\u4e0a\u200b\u53ef\u80fd\u200b\u4f1a\u200b\u5bfc\u81f4\u200b\u95ee\u9898\u200b.\u200b\u6700\u540e\u200b\u6ce8\u610f\u200b\u4e00\u4e0b\u200b label\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b\u522b\u7684\u200b\u914d\u7f6e\u6587\u4ef6\u200b\u4e2d\u200b\u901a\u8fc7\u200b\u8fd9\u4e2a\u200b label \u200b\u6765\u200b\u8c03\u7528\u200b\u8fd9\u4e2a\u200b task.
\u200b\u6211\u4eec\u200b\u65b0\u5efa\u200b\u4e00\u4e2a\u200b\u914d\u7f6e\u6587\u4ef6\u200b launch.json\uff1a\u200b\u9009\u62e9\u200b\u4fa7\u680f\u200b\u7684\u200b debug \u200b\u56fe\u6807\u200b\uff0c\u200b\u70b9\u51fb\u200bcreate a launch.json file
:
\u200b\u521a\u200b\u5f00\u59cb\u200b\u662f\u200b\u7a7a\u200b\u7684\u200b\uff0c\u200b\u4ec0\u4e48\u200b\u90fd\u200b\u6ca1\u6709\u200b.\u200b\u70b9\u51fb\u200b\u53f3\u4e0b\u89d2\u200b\u7684\u200bAdd Configuration
\uff0c\u200b\u5c31\u200b\u6709\u200b\u4e00\u4e9b\u200b\u9009\u9879\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u6709\u200b\u63d2\u4ef6\u200b\u4e3a\u200b\u6211\u4eec\u200b\u51c6\u5907\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u6a21\u7248\u200b\uff0c\u200b\u6211\u4eec\u200b\u9009\u62e9\u200bC/C++ lldb\uff08\u200b\u542f\u52a8\u200b\uff09
\uff0c\u200b\u610f\u601d\u200b\u662f\u200b C/C++\u200b\u63d2\u4ef6\u200b\u63d0\u4f9b\u200b\u7684\u200b\uff0c\u200b\u542f\u52a8\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u5e76\u200b\u5bf9\u200b\u5176\u200b debug \u200b\u7684\u200b\u914d\u7f6e\u200b\uff0c\u200b\u9009\u62e9\u200b\u9644\u52a0\u200b\u7684\u8bdd\u200b\u662f\u200b\u9644\u52a0\u200b\u5230\u200b\u4e00\u4e2a\u200b\u5df2\u7ecf\u200b\u5728\u200b\u6267\u884c\u200b\u7684\u200b\u8fdb\u7a0b\u200b\u4e0a\u200b\u7684\u200b\uff1a
\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u6a21\u677f\u200b\u957f\u200b\u8fd9\u4e2a\u200b\u6837\u5b50\u200b\uff1a
\u200b\u8fd9\u200b\u5e76\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b\uff0c\u200b\u9996\u5148\u200b\u4fee\u6539\u200b program \u200b\u4e3a\u200b
\"program\": \"${workspaceFolder}/${fileBasenameNoExtension}\"\uff0c\n
\uff0c\u200b\u8fd9\u6837\u200b\u4ed6\u200b\u8fd0\u884c\u200b\u7684\u200b\u5c31\u200b\u4f1a\u200b\u662f\u200b\u5f53\u524d\u76ee\u5f55\u200b\u4e0b\u200b\u7684\u200b\u5f53\u524d\u200b\u6587\u4ef6\u200b\uff08\u200b\u4e00\u822c\u200b\u5c31\u662f\u200b\u5149\u6807\u200b\u60ac\u505c\u200b\u7684\u200b\u90a3\u4e2a\u200b\u6587\u4ef6\u200b\uff09\u200b\u540c\u540d\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\uff08\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u6ca1\u200b\u540e\u7f00\u200b\uff09\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7f16\u8bd1\u200b\u51fa\u6765\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u53eb\u505a\u200ba.out
\uff0c\u200b\u8fd9\u4e2a\u200b\u914d\u7f6e\u200b\u5c31\u200b\u4e0d\u200b\u9002\u7528\u200b\uff08\u200b\u4f1a\u200b\u8c03\u7528\u200ba
\uff09\uff0c\u200b\u8bf7\u200b\u5728\u200b\u914d\u7f6e\u200b\u4e2d\u200b\u4fee\u6539\u200b\u4e3a\u200b/a.out
\u200b\u6216\u8005\u200b\u8ba9\u200b\u7f16\u8bd1\u200b\u51fa\u6765\u200b\u7684\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u540d\u4e3a\u200ba
. \u200b\u65b0\u52a0\u200b\u4e00\u5217\u200bpreLaunchTask
\uff0c\u200b\u503c\u200b\u5c31\u662f\u200b\u4e4b\u524d\u200b task.json \u200b\u4e0a\u200b\u7684\u200b label\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u8fd0\u884c\u200b\u524d\u200b\u53ef\u6267\u884c\u6587\u4ef6\u200b\u524d\u5148\u200b\u8fd0\u884c\u200b task \u200b\u7f16\u8bd1\u200b\u5f53\u524d\u200b\u6587\u4ef6\u200b\uff08\u200b\u8fd9\u6837\u200b\u6bd4\u8f83\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u81ea\u52a8\u200b\u628a\u200b\u6700\u65b0\u200b\u7684\u200b\u6e90\u4ee3\u7801\u200b\u7f16\u8bd1\u200b\uff0c\u200b\u8981\u200b\u591a\u200b\u6587\u4ef6\u200b\u7f16\u8bd1\u200b\u7684\u8bdd\u200b\u4e5f\u200b\u5728\u200b task \u200b\u8bbe\u7f6e\u200b.\u200b\u5982\u679c\u200b\u4e0d\u200b\u4f7f\u7528\u200b task \u200b\u624b\u52a8\u200b\u7f16\u8bd1\u200b\u7684\u8bdd\u200b\uff0c\u200b\u8bb0\u5f97\u200b\u52a0\u4e0a\u200b-g\uff09.\u200b\u6700\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u8981\u200b\u628a\u200b\"externalConsole\": false\uff0c
\u200b\u6539\u4e3a\u200b\"externalConsole\": true\uff0c
\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b\u4e2d\u200b\u8fd0\u884c\u200b\u4e86\u200b.
\u200b\u7b14\u8005\u200b\u5230\u200b\u8fd9\u200b\u4e00\u6b65\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5728\u200b\u5916\u90e8\u200b\u7ec8\u7aef\u200b debug \u200b\u5566\u200b\uff0c\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u5728\u200b watch \u200b\u7a97\u53e3\u200b\u6267\u884c\u547d\u4ee4\u200b\u6765\u200b\u76d1\u89c6\u200b\u53d8\u91cf\u200b\uff0c\u200b\u5982\u200b\u5168\u5c40\u53d8\u91cf\u200b\u4e00\u7c7b\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b C/C++\u200b\u5bf9\u200b\u4e00\u4e9b\u200b\u7c7b\u578b\u200b\u7684\u200b\u53d8\u91cf\u200b\u7684\u200b\u76d1\u89c6\u200b\u652f\u6301\u200b\u4e0d\u662f\u200b\u5f88\u200b\u597d\u200b\uff0c\u200b\u6bd4\u5982\u8bf4\u200b string\uff1a \u200b\u76d1\u89c6\u200b\u4fe1\u606f\u200b\u5c31\u662f\u200b\u4e00\u5768\u200b.
"},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#code-runner","title":"Code Runner","text":"\u200b\u53e6\u200b\u4e00\u4e2a\u200b VSCode \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u542f\u7528\u200b\u540e\u200b\u53f3\u4e0a\u89d2\u200b\u53c8\u200b\u4f1a\u200b\u591a\u200b\u4e00\u4e2a\u200b\u6807\u200b\uff1a
\u200b\u8fd9\u4e2a\u200b\u662f\u200b\u53ef\u4ee5\u200b\u8dd1\u200b\u5728\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\u91cc\u200b\u7684\u200b\uff1a
"},{"location":"blog/%E7%94%A8-mac-%E7%9A%84-vscode-%E8%B0%83%E8%AF%95-cc%E7%A8%8B%E5%BA%8F/#codelldb","title":"CodeLLDB \ud83d\udc4d","text":"\u200b\u8fd9\u4e2a\u200b\u63d2\u4ef6\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b debug\uff0c\u200b\u6211\u200b\u611f\u89c9\u200b\u6bd4\u200b C/C++\u200b\u597d\u7528\u200b\u591a\u200b\u4e86\u200b.
\u200b\u542f\u7528\u200b\u63d2\u4ef6\u200b\u540e\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b launch.json \u200b\u4e2d\u53ef\u9009\u200b\u914d\u7f6e\u200b\u5c31\u200b\u591a\u200b\u4e86\u200b\u51e0\u4e2a\u200b\uff0c\u200b\u6211\u4eec\u200b\u4f7f\u7528\u200bCodeLLDB (launch)
\u200b\u6a21\u677f\u200b\uff1a
\u200b\u540c\u6837\u200b\u7a0d\u5fae\u200b\u4fee\u6539\u200b\uff1a
\u200b\u56de\u5230\u200b\u4fa7\u8fb9\u200b\u680f\u200b debug \u200b\u6a21\u5757\u200b\uff0c\u200b\u9009\u62e9\u200b\u65b0\u200b\u7684\u200b\u542f\u52a8\u200b\u914d\u7f6e\u200b\uff08\u200b\u8fd9\u91cc\u200b\u9009\u200b\u7684\u200b\u662f\u200b launch.json \u200b\u91cc\u200b\u5199\u200b\u597d\u200b\u7684\u200b\u51e0\u4e2a\u200b\u914d\u7f6e\u200b\uff09\uff1a
\u200b\u8fd9\u4f1a\u200b\u5728\u200b\u6211\u4eec\u200b\u542f\u7528\u200b debug \u200b\u7684\u200b\u65f6\u5019\u200b\u53bb\u200b launch.json \u200b\u91cc\u9762\u200b\u627e\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u7684\u200b\u914d\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u8fdb\u884c\u200b debug.
\u200b\u6709\u65f6\u5019\u200b debug \u200b\u5f39\u200b\u51fa\u200b\u5947\u602a\u200b\u7684\u200b\u62a5\u9519\u200b\uff0c\u200b\u662f\u56e0\u4e3a\u200b\u5f53\u524d\u200b\u6253\u5f00\u200b\u7684\u200b\u662f\u200b\u914d\u7f6e\u6587\u4ef6\u200b\uff0c\u200b\u8bd5\u56fe\u200b\u5bf9\u200b launch.json \u200b\u8fdb\u884c\u200b debug\uff0c\u200b\u6240\u4ee5\u200b\u62a5\u9519\u200b\u4e86\u200b.\u200b\u6211\u4eec\u200b\u6253\u5f00\u200b\u8981\u200b debug \u200b\u7684\u200b\u6e90\u4ee3\u7801\u200b\u6587\u4ef6\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b.
CodeLLDB \u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b\u5185\u7f6e\u200b\u7ec8\u7aef\u200b\uff1a
\u200b\u53ef\u4ee5\u200b\u5728\u200b\u76d1\u89c6\u200b\u91cc\u200b\u76f4\u63a5\u200b\u7528\u200b\u53d8\u91cf\u540d\u200b\u76d1\u89c6\u200b\u53d8\u91cf\u200b\uff1a
\u200b\u53ef\u4ee5\u200b\u5728\u200b debug console \u200b\u4e2d\u200b\u8f93\u5165\u200b\u547d\u4ee4\u200b\uff1a
\u200b\u53d8\u91cf\u200b\u91cc\u200b\u7684\u200b\u5b57\u7b26\u4e32\u200b\u652f\u6301\u200b\u4e5f\u597d\u200b\u4e00\u4e9b\u200b\uff1a
\u200b\u8fd9\u91cc\u200b\u8fd8\u6709\u200b\u5b98\u65b9\u200b\u6587\u6863\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u770b\u200b.
\u200b\u624b\u52a8\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b task.json
\u200b\u5728\u200b\u83dc\u5355\u200b terminal > Configure Tasks \u200b\u9009\u62e9\u200b C/C++\u200b\u6765\u200b\u751f\u6210\u200b\u6a21\u677f\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab1-%E6%97%B6%E9%92%9F%E4%B8%AD%E6%96%AD/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab1 \u200b\u65f6\u949f\u200b\u4e2d\u65ad","text":"Abstract
\u200b\u4e00\u4e2a\u200b kernel \u200b\u7684\u200b\u8fd0\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab1-%E6%97%B6%E9%92%9F%E4%B8%AD%E6%96%AD/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi`\u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\n- `start_kernel`: \u200b\u8fdb\u884c\u200b\u4e00\u4e9b\u200b\u8f93\u51fa\u200b\uff0c\u200b\u8fdb\u5165\u200b test()\u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- `_traps`: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u597d\u200b\u4e0a\u4e0b\u6587\u200b\u540e\u200b\u8c03\u7528\u200b\u4e2d\u65ad\u200b\u5904\u7406\u7a0b\u5e8f\u200b trap_handler\n- `trap_handler`: \u200b\u786e\u8ba4\u200b\u662f\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u540e\u200b\u8c03\u7528\u200b clock_set_next\n- `clock_set_next`: \u200b\u5229\u7528\u200b sbi_ecall \u200b\u8bbe\u7f6e\u200b\u4e0b\u200b\u4e00\u6b21\u200b\u4e2d\u65ad\u200b\u65f6\u95f4\u200b\n- `_traps`: \u200b\u8fd4\u56de\u200b_traps \u200b\u540e\u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b sret \u200b\u8fd4\u56de\u200b\u6b7b\u5faa\u73af\u200b\n- `test`: \u200b\u6b7b\u5faa\u73af\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u91cd\u590d\u200b\u4e0a\u8ff0\u200b\u6d41\u7a0b\u200b\n
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab2-%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab2 \u200b\u7ebf\u7a0b\u200b\u8c03\u5ea6","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u7684\u200b\u8fd0\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab2-%E7%BA%BF%E7%A8%8B%E8%B0%83%E5%BA%A6/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi`\u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n - `mm_init`: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n - `task_init`: \u200b\u5b8c\u6210\u200b\u5bf9\u200b\u6240\u6709\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB \u200b\u7684\u200b\u521d\u59cb\u5316\u200b(1)\uff0c\u200b\u5305\u62ec\u200b\u5f53\u524d\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b idle \u200b\u7ebf\u7a0b\u200b\n - `test_init`: \u200b\u8be5\u200b\u51fd\u6570\u8c03\u7528\u200b\u4f1a\u586b\u200b\u597d\u200b task_test_counter \u200b\u548c\u200b 1task_test_priority \u200b\u4e24\u4e2a\u200b\u6570\u7ec4\u200b\u7528\u4e8e\u200b\u7ed9\u200b\u6211\u4eec\u200b\u540e\u7eed\u200b\u521d\u59cb\u5316\u200b\u4f7f\u7528\u200b\n - \u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\u4f5c\u4e3a\u200b idle \u200b\u7684\u200b PCB\uff0c\u200b\u586b\u5199\u200b\u5e76\u4e14\u200b\u8bbe\u7f6e\u200b\u4e3a\u200b current\n - \u200b\u8fed\u4ee3\u200b\u4e3a\u200b\u6bcf\u4e2a\u200b\u7ebf\u7a0b\u200b\u5206\u914d\u200b\u5e76\u200b\u586b\u5199\u200b PCB\uff0c\u200b\u6ce8\u610f\u200b\u5176\u4e2d\u200b ra \u200b\u548c\u200b sp \u200b\u7684\u200b\u8bbe\u7f6e\u200b\n - ra: ra \u200b\u56fa\u5b9a\u200b\u4e3a\u200b__dummy\uff0c\u200b\u8fd9\u662f\u200b\u6211\u4eec\u200b\u4e3a\u200b\u7ebf\u7a0b\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u540e\u200b\u8bbe\u7f6e\u200b\u7684\u200b\u8fd4\u56de\u200b\u5730\u5740\u200b\n - sp: \u200b\u76f4\u63a5\u200b\u7528\u200b\u5206\u914d\u200b\u7ed9\u200b PCB \u200b\u7684\u200b\u8fd9\u200b\u4e00\u9875\u200b\u505a\u6808\u200b\uff0c\u200b\u6808\u9876\u200b\u81ea\u7136\u200b\u5c31\u662f\u200b PCB \u200b\u5730\u5740\u200b+4K\n- `start_kernel`: \u200b\u8fdb\u5165\u200b test()\u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- `_traps`: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u597d\u200b\u4e0a\u4e0b\u6587\u200b\u540e\u200b\u8c03\u7528\u200b\u4e2d\u65ad\u200b\u5904\u7406\u7a0b\u5e8f\u200b trap_handler\n- `trap_handler`: \u200b\u786e\u8ba4\u200b\u662f\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\u540e\u200b\uff0c\u200b\u8bbe\u7f6e\u200b\u4e0b\u6b21\u200b\u4e2d\u65ad\u200b\u65f6\u95f4\u200b\uff0c\u200b\u8fdb\u5165\u200b do_timer()\u200b\u68c0\u67e5\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u5269\u4f59\u65f6\u95f4\u200b\n- `do_timer`: \u200b\u5982\u679c\u200b\u662f\u200b idle \u200b\u6216\u8005\u200b\u65f6\u95f4\u200b\u7528\u5c3d\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule()\u200b\u8c03\u5ea6\u200b\u8d70\u200b\uff0c\u200b\u5426\u5219\u200b\u65f6\u95f4\u200b\u51cf\u4e00\u200b\n- `schedule`: \u200b\u6839\u636e\u200b policy \u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u8c03\u7528\u200b switch_to()\u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b(2)\uff0c\u200b\u5982\u679c\u200b\u6240\u6709\u200b\u7ebf\u7a0b\u200b\u65f6\u95f4\u200b\u90fd\u200b\u7528\u200b\u5b8c\u200b\u4e86\u200b\u5c31\u200b\u5148\u200b\u521d\u59cb\u5316\u200b\u65f6\u95f4\u200b\u518d\u200b\u9009\u62e9\u200b\n- `switch_to`: \u200b\u524d\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- `__switch_to`: \u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u7ebf\u7a0b\u200b\u7684\u200b PCB(3)\n- `__dummy`: \u200b\u4ece\u200b__switch_to \u200b\u8fd4\u56de\u200b\uff0c\u200b\u8fd4\u56de\u200b\u5730\u5740\u200b\u5c31\u662f\u200b PCB \u200b\u4e2d\u200b\u6062\u590d\u200b\u7684\u200b__dummy.\u200b\u6211\u4eec\u200b\u5728\u200b dummy \u200b\u4e2d\u200b\u7ed3\u675f\u200b\u6b64\u6b21\u200b\u4e2d\u65ad\u200b\u7528\u200b sret \u200b\u56de\u5230\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u6267\u884c\u200b\u7684\u200b\u51fd\u6570\u200b dummy\n- `dummy`: \u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u4e3b\u200b\u51fd\u6570\u200b\uff0c\u200b\u5207\u6362\u200b\u56de\u6765\u200b\u540e\u200b\u8fdb\u884c\u200b\u4e00\u6b21\u200b\u8f93\u51fa\u200b\u7136\u540e\u200b\u5faa\u73af\u200b\u7b49\u5f85\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\n- `_traps`: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u4e00\u822c\u200b\u662f\u200b\u5269\u4f59\u65f6\u95f4\u200b\u51cf\u4e00\u200b\u7136\u540e\u200b\u7ee7\u7eed\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u95f4\u200b\u7528\u200b\u5b8c\u200b\uff0c\u200b\u518d\u6b21\u200b\u8fdb\u5165\u200b schedule \u200b\u5faa\u73af\u200b\n
\u200b\u6ce8\u610f\u200b\u5230\u200b\u6211\u4eec\u200b\u5bf9\u4e8e\u200b\u975e\u200b idle \u200b\u7ebf\u7a0b\u200b\u7b2c\u4e00\u6b21\u200b\u4ece\u200b __switch_to \u200b\u8fd4\u56de\u200b\u7684\u200b\u90fd\u200b\u662f\u200b __dummy\uff0c \u200b\u8fd9\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b PCB \u200b\u88ab\u200b\u6062\u590d\u200b\u51fa\u6765\u200b\u7684\u200b ra \u200b\u51b3\u5b9a\u200b\u7684\u200b
\u200b\u4f46\u662f\u200b\u8be5\u200b\u7ebf\u7a0b\u200b\u7b2c\u4e8c\u6b21\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u7684\u200b\u65f6\u5019\u200b\uff0c\u200b\u5b83\u200b\u6062\u590d\u200b\u7684\u200b PCB \u200b\u5c31\u662f\u200b\u5b83\u200b\u4e4b\u524d\u200b\u81ea\u5df1\u200b\u5b58\u200b\u4e0b\u6765\u200b\u7684\u200b\u800c\u200b\u4e0d\u518d\u200b\u662f\u200b\u521d\u59cb\u5316\u200b\u7684\u200b.\u200b\u8fd9\u4e2a\u200b\u5b58\u200b\u4e0b\u6765\u200b\u7684\u200b ra \u200b\u5c31\u662f\u200b switch_to\uff0c__switch_to \u200b\u51fd\u6570\u200b\u8fd0\u884c\u200b\u65f6\u200b\u7684\u200b ra \u200b\u5f53\u7136\u200b\u662f\u200b__switch_to \u200b\u7684\u200b\u8c03\u7528\u8005\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab3 \u200b\u865a\u62df\u5185\u5b58","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi`\u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b(1)\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n - `setup_vm`: \u200b\u586b\u5199\u200b\u9875\u8868\u200b(2)\n - `relocate`: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u81f3\u6b64\u200b\u865a\u62df\u5185\u5b58\u200b\u5df2\u7ecf\u200b\u542f\u52a8\u200b\n - `mm_init`: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n - `setup_vm_final`: \u200b\u5229\u7528\u200b mm \u200b\u4e2d\u200b\u7684\u200b\u51fd\u6570\u200b\u5206\u914d\u200b\u65b0\u200b\u7684\u200b\u9875\u200b\u6765\u200b\u8bbe\u7f6e\u200b\u591a\u7ea7\u200b\u5206\u6bb5\u200b\u9875\u8868\u200b\uff0c\u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b(3)\n - `task_init`: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n- `start_kernel`: \u200b\u8fdb\u5165\u200b test \u200b\u6b7b\u5faa\u73af\u200b\uff0c\u200b\u7b49\u5f85\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u8d70\u200b\n
\u200b\u6211\u4eec\u200b\u542f\u7528\u200b\u865a\u62df\u5185\u5b58\u200b\u7684\u200b\u90a3\u200b\u4e00\u6b65\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5199\u200b satp \u200b\u7684\u200b\u90a3\u200b\u4e00\u6b65\u200b\u53ea\u662f\u200b\u4e00\u53e5\u200bcsrw
\uff0c\u200b\u6307\u4ee4\u200b\u5199\u200b\u5b8c\u200b\u5bc4\u5b58\u5668\u200b\u4e5f\u200b\u4e0d\u4f1a\u200b\u5e72\u4ec0\u4e48\u200b\u989d\u5916\u200b\u7684\u200b\u4e8b\u60c5\u200b\uff0cCP \u200b\u8fd8\u662f\u200b\u8981\u200b\u7ee7\u7eed\u200b\u53bb\u200b PC+4 \u200b\u6267\u884c\u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b.
\u200b\u6240\u4ee5\u200b PC+4 \u200b\u8fd9\u4e2a\u200b\u5730\u5740\u200b\u5728\u200b\u865a\u62df\u5185\u5b58\u200b\u4e0b\u8be5\u200b\u600e\u4e48\u200b\u53d6\u6307\u200b(1)\uff0c\u200b\u8fd9\u4e2a\u200b\u95ee\u9898\u200b\u5c31\u662f\u200b\u601d\u8003\u9898\u200b\u6240\u200b\u5173\u5fc3\u200b\u7684\u200b.
\u200b\u6587\u6863\u200b\u4e2d\u200b\u5176\u5b9e\u200b\u5df2\u7ecf\u200b\u6709\u200b\u94fe\u63a5\u200b\u6307\u5411\u200b\u4e86\u200b\u89e3\u91ca\u200b\u8fd9\u200b\u4e00\u70b9\u200b\u7684\u200b\u6587\u6863\u200b\uff0c\u200b\u5177\u4f53\u200b\u800c\u8a00\u200b\uff0c\u200b\u5728\u200b\u8fd9\u6bb5\u200b\u63cf\u8ff0\u200b\u8f6c\u5316\u200b\u865a\u62df\u5185\u5b58\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u7684\u200b\u624b\u518c\u200b\u4e2d\u200b
\u200b\u4ed4\u7ec6\u9605\u8bfb\u200b\uff0c\u200b\u5176\u4e2d\u200b\u7b2c\u56db\u70b9\u200b\u63d0\u5230\u200b\u82e5\u200b\u5f53\u524d\u9875\u200b\u8868\u9879\u200b\u7684\u200b\u6743\u9650\u200b\u8868\u660e\u200b\u4e86\u200b\u53ef\u8bfb\u200b\u6216\u8005\u200b\u53ef\u200b\u6267\u884c\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5c31\u200b\u4f1a\u200b\u5f53\u4f5c\u200b\u662f\u200b\u6700\u540e\u200b\u4e00\u7ea7\u200b\u9875\u8868\u200b\uff0c\u200b\u5426\u5219\u200b\u624d\u200b\u4f1a\u200b\u628a\u200b\u5b83\u200b\u5f53\u4f5c\u200b\u67d0\u200b\u4e00\u7ea7\u200b\u7684\u200b\u9875\u8868\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab3-%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/#debug","title":"debug \u200b\u6ce8\u610f","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b
\u200b\u57fa\u672c\u200b\u4fe1\u606f\u200b
\u200b\u65f6\u95f4\u200b\uff1a2023 \u200b\u79cb\u51ac\u200b
\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff1a
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi` \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus(1) \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n - `setup_vm`: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n - `relocate`: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n - `mm_init`: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n - `setup_vm_final`: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n - `task_init`: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n - \u200b\u5bf9\u4e8e\u200b idle \u200b\u4ee5\u5916\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u9700\u8981\u200b\u5728\u200b task_struct \u200b\u4e2d\u200b\u989d\u5916\u200b\u7ed9\u5b9a\u200b\u4ee5\u4e0b\u200b\u4fe1\u606f\u200b\uff1a\n - `sepc`: \u200b\u6b64\u200b\u7ebf\u7a0b\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u540e\u200b\u4ece\u200b S Mode \u200b\u56de\u200b U Mode \u200b\u7684\u200b\u5730\u5740\u200b\uff0c\u200b\u663e\u7136\u200b\u5c31\u662f\u200b\u7528\u6237\u7a0b\u5e8f\u200b\u8d77\u59cb\u200b\u5730\u5740\u200b USER_START\n - `sscratch`: \u200b\u7528\u6237\u200b\u6808\u9876\u200b\uff0c\u200b\u7ea6\u5b9a\u200b\u4e3a\u200b USER_END\n - `sstatus`: \u200b\u8fdb\u884c\u200b\u8bbe\u7f6e\u200b\u4f7f\u5f97\u200b sret \u200b\u540e\u200b\u6211\u4eec\u200b\u56de\u5230\u200b U Mode \u200b\u800c\u200b\u975e\u200b S Mode\n - `satp`: \u200b\u6bcf\u4e2a\u200b\u8fdb\u7a0b\u200b\u90fd\u200b\u6709\u200b\u81ea\u5df1\u200b\u7684\u200b\u7269\u7406\u5730\u5740\u200b\u7a7a\u95f4\u200b\u548c\u200b\u865a\u62df\u5730\u5740\u200b\u7a7a\u95f4\u200b\uff0c\u200b\u5f7c\u6b64\u200b\u9694\u79bb\u200b\n - \u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u5404\u200b\u8fdb\u7a0b\u200b\u95f4\u200b\u9694\u79bb\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u200b\u9700\u8981\u200b\u6bcf\u4e2a\u200b\u8fdb\u7a0b\u200b\u5404\u81ea\u200b\u6709\u200b\u4e00\u4efd\u200b\u4e8c\u8fdb\u5236\u200b\u7684\u200b\u6587\u4ef6\u200b\u7684\u200b\u62f7\u8d1d\u200b(2)\n - \u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\u62f7\u8d1d\u200b\u4e8c\u8fdb\u5236\u200b\u6587\u4ef6\u200b\u540e\u200b\uff0c\u200b\u65b0\u5efa\u200b\u9875\u8868\u200b,\u200b\u628a\u200b\u8fd9\u4e9b\u200b\u9875\u200b\u7684\u200b\u7269\u7406\u200b\u5730\u5740\u6620\u5c04\u200b\u5230\u200b USER_START \u200b\u5f00\u5934\u200b\u7684\u200b\u865a\u62df\u5730\u5740\u200b\n - \u200b\u5206\u914d\u200b\u65b0\u7684\u4e00\u9875\u200b\u4f5c\u6808\u200b\uff0c\u200b\u628a\u200b\u8fd9\u200b\u4e00\u9875\u200b\u7684\u200b\u7269\u7406\u200b\u5730\u5740\u6620\u5c04\u200b\u5230\u200b USER_END-4K\n - \u200b\u6839\u636e\u200b\u65b0\u200b\u9875\u8868\u200b\u5730\u5740\u200b\u8ba1\u7b97\u200bsatp\n- `start_kernel`: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b(3)\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- `schedule`: \u200b\u6839\u636e\u200bpolicy\u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b,\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- `switch_to`: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200bPCB\u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- `__switch_to`: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB(6)\n- `__dummy`: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b(4)\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b USER_START(5)\n- `USER_START`: \u200b\u5f00\u59cb\u200b\u6267\u884c\u200b\u7528\u6237\u200b\u6001\u200b\u4ee3\u7801\u200b\uff0c\u200b\u5305\u62ec\u200b\u5404\u79cd\u200b\u7cfb\u7edf\u200b\u8c03\u7528\u200b\uff0c\u200b\u76f4\u5230\u200b\u65f6\u95f4\u200b\u7247\u7528\u200b\u5b8c\u200b\n- `_traps`: \u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u5207\u200b\u7cfb\u7edf\u200b\u6808\u200b\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u8c03\u5ea6\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\n- `__switch_to`: \u200b\u540c\u200b\u4e0a\u200b\uff0c\u200b\u6b64\u540e\u200b\u8f6e\u6d41\u200b\u8c03\u5ea6\u200b\n
\u200b\u5728\u200b vmlinux.lds \u200b\u4e2d\u200b\uff0c\u200b\u6211\u4eec\u200b\u6307\u5b9a\u200b\u7684\u200b uapp.S \u200b\u6587\u4ef6\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\u5230\u200b _sramdisk\uff0c_eramdisk \u200b\u4e4b\u95f4\u200b
\u200b\u6ce8\u610f\u200b\u8fd9\u200b\u4e00\u9879\u200b\u867d\u7136\u200b\u662f\u200b\u58f0\u660e\u200b\u6743\u9650\u200b\u7684\u200b\u7684\u200b\u4f46\u200b\u5b9a\u4e49\u200b\u4e0d\u200b\u7b49\u540c\u4e8e\u200b\u9875\u8868\u200b\u9879\u200b\u7684\u200b perm\uff0c\u200b\u5b9a\u4e49\u200b\u5982\u4e0b\u200b\uff1a
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_1","title":"\u6267\u884c\u200b\u6743\u9650","text":"\u200b\u6ce8\u610f\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u9875\u8868\u200b\u548c\u200b sstatus \u200b\u4fdd\u8bc1\u200b\u8fd0\u884c\u200b\u7528\u6237\u200b\u6001\u200b\u4ee3\u7801\u200b\u65f6\u200b\u6743\u9650\u200b\u68c0\u67e5\u200b\u80fd\u591f\u200b\u901a\u8fc7\u200b\uff0c\u200b\u5426\u5219\u200b\u4f1a\u200b\u5bfc\u81f4\u200b scause = 0xc \u200b\u7684\u200b inst page fault \u200b\u6b64\u65f6\u200b\u4e5f\u8bb8\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5728\u200b gdb \u200b\u4e2d\u8bfb\u200b\u4fe1\u606f\u200b\u4f46\u662f\u200b\u4e00\u200b\u6267\u884c\u200b\u5c31\u200b\u51fa\u9519\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_2","title":"\u62f7\u8d1d\u200b\u95ee\u9898","text":"\u200b\u865a\u62df\u5185\u5b58\u200b\u6620\u5c04\u200b\u662f\u200b\u4ee5\u9875\u200b\u4e3a\u200b\u5355\u4f4d\u200b\u7684\u200b\uff0c\u200b\u6bd4\u5982\u200b 0x00010000 \u200b\u8d77\u200b\u7684\u200b\u865a\u62df\u200b\u9875\u200b\u6620\u5c04\u200b\u5230\u200b 0x80000000 \u200b\u8d77\u200b\u7684\u200b\u7269\u7406\u200b\u9875\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u4eec\u200b\u7684\u200b\u7a0b\u5e8f\u200b\u5165\u53e3\u200b\u5728\u200b 0x100e8\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u5e94\u8be5\u200b\u628a\u200b\u8fd9\u4e2a\u200b\u5165\u53e3\u200b\u62f7\u8d1d\u200b\u81f3\u200b 0x800000e8 \u200b\u800c\u200b\u4e0d\u662f\u200b 0x80000000
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab4-%E7%94%A8%E6%88%B7%E6%80%81/#_3","title":"\u6808\u200b\u5207\u6362","text":"\u200b\u5728\u200b_traps \u200b\u4e2d\u200b\uff0c\u200b\u5bf9\u4e8e\u200b\u4e00\u4e9b\u200b\u5185\u6838\u200b\u7ebf\u7a0b\u200b\u53d1\u8d77\u200b\u7684\u200b\u5f02\u5e38\u200b\u662f\u200b\u4e0d\u200b\u9700\u8981\u200b\u5207\u6362\u200b\u6808\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u901a\u8fc7\u200b\u68c0\u67e5\u200b sscratch \u200b\u4e3a\u200b 0 \u200b\u6765\u200b\u786e\u8ba4\u200b\u8fd9\u200b\u4e00\u70b9\u200b
\u200b\u8fd9\u4e00\u200b\u68c0\u67e5\u200b\u9700\u8981\u200b\u7528\u5230\u200b\u989d\u5916\u200b\u7684\u200b\u5bc4\u5b58\u5668\u200b\uff08\u200b\u5982\u200b t0\uff09\uff0c\u200b\u4f46\u662f\u200b\u6211\u4eec\u200b\u662f\u200b\u8981\u200b\u4fdd\u8bc1\u200b t0 \u200b\u7684\u200b\u503c\u200b\u5728\u200b\u4e2d\u65ad\u200b\u524d\u540e\u200b\u503c\u200b\u4e0d\u53d8\u200b\uff0c\u200b\u6240\u4ee5\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u7528\u200b\uff0c\u200b\u9700\u8981\u200b\u5148\u538b\u6808\u200b\uff0c\u200b\u8fd4\u56de\u200b\u4e4b\u524d\u200b\u8bb0\u5f97\u200b\u6062\u590d\u200b
Bug
\u200b\u8fd9\u91cc\u200b\u63d0\u5230\u200b\u7684\u200b\u538b\u6808\u200b\u7684\u200b\u529e\u6cd5\u200b\u5728\u200b\u6b64\u5904\u200b\u4ecd\u7136\u200b\u53ef\u884c\u200b\uff0c\u200b\u4f46\u200b\u5728\u200bLab5\u200b\u4e2d\u200b\u4f1a\u200b\u9047\u5230\u200b\u95ee\u9898\u200b\uff0c\u200b\u73b0\u5728\u200b\u6709\u200b\u4e00\u4e2a\u200b\u66f4\u597d\u200b\u7528\u200b\u4e5f\u200b\u66f4\u200b\u7b80\u6d01\u200b\u7684\u200b\u65b9\u6cd5\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab5 Demand Paging","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi` \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n - `setup_vm`: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n - `relocate`: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n - `mm_init`: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n - `setup_vm_final`: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n - `task_init`: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n - \u200b\u5bf9\u4e8e\u200b idle \u200b\u4ee5\u5916\u200b\u7684\u200b\u7ebf\u7a0b\u200b\uff0c\u200b\u5728\u200btask_struct\u200b\u4e2d\u200b\u6dfb\u52a0\u200bstack\u200b\u548c\u200bsegment-01(1)\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4e24\u6bb5\u200bvma\n- `start_kernel`: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- `schedule`: \u200b\u6839\u636e\u200bpolicy\u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b,\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- `switch_to`: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200bPCB\u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- `__switch_to`: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB\n- `__dummy`: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b USER_START\n- `ENTRY`: PC\u200b\u8df3\u8f6c\u200b\u81f3\u200bENTRY\uff0c\u200b\u4f46\u662f\u200b\u6b64\u65f6\u200b\u8be5\u9875\u200b\u7684\u200b\u6620\u5c04\u200b\u5e76\u672a\u200b\u5b8c\u6210\u200b\uff0cPAGE FAULT\n- `_traps`: PAGE FAULT\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\u8fdb\u5165\u200btrap_handler\n- `trap_handler`: \u200b\u786e\u8ba4\u200b\u662f\u200bPAGE FAULT\u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200bdo_page_fault\n- `do_page_fault`: \u200b\u6839\u636e\u200bcurrent\u200b\u7684\u200bvma\u200b\u786e\u8ba4\u200b\u662f\u200b\u6bb5\u200b\u9519\u8bef\u200b\u3001\u200b\u6587\u4ef6\u200b\u9875\u200b\u7f3a\u9875\u200b\u8fd8\u662f\u200b\u533f\u540d\u200b\u9875\u200b\u7f3a\u9875\u200b\uff0c\u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\uff0c\u200b\u586b\u5199\u5185\u5bb9\u200b(2)\uff0c\u200b\u586b\u5199\u200b\u9875\u8868\u200b\uff0c\u200b\u8fd4\u56de\u200b\n- `_traps`: \u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b\uff0c\u200b\u6b64\u540e\u200b\u5bf9\u5e94\u200b\u9875\u200b\u5df2\u6709\u200b\u6620\u5c04\u200b\n- `ENTRY`: \u200b\u6062\u590d\u200b\u6267\u884c\u200b\uff0c\u200b\u6b64\u540e\u200b\u8c03\u5ea6\u200b\u6216\u8005\u200b\u9047\u5230\u200b\u65b0\u200b\u7684\u200b\u7f3a\u9875\u200b\u5747\u200b\u540c\u4e0a\u200b\u5904\u7406\u200b\n
\u200b\u6587\u6863\u200b\u4e2d\u200b\u6307\u51fa\u200b\uff0c\u200b\u7531\u200b\u7528\u6237\u200b\u53d1\u8d77\u200b\u7684\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u5728\u200b_traps
\u200b\u5f00\u5934\u200b\u5207\u6362\u200b\u5230\u200b\u5185\u6838\u200b\u6808\u200b\uff0c\u200b\u4f46\u662f\u200b\u5bf9\u4e8e\u200b\u5185\u6838\u200b\u53d1\u8d77\u200b\u7684\u200b\u4e2d\u65ad\u200b\u5c31\u200b\u4e0d\u200b\u9700\u8981\u200b\u3002\u200b\u800c\u200b\u8981\u200b\u5224\u65ad\u200b\u4e2d\u65ad\u200b\u662f\u5426\u200b\u7531\u200b\u5185\u6838\u200b\u53d1\u8d77\u200b\u5c31\u8981\u200b\u5224\u65ad\u200bsscratch
\u200b\u662f\u5426\u200b\u4e3a\u200b0\uff0c\u200b\u5728\u200blab4\u200b\u4e2d\u200b\u6211\u200b\u628a\u200bt0\u200b\u538b\u6808\u200b\u540e\u200b\u7528\u200bt0\u200b\u6765\u200b\u68c0\u9a8c\u200b\u3002
\u200b\u4f46\u662f\u200b\u5728\u200blab5\u200b\u4e2d\u200b\u8fd9\u200b\u4e00\u200b\u65b9\u6cd5\u200b\u884c\u4e0d\u901a\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u5f53\u200b\u6211\u4eec\u200b\u8bd5\u56fe\u200b\u628a\u200bt0\u200b\u538b\u6808\u200b\u7684\u200b\u65f6\u5019\u200b\u6211\u4eec\u200b\u7684\u200b\u6808\u200b\u53ef\u80fd\u200b\u6839\u672c\u5c31\u662f\u200b\u6ca1\u200b\u5206\u914d\u200b\u7684\u200b\u7528\u6237\u200b\u6808\u200b\uff0c\u200b\u90a3\u4e48\u200b\u8fd9\u4e2a\u200b\u538b\u6808\u200b\u7684\u200b\u884c\u4e3a\u200b\u53ea\u4f1a\u200b\u5f15\u53d1\u200b\u65b0\u200b\u7684\u200bPAGE FAULT\uff0c\u200b\u5982\u6b64\u200b\u6c38\u8fdc\u200b\u5faa\u73af\u200b\u3002
\u200b\u4e3a\u4e86\u200b\u5bfb\u627e\u200b\u89e3\u51b3\u200b\u65b9\u6cd5\u200b\u53ef\u4ee5\u200b\u5148\u200b\u8bd5\u56fe\u200b\u53bb\u200b\u67e5\u770b\u200blinux\u200b\u65f6\u200b\u5982\u4f55\u200b\u89e3\u51b3\u200b\u8fd9\u4e00\u200b\u95ee\u9898\u200b\u7684\u200b\uff0c\u200b\u8fd9\u662f\u200b\u5bf9\u5e94\u200b\u7684\u200b\u4ee3\u7801\u200b
\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200blinux\u200b\u4f7f\u7528\u200b\u4e86\u200btp\uff08thread pointer\uff09\u200b\u4ee5\u53ca\u200b\u6307\u4ee4\u200bcsrwr
,\u200b\u524d\u8005\u200b\u5012\u200b\u4e0d\u662f\u200b\u5fc5\u8981\u200b\u7684\u200b\u4f7f\u7528\u200b\uff0c\u200b\u6211\u4eec\u200b\u4e3b\u8981\u200b\u5173\u6ce8\u200b\u5230\u200bcsrwr
\u200b\u6307\u4ee4\u200b\u53ef\u4ee5\u200b\u5b9e\u73b0\u200bcsr\u200b\u4e0e\u200b\u5176\u4ed6\u200b\u5bc4\u5b58\u5668\u200b\u7684\u200b\u4ea4\u6362\u200b\uff0c\u200b\u4ece\u800c\u200b\u6211\u4eec\u200bsp\u200b\u4e0e\u200bsscratch
\u200b\u7684\u200b\u5207\u6362\u200b\u5c31\u200b\u4e0d\u200b\u9700\u8981\u200b\u5176\u4ed6\u200b\u5bc4\u5b58\u5668\u200b\u4e86\u200b\uff0c\u200b\u8fd9\u200b\u5c31\u662f\u200b\u6b63\u786e\u200b\u7684\u200b\u89e3\u51b3\u200b\u65b9\u5f0f\u200b\u3002
\u200b\u5904\u7406\u200b\u7f3a\u9875\u200b\u5f02\u5e38\u200b\u65f6\u8981\u200b\u4ed4\u7ec6\u200b\u5904\u7406\u200b\u6587\u4ef6\u200b\u9875\u200b\u7684\u200b\u590d\u5236\u200b\u95ee\u9898\u200b\uff0c\u200b\u5982\u679c\u200b\u8981\u200b\u590d\u5236\u200b\u7684\u200b\u4e00\u9875\u200b\u4e2d\u200b\u65e2\u6709\u200bfile_content\uff0c\u200b\u4e5f\u200b\u6709\u200b\u4e00\u4e9b\u200b\u4e0d\u200b\u5728\u200bfile\u200b\u4e4b\u4e2d\u200b\u7684\u200b\uff08\u200b\u5982\u200bbss\u200b\u6bb5\u200b\uff09\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u9700\u8981\u200b\u5206\u522b\u200b\u5904\u7406\u200b\u8fd9\u200b\u4e24\u6bb5\u200b\uff0c\u200b\u524d\u8005\u200b\u590d\u5236\u200b\uff0c\u200b\u540e\u8005\u200b\u6e05\u96f6\u200b\u3002
\u200b\u4ee5\u4e0b\u200b\u662f\u200b\u4e00\u79cd\u200b\u5904\u7406\u200b\u601d\u8def\u200b\uff1a
bad_addr
\u200b\u6240\u5728\u200b\u9875\u200b\u7684\u200b\u5f00\u5934\u200b\u548c\u200b\u7ed3\u5c3e\u200b\u4e3a\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u62f7\u8d1d\u200b\u8d77\u200b\u5730\u5740\u200b\u548c\u200b\u7ec8\u200b\u5730\u5740\u200bvm_start
vm_start + vm_content_size_in_file
vm_start + vm_content_size_in_file
\u200b\u5728\u200bkernel\u200b\u7ec8\u200b\uff0c\u200b\u6211\u4eec\u200b\u5206\u914d\u200b\u4e86\u200b\u4e00\u200b\u6574\u9875\u200b\uff0c\u200b\u5176\u4e2d\u200b\u7684\u200b\u4f4e\u200b\u5730\u5740\u200b\u653e\u200b\u4e86\u200b\u4e2a\u200btask_struct\uff0c\u200b\u9ad8\u200b\u5730\u5740\u200b\u5c31\u662f\u200b\u6808\u9876\u200b\uff08\u200b\u5982\u4e0b\u200b\u56fe\u200b\uff0c\u200b\u6765\u81ea\u200b\u5b9e\u9a8c\u200b\u6587\u6863\u200b\uff09\u3002\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u7a0d\u5fae\u200b\u9650\u5236\u200b\u4e00\u4e0b\u200bvmas\u200b\u7684\u200b\u5927\u5c0f\u200b\uff0c\u200b\u4e0d\u80fd\u200b\u628a\u200b\u5206\u914d\u200b\u7684\u200b\u4e00\u9875\u200b\u5168\u7ed9\u200b\u7528\u200b\u4e86\u200b\uff0c\u200b\u8fd8\u8981\u200b\u7559\u70b9\u200b\u7ed9\u200b\u6808\u7528\u200b\u3002
\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u25c4\u2500\u2500\u2500 High Address\n \u2502 \u2502\n \u2502 stack \u2502\n \u2502 \u2502\n \u2502 \u2502\n sp \u2500\u2500\u25ba\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n \u2502 \u2502 \u2502\n \u2502 \u25bc \u2502\n \u2502 \u2502\n \u2502 \u2502\n \u2502 \u2502\n \u2502 \u2502\n 4KB Page \u2502 \u2502\n \u2502 \u2502\n \u2502 \u2502\n \u2502 \u2502\n \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n \u2502 \u2502\n \u2502 \u2502\n \u2502 task_struct \u2502\n \u2502 \u2502\n \u2502 \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\u25c4\u2500\u2500\u2500 Low Address\n
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/","title":"\u64cd\u4f5c\u7cfb\u7edf\u200b - lab6 fork","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u8e29\u200b\u8fc7\u200b\u7684\u200b\u5751\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u4e00\u4e2a\u200b kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b\u603b\u7ed3\u200b
"},{"location":"blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab6-fork/#kernel","title":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b","text":"kernel \u200b\u6267\u884c\u200b\u6d41\u7a0b\u200b- `opensbi` \u200b\u6267\u884c\u200b\u5b8c\u6bd5\u200b\n- `_start`: \u200b\u5b8c\u6210\u200b stvec\uff0c sie\uff0c mtimecmp\uff0c sstatus \u200b\u548c\u200b\u6808\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff0c\u200b\u7136\u540e\u200b\u4f9d\u6b21\u200b\u8c03\u7528\u200b\u4ee5\u4e0b\u200b\u51fd\u6570\u200b\n - `setup_vm`: \u200b\u586b\u5199\u200b\u9875\u8868\u200b\n - `relocate`: \u200b\u7528\u200b\u8bbe\u7f6e\u200b\u597d\u200b\u7684\u200b\u9875\u8868\u200b\u4fee\u6539\u200b satp\uff0c \u200b\u542f\u52a8\u200b\u865a\u62df\u5185\u5b58\u200b\n - `mm_init`: \u200b\u5b8c\u6210\u200b\u5185\u5b58\u200b\u5206\u914d\u200b\u51fd\u6570\u200b\u7684\u200b\u521d\u59cb\u5316\u200b\n - `setup_vm_final`: \u200b\u5207\u6362\u200b\u5230\u200b\u65b0\u200b\u7684\u200b\u9875\u8868\u200b\n - `task_init`: \u200b\u521d\u59cb\u5316\u200b\u8fdb\u7a0b\u200b\n- `start_kernel`: \u200b\u4e0d\u200b\u8fdb\u5165\u200b test \u200b\u7b49\u200b\u65f6\u949f\u200b\u4e2d\u65ad\u200b\uff0c\u200b\u800c\u662f\u200b\u76f4\u63a5\u200b\u8c03\u7528\u200b schedule \u200b\u8c03\u5ea6\u200b\u8d70\u200b\n- `schedule`: \u200b\u6839\u636e\u200bpolicy\u200b\u9009\u62e9\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8981\u200b\u8c03\u5ea6\u200b\u7684\u200b\u7ebf\u7a0b\u200b,\u200b\u8c03\u7528\u200b switch_to \u200b\u81f3\u8be5\u200b\u7ebf\u7a0b\u200b\n- `switch_to`: \u200b\u83b7\u53d6\u200b\u5148\u540e\u200b\u7ebf\u7a0b\u200b\u7684\u200bPCB\u200b\u5730\u5740\u200b\uff0c\u200b\u8c03\u7528\u200b__switch_to\n- `__switch_to`: \u200b\u5f53\u524d\u200b\u4e0a\u4e0b\u6587\u200b\u5b58\u5165\u200b PCB\uff0c\u200b\u52a0\u8f7d\u200b\u4e0b\u200b\u4e00\u4e2a\u200b\u8fdb\u7a0b\u200b\u7684\u200b PCB\n- `__dummy`: \u200b\u5207\u200b\u7528\u6237\u200b\u6808\u200b\uff0csret \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6bb5\u200b\uff0c\u200b\u800c\u200b sepc \u200b\u662f\u200b\u6211\u4eec\u200b\u521d\u59cb\u5316\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u6307\u5b9a\u200b\u7684\u200b\u7684\u200b USER_START\n- `ENTRY`: PC\u200b\u8df3\u8f6c\u200b\u81f3\u200bENTRY\uff0c\u200b\u4f46\u662f\u200b\u6b64\u65f6\u200b\u8be5\u9875\u200b\u7684\u200b\u6620\u5c04\u200b\u5e76\u672a\u200b\u5b8c\u6210\u200b\uff0cPAGE FAULT\n- `_traps`: PAGE FAULT\uff0c\u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\u8fdb\u5165\u200btrap_handler\n- `trap_handler`: \u200b\u786e\u8ba4\u200b\u662f\u200bPAGE FAULT\u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200bdo_page_fault\n- `do_page_fault`: \u200b\u6839\u636e\u200bcurrent\u200b\u7684\u200bvma\u200b\u786e\u8ba4\u200b\u662f\u200b\u6bb5\u200b\u9519\u8bef\u200b\u3001\u200b\u6587\u4ef6\u200b\u9875\u200b\u7f3a\u9875\u200b\u8fd8\u662f\u200b\u533f\u540d\u200b\u9875\u200b\u7f3a\u9875\u200b\uff0c\u200b\u5206\u914d\u200b\u65b0\u200b\u9875\u200b\uff0c\u200b\u586b\u5199\u5185\u5bb9\u200b\uff0c\u200b\u586b\u5199\u200b\u9875\u8868\u200b\uff0c\u200b\u8fd4\u56de\u200b\n- `_traps`: \u200b\u6062\u590d\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b\uff0c\u200b\u6b64\u540e\u200b\u5bf9\u5e94\u200b\u9875\u200b\u5df2\u6709\u200b\u6620\u5c04\u200b\n- `ENTRY`: \u200b\u6062\u590d\u200b\u6267\u884c\u200b\uff0c\u200b\u76f4\u5230\u200b\u8c03\u7528\u200bfork\n- `_traps`: \u200b\u4fdd\u5b58\u200b\u4e0a\u4e0b\u6587\u200b\uff0c\u200b\u8fdb\u5165\u200btrap_handler\n- `trap_handler`: \u200b\u786e\u8ba4\u200b\u662f\u200bfork\u200b\u540e\u200b\uff0c\u200b\u8c03\u7528\u200bsys_clone\n- `sys_clone`: \u200b\u8fdb\u884c\u200b\u4e00\u5b9a\u200b\u7684\u200b\u62f7\u8d1d\u200b\u4ee5\u200b\u521d\u59cb\u5316\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u521d\u59cb\u5316\u200b\u5b8c\u6210\u200b\u540e\u200b\u52a0\u5165\u200b\u8c03\u5ea6\u200b\u961f\u5217\u200b\n - \u200b\u5c06\u7236\u200b\u8fdb\u7a0b\u200bkernel stack \u200b\u6240\u5728\u200b\u9875\u200b\u62f7\u8d1d\u200b\u4e00\u4efd\u200b\u7ed9\u5b50\u200b\u8fdb\u7a0b\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5305\u62ec\u200b\n - task_struct: \u200b\u4f4d\u4e8e\u200b\u8be5\u9875\u200b\u4f4e\u200b\u5730\u5740\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5185\u5bb9\u200b\u5728\u200b__switch_to\u200b\u5230\u200b\u81f3\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u65f6\u5019\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u9879\u200b\u9700\u8981\u200b\u6539\u52a8\u200b\n - pid: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u7684\u200b\u65b0\u200bpid\n - thread.sp: \u200b\u6362\u5230\u5b50\u200b\u8fdb\u7a0b\u200b\u540e\u200b\u7cfb\u7edf\u200b\u6808\u200b\u7684\u200b\u8d77\u59cb\u200b\u5730\u5740\u200b\uff0c\u200b\u6ce8\u610f\u200b\u5207\u6362\u200b\u8fc7\u6765\u200b\u65f6\u6808\u200b\u5185\u200b\u5df2\u6709\u200b\u6570\u636e\u200b\n - thread.ra: __switch_to\u200b\u5230\u5b50\u200b\u8fdb\u7a0b\u200b\u540e\u200b\u7684\u200b\u8fd4\u56de\u200b\u5730\u5740\u200b\n - thread.sscratch: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u5728\u200b\u5185\u6838\u200b\u6001\u200b\u7684\u200bsscratch\uff0c\u200b\u5728\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u200b\u65f6\u4f1a\u200b\u4e0e\u200bsp\u200b\u4ea4\u6362\u200b\uff0c\u200b\u6240\u4ee5\u200b\u5b9e\u8d28\u200b\u662f\u5b50\u200b\u8fdb\u7a0b\u200b\u7528\u6237\u200b\u6001\u200b\u7684\u200bsp (1)\n - satp: \u200b\u6839\u636e\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u9875\u8868\u200b\u4fee\u6539\u200b\n - pgd: \u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u9875\u8868\u200b\n - pt_regs: \u200b\u4f4d\u4e8e\u200b\u8be5\u9875\u200b\u9ad8\u200b\u5730\u5740\u200b\uff0c\u200b\u5176\u4e2d\u200b\u5185\u5bb9\u200b\u5728\u5b50\u200b\u8fdb\u7a0b\u200b\u4ece\u200b\u5185\u6838\u200b\u6001\u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u65f6\u200b\u5c06\u200b\u4f1a\u200b\u88ab\u200b\u52a0\u8f7d\u200b\uff0c\u200b\u4ee5\u4e0b\u200b\u9879\u200b\u9700\u8981\u200b\u6539\u52a8\u200b \n - a0: \u200b\u8fd4\u56de\u200b\u7528\u6237\u200b\u6001\u540e\u200b\u643a\u5e26\u200b\u7684\u200b\u8c03\u7528\u200b\u8fd4\u56de\u503c\u200b\uff0c\u200b\u4e5f\u200b\u5c31\u662f\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\u5f97\u5230\u200b\u7684\u200bfork\u200b\u8fd4\u56de\u503c\u200b\uff0c0\n - sepc: fork\u200b\u5bf9\u5e94\u200becall\u200b\u7684\u200b\u4e0b\u200b\u4e00\u6761\u200b\u6307\u4ee4\u200b\n- `_traps`: \u200b\u7236\u200b\u8fdb\u7a0b\u200bfork\u200b\u5b8c\u6bd5\u200b\uff0c\u200b\u643a\u5e26\u200b\u5b50\u200b\u8fdb\u7a0b\u200bpid\u200b\u6062\u590d\u200b\u7528\u6237\u200b\u6001\u200b\u4e0a\u4e0b\u6587\u200b\u8fd4\u56de\u200b\n- `fork`: \u200b\u56de\u5230\u200b\u7528\u6237\u200b\u6001\u200b\uff0c\u200b\u7ee7\u7eed\u6267\u884c\u200b\u76f4\u5230\u200b\u88ab\u200b\u8c03\u5ea6\u200b\u8d70\u200b,\u200b\u968f\u540e\u200b\u8c03\u5ea6\u200b\u7b97\u6cd5\u200b\u9009\u62e9\u200b\u5b50\u200b\u8fdb\u7a0b\u200b\n
\u200b\u6211\u4eec\u200b\u7684\u200btask\u200b\u6570\u7ec4\u200b\u5927\u5c0f\u200b\u662f\u200bNR_TASKS
,\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u8981\u200b\u505a\u5230\u200b
Abstract
\u200b\u4ecb\u7ecd\u200b\u4e86\u200b lambda \u200b\u6f14\u7b97\u200b\u4e2d\u200b\u7684\u200b Y-combinator\uff0c\u200b\u4e3b\u8981\u200b\u662f\u200b\u5e0c\u671b\u200b\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\u6765\u200b\u5e2e\u52a9\u200b\u7406\u89e3\u200b
\u200b\u9996\u5148\u200b\u8bf7\u200b\u770b\u200b xg\u200b\u7684\u200b\u7b14\u8bb0\u200b\u8fd9\u91cc\u200b\uff0c\u200b\u63a8\u5bfc\u200b\u7684\u200b\u8fc7\u7a0b\u200b\u8bb2\u200b\u7684\u200b\u5f88\u200b\u6e05\u695a\u200b\u4e86\u200b
\u200b\u8fd9\u91cc\u200b\u4e3b\u8981\u200b\u8ba8\u8bba\u200b\u53e6\u5916\u200b\u51e0\u4e2a\u200b\u95ee\u9898\u200b
"},{"location":"blog/y-combinator-%E4%B8%8E%E9%80%92%E5%BD%92/#y-combinator_1","title":"\u4e0d\u7528\u200b Y-combinator \u200b\u53ef\u4ee5\u200b\u5417","text":"\u200b\u5f53\u7136\u200b\u53ef\u4ee5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u6587\u4e2d\u200b\u7684\u200bproto proto
\u200b\u672c\u6765\u200b\u5c31\u662f\u200b\u7b49\u4ef7\u200b\u4e8e\u200bY u
\u200b\u7684\u200b\uff0c\u200b\u8981\u200b\u7528\u200b\u8fd9\u79cd\u200b\u65b9\u5f0f\u200b\u5b9e\u73b0\u200b\u9012\u5f52\u200b\u4e3b\u8981\u200b\u8d70\u200b\u4ee5\u4e0b\u200b\u56db\u6b65\u200b
\u200b\u76f4\u63a5\u200b\u770b\u200b\u8fd9\u200b\u73a9\u610f\u200b\u8fd8\u662f\u200b\u6709\u70b9\u200b\u62bd\u8c61\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\u6765\u200b\u770b\u770b\u200b\u8fd9\u4e2a\u200b\u4e1c\u897f\u200b\u6709\u200b\u54ea\u4e9b\u200b\u6027\u8d28\u200b\uff0c\u200b\u800c\u200b\u820d\u53bb\u200b\u4e2d\u95f4\u200b\u5316\u7b80\u200b\u7684\u200b\u7ec6\u8282\u200b
\\(fact_3\\ fact_3\\ 0 \\rightarrow 1\\)\\(fact_3\\ fact_3\\ 2 \\rightarrow *\\ 2\\ (fact_3\\ fact_3\\ 1)\\) \\[\\begin{align} &fact_3\\ fact_3\\ 0 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ f\\ (pred\\ n))))\\ fact_3\\ 0 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (fact_3\\ fact_3\\ (pred\\ n))))\\ 0 \\\\ =& is0\\ 0\\ 1\\ ( *\\ 0\\ (fact_3\\ fact_3\\ (pred\\ 0))) \\\\ =& 1 \\end{align}\\] \\[\\begin{align} &fact_3\\ fact_3 2 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ f\\ (pred\\ n))))\\ fact_3\\ 2 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (fact_3\\ fact_3\\ (pred\\ n))))\\ 2 \\\\ =& is0\\ 2\\ 1\\ ( *\\ 2\\ (fact_3\\ fact_3\\ (pred\\ 2))) \\\\ =& *\\ 2\\ (fact_3\\ fact_3\\ 1) \\\\ \\end{align}\\]\u200b\u4ee5\u4e0a\u200b\uff0c\u200b\u7b2c\u4e00\u4e2a\u200b\u6027\u8d28\u200b\u662f\u200b base case\uff0c\u200b\u7b2c\u4e8c\u4e2a\u200b\u6027\u8d28\u200b\u662f\u200b indection case\uff0c\u200b\u53ef\u4ee5\u200b\u663e\u7136\u200b\u770b\u51fa\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b
"},{"location":"blog/y-combinator-%E4%B8%8E%E9%80%92%E5%BD%92/#y-combinator_2","title":"Y-combinator \u200b\u7684\u200b\u5b9e\u4f8b","text":"\u200b\u4e0a\u9762\u200b\u90a3\u6837\u200b\u5df2\u7ecf\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b\uff0c\u200b\u4e3a\u4ec0\u4e48\u200b\u8fd8\u200b\u9700\u8981\u200b Y-combinator? \u200b\u56e0\u4e3a\u200b\u4e0a\u9762\u200b\u7684\u200b\u5b9e\u73b0\u200b\u65b9\u6cd5\u200b\u4e2d\u200b\u9012\u5f52\u200b\u7684\u200b\u903b\u8f91\u200b\u548c\u200b\u51fd\u6570\u200b\u7684\u200b\u903b\u8f91\u200b\u6df7\u5728\u200b\u4e86\u200b\u4e00\u8d77\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b\u9012\u5f52\u200b\u7684\u200b\u903b\u8f91\u200b\u62bd\u8c61\u200b\u6210\u200b Y\uff0c\u200b\u628a\u200b\u51fd\u6570\u200b\u7684\u200b\u903b\u8f91\u200b\u62bd\u8c61\u200b\u6210\u200b u\uff0c\u200b\u5bf9\u200b Y \u200b\u5e94\u7528\u200b u \u200b\u5c31\u200b\u5f97\u5230\u200b\u4e86\u200b\u9012\u5f52\u200b\u7684\u200b u.\u200b\u5177\u4f53\u6765\u8bf4\u200b\u53ef\u4ee5\u200b\u5206\u6210\u200b\u4ee5\u4e0b\u200b\u4e09\u6b65\u200b
\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u7b80\u6d01\u200b\u4e86\u200b\u8bb8\u591a\u200b\uff0c\u200b\u4e0b\u9762\u200b\u518d\u200b\u6765\u200b\u4ecb\u7ecd\u200b\u4e00\u4e0b\u200b Y-combinator \u200b\u672c\u8eab\u200b\uff0c\u200b\u76f4\u63a5\u200b\u770b\u200b\u4ed6\u200b\u7684\u200b\u5185\u5bb9\u200b\u7684\u8bdd\u200b\u4e5f\u200b\u662f\u200b\u4e00\u200b\u5768\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5229\u7528\u200b\u62bd\u8c61\u200b\u7684\u200b\u601d\u60f3\u200b\uff0c\u200b\u4e0d\u7ba1\u200b\u4ed6\u200b\u7684\u200b\u5185\u5bb9\u200b\uff0c\u200b\u4e5f\u200b\u4e0d\u5728\u4e4e\u200b\u5316\u7b80\u200b\u7684\u200b\u7ec6\u8282\u200b\uff0c\u200b\u53ea\u200b\u770b\u200b\u51e0\u4e2a\u200b\u6027\u8d28\u200b\uff1a
\\(Y\\ fact_2 \\rightarrow fact_2\\ (Y\\ fact_2)\\)\\(Y\\ fact_2\\ 0 \\rightarrow 1\\)\\(Y\\ fact_2\\ 2 \\rightarrow *\\ 2\\ (Y\\ fact_2\\ 1)\\) \\[\\begin{aligned} &Y\\ fact_2 \\\\ =& (\\lambda f. fact_2\\ (f\\ f)) (\\lambda f. fact_2\\ (f\\ f)) \\\\ =& fact_2\\ ((\\lambda f. fact_2\\ (f\\ f)) (\\lambda f. fact_2\\ (f\\ f))) \\\\ =& fact_2\\ (Y\\ fact_2) \\\\ \\end{aligned}\\] \\[\\begin{aligned} &Y\\ fact_2\\ 0 \\\\ =& fact_2\\ (Y\\ fact_2)\\ 0 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ (f\\ (pred\\ n))))\\ (Y\\ fact_2)\\ 0 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ ((Y\\ fact_2)\\ (pred\\ n))))\\ 0 \\\\ =& is0\\ 0\\ 1\\ ( *\\ 0\\ ((Y\\ fact_2)\\ (pred\\ 0))) \\\\ =& 1 \\end{aligned}\\] \\[\\begin{aligned} &Y\\ fact_2\\ 2 \\\\ =& fact_2\\ (Y\\ fact_2)\\ 2 \\\\ =& \\lambda f. \\lambda n .( is0\\ n\\ 1 ( *\\ n\\ (f\\ (pred\\ n)))) (Y\\ fact_2)\\ 2 \\\\ =& \\lambda n .( is0\\ n\\ 1\\ ( *\\ n\\ ((Y\\ fact_2)\\ (pred\\ n))))\\ 2 \\\\ =& is0\\ 2\\ 1\\ ( *\\ 2\\ ((Y\\ fact_2)\\ (pred\\ 2))) \\\\ =& *\\ 2\\ (Y\\ fact_2\\ 1) \\end{aligned}\\]\u200b\u4ee5\u4e0a\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u5176\u200b\u6027\u8d28\u200b\u6709\u200b
\u200b\u4ee5\u4e0a\u200b\u63a8\u5bfc\u200b\u7684\u200b\u6bd4\u8f83\u200b\u540a\u200b\u8be1\u200b\u7684\u200b\u5730\u65b9\u200b\u662f\u200b\u9700\u8981\u200b\u4ee5\u200b\u8fd9\u79cd\u200b\u8fd0\u7b97\u200b\u987a\u5e8f\u200b\u624d\u200b\u597d\u200b\u51fa\u200b\u7ed3\u679c\u200b\uff0c\u200b\u867d\u7136\u200b\u6211\u4eec\u200b\u8fd9\u91cc\u200b\u5bf9\u200b\u6709\u200b\u597d\u51e0\u4e2a\u200b\u5b50\u9879\u200b\u7684\u200b\u65f6\u5019\u200b\u5148\u200b\u6f14\u7b97\u200b\u4ec0\u4e48\u200b\u5e76\u200b\u6ca1\u6709\u200b\u89c4\u5b9a\u200b
\u200b\u6709\u200b\u4ee5\u4e0a\u200b\u6027\u8d28\u200b\uff0c\u200b\u6beb\u65e0\u7591\u95ee\u200b\\(Y fact_2\\)\u200b\u4e5f\u200b\u5b9e\u73b0\u200b\u4e86\u200b\u9012\u5f52\u200b
Reference
Abstract
markdown \u200b\u771f\u200b\u65b9\u4fbf\u200b\u554a\u200b\u771f\u200b\u65b9\u4fbf\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb2\u200b\u4e86\u200b\u600e\u4e48\u200b\u5728\u200b VSCode \u200b\u4e0a\u200b\u914d\u7f6e\u200b\u4e00\u4e2a\u200b\u597d\u7528\u200b\u7684\u200b\u5199\u200b markdown \u200b\u7684\u200b\u73af\u5883\u200b
"},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%8A%E5%86%99-markdown/#_1","title":"\u8d77\u6b65","text":"\u200b\u9996\u5148\u200b\u542f\u7528\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u4e24\u4e2a\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5f00\u59cb\u200b\u5199\u200b markdown\uff0c\u200b\u5e76\u200b\u5728\u200b\u53f3\u4fa7\u200b\u9884\u89c8\u200b\u4e86\u200b
\u200b\u6548\u679c\u56fe\u200b
\u200b\u6ce8\u610f\u200b\u9884\u89c8\u200b\u9700\u8981\u200b\u5728\u200b\u7f16\u8f91\u5668\u200b\u53f3\u4e0a\u89d2\u200b\u70b9\u51fb\u200b\u9884\u89c8\u200b\u6309\u94ae\u200b\u5f00\u542f\u200b\u6216\u8005\u200b\u4f7f\u7528\u200b\u5feb\u6377\u952e\u200b
\u200b\u5982\u679c\u200b\u9700\u8981\u200b\u4fdd\u5b58\u200b\u6210\u200b PDF \u200b\u6216\u8005\u200b\u522b\u7684\u200b\u683c\u5f0f\u200b\uff0c\u200b\u5728\u200b\u9884\u89c8\u200b\u754c\u9762\u200b\u53f3\u952e\u200b\u5c31\u200b\u597d\u200b\uff0cChrome \u200b\u4e00\u680f\u200b\u7684\u200b\u4e09\u4e2a\u200b\u9009\u9879\u200b\u90fd\u200b\u662f\u200b\u4e0d\u200b\u9700\u8981\u200b\u989d\u5916\u200b\u5b89\u88c5\u200b\u7684\u200b\uff1a
\u200b\u6570\u5b66\u516c\u5f0f\u200b\u6e32\u67d3\u200b\u95ee\u9898\u200b\u200b\u6709\u65f6\u5019\u200b\u4fdd\u5b58\u200b\u6210\u200b PDF \u200b\u65f6\u4f1a\u200b\u53d1\u73b0\u200b\u6570\u5b66\u516c\u5f0f\u200b\u6e32\u67d3\u200b\u5931\u8d25\u200b\u4e86\u200b\uff0c\u200b\u8c03\u67e5\u200b\u4e86\u200b\u4e00\u4e0b\u200b\u53d1\u73b0\u200b\u662f\u200b\u751f\u6210\u200b\u7684\u200b\u901f\u5ea6\u200b\u592a\u5feb\u200b\u4e86\u200b\u6570\u5b66\u516c\u5f0f\u200b\u6765\u4e0d\u53ca\u200b\u6e32\u67d3\u200b\uff0c\u200b\u8c03\u8282\u200b\u4ee5\u4e0b\u200b\u53c2\u6570\u200b\u53ef\u4ee5\u200b\u89e3\u51b3\u95ee\u9898\u200b\uff1a
"},{"location":"blog/%E5%9C%A8-vscode-%E4%B8%8A%E5%86%99-markdown/#_2","title":"\u5feb\u6377\u200b\u5730\u200b\u63d2\u5165\u200b\u56fe\u7247","text":"\u200b\u5c31\u200b\u6700\u200b\u539f\u6559\u65e8\u4e3b\u4e49\u200b\u7684\u200b\u63d2\u5165\u65b9\u5f0f\u200b\u800c\u8a00\u200b\uff0c\u200b\u9700\u8981\u200b\u628a\u200b\u56fe\u7247\u200b\u4fdd\u5b58\u200b\u5230\u200b\u6307\u5b9a\u200b\u6587\u4ef6\u5939\u200b\uff0c\u200b\u8d77\u597d\u200b\u540d\u5b57\u200b\uff0c\u200b\u518d\u200b\u5229\u7528\u200b![](url)
\u200b\u683c\u5f0f\u200b\u63d2\u5165\u200b\uff0c\u200b\u6b65\u9aa4\u200b\u76f8\u5f53\u200b\u7e41\u7410\u200b\uff0c\u200b\u8ddf\u200b Word \u200b\u7684\u200b\u56fe\u7247\u200b\u63d2\u5165\u200b\u5b8c\u5168\u200b\u662f\u200b\u4e24\u4e2a\u200b\u91cf\u7ea7\u200b\u7684\u200b\u5de5\u4f5c\u91cf\u200b.
\u200b\u63a8\u8350\u200b\u4f7f\u7528\u200bPaste Image\u200b\u63d2\u4ef6\u200b\uff1a
\u200b\u4fee\u6539\u200b\u5982\u4e0b\u200b\u7684\u200b\u8bbe\u7f6e\u200b\uff1a \u200b\u8fd9\u4f1a\u200b\u5c06\u200b\u56fe\u7247\u200b\u63d2\u5165\u200b\u5230\u200b\u5f53\u524d\u200b md \u200b\u6587\u4ef6\u200b\u4e0b\u200b\u7684\u200b images/mdfilename/time.png \u200b\u4f4d\u7f6e\u200b.
\u200b\u7528\u200b\u7cfb\u7edf\u200b\u81ea\u5e26\u200b\u7684\u200b\u622a\u5c4f\u200b\u5de5\u5177\u200b\u622a\u5c4f\u200b\u5230\u200b\u7c98\u8d34\u677f\u200b\u540e\u200b Command+Option+v \u200b\u5373\u53ef\u200b\u5b58\u5165\u200b\u6587\u4ef6\u5939\u200b\u5e76\u200b\u81ea\u52a8\u200b\u5f15\u7528\u200b\u6b63\u786e\u200b\u7684\u200b\u8def\u5f84\u200b.
\u200b\u8bbe\u7f6e\u200b\u9ed8\u8ba4\u200b\u56fe\u7247\u200b\u6837\u5f0f\u200b\u200b\u672c\u4eba\u200b\u4f7f\u7528\u200b mkdocs for material \u200b\u642d\u5efa\u200b\u6b64\u200b\u7f51\u9875\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7ed9\u200b\u6b64\u200b\u63d2\u4ef6\u200b\u6dfb\u52a0\u200b\u7684\u200b\u56fe\u7247\u200b\u6dfb\u52a0\u200b\u7edf\u4e00\u200b\u6837\u5f0f\u200b\uff1a
img[src*=\"pic\"] {\nbox-shadow: 4px 4px 15px #666;\nborder-radius: 10px;\n}\n
extra_css:\n- css/extra.css\n
\"pasteImage.suffix\": \"#pic\"\n
Abstract
\u200b\u7528\u200b conda \u200b\u7684\u200b\u8fc7\u7a0b\u200b\u4e2d\u200b\u9047\u5230\u200b\u7684\u200b\u4e00\u4e2a\u200b\u795e\u79d8\u200b\u95ee\u9898\u200b\ud83e\udd14
\u200b\u6700\u8fd1\u200b\u5f00\u59cb\u200b\u4f7f\u7528\u200b conda\uff0c\u200b\u8bd5\u56fe\u200b\u5728\u200b VSCode \u200b\u7ec8\u7aef\u200b\u91cc\u200b\u5207\u6362\u200b\u865a\u62df\u73af\u5883\u200b\uff0c\u200b\u547d\u4ee4\u884c\u200b\u63d0\u793a\u200b\u5df2\u7ecf\u200b\u5207\u6362\u200b\uff0c\u200b\u4f46\u662f\u200b python \u200b\u73af\u5883\u200b\u5b9e\u9645\u4e0a\u200b\u6ca1\u6709\u200b\u53d8\u200b. \u200b\u89e3\u51b3\u65b9\u6848\u200b\u5982\u4e0b\u200b\uff1a
command shift p
\uff0c\u200b\u641c\u7d22\u200b settings\uff0c\u200b\u6253\u5f00\u200b user settings json \"terminal.integrated.env.osx\": {\n \"PATH\": \"\"\n }\uff0c\n
Abstract
\u200b\u4f17\u6240\u5468\u77e5\u200b\u4e2d\u82f1\u6587\u200b\u6df7\u6742\u200b\u7684\u200b\u6392\u7248\u200b\u5176\u5b9e\u200b\u662f\u200b\u6709\u200b\u8bb2\u7a76\u200b\u7684\u200b\uff0c\u200b\u4f46\u662f\u200b\u5b9e\u9645\u64cd\u4f5c\u200b\u8d77\u6765\u200b\u8f93\u5165\u6cd5\u200b\u5207\u6765\u5207\u200b\u53bb\u200b\u9ebb\u70e6\u200b\u5f97\u200b\u5f88\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb2\u200b\u7684\u200b\u662f\u200b\u7528\u200b vim \u200b\u7684\u200b Pangu \u200b\u63d2\u4ef6\u200b\u6765\u200b\u6279\u91cf\u200b\u81ea\u52a8\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u65b9\u6cd5\u200b
"},{"location":"blog/%E7%94%A8-vim-%E6%89%B9%E9%87%8F%E6%A0%BC%E5%BC%8F%E5%8C%96/#vim-pangu","title":"\u5b89\u88c5\u200b Vim \u200b\u5de5\u5177\u200b Pangu","text":"\u200b\u9996\u5148\u200b\u5b89\u88c5\u200b vim-plug\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u53ef\u4ee5\u200b\u5e2e\u52a9\u200b\u6211\u4eec\u200b\u65b9\u4fbf\u200b\u7684\u200b\u5b89\u88c5\u200b vim \u200b\u63d2\u4ef6\u200b\u7684\u200b\u63d2\u4ef6\u200b
\u200b\u968f\u540e\u200b\u5b89\u88c5\u200b Pangu \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5728\u200b ~/.vimrc \u200b\u4e2d\u200b\u6dfb\u52a0\u200b
Plug 'hotoo/pangu.vim'\uff0c { 'for': ['markdown'\uff0c 'vimwiki'\uff0c 'text'] }\nlet g:pangu_rule_date = 1\n
\u200b\u968f\u540e\u200b\u5728\u200b vim \u200b\u4e2d\u200b\u6267\u884c\u200b:PlugInstall
\u200b\u5373\u53ef\u200b\u5b89\u88c5\u200b
Pangu \u200b\u7684\u200b \u200b\u5b98\u65b9\u200b\u9996\u9875\u200b\u4e0a\u200b\u5df2\u7ecf\u200b\u6709\u200b\u6bd4\u8f83\u200b\u8be6\u7ec6\u200b\u7684\u200b\u8bf4\u660e\u200b\u4e86\u200b\uff0c\u200b\u60f3\u8981\u200b\u542f\u7528\u200b\u5176\u4e2d\u200b\u7684\u200b\u529f\u80fd\u200b\u7167\u7740\u200b\u505a\u200b\u5c31\u662f\u200b\u4e86\u200b
"},{"location":"blog/%E7%94%A8-vim-%E6%89%B9%E9%87%8F%E6%A0%BC%E5%BC%8F%E5%8C%96/#pangu","title":"\u6279\u91cf\u200b\u4f7f\u7528\u200b Pangu \u200b\u683c\u5f0f\u5316","text":"\u200b\u9996\u5148\u200b\u7528\u200b vim \u200b\u6279\u91cf\u200b\u6253\u5f00\u200b\u60f3\u8981\u200b\u683c\u5f0f\u5316\u200b\u7684\u200b\u6587\u4ef6\u200b
vim *.md\n
\u200b\u90a3\u4e48\u200b\u6240\u6709\u200b\u7b26\u5408\u200b\u683c\u5f0f\u200b\u7684\u200b\u6587\u4ef6\u200b\u90fd\u200b\u88ab\u200b\u6253\u5f00\u200b\u5728\u200b\u7f13\u5b58\u200b(buffer)\u200b\u4e2d\u200b\u4e86\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u7528\u200b:ls
\u200b\u6765\u200b\u67e5\u770b\u200b\uff0c\u200b\u7528\u200b:n
\u200b\u6765\u200b\u5207\u6362\u200b
\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u628a\u200b vim \u200b\u7684\u200b\u7f13\u5b58\u200b\u548c\u200b\u6587\u4ef6\u200b\u7684\u200b\u5173\u7cfb\u200b\u7406\u89e3\u200b\u6210\u200b\u5185\u5b58\u200b\u548c\u200b\u78c1\u76d8\u200b\u7684\u200b\u5173\u7cfb\u200b\uff0c\u200b\u6211\u4eec\u200b\u5728\u200b\u7f13\u5b58\u200b\u4e2d\u200b\u53ef\u4ee5\u200b\u4fee\u6539\u200b\u6587\u4ef6\u200b\uff0c\u200b\u4f46\u200b\u76f4\u5230\u200bw
\u200b\u4e4b\u524d\u200b\u90fd\u200b\u4e0d\u4f1a\u200b\u5199\u5165\u200b\u78c1\u76d8\u200b
\u200b\u8981\u200b\u6279\u91cf\u200b\u5904\u7406\u200b\uff0c\u200b\u4f7f\u7528\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b
:bufdo PanguAll | update\n:bufdo w\n:q\n
\u200b\u5176\u4e2d\u200b\u7684\u200b bufdo \u200b\u7684\u200b\u610f\u601d\u200b\u5c31\u662f\u200b\u5bf9\u200b\u6240\u6709\u200b\u7f13\u5b58\u200b\u4e2d\u200b\u7684\u200b\u6587\u4ef6\u200b\u6267\u884c\u547d\u4ee4\u200b
\u200b\u6211\u4eec\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u628a\u200b\u547d\u4ee4\u200b\u5199\u5165\u200b.vim
\u200b\u540e\u7f00\u200b\u7684\u200b\u811a\u672c\u200b\uff0c\u200b\u7136\u540e\u200b\u76f4\u63a5\u200b\u5728\u200b vim \u200b\u4e2d\u200b\u7528\u200b:source
\u200b\u6267\u884c\u200b\u811a\u672c\u200b\u5c31\u200b\u597d\u200b
Abstract
\u200b\u4e00\u4e2a\u200b\u7b80\u6613\u200b\u7684\u200b\u6559\u7a0b\u200b\u6765\u200b\u4ecb\u7ecd\u200b\u5982\u4f55\u200b\u5728\u200b MacOS \u200b\u4e0a\u7528\u200b docker \u200b\u642d\u5efa\u200b minisql \u200b\u73af\u5883\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6709\u4eba\u200b\u8981\u200b\u95ee\u200b\u4e86\u200b\uff0c\u200b\u4e3a\u4ec0\u4e48\u200b\u4e0d\u200b\u76f4\u63a5\u200b\u672c\u5730\u200b\u90e8\u7f72\u200b\u5462\u200b. \u200b\u6211\u200b\u4e5f\u200b\u60f3\u200b\u672c\u5730\u200b\u90e8\u7f72\u200b\u554a\u200b\uff0c\u200b\u4f46\u662f\u200b\u7f16\u8bd1\u200b\u8d77\u6765\u200b\u7834\u4e8b\u200b\u592a\u591a\u200b\u4e86\u200b\ud83d\ude05\uff0c\u200b\u7d22\u6027\u200b\u8bd5\u200b\u4e00\u79cd\u200b\u8de8\u5e73\u53f0\u200b\u7684\u200b\u65b9\u6848\u200b.
\u200b\u73af\u5883\u200b
MacOS: Ventura 13.4.1 Docker: 4.16.2 Ubuntu: 20.04
"},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#1","title":"1.\u200b\u542f\u52a8\u200b\u5bb9\u5668","text":""},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#11-docker","title":"1.1 \u200b\u4e0b\u8f7d\u200b Docker","text":"\u200b\u9996\u5148\u200b\u4f60\u200b\u8981\u200b\u6709\u200b docker \u200b\u8f6f\u4ef6\u200b\uff0c\u200b\u5148\u53bb\u200b\u5b98\u7f51\u200b\u4e0b\u200b\u4e00\u4e2a\u200b.
"},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#12","title":"1.2 \u200b\u62c9\u53d6\u200b\u955c\u50cf","text":"\u200b\u542f\u52a8\u200b docker \u200b\u8f6f\u4ef6\u200b.\u200b\u6765\u5230\u200b\u547d\u4ee4\u884c\u200b\u4e2d\u200b\u8f93\u5165\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b\u6765\u62c9\u53d6\u200b ubuntu:20.04 \u200b\u955c\u50cf\u200b\uff08minisql \u200b\u5f53\u524d\u200b\u63a8\u8350\u200b\u90e8\u7f72\u200b\u5728\u200b ubuntu:20.04\uff09\uff1a
docker pull ubuntu:20.04\n
\u200b\u955c\u50cf\u200b \u200b\u955c\u50cf\u200b\uff08Image\uff09\u200b\u662f\u200b\u4e00\u4e2a\u200b\u9759\u6001\u200b\u7684\u200b\u3001\u200b\u53ea\u8bfb\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u5b83\u200b\u5305\u542b\u200b\u4e86\u200b\u64cd\u4f5c\u7cfb\u7edf\u200b\u3001\u200b\u6587\u4ef6\u7cfb\u7edf\u200b\u548c\u200b\u5e94\u7528\u7a0b\u5e8f\u200b\u7684\u200b\u6240\u6709\u200b\u6587\u4ef6\u200b\u548c\u200b\u8bbe\u7f6e\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u6784\u5efa\u200b\u5bb9\u5668\u200b\u7684\u200b\u57fa\u7840\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u770b\u4f5c\u200b\u662f\u200b\u4e00\u4e2a\u200b\u6a21\u677f\u200b\u6216\u8005\u200b\u84dd\u56fe\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u901a\u8fc7\u200b Dockerfile \u200b\u6587\u4ef6\u200b\u5b9a\u4e49\u200b\u548c\u200b\u6784\u5efa\u200b\u7684\u200b\uff0cDockerfile \u200b\u4e2d\u200b\u5305\u542b\u200b\u4e86\u200b\u4e00\u7cfb\u5217\u200b\u6307\u4ee4\u200b\u548c\u200b\u914d\u7f6e\u200b\uff0c\u200b\u7528\u4e8e\u200b\u521b\u5efa\u200b\u955c\u50cf\u200b.\u200b\u955c\u50cf\u200b\u53ef\u4ee5\u200b\u5b58\u50a8\u200b\u5728\u200b Docker Registry \u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u955c\u50cf\u200b\u540d\u79f0\u200b\u548c\u200b\u6807\u7b7e\u200b\u6765\u200b\u552f\u4e00\u200b\u6807\u8bc6\u200b.\u200b\u955c\u50cf\u200b\u662f\u200b\u4e0d\u53ef\u200b\u4fee\u6539\u200b\u7684\u200b\uff0c\u200b\u5982\u679c\u200b\u9700\u8981\u200b\u5bf9\u200b\u955c\u50cf\u200b\u8fdb\u884c\u200b\u66f4\u6539\u200b\uff0c\u200b\u9700\u8981\u200b\u91cd\u65b0\u200b\u6784\u5efa\u200b\u4e00\u4e2a\u200b\u65b0\u200b\u7684\u200b\u955c\u50cf\u200b.
docker imagesdocker pulldocker rmi\u200b\u4f7f\u7528\u200bdocker images
\u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u5f53\u524d\u200b\u5df2\u6709\u200b\u7684\u200b\u955c\u50cf\u200b\u5217\u8868\u200b.\u200b\u8fd9\u200b\u5c06\u200b\u663e\u793a\u200b\u6240\u6709\u200b\u5df2\u200b\u4e0b\u8f7d\u200b\u548c\u200b\u6784\u5efa\u200b\u7684\u200b\u955c\u50cf\u200b\uff0c\u200b\u4ee5\u53ca\u200b\u5b83\u4eec\u200b\u7684\u200b\u76f8\u5173\u200b\u4fe1\u606f\u200b\uff0c\u200b\u5982\u200b\u955c\u50cf\u200b ID\u3001\u200b\u540d\u79f0\u200b\u3001\u200b\u6807\u7b7e\u200b\u3001\u200b\u5927\u5c0f\u200b\u7b49\u200b.
\u200b\u4f7f\u7528\u200bdocker pull
\u200b\u547d\u4ee4\u200b\u4ece\u200b Docker Registry \u200b\u4e2d\u62c9\u53d6\u200b\u955c\u50cf\u200b.\u200b\u5982\u679c\u200b\u4e0d\u200b\u6307\u5b9a\u200b\u6807\u7b7e\u200b\uff0c\u200b\u9ed8\u8ba4\u200b\u62c9\u53d6\u200b latest \u200b\u6807\u7b7e\u200b\u7684\u200b\u955c\u50cf\u200b.\u200b\u4f8b\u5982\u200b\uff0cdocker pull ubuntu:20.04
\u200b\u5c06\u62c9\u53d6\u200b Ubuntu 20.04 \u200b\u955c\u50cf\u200b.
\u200b\u4f7f\u7528\u200bdocker rmi
\u200b\u547d\u4ee4\u200b\u5220\u9664\u200b\u955c\u50cf\u200b.\u200b\u4f8b\u5982\u200b\uff0cdocker rmi ubuntu:20.04
\u200b\u5c06\u200b\u5220\u9664\u200b Ubuntu 20.04 \u200b\u955c\u50cf\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u4e5f\u200b\u53ef\u4ee5\u200b\u4f7f\u7528\u200b ID \u200b\u6307\u5b9a\u200b\u8981\u200b\u5220\u9664\u200b\u7684\u200b\u955c\u50cf\u200b.
\u200b\u7528\u200bdocker run
\u200b\u542f\u52a8\u200b\u4e00\u4e2a\u200b\u5bb9\u5668\u200b\uff0c\u200b\u53c2\u6570\u200b-it
\u200b\u8868\u793a\u200b\u542f\u52a8\u200b\u5b8c\u540e\u200b\u76f4\u63a5\u200b\u542f\u52a8\u200b\u5bb9\u5668\u200b\u7684\u200b\u7ec8\u7aef\u200b\u4ee5\u4f9b\u200b\u64cd\u4f5c\u200b\uff0c-p
\u200b\u8868\u793a\u200b\u7aef\u53e3\u6620\u5c04\u200b\uff0c\u200b\u8fd9\u91cc\u200b\u628a\u200b loclahost:2333 \u200b\u6620\u5c04\u200b\u4e3a\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\uff0c--name
\u200b\u540e\u63a5\u200b\u5bb9\u5668\u200b\u540d\u5b57\u200b\uff0cubuntu:20.04
\u200b\u8868\u793a\u200b\u4f7f\u7528\u200b\u7684\u200b\u955c\u50cf\u200b.
docker run -it -p 2333:22 --name minisql ubuntu:20.04\n
\u200b\u6267\u884c\u200b\u5b8c\u200b\u547d\u4ee4\u200b\u5e94\u200b\u770b\u5230\u200b\u6211\u4eec\u200b\u4ee5\u200b root \u200b\u7528\u6237\u200b\u8fdb\u5165\u200b\u4e86\u200b\u5bb9\u5668\u200b\u7684\u200b\u7ec8\u7aef\u200b\uff1a \u200b\u7aef\u53e3\u6620\u5c04\u200b \u200b\u7aef\u53e3\u6620\u5c04\u200b\u662f\u200b\u4e00\u79cd\u200b\u5c06\u200b\u4e3b\u673a\u200b\uff08\u200b\u5bbf\u4e3b\u673a\u200b\uff09\u200b\u7aef\u53e3\u200b\u4e0e\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u7aef\u53e3\u200b\u8fdb\u884c\u200b\u7ed1\u5b9a\u200b\u7684\u200b\u6280\u672f\u200b.\u200b\u5b83\u200b\u5141\u8bb8\u200b\u4ece\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u7684\u200b\u7279\u5b9a\u200b\u7aef\u53e3\u200b\u8bbf\u95ee\u200b\u5bb9\u5668\u200b\u5185\u200b\u8fd0\u884c\u200b\u7684\u200b\u670d\u52a1\u200b\u6216\u200b\u5e94\u7528\u7a0b\u5e8f\u200b.
\u200b\u5728\u200b Docker \u200b\u4e2d\u200b\uff0c\u200b\u901a\u8fc7\u200b\u4f7f\u7528\u200b-p
\u200b\u6216\u200b--publish
\u200b\u53c2\u6570\u200b\u6765\u200b\u8fdb\u884c\u200b\u7aef\u53e3\u6620\u5c04\u200b.\u200b\u53c2\u6570\u200b\u7684\u200b\u683c\u5f0f\u200b\u4e3a\u200b\u4e3b\u673a\u200b\u7aef\u53e3\u200b\uff1a\u200b\u5bb9\u5668\u200b\u7aef\u53e3\u200b\uff0c\u200b\u5176\u4e2d\u200b\u4e3b\u673a\u200b\u7aef\u53e3\u200b\u662f\u200b\u60a8\u200b\u5e0c\u671b\u200b\u5728\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u66b4\u9732\u200b\u7684\u200b\u7aef\u53e3\u53f7\u200b\uff0c\u200b\u5bb9\u5668\u200b\u7aef\u53e3\u200b\u662f\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u6b63\u5728\u200b\u8fd0\u884c\u200b\u7684\u200b\u670d\u52a1\u200b\u6240\u200b\u76d1\u542c\u200b\u7684\u200b\u7aef\u53e3\u53f7\u200b.
docker run -it -p 2333:22 --name minisql ubuntu:20.04
\u200b\u547d\u4ee4\u200b\u5c06\u200b\u4e3b\u673a\u200b\u7684\u200b 2333 \u200b\u7aef\u53e3\u6620\u5c04\u200b\u5230\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b.\u200b\u8fd9\u200b\u610f\u5473\u7740\u200b\u4e3b\u673a\u200b\u4e0a\u200b\u7684\u200b\u4efb\u4f55\u200b\u8bf7\u6c42\u200b\u53d1\u9001\u5230\u200b 2333 \u200b\u7aef\u53e3\u200b\u65f6\u200b\uff0c\u200b\u5c06\u200b\u88ab\u200b\u8f6c\u53d1\u200b\u5230\u200b\u5bb9\u5668\u200b\u7684\u200b 22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\uff0c22 \u200b\u53f7\u200b\u7aef\u53e3\u200b\u662f\u200b SSH \u200b\u4f7f\u7528\u200b\u7684\u200b\u9ed8\u8ba4\u200b\u7aef\u53e3\u200b.\u200b\u56e0\u6b64\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200b\u8bbf\u95ee\u200b\u4e3b\u673a\u200b\u7684\u200b 2333 \u200b\u7aef\u53e3\u200b\u6765\u200b\u8bbf\u95ee\u200b\u5bb9\u5668\u200b\u5185\u90e8\u200b\u8fd0\u884c\u200b\u7684\u200b SSH \u200b\u670d\u52a1\u200b\uff0c\u200b\u4ee5\u4fbf\u200b\u8fdb\u884c\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u548c\u200b\u64cd\u4f5c\u200b.
\u200b\u6709\u65f6\u5019\u200b\u76f4\u63a5\u200b\u6362\u6e90\u4f1a\u200b\u9047\u5230\u200b\u62a5\u9519\u200b\uff1a \u200b\u8fd9\u200b\u9700\u8981\u200b\u6211\u4eec\u200b\u5148\u200b\u4f7f\u7528\u200b http\uff0c\u200b\u8fd0\u884c\u200b\u5982\u4e0b\u200b\u547d\u4ee4\u200b\u6362\u200b http \u200b\u6e90\u200b\uff1a
echo \"\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\ndeb http://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n\" > /etc/apt/sources.list\n
\u200b\u8fd9\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u8fdb\u884c\u200b\u4e0b\u200b\u4e00\u6b65\u200b\u4e86\u200b\uff0c\u200b\u5982\u679c\u200b\u4f60\u200b\u5e0c\u671b\u200b\u5728\u200b\u4e4b\u540e\u200b\u6362\u56de\u200b https \u200b\u6e90\u200b\uff0c\u200b\u90a3\u4e48\u200b\u5728\u200b\u6267\u884c\u200b\u5b8c\u200b 2.2 \u200b\u540e\u200b\uff0c\u200b\u9700\u8981\u200b\u5148\u200b \u200b\u66f4\u65b0\u200b\u8bc1\u4e66\u200b\uff1a
apt install --reinstall ca-certificates\n
\u200b\u6362\u56de\u200b https \u200b\u6e90\u200b\uff1a echo \"\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\ndeb https://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n\" > /etc/apt/sources.list\n
\u200b\u518d\u6b21\u200b\u66f4\u65b0\u200b apt\uff1a apt update\napt upgrade\n
\u200b\u5373\u53ef\u200b\uff08\u200b\u8be5\u200b\u65b9\u6cd5\u200b\u6765\u81ea\u200b\u6b64\u200b\u535a\u5ba2\u200b) \u200b\u76f4\u63a5\u200b\u6267\u884c\u547d\u4ee4\u200b\u5373\u53ef\u200b
cp /etc/apt/sources.list /etc/apt/sources.list.bak\necho \"\n deb https://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse\n deb https://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse\n deb https://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\n deb https://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse\n \" > /etc/apt/sources.list\n
\u200b\u6362\u6e90\u200b \u200b\u6362\u6e90\u200b\u662f\u200b\u6307\u200b\u5c06\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\uff08\u200b\u955c\u50cf\u200b\uff09\u200b\u66ff\u6362\u200b\u4e3a\u200b\u7279\u5b9a\u200b\u5730\u533a\u200b\u6216\u200b\u7f51\u7edc\u200b\u73af\u5883\u200b\u4e0b\u200b\u66f4\u200b\u5feb\u901f\u200b\u3001\u200b\u53ef\u9760\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b.\u200b\u8fd9\u662f\u200b\u4e3a\u4e86\u200b\u63d0\u9ad8\u200b\u8f6f\u4ef6\u5305\u200b\u7684\u200b\u4e0b\u8f7d\u901f\u5ea6\u200b\u3001\u200b\u89e3\u51b3\u200b\u7f51\u7edc\u200b\u8bbf\u95ee\u200b\u9650\u5236\u200b\u6216\u200b\u8bbf\u95ee\u200b\u7279\u5b9a\u200b\u5730\u533a\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u800c\u200b\u91c7\u53d6\u200b\u7684\u200b\u63aa\u65bd\u200b.
\u200b\u66f4\u6362\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\u7684\u200b\u5177\u4f53\u65b9\u6cd5\u200b\u4f1a\u56e0\u200b\u4e0d\u540c\u200b\u7684\u200b\u64cd\u4f5c\u7cfb\u7edf\u200b\u548c\u200b\u8f6f\u4ef6\u5305\u200b\u7ba1\u7406\u5de5\u5177\u200b\u800c\u200b\u6709\u6240\u200b\u5dee\u5f02\u200b.\u200b\u5728\u200b\u57fa\u4e8e\u200b Ubuntu \u200b\u7684\u200b Docker \u200b\u5bb9\u5668\u200b\u4e2d\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7f16\u8f91\u200b /etc/apt/sources.list \u200b\u6587\u4ef6\u200b\uff0c\u200b\u5c06\u200b\u9ed8\u8ba4\u200b\u7684\u200b\u8f6f\u4ef6\u5305\u200b\u6e90\u200b\u66ff\u6362\u200b\u4e3a\u200b\u56fd\u5185\u200b\u7684\u200b\u955c\u50cf\u200b\u6e90\u200b\uff0c\u200b\u5982\u200b\u6d59\u6c5f\u5927\u5b66\u200b\u3001\u200b\u6e05\u534e\u5927\u5b66\u200b\u7b49\u200b.\u200b\u8fd9\u6837\u4e00\u6765\u200b\uff0c\u200b\u901a\u8fc7\u200b\u5bb9\u5668\u200b\u4e2d\u200b\u7684\u200b apt-get
\u200b\u6216\u200b apt
\u200b\u547d\u4ee4\u200b\u5b89\u88c5\u200b\u8f6f\u4ef6\u200b\u65f6\u200b\uff0c\u200b\u5c06\u200b\u4ece\u200b\u56fd\u5185\u200b\u955c\u50cf\u200b\u6e90\u200b\u4e0b\u8f7d\u200b\u8f6f\u4ef6\u5305\u200b\uff0c\u200b\u63d0\u9ad8\u200b\u901f\u5ea6\u200b\u548c\u200b\u7a33\u5b9a\u6027\u200b.
\u200b\u9996\u5148\u200b\u66f4\u65b0\u200b apt
apt update\napt upgrade\n
\u200b\u5b89\u88c5\u200b\u4e00\u4e9b\u200b\u5fc5\u8981\u200b\u7684\u200b\u5de5\u5177\u200b\uff1a
apt install openssh-server vim git cmake gcc g++ gdb sudo\n
"},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#3-ssh-vscode","title":"3.\u200b\u914d\u7f6e\u200b SSH\uff0c\u200b\u4f7f\u7528\u200b VSCode \u200b\u5f00\u53d1","text":""},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#31","title":"3.1\uff08\u200b\u53ef\u200b\u9009\u200b\uff09\u200b\u521b\u5efa\u200b\u7528\u6237","text":"\u200b\u5982\u679c\u200b\u5e0c\u671b\u200b\u7528\u975e\u200b root \u200b\u7528\u6237\u200b\u767b\u9646\u200b\uff0c\u200b\u90a3\u4e48\u200b\u6211\u4eec\u200b\u53ef\u4ee5\u200b\u5148\u200b\u521b\u5efa\u200b\u5e76\u200b\u8bbe\u7f6e\u200b\u4e00\u4e2a\u200b\u7528\u6237\u200b\uff1a
useradd -m stormckey\npasswd stormckey\n
\u200b\u8fd9\u91cc\u200b\u7684\u200b stormckey \u200b\u6362\u6210\u200b\u4f60\u200b\u81ea\u5df1\u200b\u8d77\u200b\u7684\u200b\u7528\u6237\u540d\u200b \u200b\u7ed9\u200b\u7528\u6237\u200b\u6dfb\u52a0\u200b sudo \u200b\u6743\u9650\u200b\uff0c\u200b\u9700\u8981\u200b\u5728\u200b/etc/sudoers
\u200b\u6587\u4ef6\u200b\u4e2d\u200b# User privilege specification
\u200b\u6dfb\u52a0\u200b\uff1a
\u200b\u6765\u5230\u200b\u8fdc\u7a0b\u200b\u8fde\u63a5\u200b\u7684\u200b\u53d1\u8d77\u8005\u200b\u7aef\u200b\uff08\u200b\u8fd9\u91cc\u200b\u5c31\u662f\u200b\u5bbf\u4e3b\u673a\u200b\uff09\uff0c\u200b\u6267\u884c\u200b\u4e0b\u9762\u200b\u547d\u4ee4\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u8f93\u5165\u200b paseephrase \u200b\u65f6\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff08\u200b\u4e3a\u7a7a\u200b\uff09
ssh-keygen\n
\u200b\u6765\u5230\u200b\u63d0\u793a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e0b\u200b\uff0c\u200b\u590d\u5236\u200b id_rsa.pub \u200b\u7684\u200b\u5185\u5bb9\u200b\uff0c\u200b\u5c06\u200b\u5b83\u200b\u5199\u5165\u200b\u88ab\u200b\u8fde\u63a5\u7aef\u200b\uff08\u200b\u8fd9\u91cc\u200b\u662f\u200b\u5bb9\u5668\u200b\uff09\u200b\u7684\u200b/home/stormckey/.ssh/authorized_keys
\u200b\u6587\u4ef6\u200b\u4e2d\u200b \u200b\u53e6\u200b\u4e00\u79cd\u200b\u66f4\u200b\u65b9\u4fbf\u200b\u7684\u200b\u65b9\u6848\u200b \u200b\u5728\u200b\u53ef\u4ee5\u200b\u7528\u200b\u5bc6\u7801\u200b\u767b\u5f55\u200b\u4e86\u200b\u4e4b\u540e\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200bssh-copy-id
\u200b\u547d\u4ee4\u200b\u4e00\u952e\u200b\u628a\u200b\u5bc6\u94a5\u200b\u653e\u7f6e\u200b\u5230\u200b\u670d\u52a1\u5668\u200b\u5e76\u200b\u505a\u597d\u200b\u76f8\u5e94\u200b\u7684\u200b\u8bbe\u7f6e\u200b
ssh-copy-id -i ~/.ssh/id_rsa.pub stormckey@localhost -p 2333\n
\u200b\u63a5\u7740\u200b\u914d\u7f6e\u200b\u5bb9\u5668\u200b\u7684\u200b sshd: vim /etc/ssh/sshd_config
\u200b\u53bb\u6389\u200b\u4ee5\u4e0b\u200b\u7684\u200b\u6ce8\u91ca\u200b\uff1a \u200b\u6ce8\u610f\u200b\u7b2c\u4e8c\u5f20\u200b\u56fe\u4e2d\u200b\u7684\u200b\u6587\u4ef6\u200b\u4e00\u5b9a\u200b\u662f\u200b\u4f60\u200b\u4e4b\u524d\u200b\u653e\u516c\u94a5\u200b\u7684\u200b\u6587\u4ef6\u200b\uff0c\u200b\u8def\u5f84\u200b\u4ece\u200b\u7528\u6237\u200b\u6839\u76ee\u5f55\u200b\u5f00\u59cb\u200b
\u200b\u66f4\u6539\u200b\u5b8c\u200b\u914d\u7f6e\u200b\u540e\u200b\u542f\u52a8\u200b/\u200b\u91cd\u542f\u200b sshd
service ssh start\n
\u200b\u6211\u4eec\u200b\u6700\u597d\u200b\u628a\u200b\u81ea\u52a8\u200b\u542f\u52a8\u200b ssh \u200b\u670d\u52a1\u200b\u52a0\u5165\u200b bashrc\uff0c\u200b\u8fd9\u6837\u200b\u542f\u52a8\u200b\u5bb9\u5668\u200b\u7684\u200b\u65f6\u5019\u200b\u5c31\u200b\u4f1a\u200b\u81ea\u52a8\u200b\u542f\u52a8\u200b ssh \u200b\u670d\u52a1\u200b\u4e86\u200b echo \"service ssh start\" >> /root/.bashrc\n
\u200b\u6b64\u65f6\u200b\u4f60\u200b\u5728\u200b\u5bbf\u4e3b\u673a\u200b\u4e0a\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u901a\u8fc7\u200bssh stormckey@localhost -p 2333
\u200b\u767b\u9646\u200b\u5bb9\u5668\u200b\u4e86\u200b\uff1a
\u200b\u4e0b\u8f7d\u200b\u63d2\u4ef6\u200b Remote-SSH \u200b\u63d2\u4ef6\u200b\uff0c\u200b\u70b9\u51fb\u200b\u53f3\u8fb9\u200b\u51fa\u73b0\u200b\u7684\u200b\u63d2\u4ef6\u200b\u56fe\u6807\u200b\uff0c\u200b\u5728\u200b\u4fa7\u680f\u200b\u4e2d\u200b\u9009\u62e9\u200b\u8bbe\u7f6e\u200b SSH\uff1a
\u200b\u5199\u5165\u200b\u5982\u4e0b\u200b\u7684\u200b\u914d\u7f6e\u200b\u4fe1\u606f\u200b\uff1a
\u200b\u8fde\u63a5\u200b\uff01
\u200b\u6b64\u540e\u200b\u5c31\u200b\u6ca1\u6709\u200b\u4ec0\u4e48\u200b\u7279\u522b\u200b\u7684\u200b\u4e86\u200b\uff0c\u200b\u6253\u5f00\u200b\u7ec8\u7aef\u200b\u76f4\u63a5\u200b\u6309\u7167\u200b\u52a9\u6559\u200b\u7684\u200b\u6587\u6863\u200b\u914d\u7f6e\u200b minisql \u200b\u5373\u53ef\u200b.
"},{"location":"blog/%E7%94%A8-docker-%E6%90%AD%E5%BB%BA-minisql-%E7%8E%AF%E5%A2%83/#4","title":"4.\u200b\u66f4\u200b\u591a\u200b\u8bbe\u7f6e","text":"\u200b\u73b0\u5728\u200b\u4f60\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u4e2a\u200b\u7b80\u964b\u200b\u7684\u200b\u547d\u4ee4\u884c\u200b\u5f00\u59cb\u200b\u5de5\u4f5c\u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u5982\u679c\u200b\u4f60\u200b\u559c\u6b22\u200b\u7684\u8bdd\u200b\u53ef\u4ee5\u200b\u52a0\u5165\u200b\u66f4\u200b\u591a\u200b\u8bbe\u7f6e\u200b\uff01
\u200b\u7ec8\u7aef\u200b\u7f8e\u5316\u200b\u200b\u89c1\u6b64\u200b\u535a\u5ba2\u200b
"},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/","title":"\u914d\u7f6e\u200b Github Profile","text":"Abstract
\u200b\u6211\u200b\u914d\u7f6e\u200b Github \u200b\u4e3b\u9875\u200b Profile \u200b\u7684\u200b\u65b9\u6848\u200b\uff0c\u200b\u7075\u611f\u200b\u6765\u81ea\u200bTonycrane \u200b\u7684\u200b GitHub \u200b\u4e3b\u9875\u200b
"},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/#github-profile_1","title":"\u542f\u7528\u200b Github \u200b\u4e3b\u9875\u200b Profile","text":"\u200b\u6211\u4eec\u200b\u5148\u200b\u521b\u5efa\u200b\u4e00\u4e2a\u200b\u8ddf\u200b\u81ea\u5df1\u200b\u8d26\u53f7\u200b\u540c\u540d\u200b\u7684\u200b\u516c\u5f00\u200b\u4ed3\u5e93\u200b\uff0c\u200b\u8fd9\u662f\u200b\u4e00\u4e2a\u200b\u7279\u6b8a\u200b\u7684\u200b\u7528\u4f5c\u200b\u4e3b\u9875\u200b\u4ed3\u5e93\u200b Github \u200b\u4f1a\u200b\u5728\u200b\u4e3b\u9875\u200b\u4e0a\u200b\u663e\u793a\u200b\u8fd9\u4e00\u200b\u4ed3\u5e93\u200b\u7684\u200b README \u200b\u6587\u6863\u200b\u4f5c\u4e3a\u200b Profile\uff0c\u200b\u6240\u4ee5\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u7f16\u5199\u200b\u8fd9\u4e2a\u200b README \u200b\u6587\u6863\u200b\u5373\u53ef\u200b
\u200b\u672c\u4eba\u200b\u4e3b\u9875\u200b\u9884\u89c8\u200b "},{"location":"blog/%E9%85%8D%E7%BD%AE-github-profile/#metrics-profile","title":"\u542f\u7528\u200b Metrics \u200b\u751f\u6210\u200b Profile \u200b\u56fe\u7247","text":"\u200b\u63a8\u8350\u200b\u4f7f\u7528\u200bMetrics\u200b\u6765\u200b\u751f\u6210\u200b\u597d\u770b\u200b\u7684\u200b Profile
Metrics \u200b\u4f7f\u7528\u200b GitHub Action \u200b\u81ea\u52a8\u66f4\u65b0\u200b\uff0c\u200b\u6211\u4eec\u200b\u53ea\u8981\u200b\u7167\u7740\u200b\u94fe\u63a5\u200b\u91cc\u200b\u7684\u200b\u4ecb\u7ecd\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u5b8c\u6210\u200b\u90e8\u7f72\u200b.Metrics \u200b\u8fd8\u200b\u652f\u6301\u200b\u8bb8\u591a\u200b\u4e0d\u540c\u200b\u7684\u200b\u63d2\u4ef6\u200b\uff0c\u200b\u5927\u5bb6\u200b\u53ef\u4ee5\u200b\u968f\u610f\u200b\u9009\u62e9\u200b\u81ea\u5df1\u200b\u559c\u6b22\u200b\u7684\u200b\uff0c\u200b\u6700\u540e\u200b\u8d34\u200b\u4e0a\u200b\u7b14\u8005\u200b\u6ce8\u91ca\u200b\u7684\u200b\u7684\u200b Action \u200b\u914d\u7f6e\u200b\u548c\u200b README \u200b\u6e90\u4ee3\u7801\u200b\uff0c\u200b\u6b22\u8fce\u200b\u501f\u9274\u200b\u4f7f\u7528\u200b\uff01
\u200b\u53c2\u8003\u200b\u914d\u7f6e\u200b Metrics.ymlREADME.mdname: Metrics\non:\n# Schedule updates per hour\nschedule: [{cron: \"0 * * * *\"}]\n# (optional) Run workflow manually\nworkflow_dispatch:\n# (optional) Run workflow when pushing on master/main\npush: {branches: [\"master\"\uff0c \"main\"]}\njobs:\n#generate the left picture\ngithub-left-metrics:\n runs-on: ubuntu-latest\n permissions:\n contents: write\n steps:\n - name: left\n # use the official generator\n uses: lowlighter/metrics@latest\n with:\n token: ${{ secrets.METRICS_TOKEN }}\n\n # the file this action generates\n filename: matrics-left.svg\n config_timezone: Asia/Shanghai\n\n\n # enable plugins\n plugin_followup: yes\n\n\n plugin_languages: yes\n # repositories that wont be accounted\n plugin_languages_skipped: stormckey/dotfiles\n plugin_languages_ignored: html\uff0c css\uff0c ruby\uff0c perl\uff0c javascript\n # show the size of source code and percentage of each language\n plugin_languages_details: bytes-size\uff0c percentage\n\n\n plugin_starlists: yes\n plugin_starlists_languages: yes\n\n\n config_order: followup\uff0c languages\uff0c starlists\n\ngithub-right-metrics:\n runs-on: ubuntu-latest\n permissions:\n contents: write\n steps:\n - name: right\n uses: lowlighter/metrics@latest\n with:\n #disable the basic metrics\n base: \"\"\n token: ${{ secrets.METRICS_TOKEN }}\n filename: matrics-right.svg\n config_timezone: Asia/Shanghai\n\n plugin_topics: yes\n plugin_topics_mode: icons\n\n\n plugin_isocalendar: yes\n\n\n plugin_anilist: yes\n plugin_anilist_user: stormckey\n plugin_anilist_sections: favorites\uff0c characters\n\n\n config_order: topics\uff0c isocalendar\uff0c anilist\n
<h3 align=\"center\"> Stormckey </h3>\n\n<p align=\"center\">\n<samp>\n <a href=\"https://stormckey.github.io/\">home page</a> \u2219\n</samp>\n</p>\n\n<p align=\"center\">\n<a href=\"https://github.com/stormckey\">\n <img width=\"400\" align=\"top\" src=\"https://github.com/stormckey/stormckey/blob/main/matrics-left.svg\" />\n</a>\n \n<a href=\"https://github.com/stormckey\">\n <img width=\"400\" align=\"top\" src=\"https://github.com/stormckey/stormckey/blob/main/matrics-right.svg\" />\n</a>\n</p>\n
"},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/","title":"Linux \u200b\u7ec8\u7aef\u200b\u914d\u7f6e","text":"Abstract
\u200b\u4e00\u4e9b\u200b\u6781\u5927\u200b\u5730\u200b\u589e\u5f3a\u200b linux \u200b\u7ec8\u7aef\u200b\u6613\u7528\u6027\u200b\u7684\u200b\u5de5\u5177\u200b
\u200b\u5bf9\u200b\u6211\u200b\u6765\u8bf4\u200b\uff0c\u200b\u5982\u679c\u200b\u6211\u8981\u200b\u65b0\u5f00\u200b\u4e00\u4e2a\u200b\u7528\u200b\u4e00\u6bb5\u65f6\u95f4\u200b\u7684\u200b\u73af\u5883\u200b\u7684\u8bdd\u200b\uff0c\u200b\u5c31\u200b\u4f1a\u200b\u628a\u200b\u8fd9\u4e9b\u200b\u914d\u7f6e\u200b\u5148\u8dd1\u200b\u4e00\u904d\u200b
"},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#zsh","title":"\u542f\u7528\u200b zsh","text":"sudo apt install zsh\nchsh -s /bin/zsh\n
\u200b\u91cd\u542f\u200b\u7ec8\u7aef\u200b\uff08docker \u200b\u4e2d\u8bf7\u200b\u91cd\u542f\u200b\u5bb9\u5668\u200b\uff09"},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#zsh_1","title":"\u5b89\u88c5\u200b zsh \u200b\u63d2\u4ef6","text":"\u200b\u5b89\u88c5\u200b p10k
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~/.zsh/powerlevel10k\necho 'source ~/.zsh/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc\n
\u200b\u91cd\u542f\u200b shell \u200b\u5b89\u88c5\u200b autosuggestion
git clone https://gitee.com/renkx/zsh-autosuggestions.git ~/.zsh/plugins/zsh-autosuggestions\necho '#Enable autosuggestion' >> ~/.zshrc\necho 'source ~/.zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc\n
\u200b\u5b89\u88c5\u200b syntaxhighlight
git clone https://gitee.com/renkx/zsh-syntax-highlighting.git ~/.zsh/plugins/zsh-syntax-highlighting\necho '#Enable syntax highlight' >> ~/.zshrc\necho 'source ~/.zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc\n
\u200b\u5b89\u88c5\u200b autojump
sudo apt install autojump\necho '#Enable autojump' >> ~/.zshrc\necho 'source /usr/share/autojump/autojump.sh'>>~/.zshrc\n
"},{"location":"blog/linux-%E7%BB%88%E7%AB%AF%E9%85%8D%E7%BD%AE/#vi","title":"\u5728\u200b\u547d\u4ee4\u884c\u200b\u4e2d\u200b\u542f\u7528\u200b vi","text":"git clone https://github.com/soheilpro/zsh-vi-search.git ~/.zsh/plugins/zsh-vi-search\necho \"#Enable vi mode\" >> ~/.zshrc\necho \"bindkey -v\" >> ~/.zshrc\necho \"source ~/.zsh/plugins/zsh-vi-search/src/zsh-vi-search.zsh\" >> ~/.zshrc\n
"},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/","title":"\u7528\u200b ssh \u200b\u8fde\u63a5\u200b\u540c\u4e00\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u7684\u200b Wsl2","text":"Abstract
\u200b\u4e3a\u4ec0\u4e48\u200b\u4f1a\u200b\u6709\u200b\u8fd9\u4e2a\u200b\u9700\u6c42\u200b\uff0c\u200b\u56e0\u4e3a\u200b\u6211\u200b\u5927\u5b66\u200b\u5165\u5b66\u200b\u5e26\u200b\u7684\u200b\u7535\u8111\u5ba4\u200b\u662f\u200b\u4e00\u4e2a\u200b\u7eed\u822a\u200b\u7a00\u788e\u200b\u7684\u200b\u5de8\u91cd\u200b\u7684\u200b\u6e38\u620f\u200b\u672c\u200b\uff0c\u200b\u540e\u6765\u200b\u6709\u200b\u4e86\u200b mac \u200b\u4e4b\u540e\u200b\u6e38\u620f\u200b\u672c\u200b\u57fa\u672c\u200b\u6210\u200b\u53f0\u5f0f\u200b\u4e86\u200b\uff08\u200b\u4e0d\u662f\u200b\uff09\uff0c\u200b\u7528\u200b ssh \u200b\u8fde\u4e0a\u53bb\u200b\u4e3b\u8981\u200b\u662f\u200b\u7528\u200b\u4e00\u4e0b\u200b\u663e\u5361\u200b\u5565\u200b\u7684\u200b
Abstract
\u200b\u57fa\u7840\u200b\u7684\u200b\u6d41\u7a0b\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b\u535a\u5ba2\u200b\u5c31\u200b\u597d\u200b\uff0c\u200b\u672c\u6587\u200b\u8bb0\u5f55\u200b\u4e00\u4e0b\u200b\u8e29\u200b\u7684\u200b\u96f7\u200b\u548c\u200b\u66f4\u200b\u8fdb\u9636\u200b\u7684\u200b\u8bbe\u7f6e\u200b
"},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#_1","title":"\u68c0\u67e5\u200b\u901a\u8def","text":"\u200b\u8fd9\u200b\u4e00\u6b65\u200b\u6211\u4eec\u200b\u8981\u200b\u68c0\u67e5\u200b\u6211\u4eec\u200b\u5230\u200b\u8981\u200b\u8fde\u63a5\u200b\u7684\u200b\u7cfb\u7edf\u200b\u7684\u200b\u7f51\u7edc\u200b\u901a\u8def\u200b\u662f\u200b\u6b63\u5e38\u200b\u7684\u200b
Windows \u200b\u4f1a\u200b\u7ed9\u200b Wsl2 \u200b\u5206\u914d\u200b\u4e00\u4e2a\u200b\u865a\u62df\u200b\u7684\u200b\u672c\u5730\u200b\u7684\u200b\u5730\u5740\u200b\uff0c\u200b\u5728\u200b Windows \u200b\u8f93\u5165\u200bipconfig
\u200b\u4ee5\u200b\u67e5\u770b\u200b\u8be5\u200b\u5730\u5740\u200b. \u200b\u6211\u4eec\u200b\u5728\u200b Wsl \u200b\u4e2d\u200b\u542f\u7528\u200b ssh \u200b\u670d\u52a1\u200b\u540e\u200b\uff0c\u200b\u60f3\u8981\u200b\u9a8c\u8bc1\u200b Wsl \u200b\u662f\u5426\u200b\u53ef\u200b\u88ab\u200b\u8fde\u63a5\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5148\u200b\u5728\u200b Windows \u200b\u4e2d\u8bd5\u200b\u7740\u200b\u7528\u200b ssh \u200b\u8fde\u63a5\u200b ifconfig \u200b\u4e2d\u200b\u770b\u5230\u200b\u7684\u200b\u5730\u5740\u200b
\u200b\u968f\u540e\u200b\u6211\u4eec\u200b\u5e0c\u671b\u200b\u4ece\u200b\u5c40\u57df\u7f51\u200b\u8fde\u63a5\u200b Windows \u200b\u4e5f\u200b\u662f\u200b\u901a\u200b\u7684\u200b\uff0c\u200b\u6211\u4eec\u200b\u5c31\u200b\u7528\u200bipconfig
\u200b\u5f97\u5230\u200b\u670d\u52a1\u5668\u200b\uff08\u200b\u4e5f\u200b\u5c31\u662f\u200b\u8fd9\u53f0\u200b\u673a\u5668\u200b\uff09ip\uff0c\u200b\u5728\u200b\u53e6\u4e00\u53f0\u200b\u673a\u5668\u200b\u4e0a\u200b\uff08\u200b\u5ba2\u6237\u200b\uff09\u200b\u5c1d\u8bd5\u200bping <ip>
\u200b\u6765\u8bd5\u200b\u7740\u200b\u8fde\u63a5\u200b\uff0c\u200b\u6216\u8005\u200b\u76f4\u63a5\u200b\u7528\u200b ssh \u200b\u8fde\u63a5\u200b Windows\uff0c\u200b\u4fdd\u8bc1\u200b\u5c40\u57df\u7f51\u200b\u5230\u200b Windows \u200b\u8fd9\u6761\u200b\u8def\u200b\u90fd\u200b\u662f\u200b\u901a\u200b\u7684\u200b.
Warning
\u200b\u4e00\u4e9b\u200b\u6807\u660e\u200b\u4e3a\u200b\u201cSecure\u201d\u200b\u7684\u200b\u5c40\u57df\u7f51\u200b\u53ef\u80fd\u200b\u4e0d\u200b\u5141\u8bb8\u200b\u5c40\u57df\u7f51\u200b\u5185\u200b\u8fde\u63a5\u200b\uff0c\u200b\u5728\u200b\u8fd9\u4e9b\u200b\u5c40\u57df\u7f51\u200b\u4e0b\u200b\u662f\u200b\u4e92\u76f8\u200b ping \u200b\u4e0d\u901a\u200b\u7684\u200b\uff0c\u200b\u5c1d\u8bd5\u200b\u6362\u4e2a\u200b\u5c40\u57df\u7f51\u200b\uff01\u200b\u8fd9\u70b9\u200b\u5751\u200b\u4e86\u200b\u6211\u200b\u5f88\u200b\u4e45\u200b.
\u200b\u6700\u540e\u200b\u6211\u4eec\u200b\u9700\u8981\u200b\u786e\u4fdd\u200b\u628a\u200b\u5c40\u57df\u7f51\u200b\uff0cWindows\uff0cwsl \u200b\u90fd\u200b\u8fde\u63a5\u8d77\u6765\u200b\uff0c\u200b\u9700\u8981\u200b Windows \u200b\u628a\u200b\u6211\u4eec\u200b\u4ece\u200b ssh \u200b\u53d1\u6765\u200b\u7684\u200b\u8fde\u63a5\u200b\u8bf7\u6c42\u200b\u8f6c\u200b\u5230\u200b\u5185\u90e8\u200b\u7684\u200b wsl \u200b\u7684\u200b\u7aef\u53e3\u200b\uff0c\u200b\u8fd9\u6837\u200b\u5c31\u901a\u200b\u4e86\u200b.\uff08\u200b\u5bf9\u5e94\u200b\u7684\u200b\u64cd\u4f5c\u200b\u5728\u4e0a\u6587\u200b\u7684\u200b\u535a\u5ba2\u200b\u4e2d\u200b\u5df2\u7ecf\u200b\u63d0\u53ca\u200b\uff0c\u200b\u5982\u679c\u200b\u8fd8\u6709\u200b\u95ee\u9898\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5c1d\u8bd5\u200b\u8fd9\u7bc7\u200b\u770b\u770b\u200b\u662f\u4e0d\u662f\u200b\u5c40\u57df\u7f51\u200b\u5230\u200b Windows \u200b\u7684\u200b\u95ee\u9898\u200b\uff09
"},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#_2","title":"\u8bbe\u7f6e\u200b\u514d\u5bc6\u200b\u767b\u9646","text":"\u200b\u514d\u5bc6\u200b\u767b\u9646\u200b\u4e5f\u200b\u53ef\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b
\u200b\u6765\u5230\u200b\u5ba2\u6237\u7aef\u200b\uff0c\u200b\u6267\u884c\u200b\u4e0b\u9762\u200b\u547d\u4ee4\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u8f93\u5165\u200b passephrase \u200b\u65f6\u200b\u76f4\u63a5\u200b\u56de\u8f66\u200b\uff08\u200b\u4e3a\u7a7a\u200b\uff09
ssh-keygen\n
\u200b\u5c31\u200b\u4f1a\u200b\u5728\u200b\u63d0\u793a\u200b\u7684\u200b\u76ee\u5f55\u200b\u4e0b\u200b\u751f\u6210\u200b\u5bc6\u94a5\u200b\uff0c\u200b\u9009\u62e9\u200b\u5176\u516c\u94a5\u200b\uff08.pub \u200b\u540e\u7f00\u200b\uff09\uff0c\u200b\u628a\u200b\u5b83\u200b\u5199\u5165\u200b\u670d\u52a1\u5668\u200b\u767b\u9646\u200b\u7528\u6237\u200b\u7684\u200b ssh \u200b\u914d\u7f6e\u200b\u6587\u4ef6\u5939\u200b\u4e0b\u200b\u7684\u200b\u201cauthorized_keys\"\u200b\u6587\u4ef6\u200b\uff08\u200b\u4e00\u822c\u200b\u4e3a\u200b~/.ssh/authorized_keys
\uff09\uff0c\u200b\u6ce8\u610f\u200b\u4fee\u6539\u200b\"authorized_keys\"\u200b\u7684\u200b\u6743\u9650\u200b\u6539\u4e3a\u200b 600\uff0c\u200b\u6240\u5728\u200b\u6587\u4ef6\u5939\u200b\u6743\u9650\u200b\u6539\u4e3a\u200b 700.
\u200b\u5982\u679c\u200b\u4e0a\u8ff0\u200b\u90fd\u200b\u505a\u200b\u4e86\u200b\u4e4b\u540e\u200b\u4ecd\u7136\u200b\u65e0\u6cd5\u200b\u514d\u5bc6\u200b\u767b\u9646\u200b\uff0c\u200b\u6bd4\u5982\u200bssh -v user@ip -p port
\u200b\u540e\u200b\u770b\u5230\u200b\u8fde\u63a5\u200b\u65f6\u200b\u8bd5\u56fe\u200b\u4f7f\u7528\u200b\u516c\u94a5\u200b\u9a8c\u8bc1\u200b\u4f46\u662f\u200b\u5931\u8d25\u200b\u4e86\u200b\uff0c\u200b\u90a3\u4e48\u200b\u9700\u8981\u200b\u518d\u200b\u5b9a\u4f4d\u95ee\u9898\u200b.\u200b\u5728\u200b\u670d\u52a1\u5668\u7aef\u200b\u4f7f\u7528\u200b\u4e0b\u5217\u200b\u8bed\u53e5\u200b\u542f\u7528\u200b sshd \u200b\u76d1\u542c\u200b\u8fde\u63a5\u200b\u67d0\u4e2a\u200b\u7aef\u53e3\u200b
sudo /usr/sbin/sshd -d -p 4444\n
\u200b\u6ce8\u610f\u200b\u4e0d\u80fd\u200b\u4f7f\u7528\u200b\u5df2\u7ecf\u200b\u88ab\u200b\u5360\u7528\u200b\u7684\u200b\u7aef\u53e3\u200b \u200b\u542f\u7528\u200b\u540e\u200b\u53bb\u200b powershell \u200b\u8fdb\u884c\u200b\u7aef\u53e3\u200b\u8f6c\u53d1\u200b\uff0c\u200b\u4fbf\u200b\u53ef\u4ee5\u200b\u5728\u200b\u7ec8\u7aef\u200b\u91cc\u200b\u770b\u5230\u200b\u670d\u52a1\u5668\u7aef\u200b\u8ba4\u8bc1\u200b\u7684\u200b\u5168\u8fc7\u7a0b\u200b\u4e86\u200b"},{"location":"blog/%E7%94%A8-ssh-%E8%BF%9E%E6%8E%A5%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E7%9A%84-wsl2/#wsl2-ip","title":"\u8bbe\u7f6e\u200b Wsl2 \u200b\u9759\u6001\u200b ip","text":"\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b
\u200b\u8fd8\u200b\u53ef\u4ee5\u200b\u987a\u5e26\u200b\u8bbe\u7f6e\u200b\u4e00\u4e0b\u200b Wsl2 \u200b\u5f00\u673a\u200b\u542f\u52a8\u200b\u548c\u200b\u81ea\u52a8\u200b\u5f00\u59cb\u200b ssh \u200b\u670d\u52a1\u200b
"},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/","title":"\u5728\u200b WSL2 \u200b\u4e0a\u200b\u542f\u7528\u200b CUDA","text":"Abstract
\u200b\u522b\u8bf4\u200b\u4e86\u200b\uff0c\u200b\u5f00\u70bc\u200b\uff01
\u200b\u4e3b\u8981\u200b\u662f\u200b\u53c2\u8003\u200b\u4e86\u200b\u8fd9\u200b\u7bc7\u6587\u7ae0\u200b
"},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/#1-windows","title":"1.\u200b\u5728\u200b Windows \u200b\u4e0a\u200b\u5b89\u88c5\u200b\u663e\u5361\u200b\u9a71\u52a8","text":"\u200b\u8fd9\u6b65\u200b\u5f88\u200b\u7b80\u5355\u200b\uff0c\u200b\u5728\u200b\u5b98\u200b\u7f51\u4e0a\u200b\u627e\u5230\u200b\u9002\u5408\u200b\u81ea\u5df1\u200b\u663e\u5361\u200b\u7684\u200b\u7248\u672c\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b. Download Type \u200b\u9009\u9879\u200b\u9009\u200b Game Ready Driver \u200b\u5c31\u200b\u597d\u200b. \u200b\u60f3\u8981\u200b\u67e5\u770b\u200b\u81ea\u5df1\u200b\u7535\u8111\u200b\u663e\u5361\u200b\u578b\u53f7\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u5148\u200b win+R\uff0c\u200b\u8f93\u5165\u200b dxdiag\uff0c\u200b\u9009\u62e9\u200b dispaly \u200b\u5c31\u200b\u53ef\u4ee5\u200b\u770b\u5230\u200b\u4e86\u200b.
"},{"location":"blog/%E5%9C%A8-wsl2-%E4%B8%8A%E5%90%AF%E7%94%A8-cuda/#2-wsl","title":"2.\u200b\u5728\u200b wsl \u200b\u4e0a\u200b\u5b89\u88c5\u200b\u9a71\u52a8","text":"\u200b\u4e0a\u200b\u4e00\u6b65\u200b\u7ed3\u675f\u200b\u4e4b\u540e\u200btorch.cuda.is_available()
\u200b\u5c31\u200b\u5df2\u7ecf\u200b True \u200b\u4e86\u200b\uff0c\u200b\u4f46\u200b\u76f4\u63a5\u200b\u6267\u884c\u200b\u8fd8\u662f\u200b\u4f1a\u200b\u62a5\u9519\u200b. \u200b\u542f\u52a8\u200b wsl\uff0c\u200b\u6267\u884c\u200b\u4ee5\u4e0b\u200b\u547d\u4ee4\u200b
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin\nsudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600\nwget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb\nsudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb\nsudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub\napt-get update\nsudo apt-get -y install cuda\n
\u200b\u6709\u4e9b\u200b\u5b89\u88c5\u200b\u6bd4\u8f83\u6162\u200b\uff0c\u200b\u6ca1\u6709\u200b\u6362\u200b\u8fc7\u6e90\u200b\u7684\u200b\u53ef\u4ee5\u200b\u6362\u4e0b\u200b\u56fd\u5185\u200b\u955c\u50cf\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200b\u6d59\u5927\u200b\u6e90\u200b \u200b\u7b14\u8005\u200b\u5728\u200b\u4e0a\u9762\u200b\u7684\u200b\u547d\u4ee4\u200b\u6267\u884c\u200b\u4e2d\u200b\u8fd8\u200b\u9047\u5230\u200b\u4e00\u4e2a\u200b\u95ee\u9898\u200b\uff0c\u200b\u6700\u540e\u200b\u4e00\u6b65\u200b\u62a5\u9519\u200b liburcu6 \u200b\u6ca1\u6709\u200b\u5b89\u88c5\u200b. \u200b\u53ef\u4ee5\u200b\u5728\u200b\u5b98\u65b9\u200b\u8f6f\u4ef6\u200b\u6e90\u4e0a\u200b\u53ef\u4ee5\u200b\u4e0b\u8f7d\u200b\uff0c\u200b\u6d4f\u89c8\u5668\u200b\u53ef\u80fd\u200b\u63d0\u793a\u200b\u4e0b\u8f7d\u200b\u4e0d\u200b\u5b89\u5168\u200b.\u200b\u5982\u679c\u200b\u53ef\u4ee5\u200b\u7684\u8bdd\u200b\uff0c\u200b\u9009\u62e9\u200b\u5408\u9002\u200b\u7684\u200b\u7248\u672c\u200b\u4e0b\u8f7d\u200b.\u200b\u7528\u200bcat /proc/version
\u200b\u67e5\u770b\u200b\u6211\u4eec\u200b\u7cfb\u7edf\u200b\u7684\u200b\u7248\u672c\u200b\uff0cx86_64 \u200b\u7528\u200b amd64 \u200b\u5373\u53ef\u200b. \u200b\u5982\u679c\u200b\u65e0\u6cd5\u200b\u89e3\u51b3\u200b\uff0c\u200b\u53ef\u4ee5\u200b\u7528\u200b\u8fd9\u91cc\u200b\u7684\u200b\u65b9\u6cd5\u200b\uff0c\u200b\u4f7f\u7528\u200b\u547d\u4ee4\u200b\uff1a
sudo add-apt-repository ppa:cloudhan/liburcu6\nsudo apt update\nsudo apt install liburcu6\n
\u200b\u7b2c\u4e00\u6761\u200b\u547d\u4ee4\u200b\u4f3c\u4e4e\u200b\u9700\u8981\u200b\u79d1\u5b66\u200b\u4e0a\u7f51\u200b\uff0c\u200b\u6211\u200b\u6ca1\u5f00\u200b\u7684\u200b\u65f6\u5019\u200b\u8fde\u63a5\u200b\u8d85\u65f6\u200b\u4e86\u200b. \u200b\u968f\u540e\u200b\u5c31\u200b\u53ef\u4ee5\u200b\u7ee7\u7eed\u200b\u4e0a\u200b\u4e00\u6b65\u200b\u7684\u200b\u5b89\u88c5\u200b cuda \u200b\u4e86\u200b.\u200b\u5b89\u88c5\u200b\u5b8c\u6bd5\u200b\u540e\u200b\u7528\u200b nvidia-smi \u200b\u547d\u4ee4\u200b\u67e5\u770b\u200b\u662f\u5426\u200b\u6210\u529f\u200b. \u200b\u6b64\u65f6\u200b\u4ecd\u7136\u200b\u4e0d\u80fd\u200b\u76f4\u63a5\u200b\u4f7f\u7528\u200b cuda\uff0c\u200b\u9700\u8981\u200b\u518d\u200b\u5b89\u88c5\u200b nvcc\uff0c\u200b\u76f4\u63a5\u200b\u4e0b\u8f7d\u200b\u5c31\u200b\u597d\u200b\u4e86\u200b.
\u200b\u81f3\u6b64\u200b\u5b89\u88c5\u200b\u7ed3\u675f\u200b.
"},{"location":"blog/zsh-%E7%9A%84%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92/","title":"ZSH \u200b\u7684\u200b\u53c2\u6570\u4f20\u9012","text":"Abstract
zsh \u200b\u4e2d\u200b\u4e00\u4e2a\u200b\u53c2\u6570\u4f20\u9012\u200b\u7684\u200b\u65f6\u5019\u200b\u9047\u5230\u200b\u7684\u200b\u795e\u79d8\u200b\u95ee\u9898\u200b\ud83e\udd14
\u200b\u4eca\u5929\u200b\u5728\u200b\u8c03\u7528\u200b DDPM \u200b\u6a21\u578b\u200b\u7684\u200b\u65f6\u5019\u200b\u4f7f\u7528\u200b\u5b98\u65b9\u200b\u4ee3\u7801\u200b\uff0c\u200b\u7adf\u7136\u200b\u62a5\u9519\u200b\u8bf4\u200b\u53c2\u6570\u200b\u4e0d\u200b\u5b58\u5728\u200b\uff1a \u200b\u547d\u4ee4\u200b\u662f\u200b
MODEL_FLAGS=\"--attention_resolutions 32\uff0c16\uff0c8 --class_cond True --diffusion_steps 1000 --dropout 0.1 --image_size 64 --learn_sigma True --noise_schedule cosine --num_channels 192 --num_head_channels 64 --num_res_blocks 3 --resblock_updown True --use_new_attention_order True --use_fp16 True --use_scale_shift_norm True\"\npython classifier_sample.py $MODEL_FLAGS --classifier_scale 1.0 --classifier_path models/64x64_classifier.pt --classifier_depth 4 --model_path models/64x64_diffusion.pt $SAMPLE_FLAGS\n
\u200b\u62a5\u9519\u200b\u4e3a\u200b\uff1a python classifier_sample.py $MODEL_FLAGS --classifier_scale 1.0 --classifier_path models/64x64_classifier.pt --classifier_depth 4 --model_path models/64x64_diffusion.pt $SAMPLE_FLAGS\nusage: classifier_sample.py [-h] [--clip_denoised CLIP_DENOISED] [--num_samples NUM_SAMPLES] [--batch_size BATCH_SIZE]\n [--use_ddim USE_DDIM] [--model_path MODEL_PATH] [--classifier_path CLASSIFIER_PATH]\n [--classifier_scale CLASSIFIER_SCALE] [--image_size IMAGE_SIZE]\n [--num_channels NUM_CHANNELS] [--num_res_blocks NUM_RES_BLOCKS] [--num_heads NUM_HEADS]\n [--num_heads_upsample NUM_HEADS_UPSAMPLE] [--num_head_channels NUM_HEAD_CHANNELS]\n [--attention_resolutions ATTENTION_RESOLUTIONS] [--channel_mult CHANNEL_MULT]\n [--dropout DROPOUT] [--class_cond CLASS_COND] [--use_checkpoint USE_CHECKPOINT]\n [--use_scale_shift_norm USE_SCALE_SHIFT_NORM] [--resblock_updown RESBLOCK_UPDOWN]\n [--use_fp16 USE_FP16] [--use_new_attention_order USE_NEW_ATTENTION_ORDER]\n [--learn_sigma LEARN_SIGMA] [--diffusion_steps DIFFUSION_STEPS]\n [--noise_schedule NOISE_SCHEDULE] [--timestep_respacing TIMESTEP_RESPACING]\n [--use_kl USE_KL] [--predict_xstart PREDICT_XSTART]\n [--rescale_timesteps RESCALE_TIMESTEPS] [--rescale_learned_sigmas RESCALE_LEARNED_SIGMAS]\n [--classifier_use_fp16 CLASSIFIER_USE_FP16] [--classifier_width CLASSIFIER_WIDTH]\n [--classifier_depth CLASSIFIER_DEPTH]\n [--classifier_attention_resolutions CLASSIFIER_ATTENTION_RESOLUTIONS]\n [--classifier_use_scale_shift_norm CLASSIFIER_USE_SCALE_SHIFT_NORM]\n [--classifier_resblock_updown CLASSIFIER_RESBLOCK_UPDOWN]\n [--classifier_pool CLASSIFIER_POOL]\nclassifier_sample.py: error: unrecognized arguments: --attention_resolutions 32\uff0c16\uff0c8 --class_cond True --diffusion_steps 1000 --dropout 0.1 --image_size 64 --learn_sigma True --noise_schedule cosine --num_channels 192 --num_head_channels 64 --num_res_blocks 3 --resblock_updown True --use_new_attention_order True --use_fp16 True --use_scale_shift_norm True\n
\u200b\u8c8c\u4f3c\u200b\u662f\u56e0\u4e3a\u200b\u7528\u200b\u8fd9\u79cd\u200b\u65b9\u5f0f\u200b\u4f20\u9012\u200b\u7684\u200b\u53c2\u6570\u200b\u4e0d\u4f1a\u200b\u88ab\u200b\u6309\u200b\u7a7a\u683c\u200b\u5206\u5f00\u200b\uff0c\u200b\u6240\u4ee5\u200b\u65e0\u6cd5\u200b\u8bc6\u522b\u200b \u200b\u6211\u200b\u8fd8\u200b\u8bd5\u8fc7\u200b\u6362\u7528\u200b bash\uff0c\u200b\u6216\u8005\u200b\u662f\u200b\u4f7f\u7528\u200b\"$FLAG\"
\uff0c\u200b\u90fd\u200b\u6ca1\u7528\u200b\ud83d\ude21 \u200b\u89e3\u51b3\u200b\u7684\u200b\u529e\u6cd5\u200b\u662f\u200b\u4f7f\u7528\u200b$=FLAG
\uff08\u200b\u53ef\u4ee5\u200b\u53c2\u8003\u200b\u8fd9\u7bc7\u200b\u89e3\u7b54\u200b\uff09
\u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/os/","title":"OS","text":"\u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/lab/","title":"Lab","text":"\u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/","title":"\u8ba1\u7b97\u673a\u200b\u4f53\u7cfb\u7ed3\u6784","text":"\u200b\u7ea6\u200b 7 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/pl/","title":"PL","text":"\u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/cool/","title":"Cool","text":"\u200b\u7ea6\u200b 1 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/%E9%85%8D%E7%8E%AF%E5%A2%83/","title":"\u914d\u200b\u73af\u5883","text":"\u200b\u7ea6\u200b 3 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/category/%E7%A5%9E%E7%A7%98-bug/","title":"\u795e\u79d8\u200b bug","text":"\u200b\u7ea6\u200b 3 \u200b\u4e2a\u200b\u5b57\u200b
"},{"location":"blog/page/2/","title":"Blog","text":""},{"location":"blog/page/3/","title":"Blog","text":""},{"location":"blog/archive/2023/page/2/","title":"2023","text":""},{"location":"blog/archive/2023/page/3/","title":"2023","text":""}]} \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 6f34efd14d6f197e02595cd17d00465a1836ada8..d1024f7761d6db49899ef809c8b1aa09b3997c62 100644 GIT binary patch delta 15 WcmZ3%xq_2TzMF%i@8m|dMJxa%iv-sI delta 15 WcmZ3%xq_2TzMF&N^RbO=i&y|B+66fP