<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>知识仓库</title><link>https://oballon.github.io/Knowledge-Shore/</link><description>Recent content on 知识仓库</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 28 Sep 2014 00:00:00 +0000</lastBuildDate><atom:link href="https://oballon.github.io/Knowledge-Shore/index.xml" rel="self" type="application/rss+xml"/><item><title>概述与安装</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/0-%E6%A6%82%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/0-%E6%A6%82%E8%BF%B0/</guid><description>&lt;h1 id="python-概述与安装"&gt;Python 概述与安装&lt;a class="anchor" href="#python-%e6%a6%82%e8%bf%b0%e4%b8%8e%e5%ae%89%e8%a3%85"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="什么是-python"&gt;什么是 Python？&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af-python"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Python 是一种高级、解释型的编程语言，由 Guido van Rossum 在 1991 年首次发布。Python 的设计哲学强调代码的可读性和简洁的语法，特别是使用空格缩进来表示代码块。&lt;/p&gt;
&lt;h3 id="核心特点"&gt;核心特点&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e7%89%b9%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;简洁易读&lt;/strong&gt;：Python 的语法清晰，代码可读性强，适合快速开发&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能强大&lt;/strong&gt;：拥有丰富的标准库和庞大的第三方库生态系统&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨平台&lt;/strong&gt;：可在 Windows、Linux、macOS 等多种操作系统上运行&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;面向对象&lt;/strong&gt;：完全支持面向对象编程，也支持函数式编程&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动态类型&lt;/strong&gt;：无需声明变量类型，解释器会自动推断&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解释型语言&lt;/strong&gt;：代码直接运行，无需编译步骤&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开源免费&lt;/strong&gt;：Python 是开源的，可以自由使用和分发&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="python-的应用领域"&gt;Python 的应用领域&lt;a class="anchor" href="#python-%e7%9a%84%e5%ba%94%e7%94%a8%e9%a2%86%e5%9f%9f"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Web 开发&lt;/strong&gt;：Django、Flask 等框架&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据科学&lt;/strong&gt;：NumPy、Pandas、Matplotlib 等库&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;机器学习&lt;/strong&gt;：TensorFlow、PyTorch、Scikit-learn 等&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动化脚本&lt;/strong&gt;：系统管理、文件处理等&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;游戏开发&lt;/strong&gt;：Pygame 等库&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络编程&lt;/strong&gt;：爬虫、API 开发等&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="python-版本"&gt;Python 版本&lt;a class="anchor" href="#python-%e7%89%88%e6%9c%ac"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="python-2-vs-python-3"&gt;Python 2 vs Python 3&lt;a class="anchor" href="#python-2-vs-python-3"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Python 2 已于 2020 年 1 月 1 日停止维护，现在应该使用 &lt;strong&gt;Python 3&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;主要区别&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python 3 的 &lt;code&gt;print&lt;/code&gt; 是函数，需要括号：&lt;code&gt;print(&amp;quot;Hello&amp;quot;)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Python 3 的字符串默认是 Unicode&lt;/li&gt;
&lt;li&gt;Python 3 的整数除法返回浮点数（使用 &lt;code&gt;//&lt;/code&gt; 进行整数除法）&lt;/li&gt;
&lt;li&gt;Python 3 改进了异常处理语法&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;本指南基于 Python 3.x 版本&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>0-综述</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/c-notes/0-%E7%BB%BC%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/c-notes/0-%E7%BB%BC%E8%BF%B0/</guid><description>&lt;h2 id="vs-code-项目编译"&gt;VS Code 项目编译&lt;a class="anchor" href="#vs-code-%e9%a1%b9%e7%9b%ae%e7%bc%96%e8%af%91"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="tasksjson编译配置文件"&gt;tasks.json编译配置文件&lt;a class="anchor" href="#tasksjson%e7%bc%96%e8%af%91%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-JSON" data-lang="JSON"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2.0.0&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;tasks&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;label&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;build&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;shell&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;clang&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;${workspaceFolder}/src/*.c&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 编译src目录下所有.c文件
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;-o&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 输出选项
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;${workspaceFolder}/build/main&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 输出可执行文件到build目录
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;-I${workspaceFolder}/include&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 包含头文件目录
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;-Wall&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 开启所有警告
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;-Wextra&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 开启所有警告
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;-std=c11&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 使用c11标准
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;-g&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;// 调试信息
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;group&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;kind&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;build&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 定义为构建任务
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;isDefault&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="c1"&gt;// 设置为build默认任务
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;problemMatcher&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;$gcc&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="c1"&gt;// 编译错误匹配器
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;detail&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;compil all .c files in src&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;编译器自动识别main()函数并视为主文件，自动编译为一个可执行文件&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;每次编译仅能有一个main()函数，多个子任务可分别生成对应可执行文件&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;gcc与clang编译命令几乎可以互换，clang的problemMatcher刻意兼容gcc的&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="launchjson调试配置文件"&gt;launch.json调试配置文件&lt;a class="anchor" href="#launchjson%e8%b0%83%e8%af%95%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-JSON" data-lang="JSON"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;configurations&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;(Windows) Launch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 调试器名称
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;cppvsdbg&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 调试器类型
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;request&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;launch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 启动类型
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;program&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;${workspaceFolder}/build/main&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 可执行文件
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;stopAtEntry&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 是否在程序入口处暂停
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;cwd&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;${fileDirname}&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 设置工作目录为当前文件所在目录
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;environment&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;console&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;externalTerminal&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 控制台输出方式
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;preLaunchTask&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;build&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;// 预启动编译任务
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="规范项目目录"&gt;规范项目目录&lt;a class="anchor" href="#%e8%a7%84%e8%8c%83%e9%a1%b9%e7%9b%ae%e7%9b%ae%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;├── build // 编译输出目录
├── include // .h目录
├── src // .c目录
├── tasks.json // 编译配置文件
├── launch.json // 调试配置文件
├── README.md
└── .gitignore&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="头文件规范"&gt;头文件规范&lt;a class="anchor" href="#%e5%a4%b4%e6%96%87%e4%bb%b6%e8%a7%84%e8%8c%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;应该包含的内容：头文件保护、函数声明、变量声明（extern）、类型定义（typedef）、常量定义&lt;/p&gt;</description></item><item><title>0-综述</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/html5-+-css/0-%E7%BB%BC%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/html5-+-css/0-%E7%BB%BC%E8%BF%B0/</guid><description>&lt;h2 id="简介"&gt;简介&lt;a class="anchor" href="#%e7%ae%80%e4%bb%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;超文本标记语言（HyperText Markup Language，简称：HTML）是一种用于创建网页的标准标记语言，文件后缀名&lt;code&gt;.html&lt;/code&gt; &lt;code&gt;.htm&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="文件结构"&gt;文件结构&lt;a class="anchor" href="#%e6%96%87%e4%bb%b6%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;html&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;head&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;meta&lt;/span&gt; &lt;span class="na"&gt;charset&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;菜鸟教程(runoob.com)&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;head&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;我的第一个标题&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;我的第一个段落。&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;html&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;doctype 不区分大小写
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;head&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; 元素包含了文档的元（meta）数据
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; 元素包含了可见的页面内容&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>0-综述</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/data-structure/0-%E7%BB%BC%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/data-structure/0-%E7%BB%BC%E8%BF%B0/</guid><description>&lt;h1 id="综述"&gt;综述&lt;a class="anchor" href="#%e7%bb%bc%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="数据结构三要素"&gt;数据结构三要素&lt;a class="anchor" href="#%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84%e4%b8%89%e8%a6%81%e7%b4%a0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;逻辑结构（线性、非线性）&lt;/p&gt;
&lt;p&gt;存储结构（顺序、链式、散列等）&lt;/p&gt;
&lt;p&gt;数据的运算（基本操作集等）：数据结构的基本操作是最核心、最基本的操作&lt;/p&gt;
&lt;h2 id="时间复杂度"&gt;时间复杂度&lt;a class="anchor" href="#%e6%97%b6%e9%97%b4%e5%a4%8d%e6%9d%82%e5%ba%a6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;时间复杂度定义：算法的运行时间与输入规模（问题规模）的增长呈正比，用O符号表示，O(n)称为时间复杂度&lt;/p&gt;
&lt;p&gt;核心思想：忽略低次项、常数、系数，只考虑最高次项、对数底数可忽略&lt;/p&gt;
&lt;h2 id="空间复杂度"&gt;空间复杂度&lt;a class="anchor" href="#%e7%a9%ba%e9%97%b4%e5%a4%8d%e6%9d%82%e5%ba%a6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;空间复杂度定义：衡量算法在运行过程中临时占用存储空间大小的度量，用符号O表示，O(n)称为空间复杂度&lt;/p&gt;
&lt;p&gt;核心要点：只计算额外空间、忽略常数因子、只保留最高项&lt;/p&gt;</description></item><item><title>0-综述</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/0-%E7%BB%BC%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/0-%E7%BB%BC%E8%BF%B0/</guid><description>&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;详细梳理教材中的讲解与例题，梳理计算细节与技巧&lt;/p&gt;</description></item><item><title>0-综述</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/0-%E7%BB%BC%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/0-%E7%BB%BC%E8%BF%B0/</guid><description>&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;哈工大复试笔试主要考察电机（直流，异步等）&lt;/p&gt;
&lt;h2 id="典型控制系统的功能框图"&gt;典型控制系统的功能框图&lt;a class="anchor" href="#%e5%85%b8%e5%9e%8b%e6%8e%a7%e5%88%b6%e7%b3%bb%e7%bb%9f%e7%9a%84%e5%8a%9f%e8%83%bd%e6%a1%86%e5%9b%be"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260404104137_212_5.jpg"&gt;
&lt;/div&gt;</description></item><item><title>0-综述</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/0-%E7%BB%BC%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/0-%E7%BB%BC%E8%BF%B0/</guid><description>&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;哈工大在控制系统设计部分几乎全是原题，真题与课后题必须详细梳理复习（待办）&lt;/p&gt;</description></item><item><title>0-综述</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/0-%E7%BB%BC%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/0-%E7%BB%BC%E8%BF%B0/</guid><description>&lt;p&gt;自动控制原理知识点很多，但出题相对固定；控制理论的诸多不完整、不严谨的使用与方法姑且用着，以后有需要再作考量；801控制原理的考察范围不完全明晰，视为风险的一部分； 总结必要的概念、结论、方法、经验、典例等，仅为知识体系，不覆盖做题分析能力（灵活使用，掌握足够的技巧方法，面对题目&amp;quot;非无之无&amp;quot;）考试面前，适当理解以对抗风险，但应用为先！&lt;/p&gt;
&lt;h1 id="默认章节"&gt;默认章节&lt;a class="anchor" href="#%e9%bb%98%e8%ae%a4%e7%ab%a0%e8%8a%82"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;考察点主要在控制理论，电路，电机，模电等知识点涉及不深&lt;/p&gt;
&lt;h2 id="欧拉公式"&gt;欧拉公式&lt;a class="anchor" href="#%e6%ac%a7%e6%8b%89%e5%85%ac%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

e^{i\theta}=\cos\theta&amp;#43;i\sin\theta\\
\sin\theta=\frac{e^{i\theta}-e^{-i\theta}}{2i}\\
\cos\theta=\frac{e^{i\theta}&amp;#43;e^{-i\theta}}{2}
$$
&lt;h2 id="常见函数拉氏变换"&gt;常见函数拉氏变换&lt;a class="anchor" href="#%e5%b8%b8%e8%a7%81%e5%87%bd%e6%95%b0%e6%8b%89%e6%b0%8f%e5%8f%98%e6%8d%a2"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\delta(t),\delta(t-\tau_0), 1(t), t, \frac{t^n}{n!}, e^{\pm at}, \sin\omega t, \cos\omega t
$$
$$
\begin{array}{}
f(t)&amp;amp; F(s)\\
\delta(t) &amp;amp; 1 \\
\delta(t-\tau_0) &amp;amp; e^{-\tau_0s} \\
\ \\
1(t) &amp;amp; \frac{1}{s} \\
\ \\
t &amp;amp; \frac{1}{s^2} \\
\ \\
\frac{t^n}{n!} &amp;amp;\frac{1}{s^{n&amp;#43;1}}\\
\ \\
e^{\pm at} &amp;amp; \frac{1}{s\mp a}\\
\ \\
\sin{\omega t} &amp;amp; \frac{\omega}{s^2&amp;#43;\omega^2}\\
\ \\
\cos{\omega t} &amp;amp; \frac{s}{s^2&amp;#43;\omega^2}
\end{array}
$$
&lt;h2 id="留数法单根重根"&gt;留数法(单根，重根)&lt;a class="anchor" href="#%e7%95%99%e6%95%b0%e6%b3%95%e5%8d%95%e6%a0%b9%e9%87%8d%e6%a0%b9"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
单根：\frac{c_i}{s-p_i}\\
c_i=\lim\limits_{s\to p_i}[(s-p_i)F(s)]
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>0-综述</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/0-%E7%BB%BC%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/0-%E7%BB%BC%E8%BF%B0/</guid><description>&lt;p&gt;现代控制理论中诸多方法难以查得证明，且用即可；801控制原理的考察范围不完全明晰，视为风险的一部分&lt;/p&gt;
&lt;h1 id="默认章节"&gt;默认章节&lt;a class="anchor" href="#%e9%bb%98%e8%ae%a4%e7%ab%a0%e8%8a%82"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;两大难点：能控能观结构分解，观测器状态反馈&lt;/p&gt;</description></item><item><title>0-综述</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/0-%E7%BB%BC%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/0-%E7%BB%BC%E8%BF%B0/</guid><description>&lt;p&gt;高数知识量很大，理解相较容易，但灵活性较高 总结必要的概念、结论、方法、经验、典例等，仅为知识体系，不覆盖做题分析能力（灵活使用，掌握足够的技巧方法，面对题目&amp;quot;非无之无&amp;quot;）考试面前，适当理解以对抗风险，但应用为先！&lt;/p&gt;
&lt;h1 id="默认章节"&gt;默认章节&lt;a class="anchor" href="#%e9%bb%98%e8%ae%a4%e7%ab%a0%e8%8a%82"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;选择题：4道
填空题：4道
大题：4道&lt;/p&gt;
&lt;h2 id="考查轻重点讨论"&gt;考查轻重点讨论&lt;a class="anchor" href="#%e8%80%83%e6%9f%a5%e8%bd%bb%e9%87%8d%e7%82%b9%e8%ae%a8%e8%ae%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;数列极限证明题：中上上难度&lt;/li&gt;
&lt;li&gt;中值定理证明题：中上上难度&lt;/li&gt;
&lt;li&gt;微分方程：中等难度&lt;/li&gt;
&lt;li&gt;不定积分：中上难度&lt;/li&gt;
&lt;li&gt;数项级数：中上难度&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="重要技巧解题技巧--计算方法"&gt;重要技巧（解题技巧 &amp;gt; 计算方法）&lt;a class="anchor" href="#%e9%87%8d%e8%a6%81%e6%8a%80%e5%b7%a7%e8%a7%a3%e9%a2%98%e6%8a%80%e5%b7%a7--%e8%ae%a1%e7%ae%97%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;指数化与对数化（解函数，极限，求导）（应用空间不尽相同）&lt;/li&gt;
&lt;/ol&gt;
$$
\Delta=e^{\ln\Delta}\quad （可能影响定义域）\\
\Delta=\ln e^\Delta
$$
&lt;ol start="2"&gt;
&lt;li&gt;特值法
选择题善用&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="重要概念补充"&gt;重要概念补充&lt;a class="anchor" href="#%e9%87%8d%e8%a6%81%e6%a6%82%e5%bf%b5%e8%a1%a5%e5%85%85"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="系数对应问题注意"&gt;系数对应问题注意&lt;a class="anchor" href="#%e7%b3%bb%e6%95%b0%e5%af%b9%e5%ba%94%e9%97%ae%e9%a2%98%e6%b3%a8%e6%84%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\quad \ ax&amp;#43;by=x&amp;#43;y（即\forall x,y）\\
\Leftrightarrow a,b=1
$$
&lt;p&gt;
&lt;/p&gt;
$$
\quad \ \xi a&amp;#43;\mu b=a&amp;#43;b（对特定的a,b,有特定的\xi,\mu）\\
\not\Leftrightarrow \xi,\mu=1
$$
&lt;h2 id="去绝对值问题"&gt;去绝对值问题&lt;a class="anchor" href="#%e5%8e%bb%e7%bb%9d%e5%af%b9%e5%80%bc%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
因变量去绝对值，要加&amp;#34;\pm&amp;#34;
$$
&lt;p&gt;
&lt;/p&gt;
$$
自变量去绝对值，
应分类讨论
$$
&lt;h2 id="易失误问题"&gt;易失误问题&lt;a class="anchor" href="#%e6%98%93%e5%a4%b1%e8%af%af%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;约分问题：&lt;/strong&gt;
&lt;/p&gt;
$$
\Delta=\alpha\Delta（须分类讨论\Delta=0）\\
\Delta\neq0,则\alpha=1\\
\Delta=0,则\alpha未知
$$
&lt;h2 id="变量代换求函数问题"&gt;变量代换求函数问题&lt;a class="anchor" href="#%e5%8f%98%e9%87%8f%e4%bb%a3%e6%8d%a2%e6%b1%82%e5%87%bd%e6%95%b0%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;注意代换回原变量&lt;/strong&gt;
&lt;/p&gt;
$$
f[\varphi(t)]\neq f(t)\\
f[\varphi(t)]\xlongequal{t=\varphi^{-1}(x)}f[\varphi(\varphi^{-1}(x))]=f(x)
$$</description></item><item><title>0-综述</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/0-%E7%BB%BC%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/0-%E7%BB%BC%E8%BF%B0/</guid><description>&lt;p&gt;线性代数概念性极强，知识的融会贯通是备考关键&lt;/p&gt;
&lt;h1 id="默认章节"&gt;默认章节&lt;a class="anchor" href="#%e9%bb%98%e8%ae%a4%e7%ab%a0%e8%8a%82"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;选择题：3道&lt;/p&gt;
&lt;p&gt;填空题：1道&lt;/p&gt;
&lt;p&gt;大题：1道&lt;/p&gt;
&lt;p&gt;难度近几年呈上升趋势&lt;/p&gt;
&lt;h2 id="考查轻重点分析"&gt;考查轻重点分析&lt;a class="anchor" href="#%e8%80%83%e6%9f%a5%e8%bd%bb%e9%87%8d%e7%82%b9%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;行列式：考查偏易&lt;/p&gt;
&lt;p&gt;矩阵：考查难点&lt;/p&gt;
&lt;p&gt;特征值、特征向量：难点&lt;/p&gt;
&lt;h2 id="重要经验"&gt;重要经验&lt;a class="anchor" href="#%e9%87%8d%e8%a6%81%e7%bb%8f%e9%aa%8c"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;线性代数知识体系关联性极强&lt;/strong&gt;
若所给题设条件奇怪，考虑是在间接给性质
&lt;strong&gt;各知识串用性很高，故熟悉重要结论很重要&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;具体型相关问题善用观察法&lt;/strong&gt;
&lt;strong&gt;抽象型相关问题灵活寻找关系&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;勿拘泥于矩阵变换中，考虑从实际意义把握（向量组、方程组、二次型等）&lt;/p&gt;
&lt;h2 id="知识体系讨论"&gt;知识体系讨论&lt;a class="anchor" href="#%e7%9f%a5%e8%af%86%e4%bd%93%e7%b3%bb%e8%ae%a8%e8%ae%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;工具：行列式、&lt;strong&gt;矩阵&lt;/strong&gt;
主题：向量组==方程组
应用：&lt;strong&gt;特征值、特征向量&lt;/strong&gt;、相似，二次型&lt;/p&gt;
&lt;h2 id="基础解系通解特征向量的书写规范"&gt;基础解系、通解、特征向量的书写规范&lt;a class="anchor" href="#%e5%9f%ba%e7%a1%80%e8%a7%a3%e7%b3%bb%e9%80%9a%e8%a7%a3%e7%89%b9%e5%be%81%e5%90%91%e9%87%8f%e7%9a%84%e4%b9%a6%e5%86%99%e8%a7%84%e8%8c%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

\begin{array}{rl}
基础解系：&amp;amp;\xi_1=(\quad,\quad,\cdots,\quad)^T,\xi_2=(\quad,\quad,\cdots,\quad)^T,\cdots,\xi_n=(\quad,\quad,\cdots,\quad)^T\\
\ \\
通解：&amp;amp;k_1\xi_1&amp;#43;k_2\xi_2&amp;#43;\cdots&amp;#43;k_n\xi_n\quad (k_1,k_2,\cdots,k_n为任意常数)\\
\ \\
单特征向量：&amp;amp;k\xi\quad (k\neq0)\\
\ \\
重特征向量：&amp;amp;k_1\xi_1&amp;#43;k_2\xi_2&amp;#43;\cdots&amp;#43;k_n\xi_n\quad (k_1,k_2,\cdots,k_n不同时为零)
\end{array}

$$</description></item><item><title>0-综述</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/0-%E7%BB%BC%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/0-%E7%BB%BC%E8%BF%B0/</guid><description>&lt;p&gt;概率论与数理统计内容不多，概念性较弱，主要考察点在计算量&lt;/p&gt;
&lt;h1 id="默认章节"&gt;默认章节&lt;a class="anchor" href="#%e9%bb%98%e8%ae%a4%e7%ab%a0%e8%8a%82"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;选择题：3道
填空题：1道
大题：1道（多元随机变量+点估计）&lt;/p&gt;
&lt;p&gt;难度近几年持平&lt;/p&gt;
&lt;h2 id="考查轻重点讨论"&gt;考查轻重点讨论&lt;a class="anchor" href="#%e8%80%83%e6%9f%a5%e8%bd%bb%e9%87%8d%e7%82%b9%e8%ae%a8%e8%ae%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;重点：一维、二维随机变量及其分布，数字特征，参数估计&lt;/p&gt;
&lt;p&gt;偏冷、较繁：假设检验&lt;/p&gt;
&lt;p&gt;难点：古典概型&lt;/p&gt;
&lt;p&gt;计算不复杂，但计算量很大，易算错，一步错步步错&lt;/p&gt;</description></item><item><title>PyTorch 概述与安装</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/0-%E6%A6%82%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/0-%E6%A6%82%E8%BF%B0/</guid><description>&lt;h1 id="pytorch-概述与安装"&gt;PyTorch 概述与安装&lt;a class="anchor" href="#pytorch-%e6%a6%82%e8%bf%b0%e4%b8%8e%e5%ae%89%e8%a3%85"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="什么是-pytorch"&gt;什么是 PyTorch？&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af-pytorch"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;PyTorch 是一个基于 Python 的开源深度学习框架，由 Facebook 的 AI 研究团队开发。它提供了灵活、动态的计算图，使得研究和实验变得更加容易。&lt;/p&gt;
&lt;h3 id="核心特点"&gt;核心特点&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e7%89%b9%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;动态计算图&lt;/strong&gt;：与 TensorFlow 的静态图不同，PyTorch 使用动态计算图，可以在运行时修改网络结构&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pythonic&lt;/strong&gt;：完全基于 Python，与 Python 生态系统无缝集成&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;易于调试&lt;/strong&gt;：使用标准的 Python 调试工具即可调试&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPU 加速&lt;/strong&gt;：原生支持 CUDA，可以轻松利用 GPU 加速计算&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;活跃的社区&lt;/strong&gt;：拥有庞大的用户社区和丰富的资源&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="pytorch-vs-tensorflow"&gt;PyTorch vs TensorFlow&lt;a class="anchor" href="#pytorch-vs-tensorflow"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;特性&lt;/th&gt;
 &lt;th&gt;PyTorch&lt;/th&gt;
 &lt;th&gt;TensorFlow&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;计算图&lt;/td&gt;
 &lt;td&gt;动态&lt;/td&gt;
 &lt;td&gt;静态（2.x 也支持动态）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;学习曲线&lt;/td&gt;
 &lt;td&gt;较平缓&lt;/td&gt;
 &lt;td&gt;较陡峭&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;研究友好度&lt;/td&gt;
 &lt;td&gt;高&lt;/td&gt;
 &lt;td&gt;中&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;生产部署&lt;/td&gt;
 &lt;td&gt;良好&lt;/td&gt;
 &lt;td&gt;优秀&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;社区规模&lt;/td&gt;
 &lt;td&gt;大&lt;/td&gt;
 &lt;td&gt;非常大&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="动态图-vs-静态图"&gt;动态图 vs 静态图&lt;a class="anchor" href="#%e5%8a%a8%e6%80%81%e5%9b%be-vs-%e9%9d%99%e6%80%81%e5%9b%be"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;动态图（Dynamic Graph）&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在运行时动态构建计算图&lt;/li&gt;
&lt;li&gt;每次执行操作时，计算图都会更新&lt;/li&gt;
&lt;li&gt;调试和修改模型更加容易&lt;/li&gt;
&lt;li&gt;PyTorch 使用动态图&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;静态图（Static Graph）&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在开始执行之前构建完成，不会改变&lt;/li&gt;
&lt;li&gt;可以进行更多优化，执行效率可能更高&lt;/li&gt;
&lt;li&gt;TensorFlow 最初使用静态图，但后来也支持动态图&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="安装-pytorch"&gt;安装 PyTorch&lt;a class="anchor" href="#%e5%ae%89%e8%a3%85-pytorch"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="使用-pip-安装"&gt;使用 pip 安装&lt;a class="anchor" href="#%e4%bd%bf%e7%94%a8-pip-%e5%ae%89%e8%a3%85"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="cpu-版本"&gt;CPU 版本&lt;a class="anchor" href="#cpu-%e7%89%88%e6%9c%ac"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install torch torchvision torchaudio&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id="gpu-版本cuda-118"&gt;GPU 版本（CUDA 11.8）&lt;a class="anchor" href="#gpu-%e7%89%88%e6%9c%accuda-118"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id="gpu-版本cuda-121"&gt;GPU 版本（CUDA 12.1）&lt;a class="anchor" href="#gpu-%e7%89%88%e6%9c%accuda-121"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="使用-conda-安装"&gt;使用 conda 安装&lt;a class="anchor" href="#%e4%bd%bf%e7%94%a8-conda-%e5%ae%89%e8%a3%85"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# CPU 版本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;conda install pytorch torchvision torchaudio cpuonly -c pytorch
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# GPU 版本（CUDA 11.8）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;conda install pytorch torchvision torchaudio pytorch-cuda&lt;span class="o"&gt;=&lt;/span&gt;11.8 -c pytorch -c nvidia
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# GPU 版本（CUDA 12.1）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;conda install pytorch torchvision torchaudio pytorch-cuda&lt;span class="o"&gt;=&lt;/span&gt;12.1 -c pytorch -c nvidia&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="验证安装"&gt;验证安装&lt;a class="anchor" href="#%e9%aa%8c%e8%af%81%e5%ae%89%e8%a3%85"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查 PyTorch 版本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;PyTorch 版本: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;__version__&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查 CUDA 是否可用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;CUDA 可用: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cuda&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_available&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 如果 CUDA 可用，显示 GPU 信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cuda&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_available&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;CUDA 版本: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;version&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cuda&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;GPU 数量: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cuda&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device_count&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;GPU 名称: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cuda&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_device_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="pytorch-架构总览"&gt;PyTorch 架构总览&lt;a class="anchor" href="#pytorch-%e6%9e%b6%e6%9e%84%e6%80%bb%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;PyTorch 采用模块化设计，由多个相互协作的核心组件构成。理解这些组件的作用和相互关系，是掌握 PyTorch 的关键。&lt;/p&gt;</description></item><item><title>概述</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/0-%E6%A6%82%E8%BF%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/0-%E6%A6%82%E8%BF%B0/</guid><description>&lt;h1 id="深度学习基础学习文档"&gt;深度学习基础学习文档&lt;a class="anchor" href="#%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0%e5%9f%ba%e7%a1%80%e5%ad%a6%e4%b9%a0%e6%96%87%e6%a1%a3"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="目录"&gt;目录&lt;a class="anchor" href="#%e7%9b%ae%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0%e6%a6%82%e8%bf%b0"&gt;深度学习概述&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e8%a1%a8%e5%be%81%e5%ad%a6%e4%b9%a0"&gt;表征学习&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%ad%a6%e4%b9%a0%e6%96%b9%e6%b3%95"&gt;学习方法&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e7%a5%9e%e7%bb%8f%e7%bd%91%e7%bb%9c%e5%9f%ba%e7%a1%80"&gt;神经网络基础&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e4%b8%89%e5%a4%a7%e6%94%af%e6%9f%b1%e6%9e%b6%e6%9e%84"&gt;三大支柱架构&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0%e5%ba%94%e7%94%a8%e9%a2%86%e5%9f%9f"&gt;深度学习应用领域&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%85%b6%e4%bb%96%e9%a2%86%e5%9f%9f%e9%87%8d%e8%a6%81%e5%b8%b8%e8%af%86"&gt;其他领域重要常识&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e7%ba%bf%e6%80%a7%e5%9b%9e%e5%bd%92"&gt;线性回归&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0"&gt;损失函数&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e6%a2%af%e5%ba%a6%e4%b8%8b%e9%99%8d"&gt;梯度下降&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e4%bb%a3%e7%a0%81%e5%ae%9e%e7%8e%b0%e7%a4%ba%e4%be%8b"&gt;代码实现示例&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%88%86%e7%b1%bb%e9%97%ae%e9%a2%98"&gt;分类问题&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#one-hot%e7%bc%96%e7%a0%81"&gt;One-Hot编码&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#softmax%e5%87%bd%e6%95%b0"&gt;Softmax函数&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e4%ba%a4%e5%8f%89%e7%86%b5%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0"&gt;交叉熵损失函数&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%ad%a6%e4%b9%a0%e5%bb%ba%e8%ae%ae%e4%b8%8e%e8%b5%84%e6%ba%90"&gt;学习建议与资源&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="深度学习概述"&gt;深度学习概述&lt;a class="anchor" href="#%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0%e6%a6%82%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="什么是深度学习"&gt;什么是深度学习？&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;深度学习（Deep Learning）是机器学习的一个子领域，它使用多层神经网络来模拟人脑的学习过程。深度学习通过构建具有多个隐藏层的神经网络，能够自动从数据中学习复杂的特征表示。&lt;/p&gt;
&lt;h3 id="核心特点"&gt;核心特点&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e7%89%b9%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;自动特征提取&lt;/strong&gt;：无需人工设计特征，模型自动学习&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;端到端学习&lt;/strong&gt;：从原始输入直接到最终输出&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;强大的表达能力&lt;/strong&gt;：能够学习高度复杂的非线性关系&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="表征学习"&gt;表征学习&lt;a class="anchor" href="#%e8%a1%a8%e5%be%81%e5%ad%a6%e4%b9%a0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="概念解释"&gt;概念解释&lt;a class="anchor" href="#%e6%a6%82%e5%bf%b5%e8%a7%a3%e9%87%8a"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;表征学习（Representation Learning）&lt;/strong&gt; 是深度学习的核心思想。它指的是让算法自动从数据中学习有用的特征表示，而不是依赖人工设计的特征。&lt;/p&gt;
&lt;h3 id="传统方法-vs-表征学习"&gt;传统方法 vs 表征学习&lt;a class="anchor" href="#%e4%bc%a0%e7%bb%9f%e6%96%b9%e6%b3%95-vs-%e8%a1%a8%e5%be%81%e5%ad%a6%e4%b9%a0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="传统方法非表征学习"&gt;传统方法（非表征学习）&lt;a class="anchor" href="#%e4%bc%a0%e7%bb%9f%e6%96%b9%e6%b3%95%e9%9d%9e%e8%a1%a8%e5%be%81%e5%ad%a6%e4%b9%a0"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;以猫的图片分类为例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;人工特征设计&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;边缘检测：识别猫的轮廓&lt;/li&gt;
&lt;li&gt;焦点检测：识别猫的眼睛、鼻子等关键部位&lt;/li&gt;
&lt;li&gt;颜色特征：提取猫的颜色信息&lt;/li&gt;
&lt;li&gt;形状特征：分析猫的整体形状&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;局限性&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;上限低：人工设计的特征难以捕捉所有重要信息&lt;/li&gt;
&lt;li&gt;易误判：特征设计不当会导致分类错误&lt;/li&gt;
&lt;li&gt;需要专业知识：需要领域专家设计特征&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="表征学习方法"&gt;表征学习方法&lt;a class="anchor" href="#%e8%a1%a8%e5%be%81%e5%ad%a6%e4%b9%a0%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;自动特征学习&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将原始数据（如图片像素）直接输入神经网络&lt;/li&gt;
&lt;li&gt;网络自动学习从低级特征（边缘、纹理）到高级特征（形状、语义）的层次化表示&lt;/li&gt;
&lt;li&gt;整个过程是&amp;quot;黑箱&amp;quot;，但效果通常更好&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;优势&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自动发现数据中的模式&lt;/li&gt;
&lt;li&gt;能够学习复杂的非线性关系&lt;/li&gt;
&lt;li&gt;减少人工干预，提高泛化能力&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="示例对比"&gt;示例对比&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b%e5%af%b9%e6%af%94"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;传统方法流程：
原始图片 → [人工特征提取] → 特征向量 → 分类器 → 结果

表征学习方法流程：
原始图片 → [神经网络自动学习特征] → 特征表示 → 分类器 → 结果&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="学习方法"&gt;学习方法&lt;a class="anchor" href="#%e5%ad%a6%e4%b9%a0%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="监督学习supervised-learning"&gt;监督学习（Supervised Learning）&lt;a class="anchor" href="#%e7%9b%91%e7%9d%a3%e5%ad%a6%e4%b9%a0supervised-learning"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;定义&lt;/strong&gt;：通过训练集中图片对应的标签（label）来训练网络，使网络能够预测标签。&lt;/p&gt;</description></item><item><title>语法 Token</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/0-%E8%AF%AD%E6%B3%95token/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/0-%E8%AF%AD%E6%B3%95token/</guid><description>&lt;h2 id="关键字"&gt;关键字&lt;a class="anchor" href="#%e5%85%b3%e9%94%ae%e5%ad%97"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Python 3 共有 35 个关键字：&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;逻辑值：True False None
逻辑运算：and or not
条件控制：if elif else
循环控制：for while break continue
异常处理：try except（捕获异常） finally（总是执行） raise（抛出异常）
函数定义：def lambda（匿名函数） return yield（生成器）
异步编程：async（异步函数） await（等待异步操作）
类与对象：class del（删除对象）
模块导入：import from as
作用域：global nonlocal（非局部变量，用于嵌套函
数）
上下文管理：with（上下文管理器）
成员检查：in is（身份检查）
其他：assert（断言） pass（空语句，占位符）&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="不常见关键字示例"&gt;不常见关键字示例&lt;a class="anchor" href="#%e4%b8%8d%e5%b8%b8%e8%a7%81%e5%85%b3%e9%94%ae%e5%ad%97%e7%a4%ba%e4%be%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 异常处理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;ZeroDivisionError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;除零错误&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;finally&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;# finally 必须放在 try-except语句的最后&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;总是执行&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# raise - 抛出异常&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="ne"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;x不能为负数&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# lambda - 匿名函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 输出: 5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# yield - 生成器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;gen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;gen&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 输出: 0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# async/await - 异步编程&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;asyncio&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;fetch_data&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;data&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# del - 删除对象&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;del&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# 删除索引0的元素，python有完善的垃圾回收机制&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# python变量定义与赋值捆绑，需特别声明作用域才可对应修改外部变量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# global - 全局变量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;func&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# nonlocal - 非局部变量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;outer&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;inner&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;nonlocal&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# with - 上下文管理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 是用于上下文管理的语句，确保资源被正确获取和释放，无论是否发生异常&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;file.txt&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;r&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# is - 身份检查&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 是对象标识比较运算符，用于判断两个变量是否引用同一个对象&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# False (不同对象)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# True (值相同)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# assert - 断言&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 是用于断言的关键字，用于在代码中插入调试断言&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 如果断言条件为假，程序会抛出 AssertionError异常&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;x必须大于0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# pass - 空语句&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;empty_func&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>1-半导体基础</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/1-%E5%8D%8A%E5%AF%BC%E4%BD%93%E5%9F%BA%E7%A1%80/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/1-%E5%8D%8A%E5%AF%BC%E4%BD%93%E5%9F%BA%E7%A1%80/</guid><description>&lt;h2 id="pn结"&gt;PN结&lt;a class="anchor" href="#pn%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;P型半导体多子为空穴，N型半导体多子为电子&lt;/p&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403095401_182_5.jpg" width="60%"&gt;
&lt;/div&gt;
PN结由于扩散运动，形成耗尽层；外加电场形成漂移运动，使耗尽层宽度变化
&lt;ul&gt;
&lt;li&gt;PN结外加反向电压，使耗尽层变宽，PN结截止（如上图）&lt;/li&gt;
&lt;li&gt;PN结外加正向电压，使耗尽层变窄，高于导通电压时，PN结导通&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;注：常温下 $U_T\approx$
 26mV，称为温度的电压当量&lt;/p&gt;
&lt;h2 id="稳压管"&gt;稳压管&lt;a class="anchor" href="#%e7%a8%b3%e5%8e%8b%e7%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403101515_185_5.jpg" width="35%"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403102851_186_5.jpg" width="40%"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;稳压管伏安特性与二极管伏安特性相似&lt;/li&gt;
&lt;li&gt;稳压二极管需反向接入，反向击穿后电流急剧增加，使电压“锁死”在$U_Z$
&lt;/li&gt;
&lt;/ul&gt;
$$
稳压区：I_{Zmin}\leqslant I_Z \leqslant I_{Zmax}
\left\{\begin{array}{l}
低于I_{Zmin}，稳压效果变坏\\
高于I_{Zmax}，会因超出额定功耗而损坏
\end{array}\right.
$$
&lt;h2 id="晶体三极管"&gt;晶体三极管&lt;a class="anchor" href="#%e6%99%b6%e4%bd%93%e4%b8%89%e6%9e%81%e7%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/三极管.png" width="70%"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;三极管相当于两个背置的两个二极管，c为集电极，e为发射极，b为基极&lt;/li&gt;
&lt;li&gt;三极管箭头方向代表工作电流方向，也代表导通电压方向&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="晶体管输入输出特性曲线"&gt;晶体管输入输出特性曲线&lt;a class="anchor" href="#%e6%99%b6%e4%bd%93%e7%ae%a1%e8%be%93%e5%85%a5%e8%be%93%e5%87%ba%e7%89%b9%e6%80%a7%e6%9b%b2%e7%ba%bf"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403110621_190_5.jpg" width="40%"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403110620_189_5.jpg" width="45%"&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;输入特性&lt;/strong&gt;：当$U_{CE}$
变大时，由于发射区注入基区的非平衡少子一部分越过集电结形成$i_C$
，使得基区参与复合运动的非平衡少子随$U_{CE}$
增大而减小，因此必须增大$U_{BE}$
以获得同样$i_B$
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;输出特性&lt;/strong&gt;：固定考察三种偏置状态，其余情况无须深究&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;截止区：$U_{BE}&amp;lt;U_{on}$
，$U_{CE}&amp;gt;U_{BE}$
，此时$i_C\approx 0$
&lt;/li&gt;
&lt;li&gt;饱和区：$U_{BE}&amp;gt;U_{on}$
，$U_{CE}&amp;lt;U_{BE}$
，$i_C$
受漂移运动影响随$U_{CE}$
变大而变大，直至进入放大区&lt;/li&gt;
&lt;li&gt;放大区：$U_{BE}&amp;gt;U_{on}$
，$U_{CE}&amp;gt;U_{BE}$
，$i_C$
仅取决于$i_B$
，$i_C=\beta i_B$
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>1-电路模型</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/1-%E7%94%B5%E8%B7%AF%E6%A8%A1%E5%9E%8B/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/1-%E7%94%B5%E8%B7%AF%E6%A8%A1%E5%9E%8B/</guid><description>&lt;h2 id="关联非关联参考方向"&gt;关联、非关联参考方向&lt;a class="anchor" href="#%e5%85%b3%e8%81%94%e9%9d%9e%e5%85%b3%e8%81%94%e5%8f%82%e8%80%83%e6%96%b9%e5%90%91"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin_Image_20260415193201_304_5.jpg" width="60%"&gt;
&lt;/div&gt;
$$
 u=Ri\\
i=Gu\\
p=ui（关联参考方向）=i^2R=\frac{u^2}{R}\\
W=\int_{t_0}^{t}pdt=\int_{t_0}^{t}uidt
$$
&lt;h2 id="电压源电流源"&gt;电压源、电流源&lt;a class="anchor" href="#%e7%94%b5%e5%8e%8b%e6%ba%90%e7%94%b5%e6%b5%81%e6%ba%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260415193200_303_5.jpg" width="34%"&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260415193159_302_5.jpg" width="15%"&gt;
&lt;/div&gt;
&lt;h2 id="受控源"&gt;受控源&lt;a class="anchor" href="#%e5%8f%97%e6%8e%a7%e6%ba%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260415193202_305_5.jpg" width="70%"&gt;
&lt;/div&gt;
&lt;h2 id="基尔霍夫定律"&gt;基尔霍夫定律&lt;a class="anchor" href="#%e5%9f%ba%e5%b0%94%e9%9c%8d%e5%a4%ab%e5%ae%9a%e5%be%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
基尔霍夫电压定律(\sum u_k=0)：回路电压之和为零 \\
基尔霍夫电流定律(\sum i_k=0)：节点流入电流等于流出电流
$$</description></item><item><title>1-频谱分析</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/1-%E9%A2%91%E8%B0%B1%E5%88%86%E6%9E%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/1-%E9%A2%91%E8%B0%B1%E5%88%86%E6%9E%90/</guid><description>&lt;h2 id="傅里叶级数"&gt;傅里叶级数&lt;a class="anchor" href="#%e5%82%85%e9%87%8c%e5%8f%b6%e7%ba%a7%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 f(t)=\sum_{-\infty}^{&amp;#43;\infty}C_ke^{j\frac{2k\pi}{T}t}\\
C_k=\frac{1}{T}\int_{-\infty}^{&amp;#43;\infty}f(t)e^{-j\frac{2k\pi}{T}t}dt\\

$$
$$

C_k又称线谱（复数）
\left\{\begin{array}{}
C_k幅值表示k次谐波的幅值\\
C_k相角表示k次谐波的相角
\end{array}\right.

$$
&lt;h2 id="傅里叶变换积分"&gt;傅里叶变换(积分)&lt;a class="anchor" href="#%e5%82%85%e9%87%8c%e5%8f%b6%e5%8f%98%e6%8d%a2%e7%a7%af%e5%88%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
T\rightarrow \infty
$$
$$

f(t)=\frac{1}{2\pi}\int_{-\infty}^{&amp;#43;\infty}F(j\omega)e^{j\omega t}d\omega\\
F(j\omega)=\int_{-\infty}^{&amp;#43;\infty}f(t)e^{-j\omega t}dt
$$
$$

\left\{\begin{array}{}
\frac{1}{2\pi}F(j\omega)e^{j\omega t}d\omega代表谐波幅值\\
F(j\omega)量纲为f(t)量纲除以频率量纲
\end{array}\right.

$$
&lt;h2 id="典型频谱"&gt;典型频谱&lt;a class="anchor" href="#%e5%85%b8%e5%9e%8b%e9%a2%91%e8%b0%b1"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

\begin{array}{}
\delta(t) &amp;amp; F(j\omega)=1\\
\ \\
A\cos \omega_1 t &amp;amp; F(j\omega)=\pi A \delta(\omega-\omega_1)&amp;#43; \pi A \delta(\omega&amp;#43;\omega_1)\\
\ \\
\frac{A_0}{2} &amp;amp; F(j\omega)=\pi A_0 \delta(\omega)\\
\ \\
\epsilon(t) &amp;amp; F(j\omega)=\pi \delta(\omega)&amp;#43; \frac{1}{j\omega}
\end{array}
$$
&lt;h2 id="阶跃响应法说明"&gt;阶跃响应法说明&lt;a class="anchor" href="#%e9%98%b6%e8%b7%83%e5%93%8d%e5%ba%94%e6%b3%95%e8%af%b4%e6%98%8e"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;对实际测试来说，存在各种扰动、噪声，小的有用信号被淹没，七次及以上谐波不可信&lt;/p&gt;
&lt;h2 id="问答题"&gt;问答题&lt;a class="anchor" href="#%e9%97%ae%e7%ad%94%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="为什么阶跃测试信号特性只能得到低频"&gt;为什么阶跃测试信号特性只能得到低频？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%98%b6%e8%b7%83%e6%b5%8b%e8%af%95%e4%bf%a1%e5%8f%b7%e7%89%b9%e6%80%a7%e5%8f%aa%e8%83%bd%e5%be%97%e5%88%b0%e4%bd%8e%e9%a2%91"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;阶跃信号高频衰减很快&lt;/p&gt;
&lt;h4 id="为什么用阶跃信号测系统特性"&gt;为什么用阶跃信号测系统特性？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e7%94%a8%e9%98%b6%e8%b7%83%e4%bf%a1%e5%8f%b7%e6%b5%8b%e7%b3%bb%e7%bb%9f%e7%89%b9%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;阶跃信号易获取，频谱特性分析简单&lt;/li&gt;
&lt;li&gt;在分析系统稳定性与快速响应方面能很直观反映出来&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="为什么用脉冲信号法"&gt;为什么用脉冲信号法？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e7%94%a8%e8%84%89%e5%86%b2%e4%bf%a1%e5%8f%b7%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;脉冲信号有丰富的频谱，可根据输出与输入比值来获取对象的频率特性&lt;/p&gt;</description></item><item><title>1-数学建模</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/1-%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/1-%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/</guid><description>&lt;h1 id="数学建模"&gt;数学建模&lt;a class="anchor" href="#%e6%95%b0%e5%ad%a6%e5%bb%ba%e6%a8%a1"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;简单电路网络，简单力学系统，机电系统（会预给公式）的建模&lt;/p&gt;
&lt;p&gt;计算传递函数：微分方程整理，框图化简&lt;/p&gt;
&lt;h2 id="电气网络"&gt;电气网络&lt;a class="anchor" href="#%e7%94%b5%e6%b0%94%e7%bd%91%e7%bb%9c"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

\begin{array}{}电阻：u_R=R\ i_R&amp;amp;
电容：i_C=C\frac{du_C}{dt}&amp;amp;
电感：u_L=L\frac{di_L}{dt}\\
&amp;amp;I(s)=CsU(s)&amp;amp;U(s)=LsI(s)\\
Z_R=R &amp;amp; Z_C=\frac{1}{Cs} &amp;amp; Z_L=Ls
\end{array}
$$
&lt;p&gt;
&lt;/p&gt;
$$
\begin{array}{l}串联分压：U_1=\frac{Z_1}{Z_1&amp;#43;Z_2}U &amp;amp; U_2=\frac{Z_2}{Z_1&amp;#43;Z_2}U &amp;amp; I=\frac{1}{Z_1&amp;#43;Z_2}U\\
 \ \\
并联分流：I_1=\frac{Z_2}{Z_1&amp;#43;Z_2}I &amp;amp; I_2=\frac{Z_1}{Z_1&amp;#43;Z_2}I &amp;amp; U=\frac{Z_1Z_2}{Z_1&amp;#43;Z_2}I
\end{array}
$$
&lt;p&gt;
&lt;/p&gt;
$$
运算放大器（正负极口）：u_&amp;#43;=u_-\quad i_&amp;#43;=i_-=0
$$
&lt;p&gt;
&lt;/p&gt;
$$
并联阻抗Z=\frac{Z_1Z_2}{Z_1&amp;#43;Z_2}\quad容阻并联Z=\frac{R}{sRC&amp;#43;1}
$$
$$
重要技巧：戴维宁或诺顿等效，三角星型转换\\
\Delta\to Y : \frac{R_{12}\cdot R_{13}}{R_{12}&amp;#43;R_{13}&amp;#43;R_{23}}\\
\ \\
Y \to \Delta : \frac{R_1R_2&amp;#43;R_2R_3&amp;#43;R_1R_3}{R_{1}}
$$
$$
注：复杂电气网络无简单办法，或阻抗Z整理，或拉氏动态方程整理
$$
&lt;h2 id="力学系统公式及技巧"&gt;力学系统公式及技巧&lt;a class="anchor" href="#%e5%8a%9b%e5%ad%a6%e7%b3%bb%e7%bb%9f%e5%85%ac%e5%bc%8f%e5%8f%8a%e6%8a%80%e5%b7%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\begin{array}{cl}
牛顿第二定律：&amp;amp;f=ma\\
阻尼器（粘性摩擦力）：&amp;amp;f=Bv=B\frac{dy(t)}{dt}\\
弹簧：&amp;amp;f=ky(t)\\
转矩：&amp;amp;T=J\frac{d\omega}{dt}=J\frac{d\Omega}{dt}=J\frac{d^2\theta}{dt^2}\quad(\omega,\Omega均为角速度)\\
&amp;amp;T=rF\sin\theta（0&amp;lt;\theta&amp;lt;\frac{\pi}{2}）\\
粘性摩擦力矩（旋转摩擦力矩）：&amp;amp;T_B=k\omega=k\frac{d\theta}{dt}
\end{array}
$$
&lt;p&gt;
&lt;/p&gt;
$$
技巧：\\
注意区分“力的传递”\ \ “力的分担”\ \ “力的余额”\\
传递：一端施力，中间各段受力相等\\
分担：中间施力，施点两侧为分担；\quad 或并联结构\\
余额（非阻力）：物块加速度的力
$$
&lt;h2 id="转动惯量"&gt;转动惯量&lt;a class="anchor" href="#%e8%bd%ac%e5%8a%a8%e6%83%af%e9%87%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
质点、薄圆柱壳、细圆环：J=mr^2\\
实心圆盘、实心圆柱：J=\frac{mr^2}{2}\\
$$
&lt;h2 id="机电系统"&gt;机电系统&lt;a class="anchor" href="#%e6%9c%ba%e7%94%b5%e7%b3%bb%e7%bb%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;电机系统不考查原理（题目会提供）&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>1-随机事件与概率</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/1-%E9%9A%8F%E6%9C%BA%E4%BA%8B%E4%BB%B6%E4%B8%8E%E6%A6%82%E7%8E%87/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/1-%E9%9A%8F%E6%9C%BA%E4%BA%8B%E4%BB%B6%E4%B8%8E%E6%A6%82%E7%8E%87/</guid><description>&lt;h1 id="随机事件与概率"&gt;随机事件与概率&lt;a class="anchor" href="#%e9%9a%8f%e6%9c%ba%e4%ba%8b%e4%bb%b6%e4%b8%8e%e6%a6%82%e7%8e%87"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;古典概型较难，但考查不深，若计算复杂，考虑处理复杂化了&lt;/p&gt;
&lt;p&gt;重点：事件的运算、条件概率与全概率、贝叶斯公式&lt;/p&gt;
&lt;h2 id="随机事件重要运算公式"&gt;随机事件重要运算公式&lt;a class="anchor" href="#%e9%9a%8f%e6%9c%ba%e4%ba%8b%e4%bb%b6%e9%87%8d%e8%a6%81%e8%bf%90%e7%ae%97%e5%85%ac%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;关键在集合运算，而非代数运算&lt;/strong&gt;
&lt;/p&gt;
$$

结合律：\\
(A\cup B)\cup C=A\cup (B\cup C)=A\cup B\cup C\\
(A\cap B)\cap C=A\cap (B\cap C)=A\cap B\cap C\\
\ \\
分配律：\\
A\cup (B\cap C)=(A\cup B)\cap (A\cup C)\\
A\cap (B\cup C)=(A\cap B)\cup (A\cap C)\\
\ \\
对偶律：\\
\overline{A\cup B}=\overline{A}\cap \overline{B};
\overline{A\cap B}=\overline{A}\cup \overline{B}
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：\\
AB=A\cap B\\
A&amp;#43;B=A\cup B\\
A-B=A\overline{B}=A-AB\quad{\color{blue}\neq A&amp;#43;\overline{B}}\\
（加减运算易出错，慎用）
$$
&lt;h2 id="事件关系"&gt;事件关系&lt;a class="anchor" href="#%e4%ba%8b%e4%bb%b6%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
AB与\overline{A}B互斥\\
AB=A\Leftrightarrow A\subset B\Leftrightarrow A\cup B=B\\
AB=\varnothing\Leftrightarrow A\subset\overline{B}或B\subset\overline{A}
$$
&lt;h2 id="概率重要运算公式"&gt;概率重要运算公式&lt;a class="anchor" href="#%e6%a6%82%e7%8e%87%e9%87%8d%e8%a6%81%e8%bf%90%e7%ae%97%e5%85%ac%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;善用概率运算关系简化计算，逆事件可简化计算，灵活使用&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>1-行列式</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/1-%E8%A1%8C%E5%88%97%E5%BC%8F/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/1-%E8%A1%8C%E5%88%97%E5%BC%8F/</guid><description>&lt;h1 id="行列式"&gt;行列式&lt;a class="anchor" href="#%e8%a1%8c%e5%88%97%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="行列式的性质"&gt;行列式的性质&lt;a class="anchor" href="#%e8%a1%8c%e5%88%97%e5%bc%8f%e7%9a%84%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

交换\ |\alpha_1,\alpha_2,\alpha_3|=-|\alpha_2,\alpha_1,\alpha_3|\\
 \ \\
倍加\ |\alpha_1,\alpha_2,\alpha_3|=|\alpha_1,k\alpha_1&amp;#43;\alpha_2,\alpha_3|\\
\ \\
倍乘或提取因子\ |k\alpha_1,\alpha_2,\alpha_3|=k|\alpha_1,\alpha_2,\alpha_3|\\
\ \\
拆分\ |\alpha_1,\alpha_2,\alpha_3&amp;#43;\beta|=|\alpha_1,\alpha_2,\alpha_3|&amp;#43;|\alpha_1,\alpha_2,\beta|\\
\ \\
成比例\ |\alpha_1,\alpha_2,k\alpha_2|=0
$$
&lt;p&gt;
&lt;/p&gt;
$$
|kA|=k^n|A|\\
|A|=|A^T|\\
|AB|=|A||B|（A,B为同型方阵）
$$
&lt;p&gt;
&lt;/p&gt;
$$
|A|=\prod_{i=1}^n\lambda_i=\lambda_1\lambda_2\cdots \lambda_n（对相似对角化无要求）
$$
&lt;h2 id="逆序数计算"&gt;逆序数计算&lt;a class="anchor" href="#%e9%80%86%e5%ba%8f%e6%95%b0%e8%ae%a1%e7%ae%97"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\tau(i_1,i_2,\cdots i_n):元素后面小于此元素的个数之和
$$
&lt;h2 id="副对角行列式"&gt;副对角行列式&lt;a class="anchor" href="#%e5%89%af%e5%af%b9%e8%a7%92%e8%a1%8c%e5%88%97%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\bigg| \quad\quad\bigg|=(-1)^\frac{n(n-1)}{2}\prod_{i=1}^n\Delta
$$
&lt;h2 id="爪型行列式"&gt;爪型行列式&lt;a class="anchor" href="#%e7%88%aa%e5%9e%8b%e8%a1%8c%e5%88%97%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
第一列减j列的\frac{a_{i1}}{a_{ij}}即可化为上三角矩阵
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359347607.png" width="25%"&gt;
&lt;/div&gt;
&lt;h2 id="异爪型行列式"&gt;异爪型行列式&lt;a class="anchor" href="#%e5%bc%82%e7%88%aa%e5%9e%8b%e8%a1%8c%e5%88%97%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;递推法，按“尾部”行（列）展开&lt;/strong&gt;&lt;/p&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359383717.png" width="40%"&gt;
&lt;/div&gt;
$$
选取“两爪”(a_n,\quad x)较简单
$$
&lt;h2 id="三对角行列式"&gt;三对角行列式&lt;a class="anchor" href="#%e4%b8%89%e5%af%b9%e8%a7%92%e8%a1%8c%e5%88%97%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;递推法，按第一行或第一列展开，整理可得两两递推式&lt;/strong&gt;&lt;/p&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359436900.png" width="40%"&gt;
&lt;/div&gt;
$$
\quad\ D_{n}=2aD_{n-1}-a^2D_{n-2}\\
\Rightarrow D_n-aD_{n-1}=a(D_{n-1}-aD_{n-2})\\
\Rightarrow D_n-aD_{n-1}=a^n\\
\Rightarrow D_n=a^n&amp;#43;aD_{n-1}=a^n&amp;#43;a(a^{n-1}&amp;#43;aD_{n-2})=(n-1)a^n&amp;#43;a^{n-1}\cdot 2a
$$
&lt;h2 id="加边法"&gt;加边法&lt;a class="anchor" href="#%e5%8a%a0%e8%be%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;针对除主对角元素外，各行（列）均有相同的元素&lt;/strong&gt;&lt;/p&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359460950.png" width="50%"&gt;
&lt;/div&gt;
$$
行元素相同加行，列元素相同加列
$$
&lt;h2 id="拆项法"&gt;拆项法&lt;a class="anchor" href="#%e6%8b%86%e9%a1%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359548244.png" width="80%"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359563809.png" width="85%"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359575364.png" width="75%"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359593126.png" width="80%"&gt;
&lt;/div&gt;
&lt;h2 id="二维品字型行列式"&gt;二维“品”字型行列式&lt;a class="anchor" href="#%e4%ba%8c%e7%bb%b4%e5%93%81%e5%ad%97%e5%9e%8b%e8%a1%8c%e5%88%97%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359922327.png" width="30%"&gt;
&lt;/div&gt;
&lt;h2 id="n维品字型行列式"&gt;n维“品”字型行列式&lt;a class="anchor" href="#n%e7%bb%b4%e5%93%81%e5%ad%97%e5%9e%8b%e8%a1%8c%e5%88%97%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359941213.png" width="30%"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359959730.png" width="80%"&gt;
&lt;/div&gt;
&lt;h2 id="拉普拉斯展开定理"&gt;拉普拉斯展开定理&lt;a class="anchor" href="#%e6%8b%89%e6%99%ae%e6%8b%89%e6%96%af%e5%b1%95%e5%bc%80%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
行列式可按任意k(1\leqslant k\leqslant n-1)行（列）展开，\\即在n阶行列式|A|中，可以任意选定k行（列），\\则含于此k行（列）中的所有k阶子式与其代数余子式乘积之和为|A|的值\\
（代数余子式下标为子式下标）
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-linear-algebra/Markji_1751359996872.png" width="80%"&gt;
&lt;/div&gt;
$$
拉普拉斯行、列展开：\\
|A|=\sum_{j=1}^{n}a_{1j}A_{1j}=a_{11}A_{11}&amp;#43;a_{12}A_{12}&amp;#43;\cdots&amp;#43;a_{1n}A_{1n}\\
A_{ij}=(-1)^{i&amp;#43;j}M_{ij}
$$
&lt;h2 id="分块矩阵的拉普拉斯展开式"&gt;分块矩阵的拉普拉斯展开式&lt;a class="anchor" href="#%e5%88%86%e5%9d%97%e7%9f%a9%e9%98%b5%e7%9a%84%e6%8b%89%e6%99%ae%e6%8b%89%e6%96%af%e5%b1%95%e5%bc%80%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;由拉普拉斯定理，可推广至n维分块阵&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>1-预备知识</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/1-%E9%A2%84%E5%A4%87%E7%9F%A5%E8%AF%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/1-%E9%A2%84%E5%A4%87%E7%9F%A5%E8%AF%86/</guid><description>&lt;h1 id="预备知识"&gt;预备知识&lt;a class="anchor" href="#%e9%a2%84%e5%a4%87%e7%9f%a5%e8%af%86"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="泰勒展开"&gt;泰勒展开&lt;a class="anchor" href="#%e6%b3%b0%e5%8b%92%e5%b1%95%e5%bc%80"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
灵活凑\Delta\to0,泰勒展开
$$
$$
x_0=0,x\to0时
$$
$$
\mathrm{e}^x=1&amp;#43;x&amp;#43;\frac{x^2}{2!}&amp;#43; \cdots&amp;#43; \frac{x^n}{n !}&amp;#43;\circ(x^n)\\
\mathrm{a}^x=e^{x\ln a}=1&amp;#43;x\ln a&amp;#43;\frac{(x\ln a)^2}{2!}&amp;#43; \cdots&amp;#43; \frac{(x\ln a)^n}{n !}&amp;#43;\circ(x^n)\\
\ln (1&amp;#43;x)=x-\frac{x^2}{2}&amp;#43;\frac{x^3}{3}-\cdots&amp;#43;\frac{(-1)^{n-1} x^n}{n}&amp;#43;\circ(x^n) 
$$
$$
\frac{1}{1&amp;#43;x}=1-x&amp;#43;x^2-\cdots&amp;#43;(-1)^n x^n&amp;#43;\circ(x^n)\\
\frac{1}{1-x}=1&amp;#43;x&amp;#43;x^2&amp;#43;\cdots&amp;#43; x^n&amp;#43;\circ(x^n)
$$
&lt;p&gt;
&lt;/p&gt;
$$
\sin x = x - \frac{x^3}{3!} &amp;#43; \frac{x^5}{5!} - \cdots &amp;#43;\frac{(-1)^n}{(2n&amp;#43;1)!} x^{2n&amp;#43;1} &amp;#43;\circ(x^{2n&amp;#43;1})\\
\cos x =1 - \frac{x^2}{2!} &amp;#43; \frac{x^4}{4!} - \cdots &amp;#43; \frac{(-1)^n}{(2n)!} x^{2n}&amp;#43;\circ(x^{2n})\\
\arctan x =x-\frac{x^3}{3} &amp;#43; \frac{x^5}{5}-\cdots &amp;#43;\frac{(-1)^n}{2n&amp;#43;1} x^{2n&amp;#43;1}&amp;#43;\circ(x^{2n&amp;#43;1})
$$
&lt;p&gt;
&lt;/p&gt;
$$
(1&amp;#43;x)^\alpha=1&amp;#43;\alpha x&amp;#43; \frac{\alpha(\alpha-1)}{2!}x^2&amp;#43;\cdots&amp;#43;\circ(x^{n})\quad {\color{blue}（\alpha为任意常数，此式可无限展开）}
$$
&lt;p&gt;
&lt;strong&gt;记前两项：&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>1-直流电机及其控制</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/1-%E7%9B%B4%E6%B5%81%E7%94%B5%E6%9C%BA%E5%8F%8A%E5%85%B6%E6%8E%A7%E5%88%B6/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/1-%E7%9B%B4%E6%B5%81%E7%94%B5%E6%9C%BA%E5%8F%8A%E5%85%B6%E6%8E%A7%E5%88%B6/</guid><description>&lt;h2 id="直流电机绕组结构图"&gt;直流电机绕组结构图&lt;a class="anchor" href="#%e7%9b%b4%e6%b5%81%e7%94%b5%e6%9c%ba%e7%bb%95%e7%bb%84%e7%bb%93%e6%9e%84%e5%9b%be"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260404141628_221_5.png"&gt;
&lt;/div&gt;
&lt;h2 id="电机等效电路图"&gt;电机等效电路图&lt;a class="anchor" href="#%e7%94%b5%e6%9c%ba%e7%ad%89%e6%95%88%e7%94%b5%e8%b7%af%e5%9b%be"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260404144506_222_5.jpg" width="50%"&gt;
&lt;/div&gt;
&lt;h2 id="基本关系式"&gt;基本关系式&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e5%85%b3%e7%b3%bb%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 \left\{\begin{array}{l}
电压平衡：U_a=L_a\frac{dI_a}{dt}&amp;#43;I_a R_a &amp;#43;E_a\\
感应电势：E_a=K_e \omega=C_e \Phi n
\end{array}\right.
$$
$$
 \left\{\begin{array}{l}
电磁转矩：T_{em}=K_t I_a=C_t\Phi I_a\\
转矩平衡：T_{em}=T_o&amp;#43;T_L&amp;#43;J\frac{d\omega}{dt}
\end{array}\right.\\
\ \\
注：K_e=K_t\qquad \frac{60\omega}{2\pi}=n
$$
$$
 \left\{\begin{array}{l}
齿频率：f_s=\frac{Zn}{60} \qquad Z为电枢齿数\\
\ \\
纹波系数：\epsilon=\frac{E_{max}-E_{min}}{E_{max}&amp;#43;E_{min}}\\
\ \\
激磁回路方程式：U_f=I_f R_f&amp;#43;L_f\frac{dI_f}{dt}
\end{array}\right.\\
注：C_t=\frac{pN}{2\pi a}\qquad C_e=\frac{pN}{60a}\\
\ \\
p为极对数\\
N为电枢绕组导体数\\
a为电刷间的并联支路对数

$$
&lt;p&gt;注：p越大，反电势、转矩系数增大&lt;/p&gt;
&lt;h2 id="直流电机的静态特性"&gt;直流电机的静态特性&lt;a class="anchor" href="#%e7%9b%b4%e6%b5%81%e7%94%b5%e6%9c%ba%e7%9a%84%e9%9d%99%e6%80%81%e7%89%b9%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\begin{array}{ll}
U_a &amp;amp; =I_a R_a &amp;#43;E_a\\
 &amp;amp; =\frac{T_{em}}{K_t}R_a&amp;#43;K_e\omega\\
 &amp;amp; =\frac{T_{em}}{C_t \Phi}R_a &amp;#43; C_e \Phi n
\end{array}
$$
$$
n=\frac{1}{C_e\Phi}U_a-\frac{R_a}{C_e C_t\Phi^2}T_{em}
$$
&lt;p&gt;&lt;strong&gt;直流电机调速的三种方式&lt;/strong&gt;：电枢控制，磁场控制，串电阻控制&lt;/p&gt;</description></item><item><title>1-状态空间表达式</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/1-%E7%8A%B6%E6%80%81%E7%A9%BA%E9%97%B4%E8%A1%A8%E8%BE%BE%E5%BC%8F/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/1-%E7%8A%B6%E6%80%81%E7%A9%BA%E9%97%B4%E8%A1%A8%E8%BE%BE%E5%BC%8F/</guid><description>&lt;h1 id="状态空间表达式"&gt;状态空间表达式&lt;a class="anchor" href="#%e7%8a%b6%e6%80%81%e7%a9%ba%e9%97%b4%e8%a1%a8%e8%be%be%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;线性系统离散化不考&lt;/p&gt;
&lt;h2 id="连续离散系统的表达式"&gt;连续、离散系统的表达式&lt;a class="anchor" href="#%e8%bf%9e%e7%bb%ad%e7%a6%bb%e6%95%a3%e7%b3%bb%e7%bb%9f%e7%9a%84%e8%a1%a8%e8%be%be%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

连续：\begin{array}{l}
\dot{x} =Ax &amp;#43; Bu \\
y=Cx&amp;#43;Du
\end{array}（系统矩阵A为方阵）
$$
&lt;p&gt;
&lt;/p&gt;
$$
离散：\begin{array}{l}
x(k&amp;#43;1) =Gx(k) &amp;#43;Hu(k)\\
y(k)=Cx(k)&amp;#43;Du(k)
\end{array}\\
$$
&lt;h2 id="连续系统与离散系统对比"&gt;连续系统与离散系统对比&lt;a class="anchor" href="#%e8%bf%9e%e7%bb%ad%e7%b3%bb%e7%bb%9f%e4%b8%8e%e7%a6%bb%e6%95%a3%e7%b3%bb%e7%bb%9f%e5%af%b9%e6%af%94"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;总括衍生，离散系统考查较弱&lt;/strong&gt;
&lt;/p&gt;
$$
离散系统与连续系统诸多性质极其相似：
$$
&lt;p&gt;
&lt;/p&gt;
$$
\left.\begin{array}{}系统实现相通\\
非奇异变换相通
\end{array}\right\}
“积分元”\frac{1}{s}对应“延迟元”z^{-1}(T) \quad \#\quad \frac{\frac{1}{s}}{1&amp;#43;\frac{\lambda}{s}}对应\frac{\frac{1}{z}}{1&amp;#43;\frac{\lambda}{z}} 
$$
&lt;p&gt;
&lt;/p&gt;
$$
\mathscr{L}变换对应Z变换
$$
&lt;p&gt;
&lt;/p&gt;
$$
传递函数阵计算公式（零初始条件）：\\
\left\{\begin{array}{l}
sX(s) =AX(s)&amp;#43; BU(s) \\
Y(s)=CX(s)
\end{array}\right.\Rightarrow Y(s)=C(sI-A)^{-1}BU(z)\\
\ \\
\left\{\begin{array}{l}
zX(z)=GX(z)&amp;#43;HU(z)\\
Y(z)=CX(z)
\end{array}\right.\Rightarrow Y(z)=C(zI-G)^{-1}HU(z)\\
 注：根据状态空间表达式，计算离散、连续传递函数仅字母有异
$$
&lt;h2 id="非奇异变换及其性质"&gt;非奇异变换及其性质&lt;a class="anchor" href="#%e9%9d%9e%e5%a5%87%e5%bc%82%e5%8f%98%e6%8d%a2%e5%8f%8a%e5%85%b6%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
状态空间表达式非唯一，线性变换系统等价\\
连续：\left\{
\begin{array}{l}
\dot{x}=Ax&amp;#43;Bu\\
y=Cx&amp;#43;Du
\end{array}
\right.\xrightarrow{x=Tz,\quad z=T^{-1}x}
\left\{
\begin{array}{l}
\dot{z}=T^{-1}ATz&amp;#43;T^{-1}Bu\\
y=CTz&amp;#43;Du
\end{array}
\right.
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>With ToC</title><link>https://oballon.github.io/Knowledge-Shore/archive/example/table-of-contents/with-toc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/example/table-of-contents/with-toc/</guid><description>&lt;h1 id="caput-vino-delphine-in-tamen-vias"&gt;Caput vino delphine in tamen vias&lt;a class="anchor" href="#caput-vino-delphine-in-tamen-vias"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="cognita-laeva-illo-fracta"&gt;Cognita laeva illo fracta&lt;a class="anchor" href="#cognita-laeva-illo-fracta"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lorem markdownum pavent auras, surgit nunc cingentibus libet &lt;strong&gt;Laomedonque que&lt;/strong&gt;
est. Pastor &lt;a href="http://est.org/ire.aspx"&gt;An&lt;/a&gt; arbor filia foedat, ne &lt;a href="http://www.indiciumturbam.org/moramquid.php"&gt;fugit
aliter&lt;/a&gt;, per. Helicona illas et
callida neptem est &lt;em&gt;Oresitrophos&lt;/em&gt; caput, dentibus est venit. Tenet reddite
&lt;a href="http://www.antro-et.net/"&gt;famuli&lt;/a&gt; praesentem fortibus, quaeque vis foret si
frondes &lt;em&gt;gelidos&lt;/em&gt; gravidae circumtulit &lt;a href="http://incurvasustulit.io/illi-virtute.html"&gt;inpulit armenta
nativum&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Te at cruciabere vides rubentis manebo&lt;/li&gt;
&lt;li&gt;Maturuit in praetemptat ruborem ignara postquam habitasse&lt;/li&gt;
&lt;li&gt;Subitarum supplevit quoque fontesque venabula spretis modo&lt;/li&gt;
&lt;li&gt;Montis tot est mali quasque gravis&lt;/li&gt;
&lt;li&gt;Quinquennem domus arsit ipse&lt;/li&gt;
&lt;li&gt;Pellem turis pugnabant locavit&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="natus-quaerere"&gt;Natus quaerere&lt;a class="anchor" href="#natus-quaerere"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pectora et sine mulcere, coniuge dum tincta incurvae. Quis iam; est dextra
Peneosque, metuis a verba, primo. Illa sed colloque suis: magno: gramen, aera
excutiunt concipit.&lt;/p&gt;</description></item><item><title>基础语法</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/1-%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/1-%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95/</guid><description>&lt;h1 id="基础语法"&gt;基础语法&lt;a class="anchor" href="#%e5%9f%ba%e7%a1%80%e8%af%ad%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="行与缩进"&gt;行与缩进&lt;a class="anchor" href="#%e8%a1%8c%e4%b8%8e%e7%bc%a9%e8%bf%9b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Python 最具特色的就是使用缩进来表示代码块，不需要使用大括号 &lt;code&gt;{}&lt;/code&gt;，缩进的空格数是可变的，但是同一个代码块的语句必须包含相同的缩进空格数。&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 正确的缩进&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;这是if语句块&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;同一代码块，缩进相同&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 错误的缩进会导致 IndentationError&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;错误：没有缩进&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 这会报错&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;缩进规则&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>神经网络基础</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/1-%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/1-%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80/</guid><description>&lt;h2 id="单层感知机"&gt;单层感知机&lt;a class="anchor" href="#%e5%8d%95%e5%b1%82%e6%84%9f%e7%9f%a5%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="定义"&gt;定义&lt;a class="anchor" href="#%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;单层感知机（Single-Layer Perceptron）&lt;/strong&gt; 是最简单的神经网络，由Frank Rosenblatt在1957年提出。&lt;/p&gt;
&lt;h3 id="结构"&gt;结构&lt;a class="anchor" href="#%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;img src="pic-deep-learning/Snipaste_2026-02-26_20-54-55.png"&gt;
&lt;h3 id="数学表示"&gt;数学表示&lt;a class="anchor" href="#%e6%95%b0%e5%ad%a6%e8%a1%a8%e7%a4%ba"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;对于输入向量 $\mathbf{x} = [x_1, x_2, \ldots, x_n]$
：&lt;/p&gt;
$$
y = f(w_1 x_1 &amp;#43; w_2 x_2 &amp;#43; \cdots &amp;#43; w_n x_n &amp;#43; b)
$$
$$
y = f(\mathbf{w} \cdot \mathbf{x} &amp;#43; b)
$$
&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\mathbf{w} = [w_1, w_2, \ldots, w_n]$
：权重向量&lt;/li&gt;
&lt;li&gt;$b$
：偏置（bias）&lt;/li&gt;
&lt;li&gt;$f$
：激活函数&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="仿生学根源"&gt;仿生学根源&lt;a class="anchor" href="#%e4%bb%bf%e7%94%9f%e5%ad%a6%e6%a0%b9%e6%ba%90"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;单层感知机模拟了生物神经元的工作方式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：树突接收信号&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;权重&lt;/strong&gt;：突触强度&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;求和&lt;/strong&gt;：细胞体整合信号&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;激活&lt;/strong&gt;：轴突输出信号&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="局限性"&gt;局限性&lt;a class="anchor" href="#%e5%b1%80%e9%99%90%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;单层感知机只能解决&lt;strong&gt;线性可分&lt;/strong&gt; 问题，无法处理异或（XOR）等非线性问题。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="多层感知机"&gt;多层感知机&lt;a class="anchor" href="#%e5%a4%9a%e5%b1%82%e6%84%9f%e7%9f%a5%e6%9c%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="定义-1"&gt;定义&lt;a class="anchor" href="#%e5%ae%9a%e4%b9%89-1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;多层感知机（Multi-Layer Perceptron, MLP）&lt;/strong&gt; 通过堆叠多个隐藏层，可以学习非线性关系。&lt;/p&gt;
&lt;h3 id="结构-1"&gt;结构&lt;a class="anchor" href="#%e7%bb%93%e6%9e%84-1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;输入层 → 隐藏层1 → 隐藏层2 → ... → 隐藏层N → 输出层&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="为什么需要多层"&gt;为什么需要多层？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e5%a4%9a%e5%b1%82"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;万能逼近定理（Universal Approximation Theorem）&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>张量基础</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/1-%E5%BC%A0%E9%87%8F%E5%9F%BA%E7%A1%80/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/1-%E5%BC%A0%E9%87%8F%E5%9F%BA%E7%A1%80/</guid><description>&lt;h1 id="张量基础"&gt;张量基础&lt;a class="anchor" href="#%e5%bc%a0%e9%87%8f%e5%9f%ba%e7%a1%80"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;张量（Tensor）是 PyTorch 中最基本的数据结构，类似于 NumPy 的数组，但可以在 GPU 上运行。理解张量是学习 PyTorch 的第一步。&lt;/p&gt;
&lt;h2 id="什么是张量"&gt;什么是张量？&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af%e5%bc%a0%e9%87%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;张量是一个多维数组：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0维张量&lt;/strong&gt;：标量（scalar）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1维张量&lt;/strong&gt;：向量（vector）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2维张量&lt;/strong&gt;：矩阵（matrix）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3维及以上&lt;/strong&gt;：高阶张量&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="创建张量"&gt;创建张量&lt;a class="anchor" href="#%e5%88%9b%e5%bb%ba%e5%bc%a0%e9%87%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="从-python-列表创建"&gt;从 Python 列表创建&lt;a class="anchor" href="#%e4%bb%8e-python-%e5%88%97%e8%a1%a8%e5%88%9b%e5%bb%ba"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建一维张量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tensor&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建二维张量（矩阵）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tensor&lt;/span&gt;&lt;span class="p"&gt;([[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建三维张量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tensor&lt;/span&gt;&lt;span class="p"&gt;([[[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]],&lt;/span&gt; &lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;]]])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="使用构造函数创建"&gt;使用构造函数创建&lt;a class="anchor" href="#%e4%bd%bf%e7%94%a8%e6%9e%84%e9%80%a0%e5%87%bd%e6%95%b0%e5%88%9b%e5%bb%ba"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建全零张量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;zeros&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建全一张量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ones&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ones&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ones&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建随机张量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;rand&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 均匀分布 [0, 1)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建正态分布随机张量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;randn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 标准正态分布&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建指定范围的张量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;arange&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# [0, 10)，步长为 2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arange&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建线性空间&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;linspace&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# [0, 1] 之间 5 个等间距点&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="从-numpy-数组创建"&gt;从 NumPy 数组创建&lt;a class="anchor" href="#%e4%bb%8e-numpy-%e6%95%b0%e7%bb%84%e5%88%9b%e5%bb%ba"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 从 NumPy 数组创建&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;numpy_array&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;tensor_from_numpy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_numpy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numpy_array&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tensor_from_numpy&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 转换回 NumPy（仅限 CPU 张量）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;numpy_from_tensor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tensor_from_numpy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numpy&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numpy_from_tensor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;重要提示&lt;/strong&gt;：&lt;code&gt;torch.from_numpy()&lt;/code&gt; 和 &lt;code&gt;.numpy()&lt;/code&gt; 创建的张量和 NumPy 数组&lt;strong&gt;共享内存&lt;/strong&gt;，修改一个会影响另一个：&lt;/p&gt;</description></item><item><title>2-电阻电路等效</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/2-%E7%94%B5%E9%98%BB%E7%94%B5%E8%B7%AF%E7%AD%89%E6%95%88/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/2-%E7%94%B5%E9%98%BB%E7%94%B5%E8%B7%AF%E7%AD%89%E6%95%88/</guid><description>&lt;h2 id="电阻等效"&gt;电阻等效&lt;a class="anchor" href="#%e7%94%b5%e9%98%bb%e7%ad%89%e6%95%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 串联：R=R_1&amp;#43;R_2&amp;#43;\cdots\\
并联：\frac{1}{R}=\frac{1}{R_1}&amp;#43;\frac{1}{R_2}&amp;#43;\cdots 
$$
$$
Y\to \Delta：\frac{R_1R_2&amp;#43;R_1R_3&amp;#43;R_2R_3}{R_1}\\
\ \\
\Delta\to Y： \frac{R_{12}R_{13}}{R_{12}&amp;#43;R_{13}&amp;#43;R_{23}}
$$
&lt;h2 id="电源等效"&gt;电源等效&lt;a class="anchor" href="#%e7%94%b5%e6%ba%90%e7%ad%89%e6%95%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
电压源串联叠加\\
电流源并联叠加\\
电压源并联（前提电压一致）\\
电流源串联（前提电流一致）
$$
&lt;h2 id="输入电阻"&gt;输入电阻&lt;a class="anchor" href="#%e8%be%93%e5%85%a5%e7%94%b5%e9%98%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\left\{ \begin{array}{l}
 若仅含电阻，电阻等效即可\\
 若含受控源，用附加电源法（本质：端口电压与电流之间的关系）
 \end{array}\right.

$$</description></item><item><title>2-函数</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/2-%E5%87%BD%E6%95%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/2-%E5%87%BD%E6%95%B0/</guid><description>&lt;h1 id="函数"&gt;函数&lt;a class="anchor" href="#%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="反函数存在条件"&gt;反函数存在条件&lt;a class="anchor" href="#%e5%8f%8d%e5%87%bd%e6%95%b0%e5%ad%98%e5%9c%a8%e6%9d%a1%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
函数自变量 x 与因变量 y 一 一对应（函数单调，等等）
$$
&lt;h2 id="如何理解反三角函数"&gt;如何理解反三角函数&lt;a class="anchor" href="#%e5%a6%82%e4%bd%95%e7%90%86%e8%a7%a3%e5%8f%8d%e4%b8%89%e8%a7%92%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;反三角函数是三角函数在特定区间的反函数&lt;/p&gt;
$$
y=\arcsin x, \ \ x\in[-1,1],y\in[-\frac{\pi}{2},\frac{\pi}{2}]
$$
$$
\arcsin(\sin x)\neq x （未限制x定义域，左x不一定等于右x）
$$
$$
\sin(\arcsin x)=x
$$
&lt;h2 id="隐函数与方程的关系"&gt;隐函数与方程的关系&lt;a class="anchor" href="#%e9%9a%90%e5%87%bd%e6%95%b0%e4%b8%8e%e6%96%b9%e7%a8%8b%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;隐函数也是函数，满足函数的定义，一个方程可确定多个隐函数&lt;/p&gt;
&lt;h2 id="函数的xy对应及函数的决定要素"&gt;函数的x、y对应及函数的决定要素&lt;a class="anchor" href="#%e5%87%bd%e6%95%b0%e7%9a%84xy%e5%af%b9%e5%ba%94%e5%8f%8a%e5%87%bd%e6%95%b0%e7%9a%84%e5%86%b3%e5%ae%9a%e8%a6%81%e7%b4%a0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;x-&amp;gt;y: 一对一，多对一（唯一的x对应y）&lt;/p&gt;
&lt;p&gt;定义域、对应关系（与变量符号无关）&lt;/p&gt;
&lt;h2 id="函数奇偶性定义"&gt;函数奇偶性定义&lt;a class="anchor" href="#%e5%87%bd%e6%95%b0%e5%a5%87%e5%81%b6%e6%80%a7%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
函数f(x)的定义域D关于原点对称，\\
如果\forall x\in D，\left\{
\begin{array}{ll}
f(x)=f(-x)，则称f(x)为偶函数\\
f(x)=-f(-x)，则称f(x)为奇函数
\end{array}\right.
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：定义域D不一定连续，但考研几乎不考察不连续情形
$$
&lt;h2 id="函数单调性定义"&gt;函数单调性定义&lt;a class="anchor" href="#%e5%87%bd%e6%95%b0%e5%8d%95%e8%b0%83%e6%80%a7%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
函数f(x)的定义域为D，\forall x_1,x_2\in D，\\
当x_1&amp;lt;x_2时，恒有
\left\{\begin{array}{l}
f(x_1)&amp;lt;f(x_2)，则称f(x)单调递增\\
f(x_1)&amp;gt;f(x_2)，则称f(x)单调递减
\end{array}\right.
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：定义域D不一定连续，但考研几乎不考察不连续情形
$$
&lt;h2 id="函数周期性定义"&gt;函数周期性定义&lt;a class="anchor" href="#%e5%87%bd%e6%95%b0%e5%91%a8%e6%9c%9f%e6%80%a7%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
函数f(x)的定义域为D，如果存在一个正数l，\\
使得\forall x\in D，有(x\pm l)\in D且f(x\pm l)=f(x)\\
则称f(x)为周期函数
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>2-基本放大电路</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/2-%E5%9F%BA%E6%9C%AC%E6%94%BE%E5%A4%A7%E7%94%B5%E8%B7%AF/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/2-%E5%9F%BA%E6%9C%AC%E6%94%BE%E5%A4%A7%E7%94%B5%E8%B7%AF/</guid><description>&lt;h2 id="三种基本接法"&gt;三种基本接法&lt;a class="anchor" href="#%e4%b8%89%e7%a7%8d%e5%9f%ba%e6%9c%ac%e6%8e%a5%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403114832_193_5.jpg"&gt;
&lt;/div&gt;
&lt;p&gt;共射（图a） 共基（图b）共集（图c）&lt;/p&gt;
&lt;h2 id="常见的耦合方式"&gt;常见的耦合方式&lt;a class="anchor" href="#%e5%b8%b8%e8%a7%81%e7%9a%84%e8%80%a6%e5%90%88%e6%96%b9%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;直接耦合、阻容耦合、变压器耦合、光电耦合&lt;/p&gt;
&lt;h2 id="放大电路性能指标"&gt;放大电路性能指标&lt;a class="anchor" href="#%e6%94%be%e5%a4%a7%e7%94%b5%e8%b7%af%e6%80%a7%e8%83%bd%e6%8c%87%e6%a0%87"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;输入电阻 $ R_{in}$
：输入端看入的电阻，与信号源内阻无关； 对前级来说是负载电阻&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入电阻越大越好，从信号源索取的电流越小，对信号源负担越小&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;输出电阻 $R_{out}$
：输出端看入的电阻，与负载无关，信号源短路； 对后级来说是电源内阻&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输出电阻越小越好，电路输出更像“理想电压源”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;电压放大倍数 $\dot{A_u}$
：输出电压与输入电压之比，与负载有关&lt;/p&gt;
&lt;p&gt;电流放大倍数 $\dot{A_i}$
：输出电流与输入电流之比，与负载有关&lt;/p&gt;
&lt;p&gt;注：输入电压≠信号源电压（存在信号源内阻时）&lt;/p&gt;
&lt;h2 id="实用共射放大电路静态分析"&gt;实用共射放大电路静态分析&lt;a class="anchor" href="#%e5%ae%9e%e7%94%a8%e5%85%b1%e5%b0%84%e6%94%be%e5%a4%a7%e7%94%b5%e8%b7%af%e9%9d%99%e6%80%81%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403133629_194_5.jpg" width="33%"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403133630_195_5.jpg" width="34%"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403135301_196_5.jpg" width="30%"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;$R_{c}$
用于将电流信号转换为电压信号&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;直接耦合电路（图1）&lt;/strong&gt;：$I_{BQ}=\frac{V_{CC}-U_{BEQ}}{R_{b2}}-\frac{U_{BEQ}}{R_{b1}}$
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$R_{b1}$
用于给发射结提供静态电压&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;阻容耦合电路（图2）&lt;/strong&gt;：$I_{BQ}=\frac{V_{CC}-U_{BEQ}}{R_{b}}$
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;分压偏置阻容耦合电路（图3）&lt;/strong&gt;：$I_{EQ}=\frac{U_{BQ}-U_{BEQ}}{R_e}$
，$U_{BQ}=\frac{R_{b1}}{R_{b1}&amp;#43;R_{b2}}\cdot V_{CC}$
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$C_1,C_2$
防止前后级直流影响，$R_1,R_2$
用于提供偏置电压，$R_e$
用于稳定工作点，$C_e$
用于消除$R_e$
对放大倍数的削弱&lt;/li&gt;
&lt;li&gt;分压偏置电路 B与地之间 直流通路，可戴维宁等效 $U_s=\frac{R_{b1}}{R_{b1}&amp;#43;R_{b2}}\cdot V_{CC}$
，$R_{eq}=R_{b1}//R_{b2}$
&lt;/li&gt;
&lt;li&gt;图1与图3直流通路分压偏置效果相同（见下），图1中$R_{b1},R_{b2}$
可按图3 同理放置且电阻不变&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403142132_197_5.jpg" width="90%"&gt;
&lt;/div&gt;
&lt;h2 id="直流与交流通路图"&gt;直流与交流通路图&lt;a class="anchor" href="#%e7%9b%b4%e6%b5%81%e4%b8%8e%e4%ba%a4%e6%b5%81%e9%80%9a%e8%b7%af%e5%9b%be"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;电容&lt;/strong&gt;：隔直通交，直流通路中电容相当于断路，交流通路中电容相当于短路&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;交流与直流&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;交流通路中，直流电源相当于短路&lt;/li&gt;
&lt;li&gt;直流通路中，交流信号源也相当于短路&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;微变等效&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;等效电阻 $r_{be}=r_{bb}&amp;#39;&amp;#43;\frac{U_T}{I_{BQ}}$
，（$U_T\approx 26mV$
）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="微变等效电路计算"&gt;微变等效电路计算&lt;a class="anchor" href="#%e5%be%ae%e5%8f%98%e7%ad%89%e6%95%88%e7%94%b5%e8%b7%af%e8%ae%a1%e7%ae%97"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403165043_199_5.jpg" width="67%"&gt;
&lt;/div&gt;
$$

共射\left\{\begin{array}{l}
\dot{A}_u= \frac{\dot{U}_o}{\dot{U}_i} = -\frac{\beta R&amp;#39;_L}{r_{be}} \quad (R&amp;#39;_L = R_c \parallel R_L) \\
R_i = \frac{\dot{U}_i}{\dot{I}_i} = R_b \parallel r_{be} = R_{b1} \parallel R_{b2} \parallel r_{be} \\
R_o = R_c
\end{array}\right.

$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403165042_198_5.jpg" width="70%"&gt;
&lt;/div&gt;
$$

共射\left\{
\begin{aligned}
\dot{A}_u &amp;amp;= \frac{\dot{U}_o}{\dot{U}_i} = -\frac{\beta R&amp;#39;_L}{r_{be} &amp;#43; (1 &amp;#43; \beta) R_e} \quad (R&amp;#39;_L = R_c \parallel R_L) \\
R_i &amp;amp;= \frac{\dot{U}_i}{\dot{I}_i} = R_{b1} \parallel R_{b2} \parallel \left[ r_{be} &amp;#43; (1 &amp;#43; \beta) R_e \right] （局部法求端口电阻）\\
R_o &amp;amp;= R_c（集电极看入等效电阻ro&amp;gt;&amp;gt;R_c）
\end{aligned}
\right.

$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403170654_202_5.jpg" width="55%"&gt;
&lt;/div&gt;
$$

共集\left\{
\begin{aligned}
\dot A_u &amp;amp;=\frac{\dot{U}_o}{\dot{U}_i} =\frac{(1&amp;#43;\beta)R_e}{R_b&amp;#43;r_{be}&amp;#43;(1&amp;#43;\beta)R_e}\\
R_i &amp;amp;=R_b&amp;#43;r_{be}&amp;#43;(1&amp;#43;\beta)R_e（局部法求端口电阻）\\
R_o &amp;amp;=R_e \parallel \frac{R_b&amp;#43;r_{be}}{1&amp;#43;\beta}（局部法求端口电阻）
\end{aligned}
\right.

$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403171459_203_5.jpg" width="50%"&gt;
&lt;/div&gt;
$$

共基\left\{
\begin{aligned}
\dot{A}_u &amp;amp;= \frac{\dot{U}_o}{\dot{U}_i} = \frac{\dot{I}_c R_c}{\dot{I}_e R_e &amp;#43; \dot{I}_b r_{be}} = \frac{\beta R_c}{r_{be} &amp;#43; (1 &amp;#43; \beta) R_e} \\
R_i &amp;amp;= \frac{\dot{U}_i}{\dot{I}_i} = \frac{\dot{U}_i}{\dot{I}_e} = \frac{\dot{I}_e R_e &amp;#43; \dot{I}_b r_{be}}{\dot{I}_e} = R_e &amp;#43; \frac{r_{be}}{1 &amp;#43; \beta} \\
R_o &amp;amp;= R_c（集电极看入等效电阻ro&amp;gt;&amp;gt;R_c）
\end{aligned}
\right.

$$</description></item><item><title>2-矩阵</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/2-%E7%9F%A9%E9%98%B5/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/2-%E7%9F%A9%E9%98%B5/</guid><description>&lt;h1 id="矩阵"&gt;矩阵&lt;a class="anchor" href="#%e7%9f%a9%e9%98%b5"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;矩阵知识点较繁杂，灵活性很高，考查重难点&lt;/p&gt;
&lt;p&gt;矩阵相乘性质良好，矩阵相加性质很差，为考查难点&lt;/p&gt;
&lt;h2 id="可逆矩阵的定义"&gt;可逆矩阵的定义&lt;a class="anchor" href="#%e5%8f%af%e9%80%86%e7%9f%a9%e9%98%b5%e7%9a%84%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

设A,B是\textbf{n阶矩阵}，若有AB=BA=E，则称A,B互逆
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：A,B均为方阵时：AB=E\Leftrightarrow BA=E
$$
&lt;h2 id="等价矩阵"&gt;等价矩阵&lt;a class="anchor" href="#%e7%ad%89%e4%bb%b7%e7%9f%a9%e9%98%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\quad\ A,B同型，且r(A)=r(B)\\
\Leftrightarrow 存在可逆方阵P,Q，使B=PAQ
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：任意两个等价矩阵均可通过初等变换转化
$$
&lt;h2 id="矩阵的等价标准型"&gt;矩阵的等价标准型&lt;a class="anchor" href="#%e7%9f%a9%e9%98%b5%e7%9a%84%e7%ad%89%e4%bb%b7%e6%a0%87%e5%87%86%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\left[\begin{array}{}E_r&amp;amp;O\\O&amp;amp;O\end{array}\right],\quad \left[\begin{array}{}E_r&amp;amp;O\end{array}\right],\quad \left[\begin{array}{}E_r\\O\end{array}\right]
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：任意矩阵均可经初等变换转化为等价标准型
$$
&lt;h2 id="重要矩阵性质"&gt;重要矩阵性质&lt;a class="anchor" href="#%e9%87%8d%e8%a6%81%e7%9f%a9%e9%98%b5%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
AB=O\not\Leftrightarrow BA=O
$$
&lt;h2 id="几种重要矩阵"&gt;几种重要矩阵&lt;a class="anchor" href="#%e5%87%a0%e7%a7%8d%e9%87%8d%e8%a6%81%e7%9f%a9%e9%98%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
数量矩阵：kE\\
反对称矩阵：A^{T}=-A\quad(a_{ii}=0)
$$
&lt;h2 id="矩阵的秩"&gt;矩阵的秩&lt;a class="anchor" href="#%e7%9f%a9%e9%98%b5%e7%9a%84%e7%a7%a9"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
r(A)=k\\
\Leftrightarrow 存在k阶子式不为0，k&amp;#43;1阶子式全为0\\
\Leftrightarrow 最大线性无关组向量个数
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：
在行阶梯型下讨论非零行数（每台阶只能有一行）
$$
&lt;h2 id="施密特正交化"&gt;施密特正交化&lt;a class="anchor" href="#%e6%96%bd%e5%af%86%e7%89%b9%e6%ad%a3%e4%ba%a4%e5%8c%96"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\beta_1=\alpha_1
$$
&lt;p&gt;
&lt;/p&gt;
$$
\beta_2=\alpha_2-\frac{(\alpha_2,\beta_1)}{(\beta_1,\beta_1)}\beta_1\qquad(\alpha_2-\frac{|\alpha_2||\beta_1|\cos\theta}{|\beta_1||\beta_1|}\beta_1=a_2-\underbrace{|\alpha_2|\cos\theta}_{\alpha_2投影长度}\cdot\underbrace{\frac{\beta_1}{|\beta_1|}}_{单位化\beta_1})
$$
&lt;p&gt;
&lt;/p&gt;
$$
\beta_3=\alpha_3-\frac{(\alpha_3,\beta_1)}{(\beta_1,\beta_1)}\beta_1-\frac{(\alpha_3,\beta_2)}{(\beta_2,\beta_2)}\beta_2
$$
&lt;h2 id="矩阵的运算"&gt;矩阵的运算&lt;a class="anchor" href="#%e7%9f%a9%e9%98%b5%e7%9a%84%e8%bf%90%e7%ae%97"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
分配律：A(B\pm C)=AB\pm AC;\\
 结合律：A(BC)=(AB)C
$$
&lt;p&gt;
&lt;strong&gt;四大运算可交换&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>2-时域分析</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/2-%E6%97%B6%E5%9F%9F%E5%88%86%E6%9E%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/2-%E6%97%B6%E5%9F%9F%E5%88%86%E6%9E%90/</guid><description>&lt;h1 id="时域分析"&gt;时域分析&lt;a class="anchor" href="#%e6%97%b6%e5%9f%9f%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="时域尾1标准型"&gt;时域尾“1”标准型&lt;a class="anchor" href="#%e6%97%b6%e5%9f%9f%e5%b0%be1%e6%a0%87%e5%87%86%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

尾一型：G(s)=\frac{K(2s&amp;#43;1)(-3s&amp;#43;1)}{s^v(s&amp;#43;1)(-2s&amp;#43;1)(5s&amp;#43;1)}（便于计算稳态误差e_{ss}）\\
\ \\
开环增益、开环放大倍数K：
即尾“1”标准型下的比例系数，不一定是稳态增益(s^v\to0)
$$
&lt;h2 id="一阶系统单位阶跃响应"&gt;一阶系统单位阶跃响应&lt;a class="anchor" href="#%e4%b8%80%e9%98%b6%e7%b3%bb%e7%bb%9f%e5%8d%95%e4%bd%8d%e9%98%b6%e8%b7%83%e5%93%8d%e5%ba%94"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;图像重点记忆&lt;/strong&gt;&lt;/p&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-principal-of-automation-control/Markji_1751374341709.jpg" width="40%"&gt;
&lt;/div&gt;
$$
\Phi(s)=\frac{1}{Ts&amp;#43;1}（时间常数T）\quad
c(t)=1-e^{-\frac{t}{T}}\\
t=T\quad c(t)=63.2\%\\
t=2T\quad c(t)=86.5\%\\
t=3T\quad c(t)=95\%\\
t=4T\quad c(t)=98.2\%\\
可能以响应暗示T
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：脉冲响应c(t)=\frac{1}{T}e^{-\frac{1}{T}t}
$$
&lt;h2 id="典型二阶系统"&gt;典型二阶系统&lt;a class="anchor" href="#%e5%85%b8%e5%9e%8b%e4%ba%8c%e9%98%b6%e7%b3%bb%e7%bb%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
开环满足G(s)=\frac{b}{s(s&amp;#43;a)},且闭环系统为单位负反馈系统，则有\\
G(s)=\frac{\omega_n^2}{s(s&amp;#43;2\xi\omega_n)}\qquad
\Phi(s)=\frac{\omega_n^2}{s^2&amp;#43;2\xi\omega_ns&amp;#43;\omega_n^2}\\
\ \\
s_{1,2}=-\xi\omega_n\pm \sqrt{\xi^2-1}\ \omega_n
\left\{\begin{array}{ll}
\xi:&amp;amp;阻尼比\\
\omega_n:&amp;amp;无阻尼自然频率\\
\omega_d:&amp;amp; 有阻尼振荡频率(\omega_n\sqrt{1-\xi^2})（欠阻尼）
\end{array}\right.\\
\ \\
极点位置及阶跃响应曲线:\\
\xi=0（无阻尼）：两个虚根\quad s_{1,2}=\pm j\omega_n\\
0&amp;lt;\xi&amp;lt;1（欠阻尼）：两个不同的负复极点\quad s_{1,2}=-\xi\omega_n\pm j\sqrt{1-\xi^2}\omega_n\\
{\color{blue}注：\omega_n代表长度，\xi代表角度（以实部\xi\omega_n把握\beta大小）}\\
\xi=1（临界阻尼）：两个相同的负实极点\quad s_{1,2}=-\omega_n\\
\xi&amp;gt;1（过阻尼）：两个不同的负实极点\quad s_{1,2}=-\xi\omega_n\pm \sqrt{\xi^2-1}\omega_n\\
\xi&amp;lt;0（负阻尼）：两个正极点（略）
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：典型二阶系统传递函数，极点只可能同正、同负或同为零（一般二次方程无此特点）
$$
&lt;h2 id="二阶欠阻尼系统单位阶跃响应函数"&gt;二阶欠阻尼系统单位阶跃响应函数&lt;a class="anchor" href="#%e4%ba%8c%e9%98%b6%e6%ac%a0%e9%98%bb%e5%b0%bc%e7%b3%bb%e7%bb%9f%e5%8d%95%e4%bd%8d%e9%98%b6%e8%b7%83%e5%93%8d%e5%ba%94%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
h(t)=1-\frac{e^{-\xi \omega_n t}}{\sqrt{1-\xi^2}}\sin(\sqrt{1-\xi^2}\ \omega_nt&amp;#43;\beta)\quad
(\tan\beta=\frac{\sqrt{1-\xi^2}}{\xi})\quad 周期震荡曲线
$$
&lt;h2 id="不同输入下的系统响应间的关系"&gt;不同输入下的系统响应间的关系&lt;a class="anchor" href="#%e4%b8%8d%e5%90%8c%e8%be%93%e5%85%a5%e4%b8%8b%e7%9a%84%e7%b3%bb%e7%bb%9f%e5%93%8d%e5%ba%94%e9%97%b4%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\begin{array}{ll}
&amp;amp;输入&amp;amp;输出\\
单位脉冲&amp;amp; r_{\delta}(t)=\delta(t) &amp;amp; c_{\delta}(t)=c&amp;#39;_p(t) \\
单位阶跃&amp;amp; r_p(t)=1(t) &amp;amp; c_p(t)=c&amp;#39;_v(t)\\
单位斜坡&amp;amp; r_v(t)=t &amp;amp; c_v(t)=c&amp;#39;_a(t)\\
单位加速度&amp;amp;r_a(t)=\frac{t^2}{2}&amp;amp;\cdots \\
\end{array}\\
针对同一系统，输入满足导数关系，输出间同样满足导数关系
$$
&lt;h2 id="动态性能指标"&gt;动态性能指标&lt;a class="anchor" href="#%e5%8a%a8%e6%80%81%e6%80%a7%e8%83%bd%e6%8c%87%e6%a0%87"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;含零点的动态性能公式不考&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>2-输入信号与跟踪误差</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/2-%E8%BE%93%E5%85%A5%E4%BF%A1%E5%8F%B7%E4%B8%8E%E8%B7%9F%E8%B8%AA%E8%AF%AF%E5%B7%AE/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/2-%E8%BE%93%E5%85%A5%E4%BF%A1%E5%8F%B7%E4%B8%8E%E8%B7%9F%E8%B8%AA%E8%AF%AF%E5%B7%AE/</guid><description>&lt;h2 id="静态误差系数"&gt;静态误差系数&lt;a class="anchor" href="#%e9%9d%99%e6%80%81%e8%af%af%e5%b7%ae%e7%b3%bb%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 \left\{\begin{array}{}
比例 &amp;amp; \frac{A}{1&amp;#43;K_p} &amp;amp; K_p无量纲\\
\ \\
速度 &amp;amp; \frac{A}{K_v} &amp;amp; K_v 量纲为s^{-1}\\
\ \\
加速度 &amp;amp; \frac{A}{K_a} &amp;amp; K_a 量纲为s^{-2}
\end{array}\right.

$$
&lt;h2 id="动态误差系数"&gt;动态误差系数&lt;a class="anchor" href="#%e5%8a%a8%e6%80%81%e8%af%af%e5%b7%ae%e7%b3%bb%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\Phi(s)=\frac{E(s)}{r(s)}
$$
$$
e(t)=c_0r&amp;#43;c_1\dot{r}&amp;#43;c_2\ddot{r}&amp;#43;\dots
$$
&lt;h2 id="低频误差计算模型"&gt;低频误差计算模型&lt;a class="anchor" href="#%e4%bd%8e%e9%a2%91%e8%af%af%e5%b7%ae%e8%ae%a1%e7%ae%97%e6%a8%a1%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;输入信号频谱完全处于系统低频段（即低于第一个转折频率），此时传递函数可简化为低频模型，计算跟踪误差（与动态误差前几项系数对应）&lt;/p&gt;
&lt;h2 id="思考题"&gt;思考题&lt;a class="anchor" href="#%e6%80%9d%e8%80%83%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="怎样确定输入信号"&gt;怎样确定输入信号？&lt;a class="anchor" href="#%e6%80%8e%e6%a0%b7%e7%a1%ae%e5%ae%9a%e8%be%93%e5%85%a5%e4%bf%a1%e5%8f%b7"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;根据预定的执行任务&lt;/li&gt;
&lt;li&gt;对实际情况进行化简&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="系统的跟踪误差为什么由低频特性决定"&gt;系统的跟踪误差为什么由低频特性决定？&lt;a class="anchor" href="#%e7%b3%bb%e7%bb%9f%e7%9a%84%e8%b7%9f%e8%b8%aa%e8%af%af%e5%b7%ae%e4%b8%ba%e4%bb%80%e4%b9%88%e7%94%b1%e4%bd%8e%e9%a2%91%e7%89%b9%e6%80%a7%e5%86%b3%e5%ae%9a"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;低频段斜率决定系统型别，决定系统对不同阶输入的跟踪性；
开环增益决定稳态误差大小&lt;/p&gt;
&lt;h4 id="系统中频段特性对跟踪误差影响"&gt;系统中频段特性对跟踪误差影响&lt;a class="anchor" href="#%e7%b3%bb%e7%bb%9f%e4%b8%ad%e9%a2%91%e6%ae%b5%e7%89%b9%e6%80%a7%e5%af%b9%e8%b7%9f%e8%b8%aa%e8%af%af%e5%b7%ae%e5%bd%b1%e5%93%8d"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;中频段不直接影响跟踪误差，但可能由于设计不当导致误差波动增大&lt;/p&gt;
&lt;h4 id="高频段特性由什么决定"&gt;高频段特性由什么决定？&lt;a class="anchor" href="#%e9%ab%98%e9%a2%91%e6%ae%b5%e7%89%b9%e6%80%a7%e7%94%b1%e4%bb%80%e4%b9%88%e5%86%b3%e5%ae%9a"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;高频段由系统的未建模动态、噪声、执行机构带宽、滤波器等决定，设计通常希望高频段增益衰减，抑制噪声与抗干扰能力&lt;/p&gt;
&lt;h4 id="实际设计中为什么不用阶跃或斜坡作为输入来分析系统跟踪性能"&gt;实际设计中为什么不用阶跃或斜坡作为输入来分析系统跟踪性能？&lt;a class="anchor" href="#%e5%ae%9e%e9%99%85%e8%ae%be%e8%ae%a1%e4%b8%ad%e4%b8%ba%e4%bb%80%e4%b9%88%e4%b8%8d%e7%94%a8%e9%98%b6%e8%b7%83%e6%88%96%e6%96%9c%e5%9d%a1%e4%bd%9c%e4%b8%ba%e8%be%93%e5%85%a5%e6%9d%a5%e5%88%86%e6%9e%90%e7%b3%bb%e7%bb%9f%e8%b7%9f%e8%b8%aa%e6%80%a7%e8%83%bd"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;阶跃不易实现且损伤系统，斜坡精度与维护成本高，一般用正弦或随机信号&lt;/p&gt;
&lt;h4 id="阶跃斜坡在系统设计分析中起什么作用"&gt;阶跃、斜坡在系统设计分析中起什么作用？&lt;a class="anchor" href="#%e9%98%b6%e8%b7%83%e6%96%9c%e5%9d%a1%e5%9c%a8%e7%b3%bb%e7%bb%9f%e8%ae%be%e8%ae%a1%e5%88%86%e6%9e%90%e4%b8%ad%e8%b5%b7%e4%bb%80%e4%b9%88%e4%bd%9c%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;系统型别判定，稳态误差计算依据，理论实验，教学实验，硬件测试&lt;/p&gt;
&lt;h4 id="随动系统选i型或二型的依据"&gt;随动系统选I型或二型的依据？&lt;a class="anchor" href="#%e9%9a%8f%e5%8a%a8%e7%b3%bb%e7%bb%9f%e9%80%89i%e5%9e%8b%e6%88%96%e4%ba%8c%e5%9e%8b%e7%9a%84%e4%be%9d%e6%8d%ae"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;精度要求，稳定性与动态性能&lt;/p&gt;</description></item><item><title>2-一维随机变量</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/2-%E4%B8%80%E7%BB%B4%E9%9A%8F%E6%9C%BA%E5%8F%98%E9%87%8F/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/2-%E4%B8%80%E7%BB%B4%E9%9A%8F%E6%9C%BA%E5%8F%98%E9%87%8F/</guid><description>&lt;h1 id="一维随机变量"&gt;一维随机变量&lt;a class="anchor" href="#%e4%b8%80%e7%bb%b4%e9%9a%8f%e6%9c%ba%e5%8f%98%e9%87%8f"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;重难点：分布函数法求函数分布、概率密度&lt;/p&gt;
&lt;h2 id="分布函数的充要条件与性质"&gt;分布函数的充要条件与性质&lt;a class="anchor" href="#%e5%88%86%e5%b8%83%e5%87%bd%e6%95%b0%e7%9a%84%e5%85%85%e8%a6%81%e6%9d%a1%e4%bb%b6%e4%b8%8e%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

F(x)=P(X\leqslant x),\quad F(x)=\int_{-\infty}^xf(x)dx 
$$
&lt;p&gt;
&lt;/p&gt;
$$
充要条件：\\
\Leftrightarrow F(x)单调不减\\
\quad\ F(x)右连续\\
\quad\ {\color{blue}F(-\infty)=0,F(&amp;#43;\infty)=1}\\
\quad\ 0\leqslant F(x)\leqslant 1\\（前三条为最简条件）
$$
&lt;p&gt;
&lt;/p&gt;
$$
性质：\\
P(x_1&amp;lt;X\leqslant x_2)=F(x_2)-F(x_1)\\
P(X=x)=F(x)-F(x-0)（连续时为0）
$$
&lt;p&gt;
&lt;/p&gt;
$$
分布函数：F^2(x),\quad F_1(x)F_2(x)\\
1-[1-F(x)]^k,\quad 1-[1-F_1(x)][1-F_2(x)]\cdots
$$
&lt;h2 id="分布律概率密度的充要条件"&gt;分布律、概率密度的充要条件&lt;a class="anchor" href="#%e5%88%86%e5%b8%83%e5%be%8b%e6%a6%82%e7%8e%87%e5%af%86%e5%ba%a6%e7%9a%84%e5%85%85%e8%a6%81%e6%9d%a1%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
分布律：\\
0\leqslant p_i\leqslant 1;\\
\sum_ip_i=1
$$
&lt;p&gt;
&lt;/p&gt;
$$
概率密度：\\
\left\{
\begin{array}{l}
f(x)\geqslant 0;\\
\int_{-\infty}^{&amp;#43;\infty}f(x)dx=1
\end{array}
\right.\\
\ \\
定义法：\\
 f(x)=F&amp;#39;(x)或\int_{-\infty}^xf(x)dx=F(x)，其中F(x)为分布函数
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：
概率密度：2f(x)F(x),\quad f_1(x)F_2(x)&amp;#43;f_2(x)F_1(x)
$$
&lt;h2 id="常用离散型分布及其期望方差"&gt;常用离散型分布及其期望、方差&lt;a class="anchor" href="#%e5%b8%b8%e7%94%a8%e7%a6%bb%e6%95%a3%e5%9e%8b%e5%88%86%e5%b8%83%e5%8f%8a%e5%85%b6%e6%9c%9f%e6%9c%9b%e6%96%b9%e5%b7%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
0-1分布B(1,p)\\
二项分布B(n,p)\\
泊松分布P(\lambda)\\
几何分布G(p)\\
\sout{超几何分布H(n,N,M)}
$$
&lt;p&gt;&lt;strong&gt;注意起始项k&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>2-异步电机及其控制</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/2-%E5%BC%82%E6%AD%A5%E7%94%B5%E6%9C%BA%E5%8F%8A%E5%85%B6%E6%8E%A7%E5%88%B6/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/2-%E5%BC%82%E6%AD%A5%E7%94%B5%E6%9C%BA%E5%8F%8A%E5%85%B6%E6%8E%A7%E5%88%B6/</guid><description>&lt;h2 id="基本概念"&gt;基本概念&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e6%a6%82%e5%bf%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;工作原理&lt;/strong&gt;：转子转速低于磁场转速&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;旋转磁场转速&lt;/strong&gt;： $n_s=\frac{60f_s}{p} \quad （p为极对数）$
&lt;/p&gt;
&lt;p&gt;增大极对数p，转矩变大，转速下降&lt;/p&gt;
&lt;p&gt;注：空载转差率 $0.1-0.5\%$
， 额定转差率 $2-6\%$
&lt;/p&gt;
&lt;h2 id="磁势分析"&gt;磁势分析&lt;a class="anchor" href="#%e7%a3%81%e5%8a%bf%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;两相电机&lt;/strong&gt;：电压相位相差90°，绕组电角差90°，合成圆旋磁场；（即使绕组分布不均，也能产生圆旋磁场）
&lt;/p&gt;
$$
 \left\{\begin{array}{l}
F_c=\frac{1}{2}F\sin(\omega t-x)&amp;#43;\frac{1}{2}F\sin(\omega t&amp;#43;x)\\
\ \\
F_f=\frac{1}{2}F\sin(\omega t-x)&amp;#43;\frac{1}{2}F\sin(\omega t&amp;#43;x-180\degree)
\end{array}\right.\\
\ \\
F_c&amp;#43;F_f=F\sin(\omega t-x)
$$
&lt;p&gt;&lt;strong&gt;三相电机&lt;/strong&gt;：电压相位差120°，绕组电角差120°，合成圆旋磁场；（天然分布均匀）
&lt;/p&gt;
$$

\left\{\begin{array}{l}
F_A=\frac{1}{2}F\sin(\omega t-x)&amp;#43;\frac{1}{2}F\sin(\omega t&amp;#43;x)\\
\ \\
F_B=\frac{1}{2}F\sin(\omega t-x)&amp;#43;\frac{1}{2}F\sin(\omega t&amp;#43;x-240\degree)\\
\ \\
F_C=\frac{1}{2}F\sin(\omega t-x)&amp;#43;\frac{1}{2}F\sin(\omega t&amp;#43;x&amp;#43;240\degree)\\
\end{array}\right.\\
\ \\
F_A&amp;#43;F_B&amp;#43;F_C=\frac{3}{2}F\sin(\omega t-x)
$$
&lt;h2 id="典型特性"&gt;典型特性&lt;a class="anchor" href="#%e5%85%b8%e5%9e%8b%e7%89%b9%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260404155608_225_5.jpg" width="40%"&gt;
&lt;/div&gt;
$$
转差率：s=\frac{n_s-n}{n_s}
$$
&lt;h2 id="电压调速"&gt;电压调速&lt;a class="anchor" href="#%e7%94%b5%e5%8e%8b%e8%b0%83%e9%80%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260404155607_224_5.jpg" width="40%"&gt;
&lt;/div&gt;
$$
虚线上为稳定区，虚线下为不稳定区\\
（负载变大，速度降低，转矩变大）
$$
&lt;h2 id="变频调速"&gt;变频调速&lt;a class="anchor" href="#%e5%8f%98%e9%a2%91%e8%b0%83%e9%80%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
U_1 \propto f_1 \Phi_m \\
T \propto \Phi_m I_2 
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260404155606_223_5.jpg" width="45%"&gt;
&lt;/div&gt;
$$

恒转矩（恒磁通）调速：降频，降压\\
虚线代表\frac{E_1}{f_1}为常数，
实线代表\frac{U_1}{f_1}为常数\\
E_1为定子电路感应电势，U_1为相电压

$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260404155610_227_5.jpg" width="50%"&gt;
&lt;/div&gt;
$$

恒功率（恒压）调速：升频，降磁通\\
P=T\cdot \omega

$$
&lt;h2 id="串电阻调速"&gt;串电阻调速&lt;a class="anchor" href="#%e4%b8%b2%e7%94%b5%e9%98%bb%e8%b0%83%e9%80%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260404155609_226_5.jpg" width="45%"&gt;
&lt;/div&gt;
$$
电阻越小，机械特性越硬
$$</description></item><item><title>2-状态空间表达式的解</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/2-%E7%8A%B6%E6%80%81%E7%A9%BA%E9%97%B4%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%9A%84%E8%A7%A3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/2-%E7%8A%B6%E6%80%81%E7%A9%BA%E9%97%B4%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%9A%84%E8%A7%A3/</guid><description>&lt;h1 id="状态空间表达式的解"&gt;状态空间表达式的解&lt;a class="anchor" href="#%e7%8a%b6%e6%80%81%e7%a9%ba%e9%97%b4%e8%a1%a8%e8%be%be%e5%bc%8f%e7%9a%84%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="连续状态转移矩阵及其性质"&gt;连续状态转移矩阵及其性质&lt;a class="anchor" href="#%e8%bf%9e%e7%bb%ad%e7%8a%b6%e6%80%81%e8%bd%ac%e7%a7%bb%e7%9f%a9%e9%98%b5%e5%8f%8a%e5%85%b6%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

定义：x(t)=\Phi(t)x_0=e^{At}x_0\\
e^{At}=I&amp;#43;At&amp;#43;\frac{1}{2!}A^2t^2&amp;#43;\cdots&amp;#43;\frac{1}{n!}A^nt^n&amp;#43;\cdots
$$
&lt;p&gt;
&lt;/p&gt;
$$
\begin{array}{ll}
性质一：\Phi(t)\Phi(\tau)=\Phi(t&amp;#43;\tau)\quad &amp;amp; 即e^{At}e^{A\tau}=e^{A(T&amp;#43;\tau)}\\
\ \\
性质二：\Phi(t-t)=I\quad &amp;amp;即e^{A(t-t)}=\Phi(0)=I\\
\ \\
性质三：[\Phi(t)]^{-1}=\Phi(-t)\quad &amp;amp;即[e^{At}]^{-1}=e^{-At}\\
\ \\
性质四：\dot{\Phi}(t)=A\Phi(t)=\Phi(t)A &amp;amp;
\dot{\Phi}(0)=A\\
\ \\
性质五：当且仅当AB=BA时，e^{At}e^{Bt}=e^{(A&amp;#43;B)t} &amp;amp;（对于n\times n方阵A,B）
\end{array}
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：e^{At}为一种记法，与指数运算高度统一
$$
&lt;h2 id="状态转移矩阵的计算"&gt;状态转移矩阵的计算&lt;a class="anchor" href="#%e7%8a%b6%e6%80%81%e8%bd%ac%e7%a7%bb%e7%9f%a9%e9%98%b5%e7%9a%84%e8%ae%a1%e7%ae%97"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;考研考查最多三维矩阵，灵活选择使用&lt;/strong&gt;
&lt;/p&gt;
$$
变换为对角线标准型：T^{-1}AT=\Lambda\\
{\color{blue}前提：可相似对角化}\\
\Phi(t)=e^{At}=T(I&amp;#43;\Lambda t&amp;#43;\frac{1}{2!}\Lambda^2t^2&amp;#43;\cdots&amp;#43;\frac{1}{n!}\Lambda^nt^n&amp;#43;\cdots)T^{-1}=
T
\left(
\begin{array}{}
e^{\lambda_1t}&amp;amp;\\
&amp;amp;e^{\lambda_2t}\\
&amp;amp;&amp;amp;\ddots\\
&amp;amp;&amp;amp;&amp;amp;e^{\lambda_nt}
\end{array}
\right)
T^{-1}
$$
$$
拉氏反变换（阶次\leqslant 3时）：e^{At}=\mathscr{L^{-1}}[(sI-A)^{-1}]\quad （实则对矩阵中元素\mathscr{L}^{-1}）\\
sX(s)-x(0)=AX(s)\\
x(t)=\mathscr{L}^{-1}[(sI-A)^{-1}]x(0)
$$
&lt;h2 id="线性定常非齐次的解"&gt;线性定常非齐次的解&lt;a class="anchor" href="#%e7%ba%bf%e6%80%a7%e5%ae%9a%e5%b8%b8%e9%9d%9e%e9%bd%90%e6%ac%a1%e7%9a%84%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
x(t)=\underbrace{\Phi(t)x(0)}_{初始状态转移}&amp;#43;\underbrace{\int_0^t\Phi(t-\tau)Bu(\tau)d\tau}_{激励状态转移}\quad (实则对矩阵中元素积分)
$$
&lt;p&gt;
&lt;/p&gt;
$$
推导：sX-x(0) =AX(s) &amp;#43; BU(s) \\
\Rightarrow (sI-A)X(s)=x(0)&amp;#43;BU(s)\\
\Rightarrow X(s)= (sI-A)^{-1}x(0)&amp;#43; \underbrace{(sI-A)^{-1}BU(s)}_{\mathscr{L}^{-1}略}
$$
&lt;h2 id="离散定常非齐次的解"&gt;离散定常非齐次的解&lt;a class="anchor" href="#%e7%a6%bb%e6%95%a3%e5%ae%9a%e5%b8%b8%e9%9d%9e%e9%bd%90%e6%ac%a1%e7%9a%84%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\begin{array}{rl}
x(k)&amp;amp;=\underbrace{G^kx(0)}_{初始状态转移}&amp;#43;\underbrace{\sum_{j=0}^{k-1}G^{(k-1)-j}Hu(j)}_{激励状态转移}\\
\ \\
&amp;amp;=G^{k}x(0)&amp;#43;G^{k-1}Hu(0)&amp;#43;G^{k-2}Hu(1)&amp;#43;\cdots&amp;#43;&amp;#43;GHu(k-2)&amp;#43;Hu(k-1)
\end{array}
$$
&lt;h2 id="状态转移矩阵反解系统"&gt;状态转移矩阵反解系统&lt;a class="anchor" href="#%e7%8a%b6%e6%80%81%e8%bd%ac%e7%a7%bb%e7%9f%a9%e9%98%b5%e5%8f%8d%e8%a7%a3%e7%b3%bb%e7%bb%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;考查状态转移矩阵的性质&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Without ToC</title><link>https://oballon.github.io/Knowledge-Shore/archive/example/table-of-contents/without-toc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/example/table-of-contents/without-toc/</guid><description>&lt;h1 id="at-me-ipso-nepotibus-nunc-celebratior-genus"&gt;At me ipso nepotibus nunc celebratior genus&lt;a class="anchor" href="#at-me-ipso-nepotibus-nunc-celebratior-genus"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="tanto-oblite"&gt;Tanto oblite&lt;a class="anchor" href="#tanto-oblite"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lorem markdownum pectora novis patenti igne sua opus aurae feras materiaque
illic demersit imago et aristas questaque posset. Vomit quoque suo inhaesuro
clara. Esse cumque, per referri triste. Ut exponit solisque communis in tendens
vincetis agisque iamque huic bene ante vetat omina Thebae rates. Aeacus servat
admonitu concidit, ad resimas vultus et rugas vultu &lt;strong&gt;dignamque&lt;/strong&gt; Siphnon.&lt;/p&gt;
&lt;p&gt;Quam iugulum regia simulacra, plus meruit humo pecorumque haesit, ab discedunt
dixit: ritu pharetramque. Exul Laurenti orantem modo, per densum missisque labor
manibus non colla unum, obiectat. Tu pervia collo, fessus quae Cretenque Myconon
crate! Tegumenque quae invisi sudore per vocari quaque plus ventis fluidos. Nodo
perque, fugisse pectora sorores.&lt;/p&gt;</description></item><item><title>反向传播算法</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/2-%E5%8F%8D%E5%90%91%E4%BC%A0%E6%92%AD%E7%AE%97%E6%B3%95/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/2-%E5%8F%8D%E5%90%91%E4%BC%A0%E6%92%AD%E7%AE%97%E6%B3%95/</guid><description>&lt;h2 id="算法概述"&gt;算法概述&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95%e6%a6%82%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="什么是反向传播"&gt;什么是反向传播？&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af%e5%8f%8d%e5%90%91%e4%bc%a0%e6%92%ad"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;反向传播（Backpropagation）&lt;/strong&gt; 是训练神经网络的核心算法，用于高效计算损失函数对网络参数的梯度。&lt;/p&gt;
&lt;h3 id="为什么需要反向传播"&gt;为什么需要反向传播？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e5%8f%8d%e5%90%91%e4%bc%a0%e6%92%ad"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：神经网络有大量参数，如何高效计算梯度？&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决方案&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;前向传播&lt;/strong&gt;：计算预测值&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;反向传播&lt;/strong&gt;：从输出层向输入层传播误差，计算梯度&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="核心思想"&gt;核心思想&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e6%80%9d%e6%83%b3"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;前向传播&lt;/strong&gt;：计算每层的输出&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;计算损失&lt;/strong&gt;：比较预测值和真实值&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;反向传播&lt;/strong&gt;：从输出层开始，逐层计算梯度&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更新参数&lt;/strong&gt;：使用梯度下降更新参数&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="链式法则"&gt;链式法则&lt;a class="anchor" href="#%e9%93%be%e5%bc%8f%e6%b3%95%e5%88%99"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="数学基础"&gt;数学基础&lt;a class="anchor" href="#%e6%95%b0%e5%ad%a6%e5%9f%ba%e7%a1%80"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;链式法则（Chain Rule）&lt;/strong&gt; 是反向传播的数学基础。&lt;/p&gt;
&lt;p&gt;对于复合函数 $y = f(g(x))$
：&lt;/p&gt;
$$
\frac{dy}{dx} = \frac{dy}{dg} \cdot \frac{dg}{dx}
$$
&lt;h3 id="多变量链式法则"&gt;多变量链式法则&lt;a class="anchor" href="#%e5%a4%9a%e5%8f%98%e9%87%8f%e9%93%be%e5%bc%8f%e6%b3%95%e5%88%99"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;对于 $z = f(x, y)$
，其中 $x = g(t)$
, $y = h(t)$
：&lt;/p&gt;
$$
\frac{dz}{dt} = \frac{\partial z}{\partial x} \cdot \frac{dx}{dt} &amp;#43; \frac{\partial z}{\partial y} \cdot \frac{dy}{dt}
$$
&lt;h3 id="神经网络中的应用"&gt;神经网络中的应用&lt;a class="anchor" href="#%e7%a5%9e%e7%bb%8f%e7%bd%91%e7%bb%9c%e4%b8%ad%e7%9a%84%e5%ba%94%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;在神经网络中，损失函数是参数的复合函数：&lt;/p&gt;
$$
L = L(y, \hat{y}) = L(y, f_N(\ldots f_2(f_1(x, w_1, b_1), w_2, b_2) \ldots, w_N, b_N))
$$
&lt;p&gt;使用链式法则计算梯度：&lt;/p&gt;</description></item><item><title>数据类型</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/2-%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/2-%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/</guid><description>&lt;h1 id="数据类型"&gt;数据类型&lt;a class="anchor" href="#%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Python 中的数据类型可以分为两大类：&lt;strong&gt;基本数据类型&lt;/strong&gt;和&lt;strong&gt;容器类型&lt;/strong&gt;。理解这些数据类型是掌握 Python 的基础。&lt;/p&gt;
&lt;h2 id="数字类型"&gt;数字类型&lt;a class="anchor" href="#%e6%95%b0%e5%ad%97%e7%b1%bb%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="整数int"&gt;整数（int）&lt;a class="anchor" href="#%e6%95%b4%e6%95%b0int"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;整数可以是正数、负数或零，没有大小限制（Python 3）。&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 整数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 大整数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;big_number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;123456789012345678901234567890&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 不同进制的整数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;binary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mb"&gt;0b1010&lt;/span&gt; &lt;span class="c1"&gt;# 二进制，结果是 10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;octal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mo"&gt;0o12&lt;/span&gt; &lt;span class="c1"&gt;# 八进制，结果是 10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;hexadecimal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0xA&lt;/span&gt; &lt;span class="c1"&gt;# 十六进制，结果是 10&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="浮点数float"&gt;浮点数（float）&lt;a class="anchor" href="#%e6%b5%ae%e7%82%b9%e6%95%b0float"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;浮点数表示带小数点的数字。&lt;/p&gt;</description></item><item><title>自动微分（Autograd）</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/2-%E8%87%AA%E5%8A%A8%E5%BE%AE%E5%88%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/2-%E8%87%AA%E5%8A%A8%E5%BE%AE%E5%88%86/</guid><description>&lt;h1 id="自动微分autograd"&gt;自动微分（Autograd）&lt;a class="anchor" href="#%e8%87%aa%e5%8a%a8%e5%be%ae%e5%88%86autograd"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;自动微分是 PyTorch 的核心特性之一，它能够自动计算梯度，这是训练神经网络的基础。理解自动微分机制对于掌握 PyTorch 至关重要。&lt;/p&gt;
&lt;p&gt;在深度学习中，自动求导主要用于两个方面：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;在训练神经网络时计算梯度&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;进行反向传播算法的实现&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;自动微分基于&lt;strong&gt;链式法则（Chain Rule）&lt;/strong&gt;，复合函数 $y = f(g(x))$
 的导数为：
&lt;/p&gt;
$$
\frac{dy}{dx} = \frac{dy}{dg} \cdot \frac{dg}{dx}
$$
&lt;p&gt;在深度学习中，模型由多层复合而成，自动求导沿计算图从输出到输入逐层应用链式法则，高效计算梯度。&lt;/p&gt;
&lt;h2 id="核心机制"&gt;核心机制&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e6%9c%ba%e5%88%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;前向传播&lt;/strong&gt;：执行操作时构建有向无环图（DAG），叶子节点为输入张量，根节点为输出&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;记录操作&lt;/strong&gt;：每个张量的 &lt;code&gt;grad_fn&lt;/code&gt; 指向创建它时对应的运算信息，形成计算历史链&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;反向传播&lt;/strong&gt;：调用 &lt;code&gt;backward()&lt;/code&gt; 时，从根到叶遍历图，按链式法则累积梯度，记入&lt;code&gt;.grad&lt;/code&gt;中&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动态图&lt;/strong&gt;：每次迭代重新构建有向无环图，支持 Python 控制流（if/for）&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="基本使用"&gt;基本使用&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="启用梯度追踪"&gt;启用梯度追踪&lt;a class="anchor" href="#%e5%90%af%e7%94%a8%e6%a2%af%e5%ba%a6%e8%bf%bd%e8%b8%aa"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建需要梯度的张量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tensor&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;3.0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;requires_grad&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;requires_grad: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;requires_grad&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 进行计算&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 反向传播&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;backward&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查看梯度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;x.grad: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;grad&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# [2., 4., 6.]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="requires_grad-参数"&gt;requires_grad 参数&lt;a class="anchor" href="#requires_grad-%e5%8f%82%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建时指定&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tensor&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;requires_grad&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 后续修改&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;requires_grad_&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;requires_grad_&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用 detach() 分离&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;detach&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# y 不追踪梯度&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="计算图"&gt;计算图&lt;a class="anchor" href="#%e8%ae%a1%e7%ae%97%e5%9b%be"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;PyTorch 使用动态计算图来追踪操作：&lt;/p&gt;</description></item><item><title>3-步进电机及其控制</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/3-%E6%AD%A5%E8%BF%9B%E7%94%B5%E6%9C%BA%E5%8F%8A%E5%85%B6%E6%8E%A7%E5%88%B6/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/3-%E6%AD%A5%E8%BF%9B%E7%94%B5%E6%9C%BA%E5%8F%8A%E5%85%B6%E6%8E%A7%E5%88%B6/</guid><description>&lt;h2 id="工作原理"&gt;工作原理&lt;a class="anchor" href="#%e5%b7%a5%e4%bd%9c%e5%8e%9f%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 \frac{Z_r}{2p}=K\pm\frac{1}{m}\\
定子磁场走全相（A,B,C,D）,转子走一齿（无论p与m关系）

$$
$$

\left\{\begin{array}{l}
p为极对数，是相数的整数倍\\
m为相数，如四相步进电机（A,B,C,D）\\
K为整数
\end{array}\right.\\
注：异步电机极对数与相数解耦\\
p增大，速度降低，扭矩增加
$$
&lt;h2 id="性能指标"&gt;性能指标&lt;a class="anchor" href="#%e6%80%a7%e8%83%bd%e6%8c%87%e6%a0%87"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

齿距角：\theta_t=\frac{360}{Z_r}\\
步距角：\theta_b=\frac{360}{Z_r \cdot N}\\
N=km
\left\{\begin{array}{l}
k为单双拍制\\
m为相数
\end{array}\right.\\
转子转速：n=\frac{60f}{Z_r \cdot N}

$$
&lt;h2 id="矩角特性"&gt;矩角特性&lt;a class="anchor" href="#%e7%9f%a9%e8%a7%92%e7%89%b9%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405103416_229_5.jpg" width="50%"&gt;
&lt;/div&gt;
$$
电角：以齿距角为参考，齿距对应360°（\theta_e=\theta\cdot Z_r）
$$
&lt;h2 id="单步运行"&gt;单步运行&lt;a class="anchor" href="#%e5%8d%95%e6%ad%a5%e8%bf%90%e8%a1%8c"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405103415_228_5.jpg" width="60%"&gt;
&lt;/div&gt;
$$
连续运行前提：T_L&amp;lt;T_{st}\\
负载连续运行的步距角（电角）仍为120°
$$</description></item><item><title>3-电阻电路分析</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/3-%E7%94%B5%E9%98%BB%E7%94%B5%E8%B7%AF%E5%88%86%E6%9E%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/3-%E7%94%B5%E9%98%BB%E7%94%B5%E8%B7%AF%E5%88%86%E6%9E%90/</guid><description>&lt;h2 id="回路电流法"&gt;回路电流法&lt;a class="anchor" href="#%e5%9b%9e%e8%b7%af%e7%94%b5%e6%b5%81%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 求电流，列电压\\
设回路电流，对各回路电流，列回路电压方程（基尔霍夫电压定律）\\
注：互阻电压看电流方向（同正异负）

$$
&lt;h2 id="节点电压法"&gt;节点电压法&lt;a class="anchor" href="#%e8%8a%82%e7%82%b9%e7%94%b5%e5%8e%8b%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

求电压，列电流\\
选定参考节点，设节点电压，对各节点电流，列节点电压方程（基尔霍夫电流定律）

$$
&lt;h2 id="无伴电压源电流源处理"&gt;无伴电压源、电流源处理&lt;a class="anchor" href="#%e6%97%a0%e4%bc%b4%e7%94%b5%e5%8e%8b%e6%ba%90%e7%94%b5%e6%b5%81%e6%ba%90%e5%a4%84%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

无伴电流源
\left\{\begin{array}{l}
回路电流法
\left\{\begin{array}{l}
① 电流源仅处于一个回路，\cdots\\
② 设电压U，增列电流方程（I=I_1-I_2）
\end{array}\right.\\
节点电压法：简通法（规整）
\end{array}\right.

$$
$$

无伴电压源
\left\{\begin{array}{l}
节点电压法
\left\{\begin{array}{l}
① 无伴电压源负极为参考节点，\cdots\\
② 设电压源电流为I，增列电压方程（U=U_1-U_2）
\end{array}\right.\\
回路电流法：简通法（规整）
\end{array}\right.

$$</description></item><item><title>3-二维随机变量</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/3-%E4%BA%8C%E7%BB%B4%E9%9A%8F%E6%9C%BA%E5%8F%98%E9%87%8F/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/3-%E4%BA%8C%E7%BB%B4%E9%9A%8F%E6%9C%BA%E5%8F%98%E9%87%8F/</guid><description>&lt;h1 id="二维随机变量"&gt;二维随机变量&lt;a class="anchor" href="#%e4%ba%8c%e7%bb%b4%e9%9a%8f%e6%9c%ba%e5%8f%98%e9%87%8f"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;重难点：多维随机变量函数的分布、独立性的判断与使用（区间讨论略难）&lt;/p&gt;
&lt;p&gt;分布函数法求函数分布、概率密度&lt;/p&gt;
&lt;h2 id="二维离散型随机变量分布"&gt;二维离散型随机变量分布&lt;a class="anchor" href="#%e4%ba%8c%e7%bb%b4%e7%a6%bb%e6%95%a3%e5%9e%8b%e9%9a%8f%e6%9c%ba%e5%8f%98%e9%87%8f%e5%88%86%e5%b8%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

联合概率分布：\\
P(X=x_i,Y=y_j)=p_{ij}\\
边缘概率分布：\\
P(X=x_i)=\sum_{j=1}^{\infty}p_{ij}=p_{i\cdot}\\
条件概率分布：\\
P(X=x_i|Y=y_j)=\frac{P(X=x_i,Y=y_j)}{P(Y=y_j)}=\frac{p_{ij}}{p_{\cdot j}}\quad(p_{\cdot j}&amp;gt;0)\\
联合分布函数：\\
F(x,y)=\sum_{x_i\leqslant x}\sum_{y_j\leqslant y} p_{ij}
$$
&lt;h2 id="二维连续型随机变量分布"&gt;二维连续型随机变量分布&lt;a class="anchor" href="#%e4%ba%8c%e7%bb%b4%e8%bf%9e%e7%bb%ad%e5%9e%8b%e9%9a%8f%e6%9c%ba%e5%8f%98%e9%87%8f%e5%88%86%e5%b8%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
联合概率密度：\\
f(x,y)=\frac{\partial^2F(x,y)}{\partial x\partial y}（f(x,y)连续处）\\
\begin{array}{ll}
边缘分布函数：&amp;amp;边缘概率密度：\\
F_X(x)=\int_{-\infty}^{x}du\int_{-\infty}^{&amp;#43;\infty}f(u,y)dy={\color{blue}F(x,&amp;#43;\infty)}
&amp;amp;f_X(x)=\int_{-\infty}^{&amp;#43;\infty}f(x,y)dy\\
条件分布函数：&amp;amp;条件概率密度：\\
F_{X|Y}(x|y)=\int_{-\infty}^x\frac{f(u,y)}{f_Y(y)}du\quad (f_Y(y)&amp;gt;0)
&amp;amp;
f_{X|Y}(x|y)=\frac{f(x,y)}{f_Y(y)}\quad (f_Y(y)&amp;gt;0)
\end{array}\\
联合概率分布：\\
F(x,y)=\int_{-\infty}^{x}\int_{-\infty}^{y}f(u,v)dudv
$$
&lt;h2 id="二维条件概率理解"&gt;二维条件概率理解&lt;a class="anchor" href="#%e4%ba%8c%e7%bb%b4%e6%9d%a1%e4%bb%b6%e6%a6%82%e7%8e%87%e7%90%86%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;先有条件分布函数，后有条件概率密度&lt;/strong&gt;
&lt;/p&gt;
$$
条件分布函数：\\
F_{X|Y}(x|y)=\int_{-\infty}^x\frac{f(u,y)}{f_Y(y)}du\quad (f_Y(y)&amp;gt;0)\\
（已知事件Y=y发生的条件下F(x,y)的概率，“线积分”）\\
\ \\
条件概率密度：\\
f_{X|Y}(x|y)=\frac{f(x,y)}{f_Y(y)}\quad (f_Y(y)&amp;gt;0)
$$
&lt;h2 id="联合分布函数的充要条件"&gt;联合分布函数的充要条件&lt;a class="anchor" href="#%e8%81%94%e5%90%88%e5%88%86%e5%b8%83%e5%87%bd%e6%95%b0%e7%9a%84%e5%85%85%e8%a6%81%e6%9d%a1%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
充要条件：\\
\Leftrightarrow F(x,y)单调不减\\
\quad\ F(x,y)是x,y的右连续函数\\
\quad\ {\color{blue}F(-\infty,y)=F(x,-\infty)=F(-\infty,-\infty)=0,F(&amp;#43;\infty,&amp;#43;\infty)=1}\\
\quad\ 0\leqslant F(x,y)\leqslant 1\\（前三条为最简条件）
$$
&lt;p&gt;
&lt;/p&gt;
$$
性质：\\
P\{x_1&amp;lt;X\leqslant x_2,y_1&amp;lt;Y\leqslant y_2\}=F(x_2,y_2)-F(x_1,y_2)-F(x_2,y_1)&amp;#43;F(x_1,y_1)
$$
&lt;h2 id="联合分布律联合概率密度的充要条件"&gt;联合分布律、联合概率密度的充要条件&lt;a class="anchor" href="#%e8%81%94%e5%90%88%e5%88%86%e5%b8%83%e5%be%8b%e8%81%94%e5%90%88%e6%a6%82%e7%8e%87%e5%af%86%e5%ba%a6%e7%9a%84%e5%85%85%e8%a6%81%e6%9d%a1%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
联合分布律：\\
0\leqslant p_{ij}\leqslant 1;\\
\sum_i\sum_j p_{ij}=1
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>3-根轨迹分析</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/3-%E6%A0%B9%E8%BD%A8%E8%BF%B9%E5%88%86%E6%9E%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/3-%E6%A0%B9%E8%BD%A8%E8%BF%B9%E5%88%86%E6%9E%90/</guid><description>&lt;h1 id="根轨迹分析"&gt;根轨迹分析&lt;a class="anchor" href="#%e6%a0%b9%e8%bd%a8%e8%bf%b9%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

根轨迹校正不考\\
\ \\
根轨迹考查核心为
\left\{\begin{array}{l}
画图\\
解根
\end{array}\right.需灵活利用几何关系、灵活使用根轨迹各结论
$$
&lt;h2 id="复域首1标准型"&gt;复域首“1”标准型&lt;a class="anchor" href="#%e5%a4%8d%e5%9f%9f%e9%a6%961%e6%a0%87%e5%87%86%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;必须首先化为标准型&lt;/strong&gt;&lt;/p&gt;
$$
G(s)=\frac{K^*(s-2)(s&amp;#43;3)}{(s&amp;#43;2)(s-1)(s&amp;#43;4)}（便于获取零极点）\\
\ \\
根轨迹增益K^*：首“1”标准型下的比例系数
$$
&lt;h2 id="根轨迹的本质"&gt;根轨迹的本质&lt;a class="anchor" href="#%e6%a0%b9%e8%bd%a8%e8%bf%b9%e7%9a%84%e6%9c%ac%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
多项式D(s)=0解根：含参数多项式方程分析根的原理，利用开环传递函数归纳出大致的根轨迹
$$
&lt;h2 id="根轨迹的不确定性"&gt;根轨迹的不确定性&lt;a class="anchor" href="#%e6%a0%b9%e8%bd%a8%e8%bf%b9%e7%9a%84%e4%b8%8d%e7%a1%ae%e5%ae%9a%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;根轨迹绘制原理为不完备方法&lt;/strong&gt;
&lt;/p&gt;
$$
根轨迹绘制原理存在不确定情形，但考研不会出现
$$
&lt;h2 id="根轨迹基本概念"&gt;根轨迹基本概念&lt;a class="anchor" href="#%e6%a0%b9%e8%bd%a8%e8%bf%b9%e5%9f%ba%e6%9c%ac%e6%a6%82%e5%bf%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;参数变化时，系统特征根变化的轨迹&lt;/strong&gt;
&lt;strong&gt;利用开环传递函数分析闭环根轨迹&lt;/strong&gt;
&lt;/p&gt;
$$
\Phi(s)=\frac{G_1(s)}{1&amp;#43;G_1(s)H(s)}\\
特征式\Delta=1&amp;#43;G_1(s)H(s)=0，即G_1(s)H(s)=-1\\
在复平面s域中，{\color{blue}以向量把握}\\
模值条件：|G(s)H(s)|=\frac{k^*|s-z_1||s-z_2|\cdots|s-z_m|}{|s-p_1||s-p_2|\cdots|s-p_n|}=1\qquad (k^*:0\rightarrow &amp;#43;\infty)\\
注：知s即可求k^*=\frac{|s-p_1||s-p_2|\cdots|s-p_n|}{{|s-z_1||s-z_2|\cdots|s-z_m|}}\\
\ \\
相角条件：\angle G(s)H(s)=\sum_{i=1}^{m}\underbrace{\angle(s-z_i)}_{零点指向s}-\sum_{j=1}^{n}\underbrace{\angle(s-p_j)}_{极点指向s}=(2k&amp;#43;1)\pi
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：s点满足相角条件\Leftrightarrow s点在根轨迹上（对平面上任意点，总存在k^*满足模值条件）
$$
&lt;h2 id="根轨迹坐标图规范"&gt;根轨迹坐标图规范&lt;a class="anchor" href="#%e6%a0%b9%e8%bd%a8%e8%bf%b9%e5%9d%90%e6%a0%87%e5%9b%be%e8%a7%84%e8%8c%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
实轴\text{Re}，虚轴\text{Im}
$$
&lt;h2 id="根轨迹基本原理180度根轨迹-0度根轨迹"&gt;根轨迹基本原理(180度根轨迹) (0度根轨迹）&lt;a class="anchor" href="#%e6%a0%b9%e8%bd%a8%e8%bf%b9%e5%9f%ba%e6%9c%ac%e5%8e%9f%e7%90%86180%e5%ba%a6%e6%a0%b9%e8%bd%a8%e8%bf%b9-0%e5%ba%a6%e6%a0%b9%e8%bd%a8%e8%bf%b9"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;实轴上的根轨迹，渐近线，出射角，与虚轴交点，根之和，分离点&lt;/p&gt;
$$
1.起于极点，终于零点与无穷远处（正无穷与负无穷相接）\\
分支数为极点数，根轨迹对称于实轴
$$
&lt;p&gt;
&lt;/p&gt;
$$
2.实轴上根轨迹（充要）：右方奇数个零极点（0度根轨迹为偶数个）
$$
&lt;p&gt;
&lt;/p&gt;
$$
3.渐近线（0度根轨迹为2kπ）：\\
\left\{
\begin{array}{l}
\theta=\frac{(2k&amp;#43;1)\pi}{n-m} \\
\\
\sigma=\frac{\sum p_i -\sum z_i}{n-m}
\end{array}
\right.\\
注：\frac{(2k&amp;#43;1)\pi}{2}=\pm\frac{\pi}{2};\quad\frac{(2k&amp;#43;1)\pi}{3}=\pm\frac{\pi}{3},\pi;\quad \frac{(2k&amp;#43;1)\pi}{4}=\pm\frac{\pi}{4},\pm\frac{3\pi}{4};\quad \frac{(2k&amp;#43;1)\pi}{5}=\pm\frac{\pi}{5},\pm\frac{3\pi}{5},\pi
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>3-极限</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/3-%E6%9E%81%E9%99%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/3-%E6%9E%81%E9%99%90/</guid><description>&lt;h1 id="极限"&gt;极限&lt;a class="anchor" href="#%e6%9e%81%e9%99%90"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="理解关键"&gt;$\circ(\Delta)$
理解关键&lt;a class="anchor" href="#%e7%90%86%e8%a7%a3%e5%85%b3%e9%94%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
凡出现\circ(\Delta),即默认\Delta\to 0,强调动态性
$$
&lt;h2 id="无界与无穷大发散与无界的关系"&gt;无界与无穷大，发散与无界的关系&lt;a class="anchor" href="#%e6%97%a0%e7%95%8c%e4%b8%8e%e6%97%a0%e7%a9%b7%e5%a4%a7%e5%8f%91%e6%95%a3%e4%b8%8e%e6%97%a0%e7%95%8c%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;无界包含：无穷大，无界振荡，无界分段函数等等&lt;/p&gt;
&lt;p&gt;发散包含：无界，有界振荡，有界分段函数等等&lt;/p&gt;
&lt;p&gt;（收敛是很狭隘的）&lt;/p&gt;
&lt;h2 id="无穷小与无穷大的关系"&gt;无穷小与无穷大的关系&lt;a class="anchor" href="#%e6%97%a0%e7%a9%b7%e5%b0%8f%e4%b8%8e%e6%97%a0%e7%a9%b7%e5%a4%a7%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\lim\limits_{x\to a}f(x)=\infty \ \Rightarrow \ \lim\limits_{x\to a}\frac{1}{f(x)}=0
$$
$$
\lim\limits_{x\to a}f(x)=0 \ 且 \ f(x)\neq 0 \ \Rightarrow \ \lim\limits_{x\to a}\frac{1}{f(x)}=\infty
$$
&lt;h2 id="极限的三条性质"&gt;极限的三条性质&lt;a class="anchor" href="#%e6%9e%81%e9%99%90%e7%9a%84%e4%b8%89%e6%9d%a1%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;以极限的“趋向特质”把握&lt;/strong&gt;
&lt;/p&gt;
$$
唯一性\\
\left\{
\begin{array}{}
有界性\\
保号性
\end{array}
\right.
$$
&lt;h2 id="极限关键理解"&gt;极限关键理解&lt;a class="anchor" href="#%e6%9e%81%e9%99%90%e5%85%b3%e9%94%ae%e7%90%86%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\lim\limits_{x\to a}f(x)=A 
$$
&lt;p&gt;
&lt;/p&gt;
$$
\Leftrightarrow x\to a时，f(x)\to A
$$
&lt;p&gt;
&lt;/p&gt;
$$
\not\Leftrightarrow x\to a时，f(x)=A
$$
&lt;h2 id="极限四则运算前提及用法"&gt;极限四则运算前提及用法&lt;a class="anchor" href="#%e6%9e%81%e9%99%90%e5%9b%9b%e5%88%99%e8%bf%90%e7%ae%97%e5%89%8d%e6%8f%90%e5%8f%8a%e7%94%a8%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
前提：极限均存在时，才可拆分运算
$$
&lt;!-- $$\lim\limits_{x\to \infty}f(x)与\lim\limits_{x\to \infty}g(x)（x\to \infty的方式不同）$$ --&gt;
$$
存在&amp;#43;存在=存在\\
存在&amp;#43;不存在=不存在\\
不存在&amp;#43;不存在=不确定（正负相消）\\
（若同号，则极限不存在）
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>3-集成运算放大电路</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/3-%E9%9B%86%E6%88%90%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E7%94%B5%E8%B7%AF/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/3-%E9%9B%86%E6%88%90%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E7%94%B5%E8%B7%AF/</guid><description>&lt;h2 id="电流源"&gt;电流源&lt;a class="anchor" href="#%e7%94%b5%e6%b5%81%e6%ba%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 三极管工作在放大区
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403195308_207_5.jpg" width="32%"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403195307_205_5.jpg" width="33%"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403195308_206_5.jpg" width="32%"&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;镜像电流源&lt;/strong&gt;：$I_R=\frac{V_{CC}-V_{BE}}{R}$
， $I_{C1}=\frac{\beta}{\beta&amp;#43;2}I_R\approx I_R$
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;比例电流源&lt;/strong&gt;：$I_R=\frac{V_{CC}-V_{BE}}{R&amp;#43;R_{e0}}$
， $\frac{I_{C1}}{I_R}=\frac{R_{e0}}{R_{e1}}$
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;微电流源&lt;/strong&gt;：$I_{C1}\approx I_{E1}=\frac{V_{BE0}-V_{BE1}}{R_{e}}$
, $I_R=\frac{V_{CC}-V_{BE0}}{R}$
&lt;/p&gt;
&lt;h2 id="差分放大电路性能指标"&gt;差分放大电路性能指标&lt;a class="anchor" href="#%e5%b7%ae%e5%88%86%e6%94%be%e5%a4%a7%e7%94%b5%e8%b7%af%e6%80%a7%e8%83%bd%e6%8c%87%e6%a0%87"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;差模放大倍数 $\dot{A_{ud}}=\frac{u_{od}}{u_{Id}}$
（输入电压不砍半）&lt;/p&gt;
&lt;p&gt;共模放大倍数 $\dot{A_{uc}}=\frac{u_{oc}}{u_{Ic}}$
&lt;/p&gt;
&lt;p&gt;共模抑制比 $K_{CMR}=\left|\frac{\dot{A_{ud}}}{\dot{A_{uc}}}\right|$
&lt;/p&gt;
&lt;p&gt;输入、输出电阻以共射电路分析即可&lt;/p&gt;
&lt;p&gt;注：输入电压≠信号源电压（存在信号源内阻时）&lt;/p&gt;
&lt;h2 id="差分放大电路静态分析"&gt;差分放大电路静态分析&lt;a class="anchor" href="#%e5%b7%ae%e5%88%86%e6%94%be%e5%a4%a7%e7%94%b5%e8%b7%af%e9%9d%99%e6%80%81%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403205540_209_5.jpg" width="50%"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;$-V_{EE}用于设定静态工作点$
，以共射电路计算即可&lt;/li&gt;
&lt;li&gt;$R_e用于稳定静态工作点$
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="差分放大电路差模输入"&gt;差分放大电路差模输入&lt;a class="anchor" href="#%e5%b7%ae%e5%88%86%e6%94%be%e5%a4%a7%e7%94%b5%e8%b7%af%e5%b7%ae%e6%a8%a1%e8%be%93%e5%85%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403205541_211_5.jpg"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;两输入端输入等大相反的电压 $\frac{u_{Id}}{2}$
&lt;/li&gt;
&lt;li&gt;差模双端、单端输出均不为 0&lt;/li&gt;
&lt;li&gt;交流分析中$R_e$
相当于短路；若$R_e$
替换为电流源，微变等效电路中相当于短路&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="差分放大电路共模输入"&gt;差分放大电路共模输入&lt;a class="anchor" href="#%e5%b7%ae%e5%88%86%e6%94%be%e5%a4%a7%e7%94%b5%e8%b7%af%e5%85%b1%e6%a8%a1%e8%be%93%e5%85%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403205539_208_5.jpg"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;两输入端输入相同电压 $u_{Ic}$
&lt;/li&gt;
&lt;li&gt;共模双端输出为 0（$\dot{A}_{uc}=0$
）；共模单端输出不为 0 （$\dot{A}_{uc}\neq0$
）&lt;/li&gt;
&lt;li&gt;等效射极电阻为 $2R_e$
；若$R_e$
替换为电流源，微变等效电路中相当于断路&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="单端输入差分放大电路"&gt;单端输入差分放大电路&lt;a class="anchor" href="#%e5%8d%95%e7%ab%af%e8%be%93%e5%85%a5%e5%b7%ae%e5%88%86%e6%94%be%e5%a4%a7%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260403205541_210_5.jpg"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;单端输入电路可等效为共模输入 $\frac{u_{I}}{2}$
 与差模输入 $u_{I}$
 叠加&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>3-能控性能观性</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/3-%E8%83%BD%E6%8E%A7%E6%80%A7%E8%83%BD%E8%A7%82%E6%80%A7/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/3-%E8%83%BD%E6%8E%A7%E6%80%A7%E8%83%BD%E8%A7%82%E6%80%A7/</guid><description>&lt;h1 id="能控性能观性"&gt;&amp;ldquo;&amp;ldquo;能控性能观性&amp;rdquo;&amp;rdquo;&lt;a class="anchor" href="#%e8%83%bd%e6%8e%a7%e6%80%a7%e8%83%bd%e8%a7%82%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="能控能观性定义"&gt;能控、能观性定义&lt;a class="anchor" href="#%e8%83%bd%e6%8e%a7%e8%83%bd%e8%a7%82%e6%80%a7%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

u(t)对状态矢量x(t)的控制性（对任意状态均能控，则系统能控）：\\
存在一个分段连续的输入u(t)，能在有限时间区间内，使系统由某一初始状态x(t_0)，转移至指定的任意终端状态x(t)
$$
&lt;p&gt;
&lt;/p&gt;
$$
y(t)对状态矢量x(t)的观测性（对任意状态均能观，则系统能观）：\\
对任意给定的u，在有限观测时间内t_f&amp;gt;t_0，使得根据[t_0,t_f]期间的输出y(t)能唯一地确定系统在初始时刻的状态x(t_0)\\
$$
&lt;h2 id="离散化对系统性能影响"&gt;离散化对系统性能影响&lt;a class="anchor" href="#%e7%a6%bb%e6%95%a3%e5%8c%96%e5%af%b9%e7%b3%bb%e7%bb%9f%e6%80%a7%e8%83%bd%e5%bd%b1%e5%93%8d"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
1. 能控或能观的连续系统，离散化后不一定能保持其能控或能观性\\
2. 不能控或不能观的系统，无论采样周期如何选择，离散化后一定不能控或不能观
$$
&lt;h2 id="能控能观的判定方法"&gt;能控、能观的判定方法&lt;a class="anchor" href="#%e8%83%bd%e6%8e%a7%e8%83%bd%e8%a7%82%e7%9a%84%e5%88%a4%e5%ae%9a%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
是否友矩阵标准型（四类）\\
\ \\
约旦标准型判据（记，勿深究）\\
\ \\
能控、能观判别矩阵行、列满秩（核心）\\
\ \\
\text{SISO}系统c(sI-A)^{-1}b，(sI-A)^{-1}b是否零极点对消
$$
&lt;h2 id="友矩阵标准型判定"&gt;友矩阵标准型判定&lt;a class="anchor" href="#%e5%8f%8b%e7%9f%a9%e9%98%b5%e6%a0%87%e5%87%86%e5%9e%8b%e5%88%a4%e5%ae%9a"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
系统矩阵A为友矩阵或其转置，对应b,c也应为标准型\\
观测量，控制量多了不一定能控、能观
$$
&lt;h2 id="能控性能观性判别矩阵"&gt;能控性、能观性判别矩阵&lt;a class="anchor" href="#%e8%83%bd%e6%8e%a7%e6%80%a7%e8%83%bd%e8%a7%82%e6%80%a7%e5%88%a4%e5%88%ab%e7%9f%a9%e9%98%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
行满秩即能控：\\
M=(b, Ab, A^2b, \cdots, A^{n-1}b)\\
M=(B, AB, A^2B, \cdots, A^{n-1}B)\\
M=(H, GH, G^2H, \cdots, G^{n-1}H)
$$
&lt;p&gt;
&lt;/p&gt;
$$
列满秩即能观：\\
N=\begin{pmatrix}
 c \\
 cA \\
\vdots \\
 cA^{n-1}
\end{pmatrix}\quad N=\begin{pmatrix}
 C \\
 CA \\
\vdots \\
 CA^{n-1}
\end{pmatrix}\quad
N=\begin{pmatrix}
 C \\
 CG \\
\vdots \\
 CG^{n-1}
\end{pmatrix}
$$
&lt;h2 id="约旦标准型判断能控能观"&gt;约旦标准型判断能控、能观&lt;a class="anchor" href="#%e7%ba%a6%e6%97%a6%e6%a0%87%e5%87%86%e5%9e%8b%e5%88%a4%e6%96%ad%e8%83%bd%e6%8e%a7%e8%83%bd%e8%a7%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;结论可能存在问题，建议用判别矩阵&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>3-向量组与线性方程组</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/3-%E5%90%91%E9%87%8F%E7%BB%84%E4%B8%8E%E7%BA%BF%E6%80%A7%E6%96%B9%E7%A8%8B%E7%BB%84/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/3-%E5%90%91%E9%87%8F%E7%BB%84%E4%B8%8E%E7%BA%BF%E6%80%A7%E6%96%B9%E7%A8%8B%E7%BB%84/</guid><description>&lt;h1 id="向量组与线性方程组"&gt;向量组与线性方程组&lt;a class="anchor" href="#%e5%90%91%e9%87%8f%e7%bb%84%e4%b8%8e%e7%ba%bf%e6%80%a7%e6%96%b9%e7%a8%8b%e7%bb%84"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;难点：向量组的相关性证明&lt;/p&gt;
&lt;h2 id="常用结论"&gt;常用结论&lt;a class="anchor" href="#%e5%b8%b8%e7%94%a8%e7%bb%93%e8%ae%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

初等行变换，不改变列相关性\\
初等列变换，不改变行相关性\\
（一般变换可能改变）
$$
&lt;p&gt;
&lt;/p&gt;
$$
增加k行（列），秩最多增加k
$$
&lt;h2 id="相关性与线性表出重要结论"&gt;相关性与线性表出重要结论&lt;a class="anchor" href="#%e7%9b%b8%e5%85%b3%e6%80%a7%e4%b8%8e%e7%ba%bf%e6%80%a7%e8%a1%a8%e5%87%ba%e9%87%8d%e8%a6%81%e7%bb%93%e8%ae%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
相关的向量组加向量仍相关\\
无关的向量组减向量仍无关
$$
&lt;p&gt;
&lt;/p&gt;
$$
相关的向量组减分量仍相关\\
无关的向量组加分量仍无关
$$
&lt;p&gt;
&lt;/p&gt;
$$
一个向量相关\Leftrightarrow零向量\\
两个向量相关\Leftrightarrow成比例
$$
&lt;p&gt;
&lt;/p&gt;
$$
若n维向量组\alpha_1,\alpha_2,\cdots,\alpha_k线性无关，\alpha_{k&amp;#43;1}=\lambda_1\alpha_1&amp;#43;\lambda_2\alpha_2&amp;#43;\cdots&amp;#43;\lambda_k\alpha_k(\lambda_i\neq0,i=1,2,\cdots,k)\\
则\alpha_1,\alpha_2,\cdots,\alpha_k,\alpha_{k&amp;#43;1}中任意小于k个向量都线性无关
$$
&lt;h2 id="极大线性无关组求解"&gt;极大线性无关组求解&lt;a class="anchor" href="#%e6%9e%81%e5%a4%a7%e7%ba%bf%e6%80%a7%e6%97%a0%e5%85%b3%e7%bb%84%e6%b1%82%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
极大线性无关组选取规则：\\
列长逐小至大选取向量(1,2,3\cdots)，缺项需整理，满足逐小至大(1,2,3\cdots)\\
1.习惯上选取行阶梯型下的台角向量\\
2.逐小至大(1,2,3\cdots)，列长相同者地位等同，可自由替换
$$
&lt;h2 id="线性相关与齐次解"&gt;线性相关与齐次解&lt;a class="anchor" href="#%e7%ba%bf%e6%80%a7%e7%9b%b8%e5%85%b3%e4%b8%8e%e9%bd%90%e6%ac%a1%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\quad\ k_1\alpha_1&amp;#43;k_2\alpha_2&amp;#43;\cdots&amp;#43;k_s\alpha_s=0（探讨k是否全为零）\\
\Leftrightarrow \alpha_1,\alpha_2,\cdots,\alpha_m中存在向量是其余向量的线性组合
$$
&lt;p&gt;
&lt;/p&gt;
$$
列向量组(\alpha_1,\alpha_2,\cdots,\alpha_s)线性无关\Leftrightarrow 齐次线性方程组(\alpha_1,\alpha_2,\cdots,\alpha_s)\left(\substack{x_1\\ x_2\\ \vdots\\ x_s}\right)=0只有零解\Leftrightarrow r(\alpha_1,\alpha_2,\cdots,\alpha_s)=s
$$
&lt;h2 id="线性表出与非齐次解"&gt;线性表出与非齐次解&lt;a class="anchor" href="#%e7%ba%bf%e6%80%a7%e8%a1%a8%e5%87%ba%e4%b8%8e%e9%9d%9e%e9%bd%90%e6%ac%a1%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
k_1\alpha_1&amp;#43;k_2\alpha_2&amp;#43;\cdots&amp;#43;k_s\alpha_s=\beta（探讨k是否存在）\\
（若\beta\neq0，则k一定不全为零）
$$
&lt;p&gt;
&lt;/p&gt;
$$
\beta可由(\alpha_1,\alpha_2,\cdots,\alpha_s)表示\Leftrightarrow 非齐次线性方程组(\alpha_1,\alpha_2,\cdots,\alpha_s)\left(\substack{x_1\\ x_2\\ \vdots\\ x_s}\right)=\beta有解\Leftrightarrow r(\alpha_1,\alpha_2,\cdots,\alpha_s)=r(\alpha_1,\alpha_2,\cdots,\alpha_s,\beta)\\
表示法唯一（唯一解）\Leftrightarrow \alpha_1,\alpha_2,\cdots,\alpha_s线性无关
$$
&lt;h2 id="线性方程组解的性质"&gt;线性方程组解的性质&lt;a class="anchor" href="#%e7%ba%bf%e6%80%a7%e6%96%b9%e7%a8%8b%e7%bb%84%e8%a7%a3%e7%9a%84%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
全部解的构成：齐次通解&amp;#43;非齐次特解\\
（非齐次通解中，除去含k项，即为“非齐次特解因子”）
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>3-噪声</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/3-%E5%99%AA%E5%A3%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/3-%E5%99%AA%E5%A3%B0/</guid><description>&lt;h2 id="噪声与干扰的区别"&gt;噪声与干扰的区别&lt;a class="anchor" href="#%e5%99%aa%e5%a3%b0%e4%b8%8e%e5%b9%b2%e6%89%b0%e7%9a%84%e5%8c%ba%e5%88%ab"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;噪声：系统内部或外部产生的随机、不规则的扰动，无法测得&lt;/p&gt;
&lt;p&gt;干扰：来自系统外其他发射源或信号源的确定性、规则的不希望信号，可以测得&lt;/p&gt;
&lt;h2 id="相关函数"&gt;相关函数&lt;a class="anchor" href="#%e7%9b%b8%e5%85%b3%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 R(\tau)=EX(t)EX(t&amp;#43;\tau)=\int_{-\infty}^{&amp;#43;\infty}\int_{-\infty}^{&amp;#43;\infty}x_1x_2p(x_1,x_2;\tau)dx_1dx_2\\
均值为零的协方差函数，表示相隔\tau的两个最忌变量的协方差\\
表征了一个零均值的平稳随机过程的统计特性

$$
&lt;h2 id="谱密度"&gt;谱密度&lt;a class="anchor" href="#%e8%b0%b1%e5%af%86%e5%ba%a6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\Phi(\omega)=\lim\limits_{T\to\infty}\frac{1}{2T}|X_T(j\omega)|^2\quad
表示频域上x(t)的平均功率密度
$$
&lt;h2 id="谱密度与相关函数"&gt;谱密度与相关函数&lt;a class="anchor" href="#%e8%b0%b1%e5%af%86%e5%ba%a6%e4%b8%8e%e7%9b%b8%e5%85%b3%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\Phi(\omega)=\int_{-\infty}^{&amp;#43;\infty}R(\tau)e^{-j\omega\tau}d\tau\\
R(\tau)=\frac{1}{2\pi}\int_{-\infty}^{&amp;#43;\infty}\Phi(\omega)e^{j\omega\tau}d\omega \\
R(\tau) 量纲：X量纲^2/(rad/s)
$$
&lt;h2 id="其他概念"&gt;其他概念&lt;a class="anchor" href="#%e5%85%b6%e4%bb%96%e6%a6%82%e5%bf%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;常值谱密度&lt;/strong&gt;: 假设噪声在0~$\omega_f$
内有恒定的谱密度&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;等效噪声带宽&lt;/strong&gt;：与其相当的一理想滤波器带宽，在白噪声作用下两者均方输出相等&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;白噪声&lt;/strong&gt;：谱密度为常值，从0频率一直延伸到大大超出系统带宽&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;抑制扰动&lt;/strong&gt;：低频增益应高于均方误差确定的值，第一个转折频率应高于输入信号谱密度宽度&lt;/p&gt;
&lt;p&gt;注：理想滤波器带宽越宽，噪声输出越大&lt;/p&gt;
&lt;h2 id="思考题"&gt;思考题&lt;a class="anchor" href="#%e6%80%9d%e8%80%83%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="随机信号作用下的系统性能指标"&gt;随机信号作用下的系统性能指标？&lt;a class="anchor" href="#%e9%9a%8f%e6%9c%ba%e4%bf%a1%e5%8f%b7%e4%bd%9c%e7%94%a8%e4%b8%8b%e7%9a%84%e7%b3%bb%e7%bb%9f%e6%80%a7%e8%83%bd%e6%8c%87%e6%a0%87"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;均方误差，信噪比&lt;/p&gt;
&lt;h4 id="获得谱密度的方法"&gt;获得谱密度的方法？&lt;a class="anchor" href="#%e8%8e%b7%e5%be%97%e8%b0%b1%e5%af%86%e5%ba%a6%e7%9a%84%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;直接法：需要多个样本
相关函数法：均方误差小&lt;/p&gt;
&lt;h4 id="高增益会放大噪声误差如何解释该如何取"&gt;高增益会放大噪声误差，如何解释？该如何取？&lt;a class="anchor" href="#%e9%ab%98%e5%a2%9e%e7%9b%8a%e4%bc%9a%e6%94%be%e5%a4%a7%e5%99%aa%e5%a3%b0%e8%af%af%e5%b7%ae%e5%a6%82%e4%bd%95%e8%a7%a3%e9%87%8a%e8%af%a5%e5%a6%82%e4%bd%95%e5%8f%96"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;高增益不能放大有用误差，也放大噪声误差&lt;/p&gt;
&lt;p&gt;K大，跟踪误差小，噪声误差大；K小，跟踪误差大，噪声误差小；K应取适中&lt;/p&gt;
&lt;h4 id=""&gt;&lt;a class="anchor" href="#"&gt;#&lt;/a&gt;&lt;/h4&gt;</description></item><item><title>激活函数</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/3-%E6%BF%80%E6%B4%BB%E5%87%BD%E6%95%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/3-%E6%BF%80%E6%B4%BB%E5%87%BD%E6%95%B0/</guid><description>&lt;h2 id="激活函数的作用"&gt;激活函数的作用&lt;a class="anchor" href="#%e6%bf%80%e6%b4%bb%e5%87%bd%e6%95%b0%e7%9a%84%e4%bd%9c%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="为什么需要激活函数"&gt;为什么需要激活函数？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e6%bf%80%e6%b4%bb%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：没有激活函数的神经网络只是线性变换的组合：&lt;/p&gt;
$$
y = W_3(W_2(W_1 x &amp;#43; b_1) &amp;#43; b_2) &amp;#43; b_3 = W&amp;#39;x &amp;#43; b&amp;#39;
$$
&lt;p&gt;仍然是线性函数！&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决方案&lt;/strong&gt;：在每层之间添加&lt;strong&gt;非线性激活函数&lt;/strong&gt;：&lt;/p&gt;
$$
y = f_3(W_3 \cdot f_2(W_2 \cdot f_1(W_1 x &amp;#43; b_1) &amp;#43; b_2) &amp;#43; b_3)
$$
&lt;h3 id="激活函数的作用-1"&gt;激活函数的作用&lt;a class="anchor" href="#%e6%bf%80%e6%b4%bb%e5%87%bd%e6%95%b0%e7%9a%84%e4%bd%9c%e7%94%a8-1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;引入非线性&lt;/strong&gt;：使网络能够学习复杂模式&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;决定输出范围&lt;/strong&gt;：限制输出值域&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;影响梯度流动&lt;/strong&gt;：影响反向传播的梯度&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="常见激活函数"&gt;常见激活函数&lt;a class="anchor" href="#%e5%b8%b8%e8%a7%81%e6%bf%80%e6%b4%bb%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-sigmoid函数"&gt;1. Sigmoid函数&lt;a class="anchor" href="#1-sigmoid%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="公式"&gt;公式&lt;a class="anchor" href="#%e5%85%ac%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\sigma(x) = \frac{1}{1 &amp;#43; e^{-x}}
$$
&lt;h4 id="特性"&gt;特性&lt;a class="anchor" href="#%e7%89%b9%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输出范围&lt;/strong&gt;：$(0, 1)$
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;导数&lt;/strong&gt;：$\sigma&amp;#39;(x) = \sigma(x)(1 - \sigma(x))$
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;输出在0-1之间，适合概率&lt;/li&gt;
&lt;li&gt;平滑可微&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;梯度消失&lt;/strong&gt;：在饱和区域梯度接近0&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;非零中心&lt;/strong&gt;：输出均值不为0，影响梯度&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;计算较慢&lt;/strong&gt;：涉及指数运算&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="图像"&gt;图像&lt;a class="anchor" href="#%e5%9b%be%e5%83%8f"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; 1 | ╱╲
 | ╱ ╲
 0.5 | ╱ ╲
 | ╱ ╲
 0 |_╱________╲___
 -5 0 5&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="2-tanh函数"&gt;2. Tanh函数&lt;a class="anchor" href="#2-tanh%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="公式-1"&gt;公式&lt;a class="anchor" href="#%e5%85%ac%e5%bc%8f-1"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\tanh(x) = \frac{e^x - e^{-x}}{e^x &amp;#43; e^{-x}}
$$
&lt;h4 id="特性-1"&gt;特性&lt;a class="anchor" href="#%e7%89%b9%e6%80%a7-1"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输出范围&lt;/strong&gt;：$(-1, 1)$
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;导数&lt;/strong&gt;：$\tanh&amp;#39;(x) = 1 - \tanh^2(x)$
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;零中心&lt;/strong&gt;：输出均值约为0&lt;/li&gt;
&lt;li&gt;比Sigmoid梯度更大&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;仍有梯度消失问题&lt;/li&gt;
&lt;li&gt;计算较慢&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="与sigmoid的关系"&gt;与Sigmoid的关系&lt;a class="anchor" href="#%e4%b8%8esigmoid%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\tanh(x) = 2\sigma(2x) - 1
$$
&lt;h3 id="3-relu函数rectified-linear-unit"&gt;3. ReLU函数（Rectified Linear Unit）&lt;a class="anchor" href="#3-relu%e5%87%bd%e6%95%b0rectified-linear-unit"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="公式-2"&gt;公式&lt;a class="anchor" href="#%e5%85%ac%e5%bc%8f-2"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\text{ReLU}(x) = \max(0, x) = \begin{cases} x &amp;amp; \text{if } x &amp;gt; 0 \\ 0 &amp;amp; \text{if } x \leq 0 \end{cases}
$$
&lt;h4 id="特性-2"&gt;特性&lt;a class="anchor" href="#%e7%89%b9%e6%80%a7-2"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;输出范围&lt;/strong&gt;：$[0, &amp;#43;\infty)$
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;导数&lt;/strong&gt;：$\text{ReLU}&amp;#39;(x) = \begin{cases} 1 &amp;amp; \text{if } x &amp;gt; 0 \\ 0 &amp;amp; \text{if } x \leq 0 \end{cases}$
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;计算快速&lt;/strong&gt;：只需比较和选择&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缓解梯度消失&lt;/strong&gt;：正区域梯度为1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;稀疏激活&lt;/strong&gt;：约50%神经元激活&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;死亡ReLU&lt;/strong&gt;：负区域梯度为0，神经元可能&amp;quot;死亡&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;非零中心&lt;/strong&gt;：输出均值大于0&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="图像-1"&gt;图像&lt;a class="anchor" href="#%e5%9b%be%e5%83%8f-1"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; | ╱
 | ╱
 | ╱
 | ╱
 0 |╱________
 -5 0 5&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="4-leaky-relu"&gt;4. Leaky ReLU&lt;a class="anchor" href="#4-leaky-relu"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="公式-3"&gt;公式&lt;a class="anchor" href="#%e5%85%ac%e5%bc%8f-3"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\text{LeakyReLU}(x) = \max(\alpha x, x) = \begin{cases} x &amp;amp; \text{if } x &amp;gt; 0 \\ \alpha x &amp;amp; \text{if } x \leq 0 \end{cases}
$$
&lt;p&gt;其中 $\alpha$
 通常为 $0.01$
。&lt;/p&gt;</description></item><item><title>运算符和表达式</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/3-%E8%BF%90%E7%AE%97%E7%AC%A6%E5%92%8C%E8%A1%A8%E8%BE%BE%E5%BC%8F/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/3-%E8%BF%90%E7%AE%97%E7%AC%A6%E5%92%8C%E8%A1%A8%E8%BE%BE%E5%BC%8F/</guid><description>&lt;h1 id="运算符和表达式"&gt;运算符和表达式&lt;a class="anchor" href="#%e8%bf%90%e7%ae%97%e7%ac%a6%e5%92%8c%e8%a1%a8%e8%be%be%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;运算符用于对值进行各种操作。Python 提供了丰富的运算符，包括算术、比较、逻辑、赋值等。&lt;/p&gt;
&lt;h2 id="算术运算符"&gt;算术运算符&lt;a class="anchor" href="#%e7%ae%97%e6%9c%af%e8%bf%90%e7%ae%97%e7%ac%a6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;算术运算符用于执行基本的数学运算。&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 加法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="c1"&gt;# 15&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 减法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="c1"&gt;# 5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 乘法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="c1"&gt;# 50&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 除法（返回浮点数）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="c1"&gt;# 3.3333333333333335&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 整数除法（向下取整）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="c1"&gt;# 3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 取余（模运算）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="c1"&gt;# 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 幂运算&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="c1"&gt;# 8（2的3次方）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt; &lt;span class="c1"&gt;# 1.4142135623730951（平方根）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 字符串和列表的运算&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;World&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#39;Hello World&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# [1, 2, 3, 4]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;Hi&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#39;HiHiHi&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="c1"&gt;# [1, 2, 1, 2, 1, 2]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="比较运算符"&gt;比较运算符&lt;a class="anchor" href="#%e6%af%94%e8%be%83%e8%bf%90%e7%ae%97%e7%ac%a6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;比较运算符用于比较两个值，返回布尔值（&lt;code&gt;True&lt;/code&gt; 或 &lt;code&gt;False&lt;/code&gt;）。&lt;/p&gt;</description></item><item><title>4-电路定理</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/4-%E7%94%B5%E8%B7%AF%E5%AE%9A%E7%90%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/4-%E7%94%B5%E8%B7%AF%E5%AE%9A%E7%90%86/</guid><description>&lt;h2 id="叠加定理"&gt;叠加定理&lt;a class="anchor" href="#%e5%8f%a0%e5%8a%a0%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 线性电路中\\
各独立源单独作用叠加，其他独立源置零\left\{\begin{array}{l} 电压源短路\\电流源断路\end{array}\right.\\
注：功率不符合叠加定理，受控源看作电路元件

$$
&lt;h2 id="齐性定理"&gt;齐性定理&lt;a class="anchor" href="#%e9%bd%90%e6%80%a7%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
线性电路中\\
所有激励同比放缩，响应同比放缩
$$
&lt;h2 id="替代定理"&gt;替代定理&lt;a class="anchor" href="#%e6%9b%bf%e4%bb%a3%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
线性、非线性均可\\
任一支路可用同值 U 电压源或同值I 电流源，或同值R电阻替换\\
替换后所有u,i不变
$$
&lt;h2 id="等效电源定理"&gt;等效电源定理&lt;a class="anchor" href="#%e7%ad%89%e6%95%88%e7%94%b5%e6%ba%90%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260416164848_307_5.jpg" width="50%"&gt;
&lt;/div&gt;
$$
线性电路中
$$
$$
戴维宁电压等效：U为开路电压，R_{eq}为电压源短路，端口看入的阻值\\
诺顿电流等效：I为短路电流，R_{eq}为电流源短路，端口看入的阻值
$$
&lt;h2 id="最大传输功率定理"&gt;最大传输功率定理&lt;a class="anchor" href="#%e6%9c%80%e5%a4%a7%e4%bc%a0%e8%be%93%e5%8a%9f%e7%8e%87%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
外接电阻R=R_{eq}时，输出电功率最大，P_{max}=\frac{U^2}{4R_{eq}}
$$</description></item><item><title>4-集成运放应用电路</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/4-%E9%9B%86%E6%88%90%E8%BF%90%E6%94%BE%E5%BA%94%E7%94%A8%E7%94%B5%E8%B7%AF/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/4-%E9%9B%86%E6%88%90%E8%BF%90%E6%94%BE%E5%BA%94%E7%94%A8%E7%94%B5%E8%B7%AF/</guid><description>&lt;h2 id="理想运放工作特点"&gt;理想运放工作特点&lt;a class="anchor" href="#%e7%90%86%e6%83%b3%e8%bf%90%e6%94%be%e5%b7%a5%e4%bd%9c%e7%89%b9%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;线性区&lt;/strong&gt;：电路引入负反馈，运放输入端满足“虚短”，“虚断”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;非线性区&lt;/strong&gt;：运放处于开环或正反馈，无“虚短”，有“虚断”&lt;/p&gt;
$$
 u_P&amp;gt;u_N, u_o=&amp;#43;U_{OM}\\
u_P&amp;lt;u_N, u_o=-U_{OM}
$$
&lt;h2 id="比例运算电路"&gt;比例运算电路&lt;a class="anchor" href="#%e6%af%94%e4%be%8b%e8%bf%90%e7%ae%97%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260406213020_247_5.jpg" width="40%"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260406213018_244_5.jpg" width="45%"&gt;
&lt;/div&gt;
$$
反相：u_o=-\frac{R_f}{R}u_I \qquad 同相：u_o=(1&amp;#43;\frac{R_f}{R})u_I
$$
&lt;h2 id="加减运算电路"&gt;加减运算电路&lt;a class="anchor" href="#%e5%8a%a0%e5%87%8f%e8%bf%90%e7%ae%97%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
利用叠加原理求解加减运算电路
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260406213019_245_5.jpg" width="90%"&gt;
&lt;/div&gt;
$$
u_O=u_{O1}&amp;#43;u_{O2}\\
反相： u_{O1}=-R_{f}\left(\frac{u_{I1}}{R_{1}}&amp;#43;\frac{u_{I2}}{R_{2}}\right) 
\qquad 同相：u_{O2} = R_f \cdot \frac{R_P}{R_N} \cdot \left(\frac{u_{13}}{R_3} &amp;#43; \frac{u_{14}}{R_4} \right) \\
注：R_P=R_3 \parallel R_4 \parallel R_5\qquad R_N=R_1 \parallel R_2 \parallel R_f
$$
&lt;h2 id="微分积分运算电路"&gt;微分、积分运算电路&lt;a class="anchor" href="#%e5%be%ae%e5%88%86%e7%a7%af%e5%88%86%e8%bf%90%e7%ae%97%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260406213020_246_5.jpg" width="40%"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260406213021_248_5.jpg" width="40%"&gt;
&lt;/div&gt;
$$

微分：u_o=-RC\frac{du_{I}}{dt}\qquad
积分：u_o=-\frac{1}{RC}\int u_{I}{dt}

$$
&lt;h2 id="单限比较器"&gt;单限比较器&lt;a class="anchor" href="#%e5%8d%95%e9%99%90%e6%af%94%e8%be%83%e5%99%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407115436_256_5.jpg" width="70%"&gt;
&lt;/div&gt;
$$

u_N=\frac{R_1}{R_1&amp;#43;R_2}u_I&amp;#43;\frac{R_2}{R_1&amp;#43;R_2}U_{REF}（叠加原理）\\
u_N=u_P可得阈值电压，U_T=-\frac{R_2}{R_1}U_{REF}\\
若参考电压加在P极，U_T=U_{REF}

$$
&lt;p&gt;注：输入加二极管，用于“防抖”； 含参考电压同理&lt;/p&gt;</description></item><item><title>4-控制系统设计约束</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/4-%E6%8E%A7%E5%88%B6%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E7%BA%A6%E6%9D%9F/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/4-%E6%8E%A7%E5%88%B6%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E7%BA%A6%E6%9D%9F/</guid><description>&lt;h2 id="灵敏度"&gt;灵敏度&lt;a class="anchor" href="#%e7%81%b5%e6%95%8f%e5%ba%a6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 S=\frac{1}{1&amp;#43;KG}\quad 表示闭环对对象参数变化的敏感程度\\
M_s=\frac{1}{\rho},\quad\rho=\min|1&amp;#43;KG|\\
相角裕度只能给出\rho的上限，M_s才真正反映系统的稳定程度\\
对扰动的抑制
\left\{\begin{array}{}
S&amp;lt;1表示反馈抑制扰动\\
S&amp;gt;1表示反馈放大扰动
\end{array}\right.

$$
$$

S越小，跟踪误差越小，S=1.2-2.0\\
|\frac{1}{S(j\omega)}|=2|\sin \frac{\gamma}{2}|\\
\rho\leqslant 2|\sin \frac{\gamma}{2}|

$$
&lt;h2 id="bode积分约束"&gt;Bode积分约束&lt;a class="anchor" href="#bode%e7%a7%af%e5%88%86%e7%ba%a6%e6%9d%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\int_0^{\infty}\ln|S(j\omega)|d\omega\\
只与对象本身特性有关，与控制器设计方法无关\\
利用Bode积分约束可预见系统能做到的最佳性能
$$
&lt;h2 id="不确定性"&gt;不确定性&lt;a class="anchor" href="#%e4%b8%8d%e7%a1%ae%e5%ae%9a%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;原因：高频未建模、参数变化、传输特性&lt;/p&gt;
&lt;p&gt;加性不确定性：&lt;/p&gt;
$$
G(j\omega)=G_0(j\omega)&amp;#43;\Delta G(j\omega)\quad |\Delta G(j\omega)|&amp;lt;l_a(\omega)界函数
$$
&lt;p&gt;乘性不确定性：&lt;/p&gt;
$$
G(j\omega)=[1&amp;#43;L(j\omega)]G_0(j\omega)\quad |L(j\omega)|&amp;lt;l_m(\omega)界函数

$$
$$

\begin{array}{}
l_m &amp;lt;&amp;lt;1, 低频段\\
l_m &amp;gt;&amp;gt;1, 高频段
\end{array}

$$
&lt;p&gt;注：不确定性一般用 $l_m(\omega)$
&lt;/p&gt;
&lt;h2 id="鲁棒性"&gt;鲁棒性&lt;a class="anchor" href="#%e9%b2%81%e6%a3%92%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;指对象摄动后仍稳定&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;鲁棒稳定条件&lt;/strong&gt;: $|\frac{KG}{1&amp;#43;KG}|&amp;lt;\frac{1}{l_m}$
&lt;/p&gt;
&lt;h2 id="三频段设计约束"&gt;三频段设计约束&lt;a class="anchor" href="#%e4%b8%89%e9%a2%91%e6%ae%b5%e8%ae%be%e8%ae%a1%e7%ba%a6%e6%9d%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

\begin{array}{l}
低频段：决定精度，增益与型别满足要求\\
中频段：动态性能，适当频率处衰减下去\\
高频段：噪声，鲁棒性，低于\frac{1}{l_m}
\end{array}

$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-control-system-design/Weixin Image_20260402191545_181_5.jpg" width="60%"&gt;
&lt;/div&gt;
$$

\begin{array}{l}
ps(\omega)：低频段设计要求\\
\omega_0：输入或干扰频谱宽度\\
\frac{1}{l_m}不确定性界函数
\end{array}

$$
&lt;h2 id="思考题"&gt;思考题&lt;a class="anchor" href="#%e6%80%9d%e8%80%83%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="bode积分约束上限为因此可将低频段做很小正积分分散至上"&gt;Bode积分约束上限为$\infty$
，因此可将低频段$S(j\omega)$
做很小，正积分分散至$\infty$
上？&lt;a class="anchor" href="#bode%e7%a7%af%e5%88%86%e7%ba%a6%e6%9d%9f%e4%b8%8a%e9%99%90%e4%b8%ba%e5%9b%a0%e6%ad%a4%e5%8f%af%e5%b0%86%e4%bd%8e%e9%a2%91%e6%ae%b5%e5%81%9a%e5%be%88%e5%b0%8f%e6%ad%a3%e7%a7%af%e5%88%86%e5%88%86%e6%95%a3%e8%87%b3%e4%b8%8a"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;不对，实际物理上不可分散至$\infty$
段上，带宽有限制&lt;/p&gt;</description></item><item><title>4-李雅普诺夫稳定性分析</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/4-%E6%9D%8E%E9%9B%85%E6%99%AE%E8%AF%BA%E5%A4%AB%E7%A8%B3%E5%AE%9A%E6%80%A7%E5%88%86%E6%9E%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/4-%E6%9D%8E%E9%9B%85%E6%99%AE%E8%AF%BA%E5%A4%AB%E7%A8%B3%E5%AE%9A%E6%80%A7%E5%88%86%E6%9E%90/</guid><description>&lt;h1 id="李雅普诺夫稳定性分析"&gt;李雅普诺夫稳定性分析&lt;a class="anchor" href="#%e6%9d%8e%e9%9b%85%e6%99%ae%e8%af%ba%e5%a4%ab%e7%a8%b3%e5%ae%9a%e6%80%a7%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;线性时变系统、非线性系统的李雅普诺夫方程法不考&lt;/p&gt;
&lt;h2 id="李雅普诺夫方法选择"&gt;李雅普诺夫方法选择&lt;a class="anchor" href="#%e6%9d%8e%e9%9b%85%e6%99%ae%e8%af%ba%e5%a4%ab%e6%96%b9%e6%b3%95%e9%80%89%e6%8b%a9"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

\begin{array}{}
第一法\#线性系统（特征值；\quad 连续，离散） &amp;amp; 第一法\#非线性系统（平衡点线性化；\quad 临界失效）\\
\ \\
第二法\#线性系统（李雅普诺夫方程；\quad连续，离散）&amp;amp; 第二法\#非线性系统（李雅普诺夫函数；定义法）
\end{array}
$$
&lt;h2 id="李雅普诺夫第一法连续系统"&gt;李雅普诺夫第一法（连续系统）&lt;a class="anchor" href="#%e6%9d%8e%e9%9b%85%e6%99%ae%e8%af%ba%e5%a4%ab%e7%ac%ac%e4%b8%80%e6%b3%95%e8%bf%9e%e7%bb%ad%e7%b3%bb%e7%bb%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
状态稳定性（平衡状态x_e=0处渐进稳定的充要条件）：\\
系统矩阵A的所有特征值均具有负实部，即|\lambda I-A|=0根的实部均为负值\\
\left\{\begin{array}{l}
低阶|\lambda I-A|=0解根\\
高阶|\lambda I-A|=0用劳斯判据
\end{array}\right.\\
注：状态稳定性与(sI-A)^{-1}b实部均为负值有区别，可能零极点相消
$$
&lt;p&gt;
&lt;/p&gt;
$$
\text{BIBO}稳定性（有界输入输出稳定的充要条件）：\\
 W(s)=c(sI-A)^{-1}b的极点全部位于s的左半平面
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：状态稳定\Rightarrow \text{BIBO}稳定\\
W(s)=c(sI-A)^{-1}b可能零极点对消，从而状态不稳定\\
\text{BIBO}稳定，且能控能观\Rightarrow 系统渐进稳定（一维系统成立）
$$
&lt;h2 id="李雅普诺夫第一法离散系统"&gt;李雅普诺夫第一法（离散系统）&lt;a class="anchor" href="#%e6%9d%8e%e9%9b%85%e6%99%ae%e8%af%ba%e5%a4%ab%e7%ac%ac%e4%b8%80%e6%b3%95%e7%a6%bb%e6%95%a3%e7%b3%bb%e7%bb%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
状态稳定性（平衡状态x_e=0处渐进稳定的充要条件）：\\
系统矩阵G的所有特征值均位于单位圆内\\
\left\{\begin{array}{l}
低阶|\lambda I-G|=0解根\\
高阶|\lambda I-G|=0用劳斯判据
\end{array}\right.\\
注：状态稳定性与(zI-G)^{-1}b的根均在单位圆内有区别，可能零极点相消
$$
&lt;p&gt;
&lt;/p&gt;
$$
\text{BIBO}稳定性（有界输入输出稳定的充要条件）：\\
 W(s)=c(zI-G)^{-1}b的极点全部位于单位圆内
$$
&lt;h2 id="非线性系统线性化判稳"&gt;非线性系统线性化判稳&lt;a class="anchor" href="#%e9%9d%9e%e7%ba%bf%e6%80%a7%e7%b3%bb%e7%bb%9f%e7%ba%bf%e6%80%a7%e5%8c%96%e5%88%a4%e7%a8%b3"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
非线性系统：\dot{x}=f(x)\\
令\dot{x}=0解得平衡点x_e\\
A=\frac{\partial f}{\partial x}\bigg|_{x_e}=
\left.\left(
\begin{array}{}
\frac{\partial f_1}{\partial x_1}&amp;amp;\frac{\partial f_1}{\partial x_2}&amp;amp;\cdots &amp;amp; \frac{\partial f_1}{\partial x_n}\\
\ \\
\frac{\partial f_2}{\partial x_1}&amp;amp;\frac{\partial f_2}{\partial x_2}&amp;amp;\cdots &amp;amp; \frac{\partial f_2}{\partial x_n}\\
\ \\
&amp;amp;\cdots&amp;amp;\cdots\\
 \ \\
\frac{\partial f_n}{\partial x_1}&amp;amp;\frac{\partial f_n}{\partial x_2}&amp;amp;\cdots &amp;amp; \frac{\partial f_n}{\partial x_n}\\
\end{array}
\right)\right|_{x_e}
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>4-频域分析</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/4-%E9%A2%91%E5%9F%9F%E5%88%86%E6%9E%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/4-%E9%A2%91%E5%9F%9F%E5%88%86%E6%9E%90/</guid><description>&lt;h1 id="频域分析"&gt;&amp;ldquo;&amp;ldquo;频域分析&amp;rdquo;&amp;rdquo;&lt;a class="anchor" href="#%e9%a2%91%e5%9f%9f%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Nichols图、等M圆法不考&lt;/p&gt;
&lt;h2 id="频域尾1标准型"&gt;频域尾“1”标准型&lt;a class="anchor" href="#%e9%a2%91%e5%9f%9f%e5%b0%be1%e6%a0%87%e5%87%86%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

G(s)=\frac{K(\frac{s}{\omega_1}&amp;#43;1)(\frac{s}{\omega_2}-1)}{s^v(-\frac{s}{\omega_3}&amp;#43;1)(\frac{s}{\omega_3}&amp;#43;1)[(\frac{s}{\omega_4})^2&amp;#43;bs&amp;#43;1]}（便于得知转折频率\omega_i\quad \omega_i&amp;gt;0）
$$
&lt;h2 id="频率分析特点"&gt;频率分析特点&lt;a class="anchor" href="#%e9%a2%91%e7%8e%87%e5%88%86%e6%9e%90%e7%89%b9%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;由开环频率特性分析&lt;strong&gt;负反馈&lt;/strong&gt;闭环特性&lt;/p&gt;
&lt;h2 id="正余弦输入下的稳态输出"&gt;正、余弦输入下的稳态输出&lt;a class="anchor" href="#%e6%ad%a3%e4%bd%99%e5%bc%a6%e8%be%93%e5%85%a5%e4%b8%8b%e7%9a%84%e7%a8%b3%e6%80%81%e8%be%93%e5%87%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
y(t)=|\Phi(j\omega_0)|\sin[\omega _0t&amp;#43;\theta&amp;#43;\angle\Phi(j\omega_0)]{\color{blue}（仅代表稳态输出）}\\
\left.\begin{array}{l}
|\Phi(j\omega)|_{\omega=\omega_0}\\
\angle\Phi(j\omega)|_{\omega=\omega_0}
\end{array}\right\}复数拆项计算更便捷
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：\cos(\omega_0 t&amp;#43;\theta)与\sin(\omega_0 t&amp;#43;\theta)同理，直接代入幅值比、相角差即可
$$
&lt;h2 id="频域基本概念"&gt;频域基本概念&lt;a class="anchor" href="#%e9%a2%91%e5%9f%9f%e5%9f%ba%e6%9c%ac%e6%a6%82%e5%bf%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
正弦输入r(t)=\sin\omega t下，c_{ss}(t)=|G(j\omega)|\sin(\omega t&amp;#43;\angle{G(j\omega)}){\color{blue}（稳态输出）}\\
频率特性（{\color{blue}以复数向量处理-关键}）：
\left\{\begin{array}{l}
|G(j\omega)|\quad 模长相乘除，与象限无关\quad \sqrt{1&amp;#43;(\frac{\omega}{\omega_i})^2}\\
\angle{G(j\omega)}\quad 相角相加减
\end{array}\right.
$$
&lt;p&gt;
&lt;/p&gt;
$$
对数频率特性：\\
L(\omega)=20\lg|G|=20\lg\frac{|K||j\frac{\omega}{\omega_1}&amp;#43;1||-j\frac{\omega}{\omega_2}-1|\cdots |j\frac{\omega}{\omega_m}&amp;#43;1|}{|-j\frac{\omega}{\tau_1}&amp;#43;1||j\frac{\omega}{\tau_2}&amp;#43;1|\cdots |j\frac{\omega}{\tau_n}-1|}（\text{Bode}折线图几何关系计算）(\frac{s}{\omega_1}&amp;#43;1)\rightarrow
\left\{\begin{array}{}
\frac{\omega_c}{\omega_1} &amp;amp; \omega_c&amp;gt;\omega_1\\
1 &amp;amp; \omega_c&amp;lt;\omega_1
\end{array}\right.\\
\ \\
G(j\omega)对数幅频特性与象限无关，20\lg[\sqrt{1&amp;#43;(\frac{\omega}{\omega_i})^2}]
$$
&lt;p&gt;
&lt;/p&gt;
$$
相频特性：
\varphi(\omega)=\angle G(j\omega)=\arctan\frac{\omega}{\omega_1}&amp;#43;\arctan\frac{\omega}{\omega_2}&amp;#43;\cdots-90\degree\cdot v-\arctan\frac{\omega}{\omega_i}-\cdots\\
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：传递函数处理为频域标准型，\\
补：若K&amp;lt;0
\left\{
 \begin{array}{}
 对数幅频特性以|K|绘制，对数相频特性起始(2k&amp;#43;1)\pi\\（不唯一，故无法相角裕度判稳）\\
 Nyquist幅频特性起始于负半轴
 \end{array}
\right.
$$
&lt;h2 id="复频域四象限相角对应"&gt;复频域四象限相角对应&lt;a class="anchor" href="#%e5%a4%8d%e9%a2%91%e5%9f%9f%e5%9b%9b%e8%b1%a1%e9%99%90%e7%9b%b8%e8%a7%92%e5%af%b9%e5%ba%94"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\left\{\begin{array}{l}
第一象限复数(j\frac{\omega}{\omega_i}&amp;#43;1\ 或\ jb&amp;#43;a)，\arctan\frac{\omega}{\omega_i}\quad 或\arctan\frac{b}{a}\\
第二象限复数(j\frac{\omega}{\omega_i}-1\ 或\ jb-a)，180\degree-\arctan\frac{\omega}{\omega_i}\quad或180\degree-\arctan\frac{b}{a}\\
第三象限复数(-j\frac{\omega}{\omega_i}-1\ 或\ -jb-a)，-180\degree &amp;#43;\arctan\frac{\omega}{\omega_i}\quad或-180\degree&amp;#43;\arctan\frac{b}{a}\\
第四象限复数(-j\frac{\omega}{\omega_i}&amp;#43;1\ 或\ -jb&amp;#43;a)， -\arctan\frac{\omega}{\omega_i}\quad或-\arctan\frac{b}{a}
\end{array}\right.
$$
&lt;h2 id="传函子环节存在三四象限情形"&gt;传函子环节存在三、四象限情形&lt;a class="anchor" href="#%e4%bc%a0%e5%87%bd%e5%ad%90%e7%8e%af%e8%8a%82%e5%ad%98%e5%9c%a8%e4%b8%89%e5%9b%9b%e8%b1%a1%e9%99%90%e6%83%85%e5%bd%a2"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
向量关系分析方法:仅适用于K&amp;gt;0时，s为正系数的情况，否则用G(j\omega)的复数本质分析[G]变化趋势
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>4-数列极限</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/4-%E6%95%B0%E5%88%97%E6%9E%81%E9%99%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/4-%E6%95%B0%E5%88%97%E6%9E%81%E9%99%90/</guid><description>&lt;h1 id="数列极限"&gt;&amp;ldquo;&amp;ldquo;&amp;ldquo;数列极限&amp;rdquo;&amp;rdquo;&amp;rdquo;&lt;a class="anchor" href="#%e6%95%b0%e5%88%97%e6%9e%81%e9%99%90"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;难点：“数列递推关系”题型、“方程的根”题型&lt;/p&gt;
&lt;p&gt;关键：单调有界准则、夹逼定理&lt;/p&gt;
&lt;h2 id="海涅定理归结原则"&gt;海涅定理（归结原则）&lt;a class="anchor" href="#%e6%b5%b7%e6%b6%85%e5%ae%9a%e7%90%86%e5%bd%92%e7%bb%93%e5%8e%9f%e5%88%99"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;计算时正向使用，反向难以操作&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;具体数列“n”直接当&amp;quot;x&amp;quot;使用（抓大放小、等价无穷小、泰勒展开等等均可用）&lt;/strong&gt;
&lt;/p&gt;
$$
f(x)在\mathring{U}(x_0)内有定义\\
\lim\limits_{x\to x_0}f(x)=A\Leftrightarrow对任意以x_0为极限的数列\{x_n\}（x_n\neq x_0）,都有\lim\limits_{n\to \infty}f(x_n)=A\\
f(x)在\ \infty\ 处有定义\\
\lim\limits_{x\to &amp;#43;\infty}f(x)=A,\infty\Leftrightarrow对任意趋于\infty的数列\{x_n\}（x_n\neq x_0）,都有\lim\limits_{n\to \infty}f(x_n)=A,\infty
$$
$$
\lim\limits_{x\to &amp;#43;\infty}f(x)=A \Rightarrow \lim\limits_{n\to \infty}f(n)=A 
$$
&lt;p&gt;
&lt;/p&gt;
$$
\lim\limits_{x\to &amp;#43;\infty}f(x)=A \nLeftarrow \lim\limits_{n\to \infty}f(n)=A 
$$
&lt;h2 id="无穷大的比较"&gt;无穷大的比较&lt;a class="anchor" href="#%e6%97%a0%e7%a9%b7%e5%a4%a7%e7%9a%84%e6%af%94%e8%be%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
n\to \infty时\\
\log_a\ n \ll n^\alpha(\alpha&amp;gt;0) \ll a^n(a&amp;gt;1)\ll n!\ll n^n
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：\lim\limits_{n\to \infty}\frac{2^n\cdot n!}{n^n}=0;\quad
\lim\limits_{n\to \infty}\frac{2^n\cdot n!\cdot n^9}{n^n}=0;\quad
\lim\limits_{n\to \infty}\frac{3^n\cdot n!}{n^n}=\infty
$$
&lt;h2 id="数列极限定义注意"&gt;数列极限定义注意&lt;a class="anchor" href="#%e6%95%b0%e5%88%97%e6%9e%81%e9%99%90%e5%ae%9a%e4%b9%89%e6%b3%a8%e6%84%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
1.数列极限的间断性(n\in Z^&amp;#43;)\\
2. 数列极限的单边性(n\in Z^&amp;#43;)
$$
&lt;h2 id="单调有界准则两条件判断顺序"&gt;单调有界准则“两条件”判断顺序&lt;a class="anchor" href="#%e5%8d%95%e8%b0%83%e6%9c%89%e7%95%8c%e5%87%86%e5%88%99%e4%b8%a4%e6%9d%a1%e4%bb%b6%e5%88%a4%e6%96%ad%e9%a1%ba%e5%ba%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
先判上下界，再判单调性（单调性判断多数情况依赖上下界，上下界依赖单调性较少）
$$
$$
注：无需严格单调
$$
&lt;h2 id="数列递推关系处理不等式"&gt;数列递推关系处理（不等式）&lt;a class="anchor" href="#%e6%95%b0%e5%88%97%e9%80%92%e6%8e%a8%e5%85%b3%e7%b3%bb%e5%a4%84%e7%90%86%e4%b8%8d%e7%ad%89%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;上下界：&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>4-随机变量数字特征</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/4-%E9%9A%8F%E6%9C%BA%E5%8F%98%E9%87%8F%E6%95%B0%E5%AD%97%E7%89%B9%E5%BE%81/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/4-%E9%9A%8F%E6%9C%BA%E5%8F%98%E9%87%8F%E6%95%B0%E5%AD%97%E7%89%B9%E5%BE%81/</guid><description>&lt;h1 id="随机变量数字特征"&gt;随机变量数字特征&lt;a class="anchor" href="#%e9%9a%8f%e6%9c%ba%e5%8f%98%e9%87%8f%e6%95%b0%e5%ad%97%e7%89%b9%e5%be%81"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;数字特征主要考察计算
归根结底在期望E(x)的计算&lt;/p&gt;
&lt;h2 id="期望的定义"&gt;期望的定义&lt;a class="anchor" href="#%e6%9c%9f%e6%9c%9b%e7%9a%84%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

离散型：若\sum_{i=1}^{\infty}x_ip_i绝对收敛，则EX=\sum_{i=1}^{\infty}x_ip_i（若为可列无限个，级数改变次序，值不变）\\
E[g(X)]=\sum_{i=1}^{\infty}g(x_i)p_{i}\quad E[g(X,Y)]=\sum_{i=1}^{\infty}\sum_{j=1}^{\infty}g(x_i,y_j)p_{ij}
$$
&lt;p&gt;
&lt;/p&gt;
$$
连续型：若\int_{-\infty}^{&amp;#43;\infty}xf(x)dx绝对收敛，则EX=\int_{-\infty}^{&amp;#43;\infty}xf(x)dx\\
E[g(X)]=\int_{-\infty}^{&amp;#43;\infty}g(x)f(x)dx\quad E[g(X,Y)]=\int_{-\infty}^{&amp;#43;\infty}\int_{-\infty}^{&amp;#43;\infty} g(x,y)f(x,y)dxdy
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：绝对收敛知道即可，不作考查
$$
&lt;h2 id="期望的性质"&gt;期望的性质&lt;a class="anchor" href="#%e6%9c%9f%e6%9c%9b%e7%9a%84%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
Ec=c,\quad E(aX&amp;#43;c)=aEX&amp;#43;c,\quad E(aX&amp;#43; bY)=aEX&amp;#43; bEY（线性叠加性）\\
E[f(X)&amp;#43; g(Y)]=E[f(X)]&amp;#43; E[g(Y)]（叠加性）
$$
&lt;p&gt;
&lt;/p&gt;
$$
X,Y相互独立：\\
E(XY)=EX\cdot EY\\
E[f(X)g(Y)]=E[f(X)]E[g(Y)],其中f(x),g(x)连续（针对连续型）
$$
&lt;h2 id="方差的性质"&gt;方差的性质&lt;a class="anchor" href="#%e6%96%b9%e5%b7%ae%e7%9a%84%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
DX=E[(X-EX)^2]=E(X^2)-(EX)^2
$$
&lt;p&gt;
&lt;/p&gt;
$$
DX\geqslant 0,\quad E(X^2)=DX&amp;#43;(EX)^2\geqslant0\\
Dc=0,\quad D(aX&amp;#43;c)=a^2DX,\quad D(aX&amp;#43;bY)=a^2DX&amp;#43;b^2DY&amp;#43;2\text{Co}v(aX,bY)\\
D[f(X)&amp;#43;g(Y)]=D[f(X)]&amp;#43;D[g(Y)]&amp;#43;2\text{Cov}[f(X),g(Y)]（叠加性）\\
\ \\
DX=E[(X-EX)^2]\leqslant E[(X-c)^2]（c为任意常数）
$$
&lt;p&gt;
&lt;/p&gt;
$$
X,Y相互独立:\\
D(aX&amp;#43;bY)=a^2DX&amp;#43;b^2DY\\
D[f(X)&amp;#43;g(Y)]=D[f(X)]&amp;#43;D[g(Y)],其中f(x),g(x)连续（针对连续型）\\
D(XY)=E[X^2Y^2]-E^2(XY)=E(X^2)E(Y^2)-(EX)^2(EY)^2=\cdots
$$
&lt;h2 id="协方差的定义与性质"&gt;协方差的定义与性质&lt;a class="anchor" href="#%e5%8d%8f%e6%96%b9%e5%b7%ae%e7%9a%84%e5%ae%9a%e4%b9%89%e4%b8%8e%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
如果DX,DY存在，且DX&amp;gt;0,DY&amp;gt;0,\\
则称E[(X-EX)(X-EY)]为协方差，记为\text{Cov}(X,Y)\\
\ \\
\text{Cov}(X,Y)=E[(X-EX)(Y-EY)]=E(XY)-EX\cdot EY
$$
&lt;p&gt;
&lt;/p&gt;
$$
性质：\\
\text{Cov}(X,X)=DX,\quad \rho=1\\
\text{Cov}(X,c)=0（不符合协方差定义DX,DY&amp;gt;0，但方便计算）\\
\text{Cov}(X_1&amp;#43;X_2,Y)=\text{Cov}(X_1,Y)&amp;#43;\text{Cov}(X_2,Y)（组合拆分性）\\
\text{Cov}(aX&amp;#43;c,bY&amp;#43;d)=ab\ \text{Cov}(X,Y)=ab\ \rho\ \sqrt{DX}\cdot\sqrt{DY}
$$
$$
注：部分题型无法直接计算\text{Cov},借助DX计算\\
D(X_1,X_2)=D(X_1)&amp;#43;D(X_2)&amp;#43;2\text{Cov}(X_1,X_2)
$$
&lt;h2 id="皮尔逊相关系数线性相关性"&gt;皮尔逊相关系数（线性相关性）&lt;a class="anchor" href="#%e7%9a%ae%e5%b0%94%e9%80%8a%e7%9b%b8%e5%85%b3%e7%b3%bb%e6%95%b0%e7%ba%bf%e6%80%a7%e7%9b%b8%e5%85%b3%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\rho=\frac{\text{Cov}(X,Y)}{\sqrt{DX}\sqrt{DY}}\qquad(DX&amp;gt;0,DY&amp;gt;0)
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>4-特征值、特征向量</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/4-%E7%89%B9%E5%BE%81%E5%80%BC%E7%89%B9%E5%BE%81%E5%90%91%E9%87%8F/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/4-%E7%89%B9%E5%BE%81%E5%80%BC%E7%89%B9%E5%BE%81%E5%90%91%E9%87%8F/</guid><description>&lt;h1 id="特征值特征向量"&gt;特征值、特征向量&lt;a class="anchor" href="#%e7%89%b9%e5%be%81%e5%80%bc%e7%89%b9%e5%be%81%e5%90%91%e9%87%8f"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;难点：抽象矩阵的相似&lt;/p&gt;
&lt;h2 id="特征值与特征向量的定义"&gt;特征值与特征向量的定义&lt;a class="anchor" href="#%e7%89%b9%e5%be%81%e5%80%bc%e4%b8%8e%e7%89%b9%e5%be%81%e5%90%91%e9%87%8f%e7%9a%84%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

设A为n阶矩阵，若存在n维非零列向量\xi，使得\\
\qquad\qquad\qquad A\xi=\lambda\xi\ 或{\color{blue} (A-\lambda E)\xi=0}\\
则称\lambda为A 的特征值，\xi是对应与特征值\lambda的特征向量
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：
A\xi=\lambda\xi意义：伸缩变换\\
\xi由(A-\lambda E)x=0解得，为基础解系，非定量(k\xi_i,k\neq0)\\
特征方程|A-\lambda E|=0可能出现非实根情况，但不作为考察点\\
|\lambda E-A|=\lambda ^3&amp;#43;a\lambda^2&amp;#43;b\lambda&amp;#43;c(各阶同理)
$$
&lt;h2 id="特征值特征向量与齐次方程组的概念互通"&gt;特征值、特征向量与齐次方程组的概念互通&lt;a class="anchor" href="#%e7%89%b9%e5%be%81%e5%80%bc%e7%89%b9%e5%be%81%e5%90%91%e9%87%8f%e4%b8%8e%e9%bd%90%e6%ac%a1%e6%96%b9%e7%a8%8b%e7%bb%84%e7%9a%84%e6%a6%82%e5%bf%b5%e4%ba%92%e9%80%9a"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
A对应\lambda_i的特征向量\xi_i是(A-\lambda_iE)x=0的非零基础解系
$$
&lt;h2 id="特征值特征向量的性质"&gt;特征值、特征向量的性质&lt;a class="anchor" href="#%e7%89%b9%e5%be%81%e5%80%bc%e7%89%b9%e5%be%81%e5%90%91%e9%87%8f%e7%9a%84%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
1. A的不同特征值对应的特征向量线性无关\\
2. k重特征值最多有k个线性无关的特征向量（代数重数\geqslant几何重数\geqslant1）\\
3. 不同特征值对应的特征向量的非零线性组合不是A 的特征向量\\
4.同一特征值对应的特征向量为k_1\xi_1&amp;#43;k_2\xi_2&amp;#43;\cdots（k_i不全为零）
$$
&lt;p&gt;
&lt;/p&gt;
$$
\lambda为A,B的特征值\not\Rightarrow \lambda是A&amp;#43;B,AB的特征值\\
 \xi是A,B的特征向量，则必是多项式f(A)&amp;#43;g(B),f(A)g(B)的特征向量\\
\\
\ [f(A)&amp;#43;g(B)]\xi=[f(\lambda_A)&amp;#43;f(\lambda_B)]\xi \\
f(A)g(B)\xi=f(A)g(\lambda_B)\xi=f(\lambda_A)g(\lambda_B)\xi
$$
&lt;h2 id="矩阵相似的定义"&gt;矩阵相似的定义&lt;a class="anchor" href="#%e7%9f%a9%e9%98%b5%e7%9b%b8%e4%bc%bc%e7%9a%84%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
A,B为\textbf{n阶方阵}，若存在n阶可逆矩阵P，使得P^{-1}AP=B，则称A\sim B
$$
&lt;h2 id="可相似对角化的本质"&gt;可相似对角化的本质&lt;a class="anchor" href="#%e5%8f%af%e7%9b%b8%e4%bc%bc%e5%af%b9%e8%a7%92%e5%8c%96%e7%9a%84%e6%9c%ac%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
(A\xi_1,A\xi_2,\cdots,A\xi_n)=(\lambda_1\xi_1,\lambda_2\xi_2,\cdots,\lambda_n\xi_n)\rightarrow AP=P\Lambda\\
\ \\
若P可逆，即(\xi_1,\xi_2,\cdots,\xi_n)线性无关，则有P^{-1}AP=\Lambda，故A可相似对角化
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：\\
1.(\xi_1,\xi_2,\cdots,\xi_n)中各向量长度任意非零\\
2.(\xi_1,\xi_2,\cdots,\xi_n)的排列与\Lambda中\lambda_1,\lambda_2,\cdots,\lambda_n排列对应
$$
&lt;h2 id="矩阵可相似对角化的五大条件"&gt;矩阵可相似对角化的五大条件&lt;a class="anchor" href="#%e7%9f%a9%e9%98%b5%e5%8f%af%e7%9b%b8%e4%bc%bc%e5%af%b9%e8%a7%92%e5%8c%96%e7%9a%84%e4%ba%94%e5%a4%a7%e6%9d%a1%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
充要条件：\\
\Leftrightarrow 存在可逆矩阵P，使P^{-1}AP=\Lambda\\
\Leftrightarrow n阶矩阵A有n个线性无关的特征向量\\
\Leftrightarrow n阶矩阵A对应于每个k_i重特征值都有k_i个线性无关的特征向量\\
\Leftrightarrow n阶矩阵A特征值的几何重数等于代数重数
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>4-旋转变压器</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/4-%E6%97%8B%E8%BD%AC%E5%8F%98%E5%8E%8B%E5%99%A8/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/4-%E6%97%8B%E8%BD%AC%E5%8F%98%E5%8E%8B%E5%99%A8/</guid><description>&lt;h2 id="电气原理图"&gt;电气原理图&lt;a class="anchor" href="#%e7%94%b5%e6%b0%94%e5%8e%9f%e7%90%86%e5%9b%be"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405104636_231_5.jpg" width="45%"&gt;
&lt;/div&gt;
$$
 U_{R_1R_3}=E_R\cos\theta\\
U_{R_2R_4}=E_R\sin\theta
$$
$$
多磁旋转变压器转子角周期为\frac{360\degree}{p}
$$
&lt;h2 id="原边补偿与副边补偿"&gt;原边补偿与副边补偿&lt;a class="anchor" href="#%e5%8e%9f%e8%be%b9%e8%a1%a5%e5%81%bf%e4%b8%8e%e5%89%af%e8%be%b9%e8%a1%a5%e5%81%bf"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405104635_230_5.jpg" width="40%"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405104637_232_5.jpg" width="40%"&gt;
&lt;/div&gt;
$$
Z_L=Z_L&amp;#39;
$$</description></item><item><title>控制流</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/4-%E6%8E%A7%E5%88%B6%E6%B5%81/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/4-%E6%8E%A7%E5%88%B6%E6%B5%81/</guid><description>&lt;h1 id="控制流"&gt;控制流&lt;a class="anchor" href="#%e6%8e%a7%e5%88%b6%e6%b5%81"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;控制流语句用于控制程序的执行顺序，包括条件语句和循环语句。掌握控制流是编程的基础。&lt;/p&gt;
&lt;h2 id="条件语句"&gt;条件语句&lt;a class="anchor" href="#%e6%9d%a1%e4%bb%b6%e8%af%ad%e5%8f%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="if-语句"&gt;if 语句&lt;a class="anchor" href="#if-%e8%af%ad%e5%8f%a5"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;if&lt;/code&gt; 语句用于根据条件执行不同的代码块。&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 基本语法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 如果条件为True，执行这里的代码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;statement&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 示例&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;已成年&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="if-else-语句"&gt;if-else 语句&lt;a class="anchor" href="#if-else-%e8%af%ad%e5%8f%a5"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 基本语法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 如果条件为True，执行这里&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;statement1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 如果条件为False，执行这里&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;statement2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 示例&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;已成年&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;未成年&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="if-elif-else-语句"&gt;if-elif-else 语句&lt;a class="anchor" href="#if-elif-else-%e8%af%ad%e5%8f%a5"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 基本语法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;condition1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;statement1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;condition2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;statement2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;condition3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;statement3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;statement4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 示例：成绩等级&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;score&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;85&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;score&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;优秀&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;score&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;良好&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;score&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;及格&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;不及格&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="嵌套条件语句"&gt;嵌套条件语句&lt;a class="anchor" href="#%e5%b5%8c%e5%a5%97%e6%9d%a1%e4%bb%b6%e8%af%ad%e5%8f%a5"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;has_license&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;has_license&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;可以开车&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;需要先考驾照&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;未成年，不能开车&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="条件表达式的简化"&gt;条件表达式的简化&lt;a class="anchor" href="#%e6%9d%a1%e4%bb%b6%e8%a1%a8%e8%be%be%e5%bc%8f%e7%9a%84%e7%ae%80%e5%8c%96"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用逻辑运算符简化&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;has_license&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;has_license&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;可以开车&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用链式比较&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;x在0和20之间&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="循环语句"&gt;循环语句&lt;a class="anchor" href="#%e5%be%aa%e7%8e%af%e8%af%ad%e5%8f%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="for-循环"&gt;for 循环&lt;a class="anchor" href="#for-%e5%be%aa%e7%8e%af"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;for&lt;/code&gt; 循环用于遍历序列（如列表、字符串、元组等）。&lt;/p&gt;</description></item><item><title>数据加载</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/3-%E6%95%B0%E6%8D%AE%E5%8A%A0%E8%BD%BD/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/3-%E6%95%B0%E6%8D%AE%E5%8A%A0%E8%BD%BD/</guid><description>&lt;h1 id="数据加载"&gt;数据加载&lt;a class="anchor" href="#%e6%95%b0%e6%8d%ae%e5%8a%a0%e8%bd%bd"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;数据是深度学习的核心。PyTorch 提供了强大的数据加载和预处理工具，帮助我们高效地处理各种类型的数据。&lt;/p&gt;
&lt;h2 id="dataset-和-dataloader"&gt;Dataset 和 DataLoader&lt;a class="anchor" href="#dataset-%e5%92%8c-dataloader"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在 PyTorch 中，处理和加载数据是深度学习训练过程中的关键步骤。PyTorch 提供了强大的工具，包括 &lt;code&gt;torch.utils.data.Dataset&lt;/code&gt; 和 &lt;code&gt;torch.utils.data.DataLoader&lt;/code&gt;，帮助我们管理数据集、批量加载和数据增强等任务。&lt;/p&gt;
&lt;h3 id="dataset-基类"&gt;Dataset 基类&lt;a class="anchor" href="#dataset-%e5%9f%ba%e7%b1%bb"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Dataset&lt;/code&gt; 是一个抽象类，所有自定义数据集都应该继承它。我们需要实现以下两个方法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;__getitem__(idx)&lt;/code&gt;：通过索引返回一个样本&lt;/li&gt;
&lt;li&gt;&lt;code&gt;__len__()&lt;/code&gt;：返回数据集中的样本数量&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;torch.utils.data&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Dataset&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CustomDataset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Dataset&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; 初始化数据集
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; data: 输入特征
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; labels: 目标标签
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__len__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;返回数据集的大小&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__getitem__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;返回指定索引的数据&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;sample&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;sample&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;label&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 示例数据&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;X_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt; &lt;span class="c1"&gt;# 输入特征&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Y_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# 目标标签&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建数据集实例&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dataset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CustomDataset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;X_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Y_data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;数据集大小: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="完整示例"&gt;完整示例&lt;a class="anchor" href="#%e5%ae%8c%e6%95%b4%e7%a4%ba%e4%be%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;torch.utils.data&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Dataset&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;DataLoader&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyDataset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Dataset&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;transform&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;transform&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;transform&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__len__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__getitem__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;sample&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 转换为张量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;sample&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FloatTensor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sample&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LongTensor&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 应用变换&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;sample&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sample&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;sample&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;label&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建数据集&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;784&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dataset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;MyDataset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建 DataLoader&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dataloader&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DataLoader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;shuffle&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;dataloader&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shape&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 784)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;batch_labels&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shape&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32,)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="dataloader-参数"&gt;DataLoader 参数&lt;a class="anchor" href="#dataloader-%e5%8f%82%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;DataLoader&lt;/code&gt; 是 PyTorch 提供的一个重要工具，用于从 &lt;code&gt;Dataset&lt;/code&gt; 中按批次（batch）加载数据。&lt;code&gt;DataLoader&lt;/code&gt; 允许我们批量读取数据并进行多线程加载，从而提高训练效率。&lt;/p&gt;</description></item><item><title>正则化技术</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/4-%E6%AD%A3%E5%88%99%E5%8C%96%E6%8A%80%E6%9C%AF/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/4-%E6%AD%A3%E5%88%99%E5%8C%96%E6%8A%80%E6%9C%AF/</guid><description>&lt;h2 id="过拟合问题"&gt;过拟合问题&lt;a class="anchor" href="#%e8%bf%87%e6%8b%9f%e5%90%88%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="什么是过拟合"&gt;什么是过拟合？&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af%e8%bf%87%e6%8b%9f%e5%90%88"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;过拟合（Overfitting）&lt;/strong&gt; 是指模型在训练集上表现很好，但在测试集上表现较差的现象。&lt;/p&gt;
&lt;h3 id="过拟合的原因"&gt;过拟合的原因&lt;a class="anchor" href="#%e8%bf%87%e6%8b%9f%e5%90%88%e7%9a%84%e5%8e%9f%e5%9b%a0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;模型过于复杂&lt;/strong&gt;：参数过多，容量过大&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练数据不足&lt;/strong&gt;：数据量小于模型容量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练时间过长&lt;/strong&gt;：过度拟合训练数据&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="如何识别过拟合"&gt;如何识别过拟合？&lt;a class="anchor" href="#%e5%a6%82%e4%bd%95%e8%af%86%e5%88%ab%e8%bf%87%e6%8b%9f%e5%90%88"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;训练损失 ↓↓↓ 但 验证损失 ↑↑↑&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;指标&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>5-测速法</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/5-%E6%B5%8B%E9%80%9F%E6%B3%95/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/5-%E6%B5%8B%E9%80%9F%E6%B3%95/</guid><description>&lt;h2 id="三种测速法"&gt;三种测速法&lt;a class="anchor" href="#%e4%b8%89%e7%a7%8d%e6%b5%8b%e9%80%9f%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 M法测速（平均速度）：n=\frac{60 m_1}{p\cdot T_g}\\
（大量脉冲除以时间与圈脉冲数）\\
\ \\
T法测速（瞬时速度）：n=60\frac{1}{\frac{m_2}{f_c}p}\\
（用高频时钟测相邻两脉冲时间）\\
\ \\
M/T法测速：n=\frac{60 m_1}{\frac{m_2}{f_c}p}\quad(T_g=\frac{m_2}{f_c})
$$</description></item><item><title>5-储能元件</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/5-%E5%82%A8%E8%83%BD%E5%85%83%E4%BB%B6/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/5-%E5%82%A8%E8%83%BD%E5%85%83%E4%BB%B6/</guid><description>&lt;h2 id="电容"&gt;电容&lt;a class="anchor" href="#%e7%94%b5%e5%ae%b9"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260416165710_308_5.jpg" width="30%"&gt;
&lt;/div&gt;
$$
 i=C\frac{du}{dt}\\
\ \\
u=\frac{1}{C}\int_{-\infty}^{t}idt\\
\ \\
W=\int_{-\infty}^{t}Pdt=\int_{-\infty}^{t}Cu\frac{du}{dt}dt=\frac{1}{2}Cu^2(t)
$$
$$
电容\left\{\begin{array}{l}
串联：\frac{1}{C}=\frac{1}{C_1}&amp;#43;\frac{1}{C_2}&amp;#43;\cdots\\
并联：C=C_1&amp;#43;C_2&amp;#43;\cdots
\end{array}\right.
$$
&lt;h2 id="电感"&gt;电感&lt;a class="anchor" href="#%e7%94%b5%e6%84%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260416165710_309_5.jpg" width="18%"&gt;
&lt;/div&gt;
$$
u=L\frac{di}{dt}\\
\ \\
i=\frac{1}{L}\int_{-\infty}^{t}udt\\
\ \\
W=\int_{-\infty}^{t}Pdt=\int_{-\infty}^{t}Li\frac{di}{dt}dt=\frac{1}{2}Li^2(t)
$$
$$
电感\left\{\begin{array}{l}
串联：L=L_1&amp;#43;L_2&amp;#43;\cdots\\
并联：\frac{1}{L}=\frac{1}{L_1}&amp;#43;\frac{1}{L_2}&amp;#43;\cdots
\end{array}\right.
$$</description></item><item><title>5-大数定律与中心极限定理</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/5-%E5%A4%A7%E6%95%B0%E5%AE%9A%E5%BE%8B%E4%B8%8E%E4%B8%AD%E5%BF%83%E6%9E%81%E9%99%90%E5%AE%9A%E7%90%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/5-%E5%A4%A7%E6%95%B0%E5%AE%9A%E5%BE%8B%E4%B8%8E%E4%B8%AD%E5%BF%83%E6%9E%81%E9%99%90%E5%AE%9A%E7%90%86/</guid><description>&lt;h1 id="大数定律与中心极限定理"&gt;大数定律与中心极限定理&lt;a class="anchor" href="#%e5%a4%a7%e6%95%b0%e5%ae%9a%e5%be%8b%e4%b8%8e%e4%b8%ad%e5%bf%83%e6%9e%81%e9%99%90%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="依概率收敛"&gt;依概率收敛&lt;a class="anchor" href="#%e4%be%9d%e6%a6%82%e7%8e%87%e6%94%b6%e6%95%9b"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

\quad\ X_n\xrightarrow{P}X \\\Leftrightarrow\lim\limits_{n\to \infty}P\{|X_n-X|\geqslant\varepsilon\}=0或\lim\limits_{n\to \infty}P\{|X_n-X|\leqslant\varepsilon\}=1
$$
&lt;h2 id="切比雪夫不等式"&gt;切比雪夫不等式&lt;a class="anchor" href="#%e5%88%87%e6%af%94%e9%9b%aa%e5%a4%ab%e4%b8%8d%e7%ad%89%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
设X的期望EX与方差DX均存在，则对任意给定的\varepsilon &amp;gt;0，有\\
P\{|X-EX|\geqslant \varepsilon\}\leqslant \frac{DX}{\varepsilon^2}\qquad
P\{|X-EX|&amp;lt;\varepsilon\}\geqslant 1-\frac{DX}{\varepsilon^2}
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：留意EX=0情形
$$
&lt;h2 id="大数定律"&gt;大数定律&lt;a class="anchor" href="#%e5%a4%a7%e6%95%b0%e5%ae%9a%e5%be%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;互相独立是前提&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;切比雪夫大数定理&lt;/strong&gt;
&lt;/p&gt;
$$
\{X_i\}相互独立（可放宽至两两不相关），DX_i存在且一致有上界(DX_i\leqslant C)，则\\
\frac{1}{n}\sum_{i=1}^n X_i \xrightarrow{P}\frac{1}{n}\sum_{i=1}^n EX_i\\
\ \\
注：高阶矩收敛，则低阶矩收敛；故DX存在，则EX存在（勿深究）
$$
&lt;p&gt;
&lt;strong&gt;伯努利大数定理&lt;/strong&gt;
&lt;/p&gt;
$$
伯努利实验中B(n,P)，n_A为发生次数\\
\frac{n_A}{n}\xrightarrow{P}p
$$
&lt;p&gt;
&lt;strong&gt;辛钦大数定理&lt;/strong&gt;
&lt;/p&gt;
$$
\{X_i\}独立同分布，且EX_i=\mu，则\\
\frac{1}{n}\sum_{i=1}^n X_i \xrightarrow{P}\mu
$$
&lt;h2 id="中心极限定理"&gt;中心极限定理&lt;a class="anchor" href="#%e4%b8%ad%e5%bf%83%e6%9e%81%e9%99%90%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;互相独立是前提&lt;/strong&gt;
&lt;strong&gt;列维-林德伯格定理：&lt;/strong&gt;
&lt;/p&gt;
$$
\{X_n\}独立同分布，且EX_i=\mu,DX_i=\sigma^2，则\\
\lim\limits_{n\to \infty}P\left\{\frac{\sum_{i=1}^nX_i-n\mu}{\sqrt{n}\sigma}\leqslant x\right\}=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^xe^{-\frac{1}{2}t^2}dt=\Phi(x)
$$
&lt;p&gt;
&lt;strong&gt;棣莫弗-拉普拉斯定理：&lt;/strong&gt;
&lt;/p&gt;
$$
Y_n\sim B(n,p)\\
\lim\limits_{n\to \infty}P\left\{\frac{Y_n-np}{\sqrt{np(1-p)}}\leqslant x\right\}=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^xe^{-\frac{1}{2}t^2}dt=\Phi(x)
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：
n\gg1时，\overline{X}\sim N(EX,\frac{1}{n}DX)（近似）
$$</description></item><item><title>5-二次型</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/5-%E4%BA%8C%E6%AC%A1%E5%9E%8B/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/5-%E4%BA%8C%E6%AC%A1%E5%9E%8B/</guid><description>&lt;h1 id="二次型"&gt;二次型&lt;a class="anchor" href="#%e4%ba%8c%e6%ac%a1%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;矩阵合同主要考二次型的合同，即实对称矩阵的合同&lt;/p&gt;
&lt;h2 id="二次型矩阵"&gt;二次型矩阵&lt;a class="anchor" href="#%e4%ba%8c%e6%ac%a1%e5%9e%8b%e7%9f%a9%e9%98%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

规定二次型的矩阵必须是A=A^T，故二次型的矩阵唯一\\
实对称矩阵必可正交相似对角化
$$
&lt;h2 id="坐标变换的灵活运用"&gt;坐标变换的灵活运用&lt;a class="anchor" href="#%e5%9d%90%e6%a0%87%e5%8f%98%e6%8d%a2%e7%9a%84%e7%81%b5%e6%b4%bb%e8%bf%90%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f=2(a_1x_1&amp;#43;a_2x_2&amp;#43;a_3x_3)^2&amp;#43;(b_1x_1&amp;#43;b_2x_2&amp;#43;b_3x_3)^2\\
\quad=2(x_1,x_2,x_3)
\left(\begin{array}{l}a_1\\a_2\\a_3
\end{array}\right)(a_1,a_2,a_3)
\left(\begin{array}{l}x_1\\x_2\\x_3
\end{array}\right)&amp;#43;(x_1,x_2,x_3)\left(\begin{array}{l}b_1\\b_2\\b_3\end{array}\right)(b_1,b_2,b_3)\left(\begin{array}{l}x_1\\x_2\\x_3\end{array}\right)\\
\quad=x^T(2\alpha\alpha^T&amp;#43;\beta\beta^T)x
$$
$$
正交变换下(P^TP=E,P=(e_1,e_2,e_3)):\\
f=x^TAx=y^TP^TA Py=y^T\Lambda y=y^T\left(\begin{array}{}2&amp;amp;&amp;amp;\\&amp;amp;1&amp;amp;\\&amp;amp;&amp;amp;-1\end{array}\right)y=2y_1^2&amp;#43;y_2^2-y_3^2\\
f在正交变换x=Qy=(e_1,-e_3,e_2)y下为\\
x=Qy=P\left(\begin{array}{}1&amp;amp;&amp;amp;\\&amp;amp;&amp;amp;1\\&amp;amp;-1&amp;amp;\end{array}\right)y=P\left(\begin{array}{}y_1\\y_3\\-y_2\end{array}\right)\\
故f=(y_1,y_3,-y_2)
\left(\begin{array}{}2&amp;amp;&amp;amp;\\&amp;amp;1&amp;amp;\\&amp;amp;&amp;amp;-1\end{array}\right)\left(\begin{array}{}y_1\\y_3\\-y_2\end{array}\right)
$$
&lt;h2 id="矩阵合同的定义"&gt;矩阵合同的定义&lt;a class="anchor" href="#%e7%9f%a9%e9%98%b5%e5%90%88%e5%90%8c%e7%9a%84%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
A,B为\textbf{n阶方阵}，若存在n阶\textbf{可逆矩阵C}，使得C^TAC=B，则称A与B合同，记为A\simeq B
$$
&lt;h2 id="正负惯性指数"&gt;正负惯性指数&lt;a class="anchor" href="#%e6%ad%a3%e8%b4%9f%e6%83%af%e6%80%a7%e6%8c%87%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
合同变换化为标准型或规范型，正项个数为正惯性指数，负项个数为负惯性指数
$$
&lt;h2 id="二次型最值问题"&gt;二次型最值问题&lt;a class="anchor" href="#%e4%ba%8c%e6%ac%a1%e5%9e%8b%e6%9c%80%e5%80%bc%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\lambda_{\min}(y_1^2&amp;#43;y_2^2&amp;#43;\cdots&amp;#43;y_n^2)\leqslant x^TAx\leqslant \lambda_{\max}(y_1^2&amp;#43;y_2^2&amp;#43;\cdots&amp;#43;y_n^2)\\
故M\lambda_{\min}\leqslant x^TAx\leqslant M\lambda_{\max}
$$
&lt;p&gt;
&lt;/p&gt;
$$
证：正交变换x=Qy,\\
x^Tx=(Qy)^T Qy=y^TQ^TQy=y^Ty=M\\
\ \\
x^TAx\xlongequal{坐标变换}y^T\Lambda y=\lambda_1y_1^2&amp;#43;\lambda_2y_2^2&amp;#43;\cdots&amp;#43;\lambda_ny_n^2
$$
&lt;h2 id="矩阵合同的性质"&gt;矩阵合同的性质&lt;a class="anchor" href="#%e7%9f%a9%e9%98%b5%e5%90%88%e5%90%8c%e7%9a%84%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\begin{array}{ll}
A\simeq B&amp;amp;\Rightarrow r(A)=r(B)\\
A\simeq B,A=A^T&amp;amp; \Rightarrow B=B^T\\
A\simeq B,A\simeq C&amp;amp;\Rightarrow B\simeq C\\
A\simeq B&amp;amp;\Leftrightarrow A^{-1}\simeq B^{-1}（若可逆）,A^{T}\simeq B^{T}\\
&amp;amp;\Rightarrow A^{*}\simeq B^{*}
\end{array}\\
\ \\
若A可逆且对称，则(A^{-1})^TAA^{-1}=A^{-1},故A与A^{-1}合同
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>5-放大电路中的反馈</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/5-%E6%94%BE%E5%A4%A7%E7%94%B5%E8%B7%AF%E4%B8%AD%E7%9A%84%E5%8F%8D%E9%A6%88/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/5-%E6%94%BE%E5%A4%A7%E7%94%B5%E8%B7%AF%E4%B8%AD%E7%9A%84%E5%8F%8D%E9%A6%88/</guid><description>&lt;h2 id="反馈判断方法"&gt;反馈判断方法&lt;a class="anchor" href="#%e5%8f%8d%e9%a6%88%e5%88%a4%e6%96%ad%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 串联与并联：\left\{\begin{array}{l}
串联：反馈与输入以电压叠加\\
并联：反馈与输入以电流叠加
\end{array}\right.

$$
$$

电压与电流：\left\{\begin{array}{l}
电压：令输出短路，反馈信号不存在\\
电流：令输出短路，反馈信号存在
\end{array}\right.

$$
$$
正、负反馈：瞬时极性法，极性传递判断反馈与输入极性异同
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407123317_261_5.jpg"&gt;
&lt;/div&gt;
&lt;h2 id="反馈方程式"&gt;反馈方程式&lt;a class="anchor" href="#%e5%8f%8d%e9%a6%88%e6%96%b9%e7%a8%8b%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407163204_262_5.jpg" width="40%"&gt;
&lt;/div&gt;
$$
\dot{A}_f=\frac{\dot{A}}{1&amp;#43;\dot{A}\dot{F}}\\
若|\dot{A}\dot{F}|&amp;gt;&amp;gt;1，即\dot{A}_f\approx \frac{1}{\dot{F}}，为深度负反馈

$$
&lt;h2 id="反馈对性能的影响"&gt;反馈对性能的影响&lt;a class="anchor" href="#%e5%8f%8d%e9%a6%88%e5%af%b9%e6%80%a7%e8%83%bd%e7%9a%84%e5%bd%b1%e5%93%8d"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;提高增益稳定性， $\frac{dA_f}{A_f}=\frac{1}{1&amp;#43;AF}\cdot \frac{dA}{A}$
，闭环相对增益变为原$\frac{1}{1&amp;#43;AF}$
&lt;/li&gt;
&lt;li&gt;输入电阻 $R_i$

$
\left\{\begin{array}{l}
串联负反馈，R_i变大为(1&amp;#43;AF)倍\\
并联负反馈，R_i变小为\frac{1}{1&amp;#43;AF}
\end{array}\right.
$
&lt;/li&gt;
&lt;li&gt;输出电阻$R_o$

$
\left\{\begin{array}{l}
电压负反馈，R_o变小为\frac{1}{1&amp;#43;AF}\\
电流负反馈，R_o变大为(1&amp;#43;AF)倍
\end{array}\right.
$
&lt;/li&gt;
&lt;li&gt;引入负反馈，频带展宽至(1+AF)倍&lt;/li&gt;
&lt;li&gt;引入负反馈，可抑制环内非线性失真和环内噪声、干扰、温漂&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>5-控制系统设计</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/5-%E6%8E%A7%E5%88%B6%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/5-%E6%8E%A7%E5%88%B6%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/</guid><description>&lt;h2 id="带宽"&gt;带宽&lt;a class="anchor" href="#%e5%b8%a6%e5%ae%bd"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;表示抑制干扰的能力，反应系统相应速度&lt;/p&gt;
&lt;p&gt;注：用反馈性能理解带宽，带宽增大，抗干扰能力增强&lt;/p&gt;
&lt;h2 id="相对稳定性"&gt;相对稳定性&lt;a class="anchor" href="#%e7%9b%b8%e5%af%b9%e7%a8%b3%e5%ae%9a%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;系统收到扰动后，其过渡过程能在一个恰当时间内结束&lt;/p&gt;
&lt;h2 id="思考题"&gt;思考题&lt;a class="anchor" href="#%e6%80%9d%e8%80%83%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="响应特性与反馈特性含义带宽代表什么"&gt;响应特性与反馈特性含义？带宽代表什么？&lt;a class="anchor" href="#%e5%93%8d%e5%ba%94%e7%89%b9%e6%80%a7%e4%b8%8e%e5%8f%8d%e9%a6%88%e7%89%b9%e6%80%a7%e5%90%ab%e4%b9%89%e5%b8%a6%e5%ae%bd%e4%bb%a3%e8%a1%a8%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;响应特性：指系统对输入的输出响应特性&lt;/p&gt;
&lt;p&gt;反馈特性： 指通过反馈回路测量输出，并送回输入，从而调节系统的特性&lt;/p&gt;
&lt;h4 id="幅值裕度与相角裕度都满足要求其性能一定好吗"&gt;幅值裕度与相角裕度都满足要求，其性能一定好吗？&lt;a class="anchor" href="#%e5%b9%85%e5%80%bc%e8%a3%95%e5%ba%a6%e4%b8%8e%e7%9b%b8%e8%a7%92%e8%a3%95%e5%ba%a6%e9%83%bd%e6%bb%a1%e8%b6%b3%e8%a6%81%e6%b1%82%e5%85%b6%e6%80%a7%e8%83%bd%e4%b8%80%e5%ae%9a%e5%a5%bd%e5%90%97"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;不一定，仅满足稳定要求，且两者无法准确代表稳定性;&lt;/p&gt;
&lt;p&gt;而且高频特性可能因高频未建模等因素振荡，抗干扰能力不一定&lt;/p&gt;</description></item><item><title>5-连续</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/5-%E8%BF%9E%E7%BB%AD/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/5-%E8%BF%9E%E7%BB%AD/</guid><description>&lt;h1 id="连续"&gt;连续&lt;a class="anchor" href="#%e8%bf%9e%e7%bb%ad"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="间断点定义及分类"&gt;间断点定义及分类&lt;a class="anchor" href="#%e9%97%b4%e6%96%ad%e7%82%b9%e5%ae%9a%e4%b9%89%e5%8f%8a%e5%88%86%e7%b1%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;定义注意：
$\mathring{U}(x_0,\delta)内有定义，且具备以下情形之一：\\
\left\{
\begin{array}{l}
f(x_0)无定义\\
\\
\lim\limits_{x\to x_0^&amp;#43;}f(x)\ 且\lim\limits_{x\to x_0^-}f(x)存在，但\neq f(x_0)\\
\\
\lim\limits_{x\to x_0^&amp;#43;}f(x)\ 或 \lim\limits_{x\to x_0^-}f(x)不存在
\end{array}
\right.$
&lt;/li&gt;
&lt;li&gt;间断点分类：
$\begin{array}{l}
\lim\limits_{x\to x_0^&amp;#43;}f(x)\ 且\lim\limits_{x\to x_0^-}f(x) \ \exists, \ 第一类间断点
\left\{
\begin{array}{l}
\lim\limits_{x\to x_0^&amp;#43;}f(x)\ =\lim\limits_{x\to x_0^-}f(x)\neq f(x_0),\ 可去间断点 \\
\\
\lim\limits_{x\to x_0^&amp;#43;}f(x)\ \neq\lim\limits_{x\to x_0^-}f(x), \ 跳跃间断点
\end{array}
\right.
\\
\lim\limits_{x\to x_0^&amp;#43;}f(x)\ 或\lim\limits_{x\to x_0^-}f(x)\ \nexists, \ 第二类间断点
\left\{
\begin{array}{l}
无穷间断点\\
振荡间断点\\
\cdots
\end{array}
\right.
\end{array}$
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="求间断点思路"&gt;求间断点思路&lt;a class="anchor" href="#%e6%b1%82%e9%97%b4%e6%96%ad%e7%82%b9%e6%80%9d%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;（两步走）&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在定义域内找无定义点、分段点&lt;/li&gt;
&lt;li&gt;逐个求左右极限判断（“无定义点”已知后约分即可）
（函数分式约分前后的区别，仅在于无定义点）&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="无定义间断点的消去问题"&gt;无定义间断点的消去问题&lt;a class="anchor" href="#%e6%97%a0%e5%ae%9a%e4%b9%89%e9%97%b4%e6%96%ad%e7%82%b9%e7%9a%84%e6%b6%88%e5%8e%bb%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)=\frac{x-a}{x^2(x-a)}:若分母被分子消去，则为可去间断点
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>5-系统校正</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/5-%E7%B3%BB%E7%BB%9F%E6%A0%A1%E6%AD%A3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/5-%E7%B3%BB%E7%BB%9F%E6%A0%A1%E6%AD%A3/</guid><description>&lt;h1 id="系统校正"&gt;系统校正&lt;a class="anchor" href="#%e7%b3%bb%e7%bb%9f%e6%a0%a1%e6%ad%a3"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="求参数简化经验"&gt;求参数简化经验&lt;a class="anchor" href="#%e6%b1%82%e5%8f%82%e6%95%b0%e7%ae%80%e5%8c%96%e7%bb%8f%e9%aa%8c"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;确定矫正方式后，设参数求解，一般不改变低频段与高频段阶次，能满足要求即可&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="校正指标"&gt;校正指标&lt;a class="anchor" href="#%e6%a0%a1%e6%ad%a3%e6%8c%87%e6%a0%87"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

e_{ss}\quad K_p,K_v,K_a\quad \omega_c,\gamma
$$
&lt;p&gt;
&lt;/p&gt;
$$
K_g考查要求不高
$$
&lt;p&gt;
&lt;/p&gt;
$$
\sigma\%,t_s
\left\{\begin{array}{l}
\textcircled{1}\ 目标二阶系统反解\xi,\omega_n\\
\textcircled{2}\star高阶系统转化为\omega_c,\gamma
\end{array}\right.
$$
&lt;h2 id="三频段理论"&gt;三频段理论&lt;a class="anchor" href="#%e4%b8%89%e9%a2%91%e6%ae%b5%e7%90%86%e8%ae%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
低频段\left\{\begin{array}{l}
v\uparrow \\
K\uparrow
\end{array}\right.
\Rightarrow e_{ss}\downarrow，精度\uparrow\\
\ \\
中频段\left\{\begin{array}{l}
\gamma\uparrow，系统平稳性越好，\sigma\%越小\\
\omega_c\uparrow，系统快速性越好，t_s,t_p越小\\
（前提：保证稳定，即保证相角裕度足够大）
\end{array}\right.\\
\ \\
注：希望L(\omega)以-20dB/dec斜率穿越0dB，并保持较宽的频段，但不要求关于\omega_c左右对称\\
（一般拉开10倍频，此时会有相当的相角裕度；-20dB/dec\quad\star\quad\gamma\to 90\degree）\\
\ \\
高频段\quad L(\omega)\downarrow \quad\Rightarrow 抗高频干扰能力\uparrow
$$
&lt;h2 id="频域矫正注意"&gt;频域矫正注意&lt;a class="anchor" href="#%e9%a2%91%e5%9f%9f%e7%9f%ab%e6%ad%a3%e6%b3%a8%e6%84%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
幅频特性均以\text{Bode}图折线计算，无须精确A(\omega)
$$
&lt;h2 id="符号含义注明"&gt;符号含义注明&lt;a class="anchor" href="#%e7%ac%a6%e5%8f%b7%e5%90%ab%e4%b9%89%e6%b3%a8%e6%98%8e"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\omega_c：系统原截止频率\\
\gamma_0：系统原相角裕度\\
\ \\
\omega_m：矫正参考位置\\
\gamma_m：系统本身在参考位置的相角裕度\\
\gamma_m&amp;#39;：矫正后系统在参考位置的相角裕度\\
\phi_m：相角差值，非具体相频特性\\
\varphi_m：具体相角值，系统相频特性
$$
&lt;h2 id="滞后校正"&gt;滞后校正&lt;a class="anchor" href="#%e6%bb%9e%e5%90%8e%e6%a0%a1%e6%ad%a3"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;灵活结合使用&lt;/strong&gt;
&lt;strong&gt;以校正图像把握校正步骤&lt;/strong&gt;
&lt;/p&gt;
$$
相角校正幅度取决于系统：附加-20dB斜率，使系统幅频特性L(\omega)减小至0
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>5-线性定常系统综合</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/5-%E7%BA%BF%E6%80%A7%E5%AE%9A%E5%B8%B8%E7%B3%BB%E7%BB%9F%E7%BB%BC%E5%90%88/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/5-%E7%BA%BF%E6%80%A7%E5%AE%9A%E5%B8%B8%E7%B3%BB%E7%BB%9F%E7%BB%BC%E5%90%88/</guid><description>&lt;h1 id="线性定常系统综合"&gt;&amp;ldquo;&amp;ldquo;线性定常系统综合&amp;rdquo;&amp;rdquo;&lt;a class="anchor" href="#%e7%ba%bf%e6%80%a7%e5%ae%9a%e5%b8%b8%e7%b3%bb%e7%bb%9f%e7%bb%bc%e5%90%88"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;系统解耦不考&lt;/p&gt;
&lt;h2 id="三大线性反馈控制"&gt;三大线性反馈控制&lt;a class="anchor" href="#%e4%b8%89%e5%a4%a7%e7%ba%bf%e6%80%a7%e5%8f%8d%e9%a6%88%e6%8e%a7%e5%88%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

系统\Sigma(A,B,C)，假设D=0
$$
&lt;p&gt;
&lt;/p&gt;
$$
状态反馈控制律：u=Kx&amp;#43;v, \quad u=KX \qquad \Sigma_K((A&amp;#43;BK),B,C)
$$
&lt;p&gt;
&lt;/p&gt;
$$
输出反馈控制律：u=Hy&amp;#43;v=HCx&amp;#43;v,\quad u=HCx\qquad
\Sigma_H((A&amp;#43;BHC),B,C)
$$
&lt;p&gt;
&lt;/p&gt;
$$
输出到\dot{x}反馈：\dot{x}=Ax&amp;#43;Gy&amp;#43;Bu\qquad
\Sigma_G((A&amp;#43;GC),B,C)
$$
$$
注意区别：(A-BK)\quad (A-BHC)\quad (A-GC)\\
$$
&lt;h2 id="极点配置的前提"&gt;极点配置的前提&lt;a class="anchor" href="#%e6%9e%81%e7%82%b9%e9%85%8d%e7%bd%ae%e7%9a%84%e5%89%8d%e6%8f%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
定理一：状态反馈\Sigma(A&amp;#43;bK,b,c)对系统任意配置极点的充要条件：\Sigma(A,b,c)完全能控\\
\ \\
定理二：输出到\dot{x}的线性反馈\Sigma(A&amp;#43;Gc,b,c)对系统实现闭环极点任意配置的充要条件：\Sigma(A,b,c)完全能观
$$
&lt;h2 id="系统的极点配置"&gt;系统的极点配置&lt;a class="anchor" href="#%e7%b3%bb%e7%bb%9f%e7%9a%84%e6%9e%81%e7%82%b9%e9%85%8d%e7%bd%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;离散极点配置同理&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;极点配置“基本”只考SISO系统&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
$$
前提：判能控、能观，满足才可任意配置极点
$$
&lt;p&gt;
&lt;/p&gt;
$$
直接计算{\color{blue}（维数\leqslant3）}：比较系数即可\\
|\lambda I-(A&amp;#43;bK)|=f^*(\lambda)\quad状态反馈的极点配置\\
|\lambda I-(A&amp;#43;Gc)|=f^*(\lambda)\quad 输出到\dot{x}反馈的极点配置
$$
&lt;p&gt;
&lt;/p&gt;
$$
能控标准I型、能观标准Ⅱ型计算{\color{blue}（应试用途不大）}：\\
线性变换x=T\overline{x}，化为能控标准I型、能观标准Ⅱ型\ \Sigma(\overline{A},\overline{b},\overline{c})\\
\left.\begin{array}{l}
|\lambda I-(\overline{A}&amp;#43;\overline{b}\ \overline{K})|=f^*(\lambda)\quad {\color{blue}最后一行}对应还原特征多项式系数\\
|\lambda I-(\overline{A}&amp;#43;\overline{G}\ \overline{c})|=f^*(\lambda)\quad {\color{blue}最后一列}对应还原特征多项式系数
\end{array}\right\}友矩阵不变形（理解原理）\\
谨记线性变换回原系数阵\left\{\begin{array}{}
 K=\overline{K}T_{c1}^{-1}\\
 G=T_{o2}\overline{G}
\end{array}\right.
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：K=(k_1,k_2,\cdots,k_n)\quad
G=(g_1,g_2,\cdots,g_n)^T
$$
&lt;h2 id="系统镇定"&gt;系统镇定&lt;a class="anchor" href="#%e7%b3%bb%e7%bb%9f%e9%95%87%e5%ae%9a"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
系统\Sigma(A,b,c)通过极点配置使其极点均具有负实部
$$
&lt;h2 id="状态观测器原理"&gt;状态观测器原理&lt;a class="anchor" href="#%e7%8a%b6%e6%80%81%e8%a7%82%e6%b5%8b%e5%99%a8%e5%8e%9f%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
系统极点的任意配置离不开全状态变量，但系统的状态变量不都是易于观测的\\
状态观测器构造出与系统等价的全状态可观测系统，用于提供系统状态
$$
&lt;h2 id="状态观测器的可实现性"&gt;状态观测器的可实现性&lt;a class="anchor" href="#%e7%8a%b6%e6%80%81%e8%a7%82%e6%b5%8b%e5%99%a8%e7%9a%84%e5%8f%af%e5%ae%9e%e7%8e%b0%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
定理：若线性系统\Sigma(A,b,c)完全能观，则其状态矢量x可由输出y与输入u进行重构
$$
&lt;h2 id="全维状态观测器方程"&gt;全维状态观测器方程&lt;a class="anchor" href="#%e5%85%a8%e7%bb%b4%e7%8a%b6%e6%80%81%e8%a7%82%e6%b5%8b%e5%99%a8%e6%96%b9%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;全维观测器“基本”只考SISO系统&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>函数</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/5-%E5%87%BD%E6%95%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/5-%E5%87%BD%E6%95%B0/</guid><description>&lt;h1 id="函数"&gt;函数&lt;a class="anchor" href="#%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;函数是组织代码的重要方式，可以将代码封装成可重用的块。Python 提供了强大的函数功能，包括参数传递、作用域、装饰器等。&lt;/p&gt;
&lt;h2 id="函数定义和调用"&gt;函数定义和调用&lt;a class="anchor" href="#%e5%87%bd%e6%95%b0%e5%ae%9a%e4%b9%89%e5%92%8c%e8%b0%83%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="定义函数"&gt;定义函数&lt;a class="anchor" href="#%e5%ae%9a%e4%b9%89%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 基本语法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;function_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;文档字符串（可选）&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 函数体&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="c1"&gt;# 可选&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 示例&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;打印问候语&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Hello, &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 调用函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Python&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 输出: Hello, Python!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="函数文档字符串"&gt;函数文档字符串&lt;a class="anchor" href="#%e5%87%bd%e6%95%b0%e6%96%87%e6%a1%a3%e5%ad%97%e7%ac%a6%e4%b8%b2"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; 计算两个数的和
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; 参数:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; a: 第一个数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; b: 第二个数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; 返回:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; 两个数的和
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 访问文档字符串&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="vm"&gt;__doc__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;help&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="返回值"&gt;返回值&lt;a class="anchor" href="#%e8%bf%94%e5%9b%9e%e5%80%bc"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 返回单个值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;square&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;square&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 25&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 返回多个值（实际上是返回元组）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_name_age&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Alice&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;get_name_age&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 元组解包&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;get_name_age&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# (&amp;#39;Alice&amp;#39;, 30)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 没有return语句，返回None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;do_nothing&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;do_nothing&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# None&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="参数传递"&gt;参数传递&lt;a class="anchor" href="#%e5%8f%82%e6%95%b0%e4%bc%a0%e9%80%92"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="位置参数"&gt;位置参数&lt;a class="anchor" href="#%e4%bd%8d%e7%bd%ae%e5%8f%82%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;位置参数按照定义顺序传递。&lt;/p&gt;</description></item><item><title>卷积神经网络</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/5-%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/5-%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/</guid><description>&lt;h2 id="cnn概述"&gt;CNN概述&lt;a class="anchor" href="#cnn%e6%a6%82%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="为什么需要cnn"&gt;为什么需要CNN？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81cnn"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;全连接网络的局限性&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数过多：对于 $28 \times 28$
 图像，需要 $784 \times 128 = 100,352$
 个参数&lt;/li&gt;
&lt;li&gt;忽略空间结构：将图像展平丢失空间信息&lt;/li&gt;
&lt;li&gt;计算量大：难以处理大图像&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="cnn的优势"&gt;CNN的优势&lt;a class="anchor" href="#cnn%e7%9a%84%e4%bc%98%e5%8a%bf"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;参数共享&lt;/strong&gt;：同一卷积核在整个图像上共享&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;局部连接&lt;/strong&gt;：每个神经元只连接局部区域&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;平移不变性&lt;/strong&gt;：能够识别不同位置的相同模式&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;层次化特征&lt;/strong&gt;：自动学习从低级到高级的特征&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="cnn的基本结构"&gt;CNN的基本结构&lt;a class="anchor" href="#cnn%e7%9a%84%e5%9f%ba%e6%9c%ac%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;输入图像 → 卷积层 → 激活函数 → 池化层 → ... → 全连接层 → 输出&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="卷积层"&gt;卷积层&lt;a class="anchor" href="#%e5%8d%b7%e7%a7%af%e5%b1%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="卷积操作"&gt;卷积操作&lt;a class="anchor" href="#%e5%8d%b7%e7%a7%af%e6%93%8d%e4%bd%9c"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="基本概念"&gt;基本概念&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e6%a6%82%e5%bf%b5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;卷积（Convolution）&lt;/strong&gt; 是在图像上滑动一个小的滤波器（卷积核），计算局部区域的加权和。&lt;/p&gt;</description></item><item><title>训练流程</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/4-%E8%AE%AD%E7%BB%83%E6%B5%81%E7%A8%8B/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/4-%E8%AE%AD%E7%BB%83%E6%B5%81%E7%A8%8B/</guid><description>&lt;h1 id="训练流程"&gt;训练流程&lt;a class="anchor" href="#%e8%ae%ad%e7%bb%83%e6%b5%81%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;训练神经网络是深度学习的核心环节。本章将详细介绍 PyTorch 中完整的训练流程，包括前向传播、反向传播、优化器使用等。&lt;/p&gt;
&lt;h2 id="基本训练循环"&gt;基本训练循环&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e8%ae%ad%e7%bb%83%e5%be%aa%e7%8e%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="最简单的训练循环"&gt;最简单的训练循环&lt;a class="anchor" href="#%e6%9c%80%e7%ae%80%e5%8d%95%e7%9a%84%e8%ae%ad%e7%bb%83%e5%be%aa%e7%8e%af"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.optim&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;optim&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 1. 准备数据&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ... (假设已有 dataloader)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2. 定义模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 3. 定义损失函数和优化器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;criterion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MSELoss&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SGD&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 4. 训练循环&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;train&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 设置为训练模式&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num_epochs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;dataloader&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 前向传播&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;criterion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 反向传播&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zero_grad&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 清零梯度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;backward&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 计算梯度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 更新参数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 打印损失&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Epoch [&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;num_epochs&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;], Loss: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.4f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="完整的训练和验证流程"&gt;完整的训练和验证流程&lt;a class="anchor" href="#%e5%ae%8c%e6%95%b4%e7%9a%84%e8%ae%ad%e7%bb%83%e5%92%8c%e9%aa%8c%e8%af%81%e6%b5%81%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;train_model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_loader&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;val_loader&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;num_epochs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 定义损失函数和优化器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;criterion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CrossEntropyLoss&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Adam&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.001&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 记录训练历史&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_losses&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_losses&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_accs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_accs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num_epochs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# ========== 训练阶段 ==========&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;train&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_correct&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;train_loader&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 移到设备&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;batch_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 前向传播&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;criterion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 反向传播&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zero_grad&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;backward&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 统计&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_loss&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;predicted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_total&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_correct&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;predicted&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 计算平均损失和准确率&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;avg_train_loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;train_loss&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;train_loader&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_acc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;train_correct&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;train_total&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# ========== 验证阶段 ==========&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;eval&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_correct&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;no_grad&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="c1"&gt;# 验证时不需要计算梯度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;val_loader&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;batch_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;criterion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_loss&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;predicted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_total&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_correct&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;predicted&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;avg_val_loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;val_loss&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;val_loader&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_acc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;val_correct&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;val_total&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 记录历史&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_losses&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;avg_train_loss&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_losses&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;avg_val_loss&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_accs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;train_acc&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_accs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;val_acc&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 打印进度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Epoch [&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;num_epochs&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Train Loss: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;avg_train_loss&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.4f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;, Train Acc: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;train_acc&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.2f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;%&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Val Loss: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;avg_val_loss&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.4f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;, Val Acc: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;val_acc&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.2f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;%&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;-&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;train_losses&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;train_losses&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;val_losses&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;val_losses&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;train_accs&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;train_accs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;val_accs&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;val_accs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="优化器使用"&gt;优化器使用&lt;a class="anchor" href="#%e4%bc%98%e5%8c%96%e5%99%a8%e4%bd%bf%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="常用优化器"&gt;常用优化器&lt;a class="anchor" href="#%e5%b8%b8%e7%94%a8%e4%bc%98%e5%8c%96%e5%99%a8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# SGD&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SGD&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;momentum&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;weight_decay&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Adam&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Adam&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.001&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;betas&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.999&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;weight_decay&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# AdamW&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AdamW&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.001&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;weight_decay&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# RMSprop&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RMSprop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;alpha&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.99&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Adagrad&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Adagrad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="学习率调度器"&gt;学习率调度器&lt;a class="anchor" href="#%e5%ad%a6%e4%b9%a0%e7%8e%87%e8%b0%83%e5%ba%a6%e5%99%a8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# StepLR：每 step_size 个 epoch 将学习率乘以 gamma&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;scheduler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lr_scheduler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StepLR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;step_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;gamma&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ExponentialLR：每个 epoch 将学习率乘以 gamma&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;scheduler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lr_scheduler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ExponentialLR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;gamma&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.95&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# CosineAnnealingLR：余弦退火&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;scheduler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lr_scheduler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CosineAnnealingLR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;T_max&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ReduceLROnPlateau：当指标停止改善时降低学习率&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;scheduler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lr_scheduler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ReduceLROnPlateau&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;min&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;factor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;patience&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 在训练循环中使用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num_epochs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# ... 训练代码 ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 更新学习率&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;scheduler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 对于 StepLR, ExponentialLR, CosineAnnealingLR&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 或&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;scheduler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;val_loss&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 对于 ReduceLROnPlateau&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="不同参数组使用不同学习率"&gt;不同参数组使用不同学习率&lt;a class="anchor" href="#%e4%b8%8d%e5%90%8c%e5%8f%82%e6%95%b0%e7%bb%84%e4%bd%bf%e7%94%a8%e4%b8%8d%e5%90%8c%e5%ad%a6%e4%b9%a0%e7%8e%87"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SGD&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;params&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;features&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;lr&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.001&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="c1"&gt;# 预训练层&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;params&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;classifier&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;lr&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c1"&gt;# 新层&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.001&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;momentum&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="梯度裁剪"&gt;梯度裁剪&lt;a class="anchor" href="#%e6%a2%af%e5%ba%a6%e8%a3%81%e5%89%aa"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 梯度裁剪：防止梯度爆炸&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;max_norm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;utils&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clip_grad_norm_&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;max_norm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 在训练循环中&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zero_grad&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;backward&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;utils&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clip_grad_norm_&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;max_norm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="早停early-stopping"&gt;早停（Early Stopping）&lt;a class="anchor" href="#%e6%97%a9%e5%81%9cearly-stopping"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;EarlyStopping&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;patience&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;min_delta&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;restore_best_weights&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patience&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;patience&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;min_delta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;min_delta&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;restore_best_weights&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;restore_best_weights&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;best_loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;counter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;best_weights&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__call__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;val_loss&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;best_loss&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;best_loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;val_loss&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save_checkpoint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;val_loss&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;best_loss&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;min_delta&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;best_loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;val_loss&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;counter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save_checkpoint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;counter&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;counter&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;patience&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;restore_best_weights&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load_state_dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;best_weights&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;save_checkpoint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;best_weights&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;state_dict&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;early_stopping&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;EarlyStopping&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;patience&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num_epochs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# ... 训练和验证 ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;early_stopping&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;val_loss&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Early stopping triggered&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="混合精度训练"&gt;混合精度训练&lt;a class="anchor" href="#%e6%b7%b7%e5%90%88%e7%b2%be%e5%ba%a6%e8%ae%ad%e7%bb%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;torch.cuda.amp&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;autocast&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;GradScaler&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;scaler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;GradScaler&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num_epochs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;train_loader&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zero_grad&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 使用混合精度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;autocast&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;batch_data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;criterion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 缩放损失并反向传播&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;scaler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scale&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;backward&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;scaler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;scaler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="分布式训练"&gt;分布式训练&lt;a class="anchor" href="#%e5%88%86%e5%b8%83%e5%bc%8f%e8%ae%ad%e7%bb%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="dataparallel单机多gpu"&gt;DataParallel（单机多GPU）&lt;a class="anchor" href="#dataparallel%e5%8d%95%e6%9c%ba%e5%a4%9agpu"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cuda&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device_count&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DataParallel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="distributeddataparallel多机多gpu推荐"&gt;DistributedDataParallel（多机多GPU，推荐）&lt;a class="anchor" href="#distributeddataparallel%e5%a4%9a%e6%9c%ba%e5%a4%9agpu%e6%8e%a8%e8%8d%90"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.distributed&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;dist&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;torch.nn.parallel&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DistributedDataParallel&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;DDP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 初始化进程组&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dist&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;init_process_group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;backend&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;nccl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DDP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;device_ids&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;local_rank&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用 DistributedSampler&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;torch.utils.data.distributed&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DistributedSampler&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;sampler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DistributedSampler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dataloader&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DataLoader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sampler&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;sampler&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="训练技巧"&gt;训练技巧&lt;a class="anchor" href="#%e8%ae%ad%e7%bb%83%e6%8a%80%e5%b7%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-学习率预热warmup"&gt;1. 学习率预热（Warmup）&lt;a class="anchor" href="#1-%e5%ad%a6%e4%b9%a0%e7%8e%87%e9%a2%84%e7%83%adwarmup"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;torch.optim.lr_scheduler&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;LambdaLR&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;warmup_lambda&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;scheduler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;LambdaLR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lr_lambda&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;warmup_lambda&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="2-梯度累积"&gt;2. 梯度累积&lt;a class="anchor" href="#2-%e6%a2%af%e5%ba%a6%e7%b4%af%e7%a7%af"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;accumulation_steps&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zero_grad&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataloader&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;criterion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;accumulation_steps&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;backward&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;accumulation_steps&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zero_grad&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="3-模型检查点"&gt;3. 模型检查点&lt;a class="anchor" href="#3-%e6%a8%a1%e5%9e%8b%e6%a3%80%e6%9f%a5%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;save_checkpoint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;checkpoint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;epoch&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;model_state_dict&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;state_dict&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;optimizer_state_dict&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;state_dict&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;loss&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;checkpoint&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;load_checkpoint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;checkpoint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load_state_dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;checkpoint&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;model_state_dict&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load_state_dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;checkpoint&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;optimizer_state_dict&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;checkpoint&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;epoch&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;checkpoint&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;loss&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="4-训练监控"&gt;4. 训练监控&lt;a class="anchor" href="#4-%e8%ae%ad%e7%bb%83%e7%9b%91%e6%8e%a7"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;torch.utils.tensorboard&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SummaryWriter&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SummaryWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;runs/experiment_1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num_epochs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# ... 训练 ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_scalar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Loss/Train&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_loss&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_scalar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Loss/Val&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;val_loss&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_scalar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Accuracy/Train&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_acc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_scalar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Accuracy/Val&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;val_acc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_scalar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Learning_Rate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;param_groups&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;lr&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="完整训练模板"&gt;完整训练模板&lt;a class="anchor" href="#%e5%ae%8c%e6%95%b4%e8%ae%ad%e7%bb%83%e6%a8%a1%e6%9d%bf"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.optim&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;optim&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;torch.utils.data&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DataLoader&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;torch.utils.tensorboard&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SummaryWriter&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_loader&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;val_loader&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;device&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cuda&amp;#39;&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cuda&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_available&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;cpu&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;criterion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CrossEntropyLoss&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Adam&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;lr&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;scheduler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lr_scheduler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StepLR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;step_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;gamma&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SummaryWriter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;log_dir&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;best_val_acc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;num_epochs&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 训练&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;train&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_correct&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;train_loader&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zero_grad&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;criterion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;backward&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;optimizer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_loss&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;predicted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_total&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_correct&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;predicted&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 验证&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;eval&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_correct&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;no_grad&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;val_loader&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;criterion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_loss&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;loss&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;predicted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_total&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_correct&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;predicted&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 记录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;train_acc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;train_correct&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;train_total&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;val_acc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;val_correct&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;val_total&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_scalar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Loss/Train&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_loss&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;train_loader&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_scalar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Loss/Val&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;val_loss&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;val_loader&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_scalar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Accuracy/Train&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;train_acc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_scalar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Accuracy/Val&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;val_acc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;scheduler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 保存最佳模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;val_acc&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;best_val_acc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;best_val_acc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;val_acc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;state_dict&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;save_path&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Epoch [&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;epoch&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;num_epochs&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Train Acc: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;train_acc&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.2f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;%, Val Acc: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;val_acc&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.2f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;%&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="常见问题"&gt;常见问题&lt;a class="anchor" href="#%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-过拟合"&gt;1. 过拟合&lt;a class="anchor" href="#1-%e8%bf%87%e6%8b%9f%e5%90%88"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解决方案：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 增加 Dropout&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 使用数据增强&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 增加权重衰减（weight_decay）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 使用早停&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="2-训练不收敛"&gt;2. 训练不收敛&lt;a class="anchor" href="#2-%e8%ae%ad%e7%bb%83%e4%b8%8d%e6%94%b6%e6%95%9b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解决方案：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 检查学习率（可能太大或太小）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 检查数据预处理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 检查损失函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 使用梯度裁剪&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="3-内存不足"&gt;3. 内存不足&lt;a class="anchor" href="#3-%e5%86%85%e5%ad%98%e4%b8%8d%e8%b6%b3"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解决方案：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 减小 batch_size&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 使用梯度累积&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 使用混合精度训练&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# - 减少模型大小&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="练习"&gt;练习&lt;a class="anchor" href="#%e7%bb%83%e4%b9%a0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;实现一个完整的训练循环，包括训练和验证&lt;/li&gt;
&lt;li&gt;使用学习率调度器优化训练过程&lt;/li&gt;
&lt;li&gt;实现早停机制&lt;/li&gt;
&lt;li&gt;使用 TensorBoard 可视化训练过程&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>6-编码器与光栅</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/6-%E7%BC%96%E7%A0%81%E5%99%A8%E4%B8%8E%E5%85%89%E6%A0%85/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/6-%E7%BC%96%E7%A0%81%E5%99%A8%E4%B8%8E%E5%85%89%E6%A0%85/</guid><description>&lt;h2 id="增量式编码器"&gt;增量式编码器&lt;a class="anchor" href="#%e5%a2%9e%e9%87%8f%e5%bc%8f%e7%bc%96%e7%a0%81%e5%99%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405111511_234_5.jpg" width="40%"&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;原理&lt;/strong&gt;：A相超前B相90°
&lt;strong&gt;四倍频计数&lt;/strong&gt;：利用A,B相两相的上升与下降沿计数
&lt;strong&gt;缺点&lt;/strong&gt;：无法记忆，上电需找零&lt;/p&gt;
&lt;h2 id="绝对式编码器"&gt;绝对式编码器&lt;a class="anchor" href="#%e7%bb%9d%e5%af%b9%e5%bc%8f%e7%bc%96%e7%a0%81%e5%99%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405111510_233_5.jpg"&gt;
&lt;/div&gt;
$$
 二进制码盘，不必寻零
$$
&lt;h2 id="光栅"&gt;光栅&lt;a class="anchor" href="#%e5%85%89%e6%a0%85"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405112010_235_5.jpg" width="30%"&gt;
&lt;/div&gt;
$$
将光栅宽度放大至光纹距离W
$$</description></item><item><title>6-伺服系统设计</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/6-%E4%BC%BA%E6%9C%8D%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/control-system-design/6-%E4%BC%BA%E6%9C%8D%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/</guid><description>&lt;h2 id="伺服系统随动控制"&gt;伺服系统（随动控制）&lt;a class="anchor" href="#%e4%bc%ba%e6%9c%8d%e7%b3%bb%e7%bb%9f%e9%9a%8f%e5%8a%a8%e6%8e%a7%e5%88%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;是指能对运动（位置、速度、加速度）进行精确控制的闭环自动控制系统，强调精度、响应速度&lt;/p&gt;
&lt;p&gt;注：一定有积分环节&lt;/p&gt;
&lt;h2 id="调节系统定值控制"&gt;调节系统（定值控制）&lt;a class="anchor" href="#%e8%b0%83%e8%8a%82%e7%b3%bb%e7%bb%9f%e5%ae%9a%e5%80%bc%e6%8e%a7%e5%88%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;是自动控制系统的基础形态，核心任务是维持被控量（温度、液位、压力）恒定，强调稳定与抗干扰能力，无静差&lt;/p&gt;
&lt;h2 id="反馈校正"&gt;反馈校正&lt;a class="anchor" href="#%e5%8f%8d%e9%a6%88%e6%a0%a1%e6%ad%a3"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;解决高增益和允许带宽之间的矛盾，通过局部反馈重塑中频段特性，免受负载影响&lt;/p&gt;
&lt;p&gt;注：串联校正易受负载影响&lt;/p&gt;
&lt;h2 id="软反馈"&gt;软反馈&lt;a class="anchor" href="#%e8%bd%af%e5%8f%8d%e9%a6%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;低频段维持原来特性，不受校正影响&lt;/p&gt;
&lt;h2 id="思考题"&gt;思考题&lt;a class="anchor" href="#%e6%80%9d%e8%80%83%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="为什么要校正为什么说校正是伺服系统特有的"&gt;为什么要校正？为什么说校正是伺服系统特有的？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%81%e6%a0%a1%e6%ad%a3%e4%b8%ba%e4%bb%80%e4%b9%88%e8%af%b4%e6%a0%a1%e6%ad%a3%e6%98%af%e4%bc%ba%e6%9c%8d%e7%b3%bb%e7%bb%9f%e7%89%b9%e6%9c%89%e7%9a%84"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;稳定、增益、带宽、动态性能&lt;/li&gt;
&lt;li&gt;伺服系统的根本特质是实时动态修正&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="为什么要测速反馈为什么有的反馈要加微分"&gt;为什么要测速反馈？为什么有的反馈要加微分？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%81%e6%b5%8b%e9%80%9f%e5%8f%8d%e9%a6%88%e4%b8%ba%e4%bb%80%e4%b9%88%e6%9c%89%e7%9a%84%e5%8f%8d%e9%a6%88%e8%a6%81%e5%8a%a0%e5%be%ae%e5%88%86"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;保证精度、稳定干扰、鲁棒性&lt;/li&gt;
&lt;li&gt;微分为高通，不改变低频段，且不手负载影响&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="多回路系统的内外回路作用与要求"&gt;多回路系统的内外回路作用与要求？&lt;a class="anchor" href="#%e5%a4%9a%e5%9b%9e%e8%b7%af%e7%b3%bb%e7%bb%9f%e7%9a%84%e5%86%85%e5%a4%96%e5%9b%9e%e8%b7%af%e4%bd%9c%e7%94%a8%e4%b8%8e%e8%a6%81%e6%b1%82"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;内回路：抑制干扰，带宽要高，增益要高&lt;/p&gt;
&lt;p&gt;外回路：保证精度&lt;/p&gt;
&lt;p&gt;内回路带宽是外回路的3~5倍，且内外回路分开设计，带宽错开的情况下，对外回路而言，内回路相当于一个瞬时动作的单元&lt;/p&gt;
&lt;h4 id="直流电机双回路系统"&gt;直流电机双回路系统？&lt;a class="anchor" href="#%e7%9b%b4%e6%b5%81%e7%94%b5%e6%9c%ba%e5%8f%8c%e5%9b%9e%e8%b7%af%e7%b3%bb%e7%bb%9f"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;电流内环：电流采样（霍尔传感器）&lt;/p&gt;
&lt;p&gt;速度外环：速度稳定&lt;/p&gt;</description></item><item><title>6-导数与微分</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/6-%E5%AF%BC%E6%95%B0%E4%B8%8E%E5%BE%AE%E5%88%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/6-%E5%AF%BC%E6%95%B0%E4%B8%8E%E5%BE%AE%E5%88%86/</guid><description>&lt;h1 id="导数与微分"&gt;导数与微分&lt;a class="anchor" href="#%e5%af%bc%e6%95%b0%e4%b8%8e%e5%be%ae%e5%88%86"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="一元微分的定义与构成"&gt;一元微分的定义与构成&lt;a class="anchor" href="#%e4%b8%80%e5%85%83%e5%be%ae%e5%88%86%e7%9a%84%e5%ae%9a%e4%b9%89%e4%b8%8e%e6%9e%84%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\Delta y=f&amp;#39;(x_0)\Delta x&amp;#43;\circ(\Delta x)\\
线性主部：f&amp;#39;(x_0)\Delta x
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-advance-math/Markji_1751354284917.png" width="60%"&gt;
&lt;/div&gt;
$$
注：光滑指无穷阶可导的性质，光滑一定可微\\
一阶可微等价于一阶可导（高维不然）
$$
&lt;h2 id="导数与极限关系"&gt;导数与极限关系&lt;a class="anchor" href="#%e5%af%bc%e6%95%b0%e4%b8%8e%e6%9e%81%e9%99%90%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
x\to 0时，\frac{f(x)-f(a)}{x-a}\rightarrow A,则称f&amp;#39;(a)=A,\\即\frac{f(x)-f(a)}{x-a}\rightarrow f&amp;#39;(a)\\
$$
&lt;p&gt;
&lt;/p&gt;
$$
例:
\lim\limits_{x\to a}\frac{\frac{f(x)-f(a)}{x-a}-f&amp;#39;(a)}{x-a}\neq \lim\limits_{x\to a}\frac{f&amp;#39;(a)-f&amp;#39;(a)}{x-a}
$$
&lt;h2 id="重要结论"&gt;重要结论&lt;a class="anchor" href="#%e9%87%8d%e8%a6%81%e7%bb%93%e8%ae%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
有切线不一定有导数\\
y=x^{\frac{1}{3}}在x=0处有切线，但导数无穷大
$$
$$
高阶可导，低阶一定可导
$$
&lt;h2 id="定义求导的三要素"&gt;定义求导的三要素&lt;a class="anchor" href="#%e5%ae%9a%e4%b9%89%e6%b1%82%e5%af%bc%e7%9a%84%e4%b8%89%e8%a6%81%e7%b4%a0"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
1. 增量对应\\
\lim\limits_{x\to 0}\frac{f(1&amp;#43;x)-f(1)}{x}\Leftrightarrow \lim\limits_{x\to 1}\frac{f(x)-f(1)}{x-1}\\
2. 一动一静（定点性）\\
3. 双侧性（增量有正有负）
$$
&lt;p&gt;
&lt;/p&gt;
$$
双动点导数：\\
\lim\limits_{x\to 0}\frac{f(a&amp;#43;x)-f(a)}{x}\exists=f&amp;#39;(a)\substack{\Rightarrow\\ \not\Leftarrow}\lim\limits_{x\to 0}\frac{f(a&amp;#43;\Delta_1)-f(a&amp;#43;\Delta_2)}{\Delta_1-\Delta_2}=f&amp;#39;(a)\\\left(
\lim\limits_{\Delta_i\to 0}\left[\Delta_1\frac{f(a&amp;#43;\Delta_1)-f(a)}{\Delta_1}-\Delta_2\frac{f(a&amp;#43;\Delta_2)-f(a)}{\Delta_2}\right]\frac{1}{(\Delta_1-\Delta_2)}=f&amp;#39;(a)\right)
$$
&lt;h2 id="导数存在充要判据"&gt;导数存在充要判据&lt;a class="anchor" href="#%e5%af%bc%e6%95%b0%e5%ad%98%e5%9c%a8%e5%85%85%e8%a6%81%e5%88%a4%e6%8d%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
直接判断：左导＝右导\\
前提：函数连续，左、右导数存在（若不满足，直接不可导）
$$
&lt;h2 id="导函数的奇偶性周期性"&gt;导函数的奇偶性、周期性&lt;a class="anchor" href="#%e5%af%bc%e5%87%bd%e6%95%b0%e7%9a%84%e5%a5%87%e5%81%b6%e6%80%a7%e5%91%a8%e6%9c%9f%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
各阶可导的前提下：\\
\ \\
f(x) 偶 \Rightarrow f&amp;#39;(x) 奇\\
\ \\
g(x) 奇 \Rightarrow g&amp;#39;(x) 偶\\
\ \\
f(x) 偶 \Rightarrow f&amp;#39;(x) 奇 \Rightarrow f&amp;#39;&amp;#39;(x) 偶 ......\\
\ \\
f(x) T \Rightarrow f&amp;#39;(x) T \Rightarrow f&amp;#39;&amp;#39;(x) T \Rightarrow....
$$
&lt;h2 id="可导左导右导与连续的关系"&gt;可导，左导、右导与连续的关系&lt;a class="anchor" href="#%e5%8f%af%e5%af%bc%e5%b7%a6%e5%af%bc%e5%8f%b3%e5%af%bc%e4%b8%8e%e8%bf%9e%e7%bb%ad%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;用图像记忆&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>6-离散域</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/6-%E7%A6%BB%E6%95%A3%E5%9F%9F/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/6-%E7%A6%BB%E6%95%A3%E5%9F%9F/</guid><description>&lt;h1 id="离散域"&gt;离散域&lt;a class="anchor" href="#%e7%a6%bb%e6%95%a3%e5%9f%9f"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;模拟化校正不考，动态性能不考，动态误差系数法不考&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;离散域的分析方法很匮乏&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="离散域延迟因子标准型"&gt;离散域“延迟因子”标准型&lt;a class="anchor" href="#%e7%a6%bb%e6%95%a3%e5%9f%9f%e5%bb%b6%e8%bf%9f%e5%9b%a0%e5%ad%90%e6%a0%87%e5%87%86%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

G(z)=\frac{0.4z^{-1}(1&amp;#43;0.3z^{-1})}{(1-z^{-1})(1&amp;#43;0.5z^{-1})}\qquad(最小拍校正形式；便于获取零极点，负的z^{-1}系数即为零极点)
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：物理可实现系统(z的多项式n\geqslant m)
$$
&lt;h2 id="离散域基本概念"&gt;离散域基本概念&lt;a class="anchor" href="#%e7%a6%bb%e6%95%a3%e5%9f%9f%e5%9f%ba%e6%9c%ac%e6%a6%82%e5%bf%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
Z变换定义：E(z)=Z[e^*(t)]=E^*(s)|_{z=e^{Ts}}=\sum_{n=0}^{\infty}e(nT)z^{-n}
$$
&lt;h2 id="脉冲传递函数"&gt;脉冲传递函数&lt;a class="anchor" href="#%e8%84%89%e5%86%b2%e4%bc%a0%e9%80%92%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
零初始条件下，离散系统输出Z变换对输入Z变换之比
$$
&lt;h2 id="香农采样定理"&gt;香农采样定理&lt;a class="anchor" href="#%e9%a6%99%e5%86%9c%e9%87%87%e6%a0%b7%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\omega_s=\frac{2\pi}{T}=2\pi f\geqslant 2\omega_{\max}（连续信号频谱的上限频率）\\
\ \\
注：\omega_s为角频率，T为周期，f为频率
$$
&lt;h2 id="常见函数z变换"&gt;常见函数Z变换&lt;a class="anchor" href="#%e5%b8%b8%e8%a7%81%e5%87%bd%e6%95%b0z%e5%8f%98%e6%8d%a2"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\delta(t),\delta(t-kT), \ 1(t), \ t, \ \frac{t^2}{2}, \ a^{\frac{t}{T}}, \ e^{-aT}
$$
$$
\begin{array}{}
f(t)或f(k)&amp;amp; F(z)\\
\delta(t) &amp;amp; 1\\
\delta(t-kT) &amp;amp; z^{-k}\\
1(t) &amp;amp;\frac{1}{1-z^{-1}} &amp;amp; \frac{z}{z-1}\\
\ \\
t &amp;amp; \frac{Tz^{-1}}{(1-z^{-1})^2} &amp;amp; \frac{Tz}{(z-1)^2}\\
\ \\
\frac{t^2}{2} &amp;amp; \frac{T^2z^{-1}(1&amp;#43;z^{-1})}{2(1-z^{-1})^3} &amp;amp; \frac{T^2z(z&amp;#43;1)}{2(z-1)^3}\\
\ \\
a^{\frac{t}{T}},a^k &amp;amp; \frac{1}{1-az^{-1}} &amp;amp; \frac{z}{z-a}\\
\ \\
e^{-at},e^{-akT} &amp;amp; \frac{1}{1-e^{-aT}z^{-1}} &amp;amp; \frac{z}{z-e^{-aT}}
\end{array}
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>6-其他</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/6-%E5%85%B6%E4%BB%96/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/theory-of-modern-control/6-%E5%85%B6%E4%BB%96/</guid><description>&lt;h1 id="备用知识点"&gt;备用知识点&lt;a class="anchor" href="#%e5%a4%87%e7%94%a8%e7%9f%a5%e8%af%86%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="约旦块计算"&gt;约旦块计算&lt;a class="anchor" href="#%e7%ba%a6%e6%97%a6%e5%9d%97%e8%ae%a1%e7%ae%97"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

重特征值的子约旦块：\\
r_k(A,\lambda_i)=\text{rank}[(A-\lambda_i I)^k];\qquad r_0(A,\lambda_i)=n\\
\omega_k(A,\lambda_i)=[r_{k-1}(A,\lambda_i)-r_{k}(A,\lambda_i)];\qquad \omega_1(A,\lambda_i)表示\lambda_i对应的子约旦块个数\\\\
\omega_{k}(A,\lambda_i)-\omega_{k&amp;#43;1}(A,\lambda_i)：表示以\lambda_i为重特征值的k阶约旦块个数\\
\ \\
单特征值，重特征值的各个约旦块最后拼合即可
$$
&lt;h2 id="零极点对消的不确定结论"&gt;零极点对消的不确定结论&lt;a class="anchor" href="#%e9%9b%b6%e6%9e%81%e7%82%b9%e5%af%b9%e6%b6%88%e7%9a%84%e4%b8%8d%e7%a1%ae%e5%ae%9a%e7%bb%93%e8%ae%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
(sI-A)^{-1}，(sI-A)^{-1}b也可能存在零极点对消（不确定）
$$
&lt;p&gt;
&lt;/p&gt;
$$
影响：\\
1.\quad(sI-A)^{-1}b不一定可判断状态稳定性\\
2.\quad\Phi(t)拉氏变换(sI-A)^{-1}不一定可反解得出|sI-A|，可能零极点相消
$$
&lt;h2 id="状态观测器的渐进速度"&gt;状态观测器的渐进速度&lt;a class="anchor" href="#%e7%8a%b6%e6%80%81%e8%a7%82%e6%b5%8b%e5%99%a8%e7%9a%84%e6%b8%90%e8%bf%9b%e9%80%9f%e5%ba%a6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
G为状态观测器的输出误差反馈矩阵，影响系统的渐进速度\\
使\widehat{x}以一定速度与精度趋近于系统真实状态x\\
默认定义：\widetilde{x}=x-\widehat{x}\quad \widetilde{y}=y-\widehat{y}\\
\begin{array}{rl}
\dot{\widetilde{x}}&amp;amp;=\dot{x}-\dot{\widehat{x}}\\
&amp;amp;=Ax&amp;#43;Bu-[(A-GC)\widehat{x}&amp;#43;Gy&amp;#43;Bu]\\
&amp;amp;=Ax-(A-GC)\widehat{x}-GCx\\
&amp;amp;=(A-GC)(x-\widehat{x})\\
&amp;amp;=(A-GC)\tilde{x}
\end{array}\\
故\tilde{x}(t)=e^{(A-GC)t}\tilde{x}(0)
$$
&lt;h2 id="观测器分离特性证明"&gt;观测器分离特性证明&lt;a class="anchor" href="#%e8%a7%82%e6%b5%8b%e5%99%a8%e5%88%86%e7%a6%bb%e7%89%b9%e6%80%a7%e8%af%81%e6%98%8e"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
u=v&amp;#43;K\widehat{x}\\
\left\{\begin{array}{rl}
\dot{x}&amp;amp;=Ax&amp;#43;Bu\\
&amp;amp;=Ax&amp;#43;BK\widehat{x}&amp;#43;Bv\\
&amp;amp;=Ax&amp;#43;BKx-BK(x-\widehat{x})&amp;#43;Bv\\
&amp;amp;=(A&amp;#43;BK)x-BK\tilde{x}&amp;#43;Bv
\end{array}\right.\qquad
\dot{\widetilde{x}}=(A-GC)\widetilde{x}\\
\ \\
\left(\begin{array}{}
\dot{x}\\
\dot{\tilde{x}}
\end{array}\right)=
\left(\begin{array}{}
A&amp;#43;BK &amp;amp; -BK\\
0 &amp;amp; A-GC
\end{array}\right)
\left(\begin{array}{}
x\\
\tilde{x}
\end{array}\right)&amp;#43;
\left(\begin{array}{}
B\\
0
\end{array}\right)v\\
\ \\
\left|\begin{array}{}
\lambda-(A&amp;#43;BK) &amp;amp; BK\\
0 &amp;amp; \lambda-(A-GC)
\end{array}\right|=0\\
\ \\
|\lambda-(A&amp;#43;BK)|\ |\lambda-(A-GC)|=0
$$</description></item><item><title>6-其他</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/6-%E5%85%B6%E4%BB%96/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/linear-algebra/6-%E5%85%B6%E4%BB%96/</guid><description>&lt;h1 id="横向知识点对比"&gt;横向知识点对比&lt;a class="anchor" href="#%e6%a8%aa%e5%90%91%e7%9f%a5%e8%af%86%e7%82%b9%e5%af%b9%e6%af%94"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="各大运算的等价性质"&gt;各大运算的等价性质&lt;a class="anchor" href="#%e5%90%84%e5%a4%a7%e8%bf%90%e7%ae%97%e7%9a%84%e7%ad%89%e4%bb%b7%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

\begin{array}{rl}
A可逆&amp;amp;\Leftrightarrow A^{-1},A^*,A^T可逆\\
A正定&amp;amp;\Leftrightarrow A^{-1},A^T,A^*(|A|\neq0),kA(k&amp;gt;0),P^TAP正定(P可逆)\\
A为正交矩阵&amp;amp;\Leftrightarrow A^{-1},A^*,A^T,-A为正交矩阵\\
\ \\
A\sim B &amp;amp; \Leftrightarrow A^{-1}\sim B^{-1}(|A|\neq0时),\quad A^T\sim B^T,\quad (\Rightarrow A^*\sim B^*,当|A|\neq0时)\\
A\simeq B &amp;amp; \Leftrightarrow A^{-1}\simeq B^{-1}(|A|\neq0时),\quad A^T\simeq B^T\quad(\Rightarrow A^*\simeq B^*)
\end{array}
$$
&lt;h1 id="特殊情形"&gt;特殊情形&lt;a class="anchor" href="#%e7%89%b9%e6%ae%8a%e6%83%85%e5%bd%a2"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="特殊矩阵1"&gt;特殊矩阵1&lt;a class="anchor" href="#%e7%89%b9%e6%ae%8a%e7%9f%a9%e9%98%b51"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
A=\alpha\alpha^T&amp;#43;\beta\beta^T,\quad \alpha^T\beta=0,\alpha\alpha^T=2,\beta\beta^T=1\qquad
r(A)\leqslant 2\\
A\alpha=2\alpha,A\beta=\beta
$$
&lt;p&gt;
&lt;/p&gt;
$$
A=\alpha\beta^T&amp;#43;\beta\alpha^T,\quad \alpha^T\beta=0,\alpha\alpha^T=2,\beta\beta^T=2\qquad
r(A)\leqslant 2\\
A\alpha=2\beta,A\beta=2\alpha\\
A(\alpha&amp;#43;\beta)=2(\alpha&amp;#43;\beta),A(\alpha-\beta)=-2(\alpha-\beta)
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：A均为实对称矩阵
$$
&lt;h2 id="特殊矩阵2"&gt;特殊矩阵2&lt;a class="anchor" href="#%e7%89%b9%e6%ae%8a%e7%9f%a9%e9%98%b52"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
A=E-axx^T\rightarrow A^2=(E-axx^T)(E-axx^T)（寻找矩阵关系）
$$
&lt;h1 id="待整理问题"&gt;待整理问题&lt;a class="anchor" href="#%e5%be%85%e6%95%b4%e7%90%86%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;证明题：相似，正定等&lt;/p&gt;
&lt;h1 id="结论证明"&gt;结论证明&lt;a class="anchor" href="#%e7%bb%93%e8%ae%ba%e8%af%81%e6%98%8e"&gt;#&lt;/a&gt;&lt;/h1&gt;
$$
r(A)&amp;#43;r(B)-n\leqslant r(AB)
$$
$$
A_{m\times n}B_{n\times s}\quad
\left(
\begin{array}{}
AB&amp;amp;O\\
O&amp;amp;E_n
\end{array}
\right)\rightarrow
\left(
\begin{array}{}
AB&amp;amp;A\\
O&amp;amp;E_n
\end{array}
\right)\rightarrow
\left(
\begin{array}{}
O&amp;amp;A\\
-B&amp;amp;E_n
\end{array}
\right)\quad （分块矩阵初等变换）\\
r(AB)&amp;#43;n\geqslant r(A)&amp;#43;r(B)\\即
r(A)&amp;#43;r(B)-n\leqslant r(AB)
$$
&lt;h1 id="计算严谨性问题"&gt;计算严谨性问题&lt;a class="anchor" href="#%e8%ae%a1%e7%ae%97%e4%b8%a5%e8%b0%a8%e6%80%a7%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;经验表明，矩阵运算的出错率最高，弱智错误；勿急，一步错步步错&lt;/p&gt;</description></item><item><title>6-数理统计的基本概念</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/6-%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/6-%E6%95%B0%E7%90%86%E7%BB%9F%E8%AE%A1%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/</guid><description>&lt;h1 id="数理统计的基本概念"&gt;数理统计的基本概念&lt;a class="anchor" href="#%e6%95%b0%e7%90%86%e7%bb%9f%e8%ae%a1%e7%9a%84%e5%9f%ba%e6%9c%ac%e6%a6%82%e5%bf%b5"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="简单随机样本"&gt;简单随机样本&lt;a class="anchor" href="#%e7%ae%80%e5%8d%95%e9%9a%8f%e6%9c%ba%e6%a0%b7%e6%9c%ac"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
独立、同分布
$$
&lt;h2 id="分位数"&gt;分位数&lt;a class="anchor" href="#%e5%88%86%e4%bd%8d%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

上\alpha分位数：P\{X&amp;gt;v_\alpha\}=\int_{v_\alpha}^{&amp;#43;\infty}f(x)dx=\alpha\\
\ \\
下\alpha分位数：P\{X&amp;lt;v_\alpha\}=\int_{-\infty}^{v_\alpha}f(x)dx=\alpha 
$$
&lt;p&gt;
&lt;/p&gt;
$$
分位数的伸缩：\\
t=\frac{X}{a}\sim N(0,1),\quad P\{X&amp;gt;v_{\alpha}\}=\int^{&amp;#43;\infty}_{v_{\alpha}} f(x)dx=\alpha\\
\Rightarrow t=\frac{X}{a}=v_{\alpha}，即X=av_{\alpha}
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：考研范围内，默认为上\alpha分位数\\
下\alpha分位数=上(1-\alpha)分位数\\
若概率密度关于y轴对称，则下\alpha分位数=-（上\alpha分位数）
$$
&lt;h2 id="常用统计量"&gt;常用统计量&lt;a class="anchor" href="#%e5%b8%b8%e7%94%a8%e7%bb%9f%e8%ae%a1%e9%87%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;关键：不含总体未知参数的样本&lt;/strong&gt;
&lt;/p&gt;
$$
样本均值：\overline{X}=\frac{1}{n}\sum_{i=1}^{n}X_i\\
样本方差：S^2=\frac{1}{n-1}\sum_{i=1}^{n}(X_i-\overline{X})^2\quad（无偏估计）\\
k阶样本原点矩：A_k=\frac{1}{n}\sum_{i=1}^nX_i^k\\
k阶样本中心矩：B_k=\frac{1}{n}\sum_{i=1}^n(X_i-\overline{X})^k\\
B_2=\frac{1}{n}\sum_{i=1}^n(X_i-\overline{X})^2=\frac{n-1}{n}S^2
$$
&lt;p&gt;
&lt;/p&gt;
$$
对于任意分布的统计量：\\
D(\overline{X})=\frac{1}{n}DX,\quad
E(S^2)=DX,
\quad
E(B_2)=\frac{n-1}{n}DX
$$
&lt;h2 id="分布"&gt;$\chi^2$
分布&lt;a class="anchor" href="#%e5%88%86%e5%b8%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;标准正态总体下&lt;/strong&gt;
&lt;/p&gt;
$$
\chi^2分布：\\
\{X_n\}相互独立且服从标准正态，X=\sum_{i=1}^nX_i^2\sim \chi^2(n)\\
性质：\\
X_1\sim \chi^2(n_1),X_2\sim \chi^2(n_2),X_1与X_2相互独立，则X_1&amp;#43;X_2\sim \chi^2(n_1&amp;#43;n_2)\\
X\sim \chi^2(n)，则EX=n,DX=2n
$$
&lt;h2 id="t分布"&gt;t分布&lt;a class="anchor" href="#t%e5%88%86%e5%b8%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;标准正态总体下&lt;/strong&gt;
&lt;/p&gt;
$$
t分布：\\
X\sim N(0,1),Y\sim \chi^2(n),X与Y相互独立，则t=\frac{X}{\sqrt{\frac{Y}{n}}}\sim t(n)\\
性质：\\
概率密度图像关于y轴对称\\
n\gg1时，t\sim N(0,1)（近似）\\
t^2\sim F(1,n)\\
E(t)=0,D(t)=\frac{n}{n-2}(n&amp;gt;2)\\
\ \\
注：形为\frac{U}{\sqrt{V}}\quad \frac{U}{|V|}，考虑 t分布，整理为标准形式
$$
&lt;h2 id="分布-1"&gt;$F$
分布&lt;a class="anchor" href="#%e5%88%86%e5%b8%83-1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;标准正态总体下&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>6-信号发生电路</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/6-%E4%BF%A1%E5%8F%B7%E5%8F%91%E7%94%9F%E7%94%B5%E8%B7%AF/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/6-%E4%BF%A1%E5%8F%B7%E5%8F%91%E7%94%9F%E7%94%B5%E8%B7%AF/</guid><description>&lt;h2 id="振荡电路产生条件"&gt;振荡电路产生条件&lt;a class="anchor" href="#%e6%8c%af%e8%8d%a1%e7%94%b5%e8%b7%af%e4%ba%a7%e7%94%9f%e6%9d%a1%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407170930_264_5.jpg" width="40%"&gt;
&lt;/div&gt;
$$
 正反馈电路
$$
&lt;ul&gt;
&lt;li&gt;平衡条件：$1-\dot{A}\dot{F}=0$
&lt;/li&gt;
&lt;/ul&gt;
$$
\dot{A}\dot{F}=1，即
\left\{\begin{array}{l}
|\dot{A}\dot{F}|=1\\
\varphi_A&amp;#43;\varphi_f=2n\pi
\end{array}\right.

$$
&lt;ul&gt;
&lt;li&gt;起振条件：$\dot{A}\dot{F}&amp;gt;1$
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="rc正弦波振荡电路"&gt;RC正弦波振荡电路&lt;a class="anchor" href="#rc%e6%ad%a3%e5%bc%a6%e6%b3%a2%e6%8c%af%e8%8d%a1%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/20211002222519177.png" width="60%"&gt;
&lt;/div&gt;
$$

\dot{F}=\frac{1}{3&amp;#43;j(\omega RC-\frac{1}{\omega RC})}\\
R_1=R_2=R, C_1=C_2=C\\
\begin{array}{l}
振荡频率：f_o=\frac{1}{2\pi RC}\\
起振条件：\dot{A}&amp;gt;3，即\frac{R_f&amp;#43;R_1}{R_1}&amp;gt;3
\end{array}

$$
&lt;h2 id="lc正弦波振荡电路"&gt;LC正弦波振荡电路&lt;a class="anchor" href="#lc%e6%ad%a3%e5%bc%a6%e6%b3%a2%e6%8c%af%e8%8d%a1%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407172043_265_5.jpg" width="35%"&gt;
&lt;/div&gt;
$$
RLC串联谐振分析即可\\ 
\omega_0=\frac{1}{\sqrt{LC}}\\
f_0=2\pi\frac{1}{\sqrt{LC}}\\
Q=\frac{\omega_0 L}{R}=\frac{1}{R}\sqrt{\frac{L}{C}}
$$
&lt;h2 id="矩形波发生电路"&gt;矩形波发生电路&lt;a class="anchor" href="#%e7%9f%a9%e5%bd%a2%e6%b3%a2%e5%8f%91%e7%94%9f%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407203217_267_5.jpg" width="85%"&gt;
&lt;/div&gt;
$$
U_T=\pm U_z \cdot \frac{R_1}{R_1&amp;#43;R_2}\\
T=2T_k=2R_3C\ln\frac{2R_1&amp;#43;R_2}{R_2}
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407203216_266_5.jpg" width="35%"&gt;
&lt;/div&gt;
&lt;h2 id="占空比可调矩形波发生电路"&gt;占空比可调矩形波发生电路&lt;a class="anchor" href="#%e5%8d%a0%e7%a9%ba%e6%af%94%e5%8f%af%e8%b0%83%e7%9f%a9%e5%bd%a2%e6%b3%a2%e5%8f%91%e7%94%9f%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407203219_269_5.jpg" width="75%"&gt;
&lt;/div&gt;
$$
U_T=\pm U_z \cdot \frac{R_1}{R_1&amp;#43;R_2}\\
T_1=(R_3&amp;#43;R_{w2})C\ln \frac{2R_1&amp;#43;R_2}{R_2}\\
T_2=(R_3&amp;#43;R_{w1})C\ln \frac{2R_1&amp;#43;R_2}{R_2}
$$
&lt;h2 id="三角波发生电路"&gt;三角波发生电路&lt;a class="anchor" href="#%e4%b8%89%e8%a7%92%e6%b3%a2%e5%8f%91%e7%94%9f%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407203219_270_5.jpg" width="55%"&gt;
&lt;/div&gt;
$$
U_T=\pm U_z \cdot \frac{R_1}{R_1&amp;#43;R_2}\\
T=2T_k=2R_3C\ln\frac{2R_1&amp;#43;R_2}{R_2}\\
u_{om}=\frac{1}{C}\frac{U_z}{R}T_k
$$
&lt;h2 id="实用三角波发生电路"&gt;实用三角波发生电路&lt;a class="anchor" href="#%e5%ae%9e%e7%94%a8%e4%b8%89%e8%a7%92%e6%b3%a2%e5%8f%91%e7%94%9f%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407203220_271_5.jpg" width="90%"&gt;
&lt;/div&gt;
$$
u_o\cdot \frac{R_2}{R_1&amp;#43;R_2} \pm U_z\cdot\frac{R_1}{R_1&amp;#43;R_2}=0\\
即U_T=\pm \frac{R_1}{R_2}U_z
$$
$$
T=2T_k\\
\underbrace{2\frac{R_1}{R_2}U_z}_{\Delta U}=\underbrace{\frac{1}{C}\frac{U_z}{R_3}T_k}_{电流积分}
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407203217_268_5.jpg" width="35%"&gt;
&lt;/div&gt;
&lt;h2 id="锯齿波发生电路"&gt;锯齿波发生电路&lt;a class="anchor" href="#%e9%94%af%e9%bd%bf%e6%b3%a2%e5%8f%91%e7%94%9f%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407203221_272_5.jpg" width="60%"&gt;
&lt;/div&gt;
$$
u_o\cdot \frac{R_2}{R_1&amp;#43;R_2} \pm U_z\cdot\frac{R_1}{R_1&amp;#43;R_2}=0\\
即U_T=\pm \frac{R_1}{R_2}U_z
$$
$$
T=T_1&amp;#43;T_2\\
\underbrace{2\frac{R_1}{R_2}U_z}_{\Delta U}=\underbrace{\frac{1}{C}\frac{U_z}{R_3&amp;#43;R_{w1}}T_1}_{电流积分}\\
\ \\
\underbrace{2\frac{R_1}{R_2}U_z}_{\Delta U}=\underbrace{\frac{1}{C}\frac{U_z}{R_3&amp;#43;R_{w2}}T_2}_{电流积分}
$$</description></item><item><title>6-一阶电路时域分析</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/6-%E4%B8%80%E9%98%B6%E7%94%B5%E8%B7%AF%E6%97%B6%E5%9F%9F%E5%88%86%E6%9E%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/6-%E4%B8%80%E9%98%B6%E7%94%B5%E8%B7%AF%E6%97%B6%E5%9F%9F%E5%88%86%E6%9E%90/</guid><description>&lt;h2 id="三要素法"&gt;三要素法&lt;a class="anchor" href="#%e4%b8%89%e8%a6%81%e7%b4%a0%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260416190754_311_5.jpg" width="70%"&gt;
&lt;/div&gt;
$$
 将储能元件外电路进行戴维宁或诺顿等效\\
全响应（直流激励）：f(t)=f(\infty)&amp;#43;[f(0_&amp;#43;)-f(\infty)]e^{-\frac{t}{\tau}}\\
\tau=\left\{\begin{array}{l}
R_{eq}\cdot C\\
\frac{L}{R_{eq}}
\end{array}\right.\\
\ \\
全响应（正弦激励）：f(t)=f^*(t)&amp;#43;[f(0_&amp;#43;)-f^*(0_&amp;#43;)]e^{-\frac{t}{\tau}}\\
\left\{\begin{array}{l}
f^*(t)为稳态时的响应（相量法求得）\\
f(0_&amp;#43;)、f^*(0_&amp;#43;)为瞬态（常量）
\end{array}\right.

$$
$$
注：换路瞬间，U_C(0_-)=U_C(0_&amp;#43;)，I_L(0_-)=I_C(0_&amp;#43;)
$$</description></item><item><title>面向对象编程</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/6-%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%BC%96%E7%A8%8B/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/6-%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%BC%96%E7%A8%8B/</guid><description>&lt;h1 id="面向对象编程"&gt;面向对象编程&lt;a class="anchor" href="#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e7%bc%96%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;面向对象编程（OOP）是一种编程范式，使用类和对象来组织代码。Python 完全支持面向对象编程。&lt;/p&gt;
&lt;h2 id="类和对象基础"&gt;类和对象基础&lt;a class="anchor" href="#%e7%b1%bb%e5%92%8c%e5%af%b9%e8%b1%a1%e5%9f%ba%e7%a1%80"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="定义类"&gt;定义类&lt;a class="anchor" href="#%e5%ae%9a%e4%b9%89%e7%b1%bb"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 基本语法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ClassName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;类的文档字符串&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 类体&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 示例&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Dog&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;狗类&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建对象（实例化）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_dog&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Dog&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_dog&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# &amp;lt;class &amp;#39;__main__.Dog&amp;#39;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="实例属性"&gt;实例属性&lt;a class="anchor" href="#%e5%ae%9e%e4%be%8b%e5%b1%9e%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Dog&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;初始化方法&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="c1"&gt;# 实例属性&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建对象&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_dog&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Dog&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;旺财&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_dog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 旺财&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_dog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 动态添加属性&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_dog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;棕色&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_dog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 棕色&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="实例方法"&gt;实例方法&lt;a class="anchor" href="#%e5%ae%9e%e4%be%8b%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Dog&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;bark&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;实例方法&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;在叫：汪汪！&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;今年&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;岁&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_dog&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Dog&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;旺财&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_dog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bark&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 旺财在叫：汪汪！&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_dog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_info&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="c1"&gt;# 旺财今年3岁&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="类属性和实例属性"&gt;类属性和实例属性&lt;a class="anchor" href="#%e7%b1%bb%e5%b1%9e%e6%80%a7%e5%92%8c%e5%ae%9e%e4%be%8b%e5%b1%9e%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="类属性"&gt;类属性&lt;a class="anchor" href="#%e7%b1%bb%e5%b1%9e%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;类属性属于类本身，所有实例共享。&lt;/p&gt;</description></item><item><title>模型保存与加载</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/5-%E6%A8%A1%E5%9E%8B%E4%BF%9D%E5%AD%98%E4%B8%8E%E5%8A%A0%E8%BD%BD/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/5-%E6%A8%A1%E5%9E%8B%E4%BF%9D%E5%AD%98%E4%B8%8E%E5%8A%A0%E8%BD%BD/</guid><description>&lt;h1 id="模型保存与加载"&gt;模型保存与加载&lt;a class="anchor" href="#%e6%a8%a1%e5%9e%8b%e4%bf%9d%e5%ad%98%e4%b8%8e%e5%8a%a0%e8%bd%bd"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;保存和加载模型是深度学习工作流中的重要环节。本章将介绍 PyTorch 中各种模型保存和加载的方法。&lt;/p&gt;
&lt;h2 id="基本保存和加载"&gt;基本保存和加载&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e4%bf%9d%e5%ad%98%e5%92%8c%e5%8a%a0%e8%bd%bd"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="保存和加载整个模型"&gt;保存和加载整个模型&lt;a class="anchor" href="#%e4%bf%9d%e5%ad%98%e5%92%8c%e5%8a%a0%e8%bd%bd%e6%95%b4%e4%b8%aa%e6%a8%a1%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 保存整个模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;model.pth&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 加载整个模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;model.pth&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;eval&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;：简单直接&lt;br&gt;
&lt;strong&gt;缺点&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>循环神经网络</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/6-%E5%BE%AA%E7%8E%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/6-%E5%BE%AA%E7%8E%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/</guid><description>&lt;h2 id="rnn概述"&gt;RNN概述&lt;a class="anchor" href="#rnn%e6%a6%82%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="为什么需要rnn"&gt;为什么需要RNN？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81rnn"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：全连接网络和CNN无法处理&lt;strong&gt;序列数据&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文本、语音、时间序列&lt;/li&gt;
&lt;li&gt;需要记忆历史信息&lt;/li&gt;
&lt;li&gt;输入长度可变&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="rnn的特点"&gt;RNN的特点&lt;a class="anchor" href="#rnn%e7%9a%84%e7%89%b9%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;记忆能力&lt;/strong&gt;：能够记住历史信息&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;参数共享&lt;/strong&gt;：不同时间步共享参数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;变长输入&lt;/strong&gt;：可以处理不同长度的序列&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="应用场景"&gt;应用场景&lt;a class="anchor" href="#%e5%ba%94%e7%94%a8%e5%9c%ba%e6%99%af"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;自然语言处理&lt;/strong&gt;：文本分类、机器翻译、文本生成&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语音识别&lt;/strong&gt;：语音转文本&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间序列预测&lt;/strong&gt;：股票价格、天气预测&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视频分析&lt;/strong&gt;：动作识别、视频描述&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="基础rnn"&gt;基础RNN&lt;a class="anchor" href="#%e5%9f%ba%e7%a1%80rnn"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="结构"&gt;结构&lt;a class="anchor" href="#%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;时间步 t-1: h_{t-1} ──┐
 │
时间步 t: x_t → [RNN] → h_t → y_t
 ↑
 └── h_t (传递到下一时间步)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="数学表示"&gt;数学表示&lt;a class="anchor" href="#%e6%95%b0%e5%ad%a6%e8%a1%a8%e7%a4%ba"&gt;#&lt;/a&gt;&lt;/h3&gt;
$$
h_t = \tanh(W_{hh} \cdot h_{t-1} &amp;#43; W_{xh} \cdot x_t &amp;#43; b_h)
$$
$$
y_t = W_{hy} \cdot h_t &amp;#43; b_y
$$
&lt;p&gt;其中：&lt;/p&gt;</description></item><item><title>7-PWM放大器和晶闸管变流器</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/7-pwm%E6%94%BE%E5%A4%A7%E5%99%A8%E5%92%8C%E6%99%B6%E9%97%B8%E7%AE%A1%E5%8F%98%E6%B5%81%E5%99%A8/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/auto-control-elements/7-pwm%E6%94%BE%E5%A4%A7%E5%99%A8%E5%92%8C%E6%99%B6%E9%97%B8%E7%AE%A1%E5%8F%98%E6%B5%81%E5%99%A8/</guid><description>&lt;h2 id="电枢回路等效电路"&gt;电枢回路等效电路&lt;a class="anchor" href="#%e7%94%b5%e6%9e%a2%e5%9b%9e%e8%b7%af%e7%ad%89%e6%95%88%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405113317_236_5.jpg" width="45%"&gt;
&lt;/div&gt;
$$
 双极性控制：\\
正向导通过渡电流：i_a=\frac{U_D-E}{R_a}-(\frac{U_D-E}{R_a}-I_0)e^{-\frac{R_a}{L_a}t}\\
反向导通过渡电流：i_a=-\frac{U_D&amp;#43;E}{R_a}&amp;#43;(\frac{U_D&amp;#43;E}{R_a}&amp;#43;I_{t_1})e^{-\frac{R_a}{L_a}(t-t_1)}

$$
$$
电流满足伏秒平衡：\int_{t_0}^{t_1}V_{L1}dt&amp;#43;\int_{t_1}^{T}V_{L_2}dt=0\\
轻载时，i_a\approx0，电阻压降忽略\\
当\underbrace{(U_D-E)}_{\approx V_{L1}}t_1\underbrace{-(U_D&amp;#43;E)}_{\approx V_{L2}}t_2&amp;gt;0，即U_{av}&amp;gt;E时，不满足伏秒平衡\\
I_0与I_{t_1}应变大，达到伏秒平衡\\
\int_{t_0}^{t_1}(U_D-E-I_0R_a)dt&amp;#43;\int_{t_1}^{T}-(U_D&amp;#43;E&amp;#43;I_{t_1}R_a)dt=0\\
(发电机分析同理)
$$
&lt;h2 id="双极性控制"&gt;双极性控制&lt;a class="anchor" href="#%e5%8f%8c%e6%9e%81%e6%80%a7%e6%8e%a7%e5%88%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;IGBT属于单向电压阻断器件，$U_{CE}&amp;lt;0$
时，无法导通&lt;/li&gt;
&lt;li&gt;二极管起“泄洪”作用，防止电感续流作用击穿开关管&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405113318_237_5.jpg" width="80%"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405154416_238_5.jpg" width="75%"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;开关频率极高，E近似为恒定值，即转速与旋转方向不变&lt;/li&gt;
&lt;li&gt;开关主要影响电感电流，$T_1,T_4$
时电流增加，$T_2,T_3$
时电流减小&lt;/li&gt;
&lt;li&gt;轻载时，电感电流极小很容易换向&lt;/li&gt;
&lt;/ul&gt;
$$
不是电感高频切换的能量转化，而是电能-机械能的宏观能量转化\\
\left.\begin{array}{}
U_{av}&amp;gt;E \quad 电动机\\
0&amp;lt;U_{av}&amp;lt;E \quad 发电机\\
U_{av}\approx E \quad 轻载\\
\end{array}\right\}仅两种开关状态（T_1,T_4或T_2,T_3）

$$
$$

换向\left\{\begin{array}{}
U_{av}&amp;lt;-E \quad 电动机\\
-E&amp;lt;U_{av}&amp;lt;0 \quad 发电机\\
U_{av}\approx -E \quad 轻载\\
\end{array}\right.

$$
&lt;h2 id="单极性控制"&gt;单极性控制&lt;a class="anchor" href="#%e5%8d%95%e6%9e%81%e6%80%a7%e6%8e%a7%e5%88%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405164541_240_5.jpg" width="70%"&gt;
&lt;img src="pic-auto-control-elements/Weixin Image_20260405154417_239_5.jpg" width="70%"&gt;
&lt;/div&gt;
$$
正向导通过渡电流：i_a=\frac{U_D-E}{R_a}-(\frac{U_D-E}{R_a}-I_0)e^{-\frac{R_a}{L_a}t}\\
关断过渡电流：i_a=-\frac{E}{R_a}&amp;#43;(\frac{E}{R_a}&amp;#43;I_{t_1})e^{-\frac{R_a}{L_a}(t-t_1)}

$$
$$

电流满足伏秒平衡：\int_{t_0}^{t_1}V_{L1}dt&amp;#43;\int_{t_1}^{T}V_{L_2}dt=0\\
轻载时，i_a\approx0，电阻压降忽略\\
当\underbrace{(U_D-E)}_{\approx V_{L1}}t_1\underbrace{-E}_{\approx V_{L2}}t_2&amp;gt;0，即U_{av}&amp;gt;E时，不满足伏秒平衡\\
I_0与I_{t_1}应变大，达到伏秒平衡\\
\int_{t_0}^{t_1}(U_D-E-I_0R_a)dt-\int_{t_1}^{T}(E&amp;#43;I_{t_1}R_a)dt=0\\
(发电机分析同理)

$$
$$
正极性（正转）\left\{\begin{array}{l}
T_1,T_2输入相反\\
（单极性控制核心是T_1，T_2起打通续流回路作用）\\
T_3=0，T_4=1锁死
\end{array}\right.

$$
$$
负极性控制（反转）\left\{\begin{array}{l}
T_1,T_2输入相反\\
（单极性控制核心是T_2，T_1起打通续流回路作用）\\
T_3=1，T_4=0锁死
\end{array}\right.

$$
$$
注：U_{av},E关系与双极性控制同理
$$
&lt;h2 id="pwm放大器工作特性"&gt;PWM放大器工作特性&lt;a class="anchor" href="#pwm%e6%94%be%e5%a4%a7%e5%99%a8%e5%b7%a5%e4%bd%9c%e7%89%b9%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
占空系数：\gamma=\frac{t_1}{T_R}\\
信号调制系数：\rho=\frac{u_i}{|U_{im}|}\\（正负时长之差所占比例）\\
\ \\
双极性输出：t_1=\frac{1}{2}T_R(1&amp;#43;\rho)\quad \gamma=\frac{1}{2}(1&amp;#43;\rho)\\
单极性输出：t_1=|\rho|T_R \quad \gamma=|\rho|\\
\ \\
电压（理想分析）：U_{av}=\rho U_D\\
（开关频率高，故按瞬时电压理解）

$$</description></item><item><title>7-参数估计与假设检验</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/7-%E5%8F%82%E6%95%B0%E4%BC%B0%E8%AE%A1%E4%B8%8E%E5%81%87%E8%AE%BE%E6%A3%80%E9%AA%8C/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/7-%E5%8F%82%E6%95%B0%E4%BC%B0%E8%AE%A1%E4%B8%8E%E5%81%87%E8%AE%BE%E6%A3%80%E9%AA%8C/</guid><description>&lt;h1 id="参数估计"&gt;参数估计&lt;a class="anchor" href="#%e5%8f%82%e6%95%b0%e4%bc%b0%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;区间估计：仅考查单个、两个正态总体下的（两个正态总体几乎不考）&lt;/p&gt;
&lt;h2 id="矩估计"&gt;矩估计&lt;a class="anchor" href="#%e7%9f%a9%e4%bc%b0%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

总体k阶矩E(X^k)（含参）=样本原点矩A_k\\
\left.\begin{array}{l}连续：E(X^k)=\int_{-\infty}^{&amp;#43;\infty}x^kf(x;\theta)dx\\
离散：E(X^k)=\sum_{i=1}^n x_i^kf(x_i;\theta)
\end{array}\right\}=A_k(\frac{1}{n}\sum_{i=1}^n X_i^k )（样本必然是离散点）\\
反解得估计量\hat{\theta}(X_1,X_2,\cdots,X_n)\quad估计值\hat{\theta}(x_1,x_2,\cdots,x_n)\\
 \ \\
若涉及估计量的评判标准，A_k的样本值最后代入；否则直接代入，简化计算
$$
&lt;p&gt;
&lt;/p&gt;
$$
典例：\\
1.若一阶矩不含\theta，利用二阶矩估计\theta（考研大纲仅要求到二阶矩）\\
2.若总体分布含有两个未知参数
\left\{\begin{array}{}f(x_i;\theta_1,\theta_2)\\
f(x_i;\theta_1,\theta_2)
\end{array}\right.则分别求出一阶矩、二阶矩，解方程
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：f(x_i;\theta)表示x_i的函数，x_i为总体可能取值，\theta为参数
$$
&lt;h2 id="最大似然估计法"&gt;最大似然估计法&lt;a class="anchor" href="#%e6%9c%80%e5%a4%a7%e4%bc%bc%e7%84%b6%e4%bc%b0%e8%ae%a1%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\left.\begin{array}{l}
离散：L(\theta)=\ln[\prod_{i=1}^{n}P(x_i;\theta)]\quad 离散概率的累乘（离散概率为x_i表达式，可得估计量，如泊松分布；否则不可）\\
连续：L(\theta)=\ln[\prod_{i=1}^{n}f(x_i;\theta)]\quad 概率密度的累乘（样本不同不影响似然函数表达式）
\end{array}\right\}n为样本个数\\
令\frac{d[L(\theta)]}{d\theta}=0
，解得\hat{\theta}(x_1,x_2,\cdots,x_n) \\
估计值\hat{\theta}(x_1,x_2,\cdots,x_n)\quad 估计量\hat{\theta}(X_1,X_2,\cdots,X_n)\\
\ \\
若涉及估计量的标准，样本值x_i最后代入；否则直接代入，简化计算
$$
&lt;p&gt;
&lt;/p&gt;
$$
典例：\\
1.若导数为0的点不存在
\left\{\begin{array}{ll}
超出取值范围\\
导数\neq0
\end{array}\right.，则取\theta（样本值相关）使L(\theta)最大\\
2.若总体分布含有两个未知参数L(\theta_1,\theta_2)，则令偏导为0
\left\{\begin{array}{ll}
\frac{\partial L(\theta_1,\theta_2)}{\partial \theta_1}=0\\
\ \\
\frac{\partial L(\theta_1,\theta_2)}{\partial \theta_2}=0
\end{array}\right.\\
解估计值
\left\{\begin{array}{ll}
\hat{\theta}_1(x_1,x_2,\cdots,x_n)\\
\hat{\theta}_2(x_1,x_2,\cdots,x_n)
\end{array}\right.，
估计量
\left\{\begin{array}{ll}
\hat{\theta}_1(X_1,X_2,\cdots,X_n)\\
\hat{\theta}_2(X_1,X_2,\cdots,X_n)
\end{array}\right.
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>7-非线性系统分析</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/7-%E9%9D%9E%E7%BA%BF%E6%80%A7%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/7-%E9%9D%9E%E7%BA%BF%E6%80%A7%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90/</guid><description>&lt;h1 id="非线性系统分析"&gt;&amp;ldquo;&amp;ldquo;&amp;ldquo;非线性系统分析&amp;rdquo;&amp;rdquo;&amp;rdquo;&lt;a class="anchor" href="#%e9%9d%9e%e7%ba%bf%e6%80%a7%e7%b3%bb%e7%bb%9f%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;只考几类典型的非线性特性、非线性校正不考&lt;/p&gt;
&lt;h2 id="非线性分析题型方法对应"&gt;非线性分析题型方法对应&lt;a class="anchor" href="#%e9%9d%9e%e7%ba%bf%e6%80%a7%e5%88%86%e6%9e%90%e9%a2%98%e5%9e%8b%e6%96%b9%e6%b3%95%e5%af%b9%e5%ba%94"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

\begin{array}{l}
相平面分析\#微分方程 &amp;amp; 相平面分析\#系统框图\\
\ \\
描述函数法\#微分方程 &amp;amp; 描述函数法\#系统框图
\end{array}
$$
&lt;h2 id="奇点平衡点"&gt;奇点（平衡点）&lt;a class="anchor" href="#%e5%a5%87%e7%82%b9%e5%b9%b3%e8%a1%a1%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\ddot{x}&amp;#43;f(x,\dot{x})=0\Leftrightarrow\frac{d\dot{x}}{dx}=-\frac{f(x,\dot{x})}{\dot{x}}（非所有二阶非线性微分方程均有此形式）\\
\ \\
奇点(x_0,\dot{x_0})：\\
满足
\left\{\begin{array}{}
\dot{x}=0\\
f(x,\dot{x})=0
\end{array}\right.的点\Leftrightarrow 满足\left\{\begin{array}{}
\dot{x}=0\\
\ddot{x}=0
\end{array}\right.的点
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：线性二阶系统只有一个平衡点（一个奇点），即原点(x,\dot{x}_0)=(0,0)
$$
&lt;h2 id="纯滞环继电特性"&gt;纯滞环继电特性&lt;a class="anchor" href="#%e7%ba%af%e6%bb%9e%e7%8e%af%e7%bb%a7%e7%94%b5%e7%89%b9%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
u(t)=
\left\{
 \begin{array}{}
 M, &amp;amp;e(t)&amp;gt;h;&amp;amp;e&amp;gt;-h,\dot{e}(t)&amp;lt;0\\
 -M, &amp;amp;e(t)&amp;lt;-h; &amp;amp;e&amp;lt;h,\dot{e}(t)&amp;gt;0
 \end{array}
\right.
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：明显存在问题，但各教材统一，记住即可
$$
&lt;h2 id="二阶系统相平面图"&gt;二阶系统相平面图&lt;a class="anchor" href="#%e4%ba%8c%e9%98%b6%e7%b3%bb%e7%bb%9f%e7%9b%b8%e5%b9%b3%e9%9d%a2%e5%9b%be"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-principal-of-automation-control/Markji_1751375117094.png" width="49%"&gt;&lt;img src="pic-principal-of-automation-control/Markji_1751375123932.png" width="50%"&gt;
&lt;/div&gt;
$$相轨迹运动方向：
\left\{\begin{array}{}
\dot{x}&gt;0&amp;上半平面向右\\
\dot{x}&lt;0&amp;下半平面向左
\end{array}
\right.$$
$$\star渐近线：\dot{x}=\lambda_1x,\quad \dot{x}=\lambda_2x$$
$$
左图微分方程中存在常数时，曲线按奇点平移即可
$$
&lt;h2 id="相平面分析基本概念"&gt;相平面分析基本概念&lt;a class="anchor" href="#%e7%9b%b8%e5%b9%b3%e9%9d%a2%e5%88%86%e6%9e%90%e5%9f%ba%e6%9c%ac%e6%a6%82%e5%bf%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
仅适用于一阶、二阶形如\ddot{x}=f(\dot{x},x)线性，或非系统的分析
$$
$$
相平面中，当二阶特征方程\xi\geqslant1时，一定不产生极限环
$$
&lt;h2 id="相平面绘制的两大方法"&gt;相平面绘制的两大方法&lt;a class="anchor" href="#%e7%9b%b8%e5%b9%b3%e9%9d%a2%e7%bb%98%e5%88%b6%e7%9a%84%e4%b8%a4%e5%a4%a7%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;相轨迹绘制基本只用分段线性化，特别要求时才用等倾斜线法&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>7-正弦稳态电路分析</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/7-%E6%AD%A3%E5%BC%A6%E7%A8%B3%E6%80%81%E7%94%B5%E8%B7%AF%E5%88%86%E6%9E%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/7-%E6%AD%A3%E5%BC%A6%E7%A8%B3%E6%80%81%E7%94%B5%E8%B7%AF%E5%88%86%E6%9E%90/</guid><description>&lt;h2 id="相量法"&gt;相量法&lt;a class="anchor" href="#%e7%9b%b8%e9%87%8f%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
一般使用有效值相量\\
只针对同频率变化的电压、电流\\
化为统一的\sin,\cos\\
\ \\
注：\dot{I}=I\angle \phi,I=\frac{I_m}{\sqrt{2}} \quad(i=\sqrt{2}I\cos(\omega t&amp;#43;\phi))
$$
&lt;h2 id="向量运算"&gt;向量运算&lt;a class="anchor" href="#%e5%90%91%e9%87%8f%e8%bf%90%e7%ae%97"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

\dot{I}=\dot{I_1}\pm \dot{I_2}\\
\dot{I_1}=j\omega \dot{I_2}（\dot{I_1}超前\dot{I_2}\quad 90\degree）

$$
$$

电阻：\dot{U}=R\dot{I}\\
电感：\dot{U}=Lj\omega \dot{I}（电压超前电流90°）\\
电容：\dot{I}=Cj\omega \dot{U}（电流超前电压90°）

$$
$$
注：拉氏变换s=j\omega
$$
&lt;h2 id="分析定理"&gt;分析定理&lt;a class="anchor" href="#%e5%88%86%e6%9e%90%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
相量分析时，KCL、KVL，节点电压法，回路电流法，\\
叠加定理，戴维宁定理，诺顿定理等方法同样适用
$$
&lt;h2 id="功率"&gt;功率&lt;a class="anchor" href="#%e5%8a%9f%e7%8e%87"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
u=\sqrt{2}U\cos(\omega t&amp;#43;\phi_u),\quad i=\sqrt{2}I\cos(\omega t&amp;#43;\phi_i)\\
\angle\phi=\angle\phi_u-\angle\phi_i\\
有功功率：P=UI\cos(\phi)\\
无功功率：Q=UI\sin(\phi)\\
视在功率：S=UI=I^2|Z|\\
复功率：\overline{S}=\dot{U}\dot{I}=S\angle\phi=P&amp;#43;jQ
$$
$$
无功功率\left\{\begin{array}{l}
Q&amp;gt;0,感性\\
Q&amp;lt;0,容性
\end{array}\right.\\
注：电容发出无功功率，电感吸收无功功率\\
吸放相等时，整体阻抗呈阻性
$$
&lt;h2 id="三表测阻抗"&gt;三表测阻抗&lt;a class="anchor" href="#%e4%b8%89%e8%a1%a8%e6%b5%8b%e9%98%bb%e6%8a%97"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 电压电流表均只测有效值，功率表测有功功率\\
Z=R&amp;#43;jX\\
\ \\
R=\frac{P}{I^2}\\
(P=S\cos\phi=I^2|Z|\cos\phi=I^2R)\\
\ \\
|X|=\frac{1}{I^2}\sqrt{(UI)^2-P^2}\\
 (Q=\sqrt{(UI)^2-P^2}=S\sin\phi=I^2|Z|\sin\phi=I^2|X|)\\
 注：感性阻抗X&amp;gt;0，容性阻抗X&amp;lt;0

$$
&lt;h2 id="最大传输功率定理"&gt;最大传输功率定理&lt;a class="anchor" href="#%e6%9c%80%e5%a4%a7%e4%bc%a0%e8%be%93%e5%8a%9f%e7%8e%87%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 Z_{eq}=R_{eq}&amp;#43;jX_{eq}\\
\ \\
当R=R_{eq}，X=-X_{eq}时，P最大\\
最大平均功率为P_{max}=\frac{U^2}{4R_{eq}}
$$</description></item><item><title>7-直流电源</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/7-%E7%9B%B4%E6%B5%81%E7%94%B5%E6%BA%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/analog-electronics/7-%E7%9B%B4%E6%B5%81%E7%94%B5%E6%BA%90/</guid><description>&lt;h2 id="单相半波整流电路"&gt;单相半波整流电路&lt;a class="anchor" href="#%e5%8d%95%e7%9b%b8%e5%8d%8a%e6%b3%a2%e6%95%b4%e6%b5%81%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407213924_275_5.jpg" width="80%"&gt;
&lt;/div&gt;
$$
 U_{2M}=\sqrt{2}U_2\\
U_O=0.45U_2\\
I_O=\frac{0.45U_2}{R_L}
$$
&lt;h2 id="单相桥式整流电路"&gt;单相桥式整流电路&lt;a class="anchor" href="#%e5%8d%95%e7%9b%b8%e6%a1%a5%e5%bc%8f%e6%95%b4%e6%b5%81%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407213925_276_5.jpg"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407213922_273_5.jpg" width="40%"&gt;
&lt;/div&gt;
$$
U_O=0.9U_2\\
I_D=\frac{I_O}{2}=\frac{0.45U_2}{R_L}
$$
&lt;h2 id="三相整流电路"&gt;三相整流电路&lt;a class="anchor" href="#%e4%b8%89%e7%9b%b8%e6%95%b4%e6%b5%81%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407213926_277_5.jpg" width="80%"&gt;
&lt;/div&gt;
&lt;h2 id="滤波电路"&gt;滤波电路&lt;a class="anchor" href="#%e6%bb%a4%e6%b3%a2%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407213927_278_5.jpg" width="50%"&gt;
&lt;/div&gt;
$$
电容滤波：U_O=1.2U_2
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407214817_280_5.jpg" width="55%"&gt;
&lt;/div&gt;
$$
电感滤波：U_O=0.9U_2
$$
&lt;h2 id="稳压电路"&gt;稳压电路&lt;a class="anchor" href="#%e7%a8%b3%e5%8e%8b%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
二极管稳压电路
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407213928_279_5.jpg" width="60%"&gt;
&lt;/div&gt;
$$
串联稳压电路
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-analog-electronics/Weixin Image_20260407213923_274_5.jpg" width="50%"&gt;
&lt;/div&gt;
$$
U_O=\frac{R_1&amp;#43;R_2&amp;#43;R_3}{R_2&amp;#39;&amp;#39;&amp;#43;R_3}\cdot U_{REF}\\
\ \\
U_O调节范围：(\frac{R_1&amp;#43;R_2&amp;#43;R_3}{R_2&amp;#43;R_3}\cdot U_{REF},\frac{R_1&amp;#43;R_2&amp;#43;R_3}{R_3}\cdot U_{REF})
$$</description></item><item><title>7-中值定理</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/7-%E4%B8%AD%E5%80%BC%E5%AE%9A%E7%90%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/7-%E4%B8%AD%E5%80%BC%E5%AE%9A%E7%90%86/</guid><description>&lt;h1 id="中值定理"&gt;&amp;ldquo;&amp;ldquo;&amp;ldquo;中值定理&amp;rdquo;&amp;rdquo;&amp;rdquo;&lt;a class="anchor" href="#%e4%b8%ad%e5%80%bc%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
难点（不等式证明）：拉格朗日中值、泰勒中值\\
中值定理统一前提：闭区间连续，即区间有界函数
$$
&lt;h2 id="介值定理"&gt;介值定理&lt;a class="anchor" href="#%e4%bb%8b%e5%80%bc%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)在[a,b]连续，\\
m\leqslant\mu \leqslant M,\ \exist\ \xi\in[a,b],\ 使f(\xi)=\mu\\
f(x_1)\leqslant\mu \leqslant f(x_2),\ \exist\ \xi\in[x_1,x_2]或[x_2,x_1],\ 使f(\xi)=\mu
$$
&lt;h2 id="平均值定理"&gt;平均值定理&lt;a class="anchor" href="#%e5%b9%b3%e5%9d%87%e5%80%bc%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)在[a,b]连续，a&amp;lt;x_1&amp;lt;x_2&amp;lt;\cdots&amp;lt;x_n&amp;lt;b,\\
\exist \ \xi\in[x_1,x_n], \ 使得f(\xi)=\frac{f(x_1)&amp;#43;f(x_2)&amp;#43;\cdots&amp;#43;f(x_n)}{n}
$$
&lt;h2 id="零点定理及推广"&gt;零点定理及推广&lt;a class="anchor" href="#%e9%9b%b6%e7%82%b9%e5%ae%9a%e7%90%86%e5%8f%8a%e6%8e%a8%e5%b9%bf"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)在[a,b]连续，
f(a)\cdot f(b)&amp;lt;0, \\
\exist \ \xi\in (a,b), \ 使得f(\xi)=0
$$
&lt;p&gt;
&lt;/p&gt;
$$
注意区间开闭：
\xi\in (a,b)\Rightarrow \xi\in [a,b]
$$
&lt;p&gt;
&lt;strong&gt;推广：（不可直接用）&lt;/strong&gt;
&lt;/p&gt;
$$
\left\{
\begin{array}{l}
\lim\limits_{x\to a^&amp;#43;}f(x)\cdot\lim\limits_{x\to b^-}f(x)&amp;lt;0,
\ \ \ \cdots \\
\\
\lim\limits_{x\to a^&amp;#43;}f(x)\cdot f(b)&amp;lt;0,
\ \ \ \cdots \\
\\
\lim\limits_{x\to a^&amp;#43;}f(x)\cdot\lim\limits_{x\to &amp;#43;\infty}f(x)&amp;lt;0,
\ \ \ \cdots
\end{array}
\right.
$$
&lt;h2 id="费马定理"&gt;费马定理&lt;a class="anchor" href="#%e8%b4%b9%e9%a9%ac%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)在x_0处\left\{
\begin{array}{l}
可导\\
\\
取极值
\end{array}
\right.
,则f&amp;#39;(x_0)=0
$$
&lt;h2 id="罗尔定理及推广"&gt;罗尔定理及推广&lt;a class="anchor" href="#%e7%bd%97%e5%b0%94%e5%ae%9a%e7%90%86%e5%8f%8a%e6%8e%a8%e5%b9%bf"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)在\left\{
\begin{array}{l}
[a,b]上连续\\
\\
(a,b)内可导\\
\\
f(a)=f(b)
\end{array}
\right.
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>Transformer架构</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/7-transformer%E6%9E%B6%E6%9E%84/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/7-transformer%E6%9E%B6%E6%9E%84/</guid><description>&lt;h2 id="transformer概述"&gt;Transformer概述&lt;a class="anchor" href="#transformer%e6%a6%82%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="背景"&gt;背景&lt;a class="anchor" href="#%e8%83%8c%e6%99%af"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Transformer&lt;/strong&gt; 由Vaswani等人在2017年提出，彻底改变了NLP和CV领域。&lt;/p&gt;
&lt;h3 id="核心创新"&gt;核心创新&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e5%88%9b%e6%96%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;自注意力机制&lt;/strong&gt;：并行处理序列，无需循环&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;位置编码&lt;/strong&gt;：替代RNN的位置信息&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;完全并行&lt;/strong&gt;：训练速度大幅提升&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="优势"&gt;优势&lt;a class="anchor" href="#%e4%bc%98%e5%8a%bf"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;并行计算&lt;/strong&gt;：比RNN快得多&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;长距离依赖&lt;/strong&gt;：直接建模任意距离的关系&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可解释性&lt;/strong&gt;：注意力权重可视化&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="注意力机制"&gt;注意力机制&lt;a class="anchor" href="#%e6%b3%a8%e6%84%8f%e5%8a%9b%e6%9c%ba%e5%88%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="基本思想"&gt;基本思想&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e6%80%9d%e6%83%b3"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;注意力（Attention）&lt;/strong&gt;：让模型关注输入的不同部分。&lt;/p&gt;
&lt;h3 id="查询-键-值qkv机制"&gt;查询-键-值（QKV）机制&lt;a class="anchor" href="#%e6%9f%a5%e8%af%a2-%e9%94%ae-%e5%80%bcqkv%e6%9c%ba%e5%88%b6"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Query (Q): 查询向量，表示&amp;#34;我想找什么&amp;#34;
Key (K): 键向量，表示&amp;#34;我是什么&amp;#34;
Value (V): 值向量，表示&amp;#34;我的内容&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="计算过程"&gt;计算过程&lt;a class="anchor" href="#%e8%ae%a1%e7%ae%97%e8%bf%87%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;计算相似度：$\text{scores} = Q \cdot K^T$
&lt;/li&gt;
&lt;li&gt;归一化：$\text{attention\_weights} = \text{softmax}(\text{scores} / \sqrt{d_k})$
&lt;/li&gt;
&lt;li&gt;加权求和：$\text{output} = \text{attention\_weights} \cdot V$
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="数学公式"&gt;数学公式&lt;a class="anchor" href="#%e6%95%b0%e5%ad%a6%e5%85%ac%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h3&gt;
$$
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) \cdot V
$$
&lt;p&gt;其中 $d_k$
 是键的维度，用于缩放。&lt;/p&gt;</description></item><item><title>常用层和函数</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/6-%E5%B8%B8%E7%94%A8%E5%B1%82%E5%92%8C%E5%87%BD%E6%95%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/6-%E5%B8%B8%E7%94%A8%E5%B1%82%E5%92%8C%E5%87%BD%E6%95%B0/</guid><description>&lt;h1 id="常用层和函数"&gt;常用层和函数&lt;a class="anchor" href="#%e5%b8%b8%e7%94%a8%e5%b1%82%e5%92%8c%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;PyTorch 提供了丰富的神经网络层和工具函数。本章将介绍常用的层类型和函数，帮助你更好地构建模型。&lt;/p&gt;
&lt;h2 id="卷积层"&gt;卷积层&lt;a class="anchor" href="#%e5%8d%b7%e7%a7%af%e5%b1%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="卷积层模块速查"&gt;卷积层模块速查&lt;a class="anchor" href="#%e5%8d%b7%e7%a7%af%e5%b1%82%e6%a8%a1%e5%9d%97%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Conv1d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;一维卷积层，用于序列数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Conv2d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;二维卷积层，用于图像处理&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Conv3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;三维卷积层，用于视频或3D数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ConvTranspose1d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;一维转置卷积（反卷积），用于上采样&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ConvTranspose2d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;二维转置卷积，用于生成模型和上采样&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ConvTranspose3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;三维转置卷积&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Unfold&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;将滑动窗口展开为矩阵&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Fold&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;将展开的矩阵折叠回特征图&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例"&gt;示例&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Conv1d&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;conv1d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Conv1d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;kernel_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (batch, channels, length)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;conv1d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 32, 100)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Conv2d 基础用法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;conv2d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Conv2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;kernel_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;conv2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 64, 32, 32)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Conv3d&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;conv3d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Conv3d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;kernel_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;conv3d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 转置卷积（上采样）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;transpose_conv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ConvTranspose2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;kernel_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;transpose_conv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# (32, 32, 32, 32)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Unfold：将滑动窗口展开为矩阵&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;unfold&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Unfold&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kernel_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;unfold&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 64*3*3, 32*32)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="池化层"&gt;池化层&lt;a class="anchor" href="#%e6%b1%a0%e5%8c%96%e5%b1%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="池化层模块速查"&gt;池化层模块速查&lt;a class="anchor" href="#%e6%b1%a0%e5%8c%96%e5%b1%82%e6%a8%a1%e5%9d%97%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.MaxPool1d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;一维最大池化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.MaxPool2d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;二维最大池化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.MaxPool3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;三维最大池化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.AvgPool1d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;一维平均池化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.AvgPool2d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;二维平均池化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.AvgPool3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;三维平均池化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.AdaptiveMaxPool1d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;一维自适应最大池化，输出固定大小&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.AdaptiveMaxPool2d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;二维自适应最大池化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.AdaptiveMaxPool3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;三维自适应最大池化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.AdaptiveAvgPool1d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;一维自适应平均池化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.AdaptiveAvgPool2d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;二维自适应平均池化（全局平均池化）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.AdaptiveAvgPool3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;三维自适应平均池化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.MaxUnpool1d/2d/3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;最大池化的逆操作&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.FractionalMaxPool2d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;分数最大池化，使用随机步长&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.LPPool1d/2d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Lp 范数池化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例-1"&gt;示例&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b-1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# MaxPool1d（1d 典型）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;maxpool1d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MaxPool1d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kernel_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;maxpool1d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 64, 50)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# MaxPool2d、AvgPool2d&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;maxpool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MaxPool2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kernel_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;avgpool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AvgPool2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kernel_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;maxpool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 64, 16, 16)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;avgpool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 64, 16, 16)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 全局平均池化&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;global_avg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AdaptiveAvgPool2d&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;global_avg&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 64, 1, 1)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="归一化层"&gt;归一化层&lt;a class="anchor" href="#%e5%bd%92%e4%b8%80%e5%8c%96%e5%b1%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="归一化层模块速查"&gt;归一化层模块速查&lt;a class="anchor" href="#%e5%bd%92%e4%b8%80%e5%8c%96%e5%b1%82%e6%a8%a1%e5%9d%97%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.BatchNorm1d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;一维批归一化，用于全连接层&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.BatchNorm2d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;二维批归一化，用于卷积层&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.BatchNorm3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;三维批归一化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.GroupNorm&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;组归一化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.LayerNorm&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;层归一化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.InstanceNorm1d/2d/3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;实例归一化，常用于风格迁移&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.LocalResponseNorm&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;局部响应归一化（LRN），常用于 AlexNet&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例-2"&gt;示例&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b-2"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# BatchNorm2d&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;bn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BatchNorm2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# LayerNorm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ln&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LayerNorm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ln&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# GroupNorm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;gn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GroupNorm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;gn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# InstanceNorm2d&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;in_norm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;InstanceNorm2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;in_norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# LocalResponseNorm（LRN）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;lrn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LocalResponseNorm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lrn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="激活函数"&gt;激活函数&lt;a class="anchor" href="#%e6%bf%80%e6%b4%bb%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="非线性激活函数速查"&gt;非线性激活函数速查&lt;a class="anchor" href="#%e9%9d%9e%e7%ba%bf%e6%80%a7%e6%bf%80%e6%b4%bb%e5%87%bd%e6%95%b0%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;公式&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ReLU&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;修正线性单元&lt;/td&gt;
 &lt;td&gt;$\text{ReLU}(x) = \max(0, x)$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.LeakyReLU&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;泄漏 ReLU&lt;/td&gt;
 &lt;td&gt;$\text{LeakyReLU}(x) = \max(0, x) &amp;#43; \alpha \min(0, x)$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.PReLU&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;参数化 ReLU，斜率可学习&lt;/td&gt;
 &lt;td&gt;$\text{PReLU}(x) = \max(0, x) &amp;#43; a \min(0, x)$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.RReLU&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;随机 ReLU，训练时随机选择斜率&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Sigmoid&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Sigmoid 函数&lt;/td&gt;
 &lt;td&gt;$\text{Sigmoid}(x) = \frac{1}{1 &amp;#43; \exp(-x)}$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Tanh&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;双曲正切函数&lt;/td&gt;
 &lt;td&gt;$\text{Tanh}(x) = \frac{\exp(x) - \exp(-x)}{\exp(x) &amp;#43; \exp(-x)}$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.GELU&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;高斯误差线性单元&lt;/td&gt;
 &lt;td&gt;$\text{GELU}(x) = x \times \Phi(x)$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.SiLU&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Sigmoid 线性单元（Swish）&lt;/td&gt;
 &lt;td&gt;$\text{SiLU}(x) = x \times \text{sigmoid}(x)$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ELU&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;指数线性单元&lt;/td&gt;
 &lt;td&gt;$\text{ELU}(x) = \max(0, x) &amp;#43; \min(0, \alpha \times (\exp(x) - 1))$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.CELU&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;连续可微的 ELU&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.SELU&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;缩放指数线性单元&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ReLU6&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ReLU6&lt;/td&gt;
 &lt;td&gt;$\text{ReLU6}(x) = \min(\max(0, x), 6)$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Hardswish&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Hardswish 激活函数&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Hardsigmoid&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Hard sigmoid 激活函数&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Hardtanh&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Hard tanh 激活函数&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Softmax&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Softmax 函数&lt;/td&gt;
 &lt;td&gt;$\text{Softmax}(x_i) = \frac{\exp(x_i)}{\sum_j \exp(x_j)}$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.LogSoftmax&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;对数 Softmax&lt;/td&gt;
 &lt;td&gt;$\text{LogSoftmax}(x_i) = \log\left(\frac{\exp(x_i)}{\sum_j \exp(x_j)}\right)$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Softmin&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Softmin 函数（Softmax 的负值版本）&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Softmax2d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;对每个空间位置应用 Softmax&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Softsign&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Softsign 函数&lt;/td&gt;
 &lt;td&gt;$\text{Softsign}(x) = \frac{x}{1 &amp;#43; \|x\|}$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Tanhshrink&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Tanhshrink 函数&lt;/td&gt;
 &lt;td&gt;$\text{Tanhshrink}(x) = x - \tanh(x)$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Threshold&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;阈值激活函数&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例-3"&gt;示例&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b-3"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ReLU、LeakyReLU&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;relu&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ReLU&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;relu&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;leaky_relu&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LeakyReLU&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;negative_slope&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;leaky_relu&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Sigmoid、Tanh、GELU&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sigmoid&lt;/span&gt;&lt;span class="p"&gt;()(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tanh&lt;/span&gt;&lt;span class="p"&gt;()(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GELU&lt;/span&gt;&lt;span class="p"&gt;()(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Softmax、ReLU6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Softmax&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dim&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ReLU6&lt;/span&gt;&lt;span class="p"&gt;()(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="dropout-层"&gt;Dropout 层&lt;a class="anchor" href="#dropout-%e5%b1%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="dropout-层模块速查"&gt;Dropout 层模块速查&lt;a class="anchor" href="#dropout-%e5%b1%82%e6%a8%a1%e5%9d%97%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Dropout&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Dropout，训练时随机置零&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Dropout1d/2d/3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;多维 Dropout&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.AlphaDropout&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Alpha Dropout，保持自归一化性质&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.FeatureAlphaDropout&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;特征 Alpha Dropout&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例-4"&gt;示例&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b-4"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Dropout（全连接）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dropout&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Dropout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dropout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Dropout2d（卷积特征图）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dropout2d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Dropout2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dropout2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="全连接层"&gt;全连接层&lt;a class="anchor" href="#%e5%85%a8%e8%bf%9e%e6%8e%a5%e5%b1%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;公式&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Linear&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;全连接层（线性变换）&lt;/td&gt;
 &lt;td&gt;$y = xA^T &amp;#43; b$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Bilinear&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;双线性层&lt;/td&gt;
 &lt;td&gt;$y = x_1^T A x_2 &amp;#43; b$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例-5"&gt;示例&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b-5"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Linear：会自动初始化 权重(Kaiming) 均匀分布；偏置(均匀分布)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;fc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;784&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# nn.Linear(784,128)：特征维度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;784&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# x维度是：batch维 + 特征维&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 128) &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Bilinear&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;bilinear&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Bilinear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bilinear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 32)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 多层全连接（MLP）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MLP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Module&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;super&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fc1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;784&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fc2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fc3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;relu&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fc1&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;relu&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fc2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fc3&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="循环神经网络层"&gt;循环神经网络层&lt;a class="anchor" href="#%e5%be%aa%e7%8e%af%e7%a5%9e%e7%bb%8f%e7%bd%91%e7%bb%9c%e5%b1%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="循环层模块速查"&gt;循环层模块速查&lt;a class="anchor" href="#%e5%be%aa%e7%8e%af%e5%b1%82%e6%a8%a1%e5%9d%97%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.RNN&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;基础循环神经网络&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.LSTM&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;长短期记忆网络&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.GRU&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;门控循环单元&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.RNNCell&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;单个时间步的 RNN 单元&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.LSTMCell&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;单个时间步的 LSTM 单元&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.GRUCell&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;单个时间步的 GRU 单元&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例-6"&gt;示例&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b-6"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (batch, seq_len, input_size)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# LSTM&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;lstm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LSTM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;hidden_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;num_layers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_first&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h_n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c_n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lstm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# out: (32, 5, 20)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# GRU&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;gru&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GRU&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;hidden_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;num_layers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_first&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;h_n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;gru&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# LSTMCell（单步）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;cell&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LSTMCell&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cell&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="嵌入层"&gt;嵌入层&lt;a class="anchor" href="#%e5%b5%8c%e5%85%a5%e5%b1%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="稀疏层模块速查"&gt;稀疏层模块速查&lt;a class="anchor" href="#%e7%a8%80%e7%96%8f%e5%b1%82%e6%a8%a1%e5%9d%97%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Embedding&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;嵌入层，将索引映射为密集向量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.EmbeddingBag&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;嵌入包，计算嵌入向量的和或均值&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例-7"&gt;示例&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b-7"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Embedding&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;embedding&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Embedding&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;embedding&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 10, 128)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# EmbeddingBag（按包聚合，如词袋）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;embed_bag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;EmbeddingBag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;mean&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;offsets&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tensor&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# 8 个包&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;indices&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;embed_bag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;indices&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;offsets&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (8, 128)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="注意力机制"&gt;注意力机制&lt;a class="anchor" href="#%e6%b3%a8%e6%84%8f%e5%8a%9b%e6%9c%ba%e5%88%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="transformer-层模块速查"&gt;Transformer 层模块速查&lt;a class="anchor" href="#transformer-%e5%b1%82%e6%a8%a1%e5%9d%97%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Transformer&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;完整的 Transformer 模型&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.TransformerEncoder&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Transformer 编码器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.TransformerDecoder&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Transformer 解码器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.TransformerEncoderLayer&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;单个 Transformer 编码器层&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.TransformerDecoderLayer&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Transformer 解码器层&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.MultiheadAttention&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;多头注意力机制&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例-8"&gt;示例&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b-8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;512&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (batch, seq_len, embed_dim)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# MultiheadAttention&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;mha&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MultiheadAttention&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;embed_dim&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;512&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;num_heads&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_first&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;attn_weights&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mha&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# out: (32, 10, 512)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# TransformerEncoderLayer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;enc_layer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;TransformerEncoderLayer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d_model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;512&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nhead&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_first&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;enc_layer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 10, 512)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="实用工具函数"&gt;实用工具函数&lt;a class="anchor" href="#%e5%ae%9e%e7%94%a8%e5%b7%a5%e5%85%b7%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="工具函数速查"&gt;工具函数速查&lt;a class="anchor" href="#%e5%b7%a5%e5%85%b7%e5%87%bd%e6%95%b0%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Flatten&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;展平层&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Unflatten&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;反展平层&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Identity&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;恒等映射，不做任何操作&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例flatten--unflatten--identity"&gt;示例（Flatten / Unflatten / Identity）&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8bflatten--unflatten--identity"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Flatten&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;flatten&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Flatten&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;flatten&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 3072)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Unflatten&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;unflatten&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Unflatten&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;unflatten&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3072&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# (32, 3, 32, 32)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Identity&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;identity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Identity&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;identity&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 形状不变&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id="填充层速查"&gt;填充层速查&lt;a class="anchor" href="#%e5%a1%ab%e5%85%85%e5%b1%82%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ZeroPad2d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;零填充&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ConstantPad1d/2d/3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;常数填充&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ReflectionPad1d/2d/3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;反射填充&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ReplicationPad1d/2d/3d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;复制填充&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例padding"&gt;示例（Padding）&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8bpadding"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ZeroPad2d&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;pad&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ZeroPad2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;padding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (32, 3, 34, 34)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ConstantPad2d&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;pad2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ConstantPad2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;padding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pad2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="组合层"&gt;组合层&lt;a class="anchor" href="#%e7%bb%84%e5%90%88%e5%b1%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="容器类模块速查"&gt;容器类模块速查&lt;a class="anchor" href="#%e5%ae%b9%e5%99%a8%e7%b1%bb%e6%a8%a1%e5%9d%97%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Module&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;所有神经网络模块的基类&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.Sequential&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;按顺序组合多个模块&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ModuleList&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;存储模块的列表，可动态添加&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ModuleDict&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;存储模块的字典&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ParameterList&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;存储参数的列表&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.ParameterDict&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;存储参数的字典&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例-9"&gt;示例&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8b-9"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Sequential&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sequential&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Conv2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BatchNorm2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ReLU&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MaxPool2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Flatten&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ReLU&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ModuleList&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Net&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Module&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;super&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;layers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ModuleList&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;layer&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;layers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;layer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ParameterList&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Custom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Module&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;super&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ParameterList&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Parameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="常用函数"&gt;常用函数&lt;a class="anchor" href="#%e5%b8%b8%e7%94%a8%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="损失函数速查"&gt;损失函数速查&lt;a class="anchor" href="#%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模块&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;公式&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.L1Loss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;L1 损失（平均绝对误差）&lt;/td&gt;
 &lt;td&gt;$L = \frac{1}{N} \sum_i \|x_i - y_i\|$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.MSELoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;均方误差损失&lt;/td&gt;
 &lt;td&gt;$L = \frac{1}{N} \sum_i (x_i - y_i)^2$
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.CrossEntropyLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;交叉熵损失，用于多分类&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.NLLLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;负对数似然损失，通常与 LogSoftmax 配合使用&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.BCELoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;二元交叉熵损失，用于二分类&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.BCEWithLogitsLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;带 logits 的二元交叉熵，数值更稳定&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.KLDivLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;KL 散度损失&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.MarginRankingLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;排序损失&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.HingeEmbeddingLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Hinge 嵌入损失&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.MultiLabelMarginLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;多标签边界损失&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.SmoothL1Loss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;平滑 L1 损失（Huber 损失）&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.SoftMarginLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Soft margin 损失&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.MultiLabelSoftMarginLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;多标签 Soft margin 损失&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.CosineEmbeddingLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;余弦嵌入损失&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.MultiMarginLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;多类多分类损失&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.TripletMarginLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;三元组损失&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.CTCLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;连接时序分类损失，用于序列标注&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.PoissonNLLLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;泊松负对数似然损失&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nn.GaussianNLLLoss&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;高斯负对数似然损失&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="示例f-与-nn-损失"&gt;示例（F.* 与 nn 损失）&lt;a class="anchor" href="#%e7%a4%ba%e4%be%8bf-%e4%b8%8e-nn-%e6%8d%9f%e5%a4%b1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn.functional&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;F&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# F.* 典型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;relu&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;max_pool2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;kernel_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dropout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;training&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;interpolate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;bilinear&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;align_corners&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# F 损失&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;logits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;targets&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cross_entropy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;logits&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;targets&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mse_loss&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# nn 损失&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ce&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CrossEntropyLoss&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ce&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;logits&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;targets&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;bce&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BCEWithLogitsLoss&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;loss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bce&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="构建复杂模型示例"&gt;构建复杂模型示例&lt;a class="anchor" href="#%e6%9e%84%e5%bb%ba%e5%a4%8d%e6%9d%82%e6%a8%a1%e5%9e%8b%e7%a4%ba%e4%be%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="resnet-block"&gt;ResNet Block&lt;a class="anchor" href="#resnet-block"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ResidualBlock&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Module&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;in_channels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out_channels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;super&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conv1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Conv2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in_channels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out_channels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bn1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BatchNorm2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out_channels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conv2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Conv2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out_channels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out_channels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bn2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BatchNorm2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out_channels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;relu&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ReLU&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;inplace&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shortcut&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sequential&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;stride&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;in_channels&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;out_channels&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shortcut&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sequential&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Conv2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in_channels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out_channels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;stride&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BatchNorm2d&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out_channels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;residual&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shortcut&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;relu&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bn1&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conv1&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bn2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conv2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;residual&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;relu&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="transformer-block"&gt;Transformer Block&lt;a class="anchor" href="#transformer-block"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.nn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;TransformerBlock&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Module&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;embed_dim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;num_heads&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ff_dim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dropout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;super&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;attention&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MultiheadAttention&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;embed_dim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;num_heads&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;batch_first&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;norm1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LayerNorm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;embed_dim&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;norm2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LayerNorm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;embed_dim&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;feed_forward&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sequential&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;embed_dim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ff_dim&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GELU&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Dropout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dropout&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Linear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ff_dim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;embed_dim&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Dropout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dropout&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 自注意力&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;attn_out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;attention&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;norm1&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;attn_out&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 前馈网络&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;ff_out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;feed_forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;norm2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;ff_out&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="练习"&gt;练习&lt;a class="anchor" href="#%e7%bb%83%e4%b9%a0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;使用不同的层构建一个 CNN 模型&lt;/li&gt;
&lt;li&gt;实现一个带残差连接的模块&lt;/li&gt;
&lt;li&gt;构建一个简单的 Transformer 块&lt;/li&gt;
&lt;li&gt;尝试使用不同的归一化层，比较效果&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="下一步"&gt;下一步&lt;a class="anchor" href="#%e4%b8%8b%e4%b8%80%e6%ad%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;掌握了常用层和函数后，学习：&lt;/p&gt;</description></item><item><title>异常处理</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/7-%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/7-%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86/</guid><description>&lt;h1 id="异常处理"&gt;异常处理&lt;a class="anchor" href="#%e5%bc%82%e5%b8%b8%e5%a4%84%e7%90%86"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;异常处理是 Python 中处理错误和异常情况的机制。良好的异常处理可以使程序更加健壮。&lt;/p&gt;
&lt;h2 id="什么是异常"&gt;什么是异常？&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af%e5%bc%82%e5%b8%b8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;异常是程序运行时发生的错误。当 Python 遇到错误时，会抛出（raise）一个异常。&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 常见的异常&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="c1"&gt;# ZeroDivisionError: division by zero&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;abc&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# ValueError: invalid literal for int()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# IndexError: list index out of range&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# KeyError: &amp;#39;key&amp;#39;（如果key不存在）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="try-except-语句"&gt;try-except 语句&lt;a class="anchor" href="#try-except-%e8%af%ad%e5%8f%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="基本语法"&gt;基本语法&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 可能出错的代码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;ZeroDivisionError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 处理异常&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;除零错误！&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 程序继续执行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;程序继续运行&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="捕获多个异常"&gt;捕获多个异常&lt;a class="anchor" href="#%e6%8d%95%e8%8e%b7%e5%a4%9a%e4%b8%aa%e5%bc%82%e5%b8%b8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;输入一个数字: &amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;输入的不是数字！&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;ZeroDivisionError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;不能除以零！&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 捕获多个异常类型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 代码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ne"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ne"&gt;TypeError&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;值错误或类型错误&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 捕获所有异常（不推荐，除非必要）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 代码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;发生错误: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="获取异常信息"&gt;获取异常信息&lt;a class="anchor" href="#%e8%8e%b7%e5%8f%96%e5%bc%82%e5%b8%b8%e4%bf%a1%e6%81%af"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;ZeroDivisionError&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;错误类型: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="vm"&gt;__name__&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;错误信息: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;错误详情: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="try-except-else-语句"&gt;try-except-else 语句&lt;a class="anchor" href="#try-except-else-%e8%af%ad%e5%8f%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;else&lt;/code&gt; 子句在没有异常时执行。&lt;/p&gt;</description></item><item><title>8-含耦合电感的电路</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/8-%E5%90%AB%E8%80%A6%E5%90%88%E7%94%B5%E6%84%9F%E7%9A%84%E7%94%B5%E8%B7%AF/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/8-%E5%90%AB%E8%80%A6%E5%90%88%E7%94%B5%E6%84%9F%E7%9A%84%E7%94%B5%E8%B7%AF/</guid><description>&lt;h2 id="耦合电感"&gt;耦合电感&lt;a class="anchor" href="#%e8%80%a6%e5%90%88%e7%94%b5%e6%84%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260417161438_320_5.jpg" width="40%"&gt;
&lt;/div&gt;
$$
 u_1=L_1\frac{di_1}{dt}&amp;#43;M\frac{di_2}{dt}\\
\ \\
u_2=L_2\frac{di_2}{dt}&amp;#43;M\frac{di_1}{dt}
$$
$$
注：若为异名端耦合，则为&amp;#34;-&amp;#34;
$$
&lt;h2 id="串联耦合电路"&gt;串联耦合电路&lt;a class="anchor" href="#%e4%b8%b2%e8%81%94%e8%80%a6%e5%90%88%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260417161436_318_5.jpg" width="70%"&gt;
&lt;/div&gt;
$$
注：若为异名端相连，则为&amp;#34;&amp;#43;&amp;#34;
$$
&lt;h2 id="并联耦合电路"&gt;并联耦合电路&lt;a class="anchor" href="#%e5%b9%b6%e8%81%94%e8%80%a6%e5%90%88%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260417161435_317_5.jpg" width="60%"&gt;
&lt;/div&gt;
$$
\dot{U}=Z_1\dot{I_1}\pm Z_M\dot{I_2}\\
\dot{U}=\pm Z_M\dot{I_1}&amp;#43;Z_2\dot{I_2}\\
\dot{I_3}=\dot{I_1}&amp;#43;\dot{I_2}\\
注：同名端并联为&amp;#34;&amp;#43;&amp;#34;，异名端并联为&amp;#34;-&amp;#34;
$$
&lt;h2 id="三支路耦合电路"&gt;三支路耦合电路&lt;a class="anchor" href="#%e4%b8%89%e6%94%af%e8%b7%af%e8%80%a6%e5%90%88%e7%94%b5%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260417161437_319_5.jpg" width="50%"&gt;
&lt;/div&gt;
$$
注：同名端相连为&amp;#34;-&amp;#34;，异名端并联为&amp;#34;&amp;#43;&amp;#34;
$$
&lt;h2 id="理想变压器"&gt;理想变压器&lt;a class="anchor" href="#%e7%90%86%e6%83%b3%e5%8f%98%e5%8e%8b%e5%99%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260417163628_321_5.jpg" width="35%"&gt;
&lt;/div&gt;
$$
\frac{u_1}{N_1}=\frac{u_2}{N_2}\\
\frac{i_1}{N_2}=-\frac{i_2}{N_1}
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260417164036_322_5.jpg" width="70%"&gt;
&lt;/div&gt;
$$
二次侧阻抗折算至一次侧：R_{eq}=\frac{u_1}{i_1}=\frac{n \cdot u_2}{\frac{i_2}{n}}=n^2 \cdot Z_L
$$</description></item><item><title>8-其他</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/8-%E5%85%B6%E4%BB%96/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/principal-of-automation/8-%E5%85%B6%E4%BB%96/</guid><description>&lt;h1 id="横向知识点对比"&gt;横向知识点对比&lt;a class="anchor" href="#%e6%a8%aa%e5%90%91%e7%9f%a5%e8%af%86%e7%82%b9%e5%af%b9%e6%af%94"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="稳定判据对比"&gt;稳定判据对比&lt;a class="anchor" href="#%e7%a8%b3%e5%ae%9a%e5%88%a4%e6%8d%ae%e5%af%b9%e6%af%94"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

劳斯稳定判据\\
\ \\
\text{Nyquist}稳定判据\\
\ \\
对数稳定判据\\
\ \\
相角裕度、幅值裕度
$$
&lt;h2 id="临界稳定反求参数"&gt;临界稳定反求参数&lt;a class="anchor" href="#%e4%b8%b4%e7%95%8c%e7%a8%b3%e5%ae%9a%e5%8f%8d%e6%b1%82%e5%8f%82%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\left\{\begin{array}{l}
劳斯判据（全零行）：D(s)=0\\
特征方程D(j\omega)=0：实部、虚部均为0
，可解得参数与振荡\omega
\end{array}\right.
$$
&lt;p&gt;
&lt;/p&gt;
$$
\text{Nyquist}稳定判据：G(j\omega)虚部为0，实部为-1，可解得参数与振荡\omega\quad （分类讨论，具体情况具体分析）
$$
&lt;h1 id="备用知识点"&gt;备用知识点&lt;a class="anchor" href="#%e5%a4%87%e7%94%a8%e7%9f%a5%e8%af%86%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="动态性能指标计算器方法"&gt;动态性能指标计算器方法&lt;a class="anchor" href="#%e5%8a%a8%e6%80%81%e6%80%a7%e8%83%bd%e6%8c%87%e6%a0%87%e8%ae%a1%e7%ae%97%e5%99%a8%e6%96%b9%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
使用\textbf{{\color{red}=}}列方程，利用\text{solve}方法解一元方程
$$
&lt;h2 id="典型环节传递函数"&gt;典型环节传递函数&lt;a class="anchor" href="#%e5%85%b8%e5%9e%8b%e7%8e%af%e8%8a%82%e4%bc%a0%e9%80%92%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;典型问题：已知模型，构造系统&lt;/strong&gt;
&lt;/p&gt;
$$
G(s)=-\frac{R_2}{R_1}\qquad G(s)=-\frac{1}{R_1C_1s}\qquad G(s)=-\frac{R_2}{R_1(R_2C_2s&amp;#43;1)}
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-principal-of-automation-control/Markji_1751375386725.png" width="32%"&gt;
&lt;img src="pic-principal-of-automation-control/Markji_1751375392653.png" width="35%"&gt;
&lt;img src="pic-principal-of-automation-control/Markji_1751375398308.png" width="32%"&gt;
&lt;/div&gt;
&lt;h2 id="nyquist稳定判据证明"&gt;Nyquist稳定判据证明&lt;a class="anchor" href="#nyquist%e7%a8%b3%e5%ae%9a%e5%88%a4%e6%8d%ae%e8%af%81%e6%98%8e"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
F(s)=1&amp;#43;G(s)H(s)=\frac{D(s)}{N(s)}
$$
&lt;p&gt;
&lt;/p&gt;
$$
\omega:0\to &amp;#43;\infty
\left\{\begin{array}{l}
\Delta\angle D(s)=(n-z)\frac{\pi}{2}-z\frac{\pi}{2}=(n-2z)\frac{\pi}{2}\\
\ \\
\Delta\angle N(s)=(n-p)\frac{\pi}{2}-p\frac{\pi}{2}=(n-2p)\frac{\pi}{2}\\
\ \\
\Delta\angle F(s)=(n-2z)\frac{\pi}{2}-(n-2p)\frac{\pi}{2}=(p-z)\pi
\end{array}\right.故Z=P-2N_1（N_1表示包围圈数，逆正顺负）
$$
&lt;p&gt;
&lt;/p&gt;
$$
\omega:-\infty\to &amp;#43;\infty
\left\{\begin{array}{l}
\Delta\angle D(s)=(n-z)\pi-z\pi=(n-2z)\pi\\
\ \\
\Delta\angle N(s)=(n-p)\pi-p\pi=(n-2p)\pi\\
\ \\
\Delta\angle F(s)=(n-2z)\pi-(n-2p)\pi=(p-z)2\pi
\end{array}\right.故Z=P-N_2（N_2表示包围圈数，逆正顺负）
$$
&lt;h2 id="二阶开环频域特性及闭环性能"&gt;二阶开环频域特性及闭环性能&lt;a class="anchor" href="#%e4%ba%8c%e9%98%b6%e5%bc%80%e7%8e%af%e9%a2%91%e5%9f%9f%e7%89%b9%e6%80%a7%e5%8f%8a%e9%97%ad%e7%8e%af%e6%80%a7%e8%83%bd"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
对数特性公式
\left\{\begin{array}{l}
\gamma=\arctan\frac{2\xi}{\sqrt{\sqrt{1&amp;#43;4\xi^4}-2\xi^2}}\\
\omega_c=\omega_n\sqrt{\sqrt{1&amp;#43;4\xi^4}-2\xi^2}
\end{array}\right.\\
\gamma一定时，\omega_c越大，闭环系统快速性越好，t_s,t_p越小\\
\omega_c一定时，\gamma越大，闭环系统平稳性越好，\sigma\%越小
$$
&lt;h2 id="bode图折线原理"&gt;Bode图折线原理&lt;a class="anchor" href="#bode%e5%9b%be%e6%8a%98%e7%ba%bf%e5%8e%9f%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;完整代表系统折线&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>8-其他</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/8-%E5%85%B6%E4%BB%96/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/probability-theory/8-%E5%85%B6%E4%BB%96/</guid><description>&lt;h1 id="熟记小结论"&gt;熟记小结论&lt;a class="anchor" href="#%e7%86%9f%e8%ae%b0%e5%b0%8f%e7%bb%93%e8%ae%ba"&gt;#&lt;/a&gt;&lt;/h1&gt;
$$
\sum_{i=0}^nC_n^i=(1&amp;#43;1)^n=2^n
$$
&lt;h2 id="泊松积分"&gt;泊松积分&lt;a class="anchor" href="#%e6%b3%8a%e6%9d%be%e7%a7%af%e5%88%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$

I=\int_{-\infty}^{&amp;#43;\infty}e^{-x^2}dx=\sqrt{\pi}\\
I^2=\int_{-\infty}^{&amp;#43;\infty}e^{-x^2}dx\int_{-\infty}^{&amp;#43;\infty}e^{-y^2}dy=\iint\limits_{D}e^{-(x^2&amp;#43;y^2)}d\sigma
$$
&lt;h2 id=""&gt;$\int_0^{&amp;#43;\infty}e^{-ax}dx$
&lt;a class="anchor" href="#"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\int_0^{&amp;#43;\infty}e^{-ax}dx=\frac{1}{a}(a&amp;gt;0)
$$
&lt;h2 id=""&gt;$\int_0^{&amp;#43;\infty} x^2e^{-x^2}dx$
&lt;a class="anchor" href="#"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
I=-\frac{1}{2}\int_0^{&amp;#43;\infty}xd(e^{-{x^2}})=-\frac{1}{2}[xe^{-x^2}\bigg|_0^{&amp;#43;\infty}-\underbrace{\int_0^{&amp;#43;\infty}e^{-x^2}dx}_{也可构造正态分布计算}]
$$
$$
注：I 被积函数为偶函数，也可构造正态分布E(X^2)计算
$$
&lt;h1 id="计算严谨性问题"&gt;计算严谨性问题&lt;a class="anchor" href="#%e8%ae%a1%e7%ae%97%e4%b8%a5%e8%b0%a8%e6%80%a7%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h1&gt;</description></item><item><title>8-一元微分学的应用</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/8-%E4%B8%80%E5%85%83%E5%BE%AE%E5%88%86%E5%AD%A6%E7%9A%84%E5%BA%94%E7%94%A8/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/8-%E4%B8%80%E5%85%83%E5%BE%AE%E5%88%86%E5%AD%A6%E7%9A%84%E5%BA%94%E7%94%A8/</guid><description>&lt;h1 id="一元微分学的应用"&gt;一元微分学的应用&lt;a class="anchor" href="#%e4%b8%80%e5%85%83%e5%be%ae%e5%88%86%e5%ad%a6%e7%9a%84%e5%ba%94%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;难点：抽象函数各阶导数与极值点，拐点，单调性的判定问题&lt;/p&gt;
&lt;p&gt;条件多，不易分清&lt;/p&gt;
&lt;p&gt;经常求各阶导数，繁琐&lt;/p&gt;
&lt;h2 id="极值的定义"&gt;极值的定义&lt;a class="anchor" href="#%e6%9e%81%e5%80%bc%e7%9a%84%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)在U(X_0)内有定义，对于任意x\in \mathring{U}(x_0,\delta),\ \ \ f(x)&amp;lt;f(x_0)(或f(x)&amp;gt;f(x_0))，则称f(x_0)为极值
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：闭区间端点无法取到极值\\
开区间端小邻域内无法取到极值（无确定点）\\
常函数无法取到极值
$$
&lt;h2 id="最值的定义"&gt;最值的定义&lt;a class="anchor" href="#%e6%9c%80%e5%80%bc%e7%9a%84%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
设x_0为f(x)在定义域内一点，若对于f(x)定义域内任一异于x_0的一点x，均有\\
f(x)\leqslant f(x_0)(或f(x)\geqslant f(x_0)),则称f(x_0)为f(x)最值
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：开区间端小邻域内无法取到最值（无确定点）\\
若为最值段，则可取到无限个最值点
$$
&lt;h2 id="拐点的定义"&gt;拐点的定义&lt;a class="anchor" href="#%e6%8b%90%e7%82%b9%e7%9a%84%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)在区间{\color{blue}连续}，y=f(x)的凹凸性的分界点称为拐点
$$
&lt;h2 id="凹凸性定义"&gt;凹凸性定义&lt;a class="anchor" href="#%e5%87%b9%e5%87%b8%e6%80%a7%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
函数区间连续，对区间内任意x_1,x_2, 使\\f(\frac{x_1&amp;#43;x_2}{2})&amp;gt;\frac{f(x_1)&amp;#43;f(x_2)}{2}凸\\f(\frac{x_1&amp;#43;x_2}{2})&amp;lt;\frac{f(x_1)&amp;#43;f(x_2)}{2}凹
$$
&lt;h2 id="单调性与导数关系"&gt;单调性与导数关系&lt;a class="anchor" href="#%e5%8d%95%e8%b0%83%e6%80%a7%e4%b8%8e%e5%af%bc%e6%95%b0%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)一阶可导，f&amp;#39;(x)&amp;gt;0(&amp;lt;0)\Rightarrow f(x)单增（单减）
$$
&lt;p&gt;
&lt;/p&gt;
$$
f(x)一阶可导，f&amp;#39;(x)\geqslant0(\leqslant0)（等号仅在有限点处、或无限不连续点处取到）\Leftrightarrow f(x)单增（单减）
$$
$$
f&amp;#39;(x_0)&amp;gt;0\not\Rightarrow \exists \ x\in U(x_0)，使f(x)\nearrow
$$
&lt;p&gt;
&lt;/p&gt;
$$
f&amp;#39;(x_0)&amp;gt;0，且f&amp;#39;(x_0)连续\Rightarrow \exists \ x\in U(x_0)，使f(x)\nearrow
$$
&lt;h2 id="复合函数与反函数单调性"&gt;复合函数与反函数单调性&lt;a class="anchor" href="#%e5%a4%8d%e5%90%88%e5%87%bd%e6%95%b0%e4%b8%8e%e5%8f%8d%e5%87%bd%e6%95%b0%e5%8d%95%e8%b0%83%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
y=f[g(x)]: 同增异减
$$
&lt;p&gt;
&lt;/p&gt;
$$
y=f(x),y=f^{-1}(x): 单调性一致
$$
&lt;h2 id="凹凸性与导数的关系"&gt;凹凸性与导数的关系&lt;a class="anchor" href="#%e5%87%b9%e5%87%b8%e6%80%a7%e4%b8%8e%e5%af%bc%e6%95%b0%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)二阶可导，f&amp;#39;&amp;#39;(x)&amp;gt;0(&amp;lt;0)\Rightarrow f(x) 是凹函数（凸函数）
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>模块和包</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/8-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/8-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/</guid><description>&lt;h1 id="模块和包"&gt;模块和包&lt;a class="anchor" href="#%e6%a8%a1%e5%9d%97%e5%92%8c%e5%8c%85"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;模块和包是 Python 中组织代码的方式。模块是包含 Python 代码的文件，包是包含多个模块的目录。&lt;/p&gt;
&lt;h2 id="模块module"&gt;模块（Module）&lt;a class="anchor" href="#%e6%a8%a1%e5%9d%97module"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="什么是模块"&gt;什么是模块？&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af%e6%a8%a1%e5%9d%97"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;模块是一个包含 Python 代码的文件，通常以 &lt;code&gt;.py&lt;/code&gt; 为扩展名。&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 文件：math_utils.py&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;multiply&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;PI&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;3.14159&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="导入模块"&gt;导入模块&lt;a class="anchor" href="#%e5%af%bc%e5%85%a5%e6%a8%a1%e5%9d%97"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 导入整个模块&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;math_utils&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;math_utils&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 导入并重命名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;math_utils&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;mu&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 从模块导入特定函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;math_utils&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;multiply&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 导入所有（不推荐）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;math_utils&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="模块搜索路径"&gt;模块搜索路径&lt;a class="anchor" href="#%e6%a8%a1%e5%9d%97%e6%90%9c%e7%b4%a2%e8%b7%af%e5%be%84"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Python 按以下顺序搜索模块：&lt;/p&gt;</description></item><item><title>优化器与损失函数</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/7-%E4%BC%98%E5%8C%96%E5%99%A8%E4%B8%8E%E6%8D%9F%E5%A4%B1%E5%87%BD%E6%95%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/7-%E4%BC%98%E5%8C%96%E5%99%A8%E4%B8%8E%E6%8D%9F%E5%A4%B1%E5%87%BD%E6%95%B0/</guid><description>&lt;h1 id="优化器与损失函数"&gt;优化器与损失函数&lt;a class="anchor" href="#%e4%bc%98%e5%8c%96%e5%99%a8%e4%b8%8e%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;优化器和损失函数是训练神经网络的关键组件。本章将详细介绍 PyTorch 中常用的优化器和损失函数。&lt;/p&gt;
&lt;h2 id="核心原理"&gt;核心原理&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e5%8e%9f%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="优化目标"&gt;优化目标&lt;a class="anchor" href="#%e4%bc%98%e5%8c%96%e7%9b%ae%e6%a0%87"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;设损失函数为 $L(\theta)$
，优化目标为：
&lt;/p&gt;
$$
\theta^* = \arg\min_\theta L(\theta)
$$
&lt;p&gt;梯度下降通过迭代更新参数：$\theta_{t&amp;#43;1} = \theta_t - \eta \cdot g_t$
，其中 $g_t = \nabla_\theta L(\theta_t)$
 为梯度，$\eta$
 为学习率。&lt;/p&gt;
&lt;h3 id="关键概念"&gt;关键概念&lt;a class="anchor" href="#%e5%85%b3%e9%94%ae%e6%a6%82%e5%bf%b5"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;学习率&lt;/strong&gt;：控制每步更新幅度，过大易震荡，过小收敛慢&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动量&lt;/strong&gt;：累积历史梯度，加速收敛、平滑更新&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自适应学习率&lt;/strong&gt;：根据梯度历史为每个参数单独调整步长&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;权重衰减&lt;/strong&gt;：L2 正则化，防止过拟合&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="优化器optimizers"&gt;优化器（Optimizers）&lt;a class="anchor" href="#%e4%bc%98%e5%8c%96%e5%99%a8optimizers"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;优化器用于更新模型参数，最小化损失函数。&lt;/p&gt;
&lt;h3 id="sgd随机梯度下降"&gt;SGD（随机梯度下降）&lt;a class="anchor" href="#sgd%e9%9a%8f%e6%9c%ba%e6%a2%af%e5%ba%a6%e4%b8%8b%e9%99%8d"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;torch.optim&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;optim&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 基本 SGD&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SGD&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 带动量的 SGD（推荐）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;optimizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optim&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SGD&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;momentum&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# 动量系数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;weight_decay&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# L2 正则化&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nesterov&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt; &lt;span class="c1"&gt;# Nesterov 动量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;更新公式&lt;/strong&gt;（带动量）：
&lt;/p&gt;</description></item><item><title>优化算法</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/8-%E4%BC%98%E5%8C%96%E7%AE%97%E6%B3%95/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/8-%E4%BC%98%E5%8C%96%E7%AE%97%E6%B3%95/</guid><description>&lt;h2 id="优化问题"&gt;优化问题&lt;a class="anchor" href="#%e4%bc%98%e5%8c%96%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="目标"&gt;目标&lt;a class="anchor" href="#%e7%9b%ae%e6%a0%87"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;找到使损失函数最小的参数：&lt;/p&gt;
$$
\theta^* = \arg\min L(\theta)
$$
&lt;h3 id="挑战"&gt;挑战&lt;a class="anchor" href="#%e6%8c%91%e6%88%98"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;非凸优化&lt;/strong&gt;：可能存在多个局部最优&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高维空间&lt;/strong&gt;：参数数量巨大&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据量大&lt;/strong&gt;：无法使用全部数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;梯度问题&lt;/strong&gt;：梯度消失/爆炸&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="梯度下降变体"&gt;梯度下降变体&lt;a class="anchor" href="#%e6%a2%af%e5%ba%a6%e4%b8%8b%e9%99%8d%e5%8f%98%e4%bd%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-批量梯度下降bgd"&gt;1. 批量梯度下降（BGD）&lt;a class="anchor" href="#1-%e6%89%b9%e9%87%8f%e6%a2%af%e5%ba%a6%e4%b8%8b%e9%99%8dbgd"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;使用全部训练数据计算梯度：&lt;/p&gt;
$$
\theta \leftarrow \theta - \eta \cdot \frac{1}{m} \sum_{i=1}^{m} \nabla L(\theta; x_i, y_i)
$$
&lt;p&gt;&lt;strong&gt;特点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;梯度准确&lt;/li&gt;
&lt;li&gt;计算慢&lt;/li&gt;
&lt;li&gt;内存需求大&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-随机梯度下降sgd"&gt;2. 随机梯度下降（SGD）&lt;a class="anchor" href="#2-%e9%9a%8f%e6%9c%ba%e6%a2%af%e5%ba%a6%e4%b8%8b%e9%99%8dsgd"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;每次使用一个样本：&lt;/p&gt;
$$
\theta \leftarrow \theta - \eta \cdot \nabla L(\theta; x_i, y_i)
$$
&lt;p&gt;&lt;strong&gt;特点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;计算快&lt;/li&gt;
&lt;li&gt;梯度噪声大&lt;/li&gt;
&lt;li&gt;收敛不稳定&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-小批量梯度下降mini-batch-sgd"&gt;3. 小批量梯度下降（Mini-batch SGD）&lt;a class="anchor" href="#3-%e5%b0%8f%e6%89%b9%e9%87%8f%e6%a2%af%e5%ba%a6%e4%b8%8b%e9%99%8dmini-batch-sgd"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;使用小批量数据（最常用）：&lt;/p&gt;
$$
\theta \leftarrow \theta - \eta \cdot \frac{1}{\text{batch\_size}} \sum_{i \in \text{batch}} \nabla L(\theta; x_i, y_i)
$$
&lt;p&gt;&lt;strong&gt;特点&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>9-电路的频率响应</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/9-%E7%94%B5%E8%B7%AF%E7%9A%84%E9%A2%91%E7%8E%87%E5%93%8D%E5%BA%94/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/9-%E7%94%B5%E8%B7%AF%E7%9A%84%E9%A2%91%E7%8E%87%E5%93%8D%E5%BA%94/</guid><description>&lt;h2 id="rlc串并联谐振"&gt;RLC串、并联谐振&lt;a class="anchor" href="#rlc%e4%b8%b2%e5%b9%b6%e8%81%94%e8%b0%90%e6%8c%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
 阻抗虚部为0，或导纳虚部为0\\
电源输出电压电流同相位\\
视并联L,C断路，或串联L,C短路
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260417165233_323_5.jpg" width="40%"&gt;
&lt;/div&gt;
$$
Z=R&amp;#43;j(\omega L-\frac{1}{\omega C})\qquad U=IZ\\
Q=\frac{\omega_0L}{R}=\frac{1}{R}\sqrt{\frac{L}{C}}（电压之比）
$$
&lt;div style="text-align: center;"&gt;
&lt;img src="pic-circuit/Weixin Image_20260417165234_324_5.jpg" width="40%"&gt;
&lt;/div&gt;
$$
 Y=G&amp;#43;j(\omega C-\frac{1}{\omega L})\qquad I=UY\\
Q=\frac{\omega_o C}{G}=\frac{1}{G}\sqrt{\frac{C}{L}}（电流之比）
$$</description></item><item><title>9-零点定理</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/9-%E9%9B%B6%E7%82%B9%E5%AE%9A%E7%90%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/9-%E9%9B%B6%E7%82%B9%E5%AE%9A%E7%90%86/</guid><description>&lt;h1 id="零点问题"&gt;零点问题&lt;a class="anchor" href="#%e9%9b%b6%e7%82%b9%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="罗尔定理推论"&gt;罗尔定理推论&lt;a class="anchor" href="#%e7%bd%97%e5%b0%94%e5%ae%9a%e7%90%86%e6%8e%a8%e8%ae%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f^{(n)}(x)=0至多有k(k\geqslant0)个根，则f(x)=0至多有k&amp;#43;n个根\\
\ \\
罗尔定理反证:\\
若f(x)=0有大于k&amp;#43;n个根\\
根据罗尔定理，可得出f^{(n)}存在多于k个根，与原题设不符
$$
&lt;h2 id="实系数奇次方程至少有一个根"&gt;实系数奇次方程至少有一个根&lt;a class="anchor" href="#%e5%ae%9e%e7%b3%bb%e6%95%b0%e5%a5%87%e6%ac%a1%e6%96%b9%e7%a8%8b%e8%87%b3%e5%b0%91%e6%9c%89%e4%b8%80%e4%b8%aa%e6%a0%b9"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;最高项阶次为奇数&lt;/p&gt;</description></item><item><title>损失函数详解</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/9-%E6%8D%9F%E5%A4%B1%E5%87%BD%E6%95%B0%E8%AF%A6%E8%A7%A3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/9-%E6%8D%9F%E5%A4%B1%E5%87%BD%E6%95%B0%E8%AF%A6%E8%A7%A3/</guid><description>&lt;h1 id="损失函数详解"&gt;损失函数详解&lt;a class="anchor" href="#%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0%e8%af%a6%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="目录"&gt;目录&lt;a class="anchor" href="#%e7%9b%ae%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0%e6%a6%82%e8%bf%b0"&gt;损失函数概述&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%9b%9e%e5%bd%92%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0"&gt;回归损失函数&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%88%86%e7%b1%bb%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0"&gt;分类损失函数&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%85%b6%e4%bb%96%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0"&gt;其他损失函数&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0%e9%80%89%e6%8b%a9"&gt;损失函数选择&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e4%bb%a3%e7%a0%81%e5%ae%9e%e7%8e%b0"&gt;代码实现&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="损失函数概述"&gt;损失函数概述&lt;a class="anchor" href="#%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0%e6%a6%82%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="什么是损失函数"&gt;什么是损失函数？&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;损失函数（Loss Function）&lt;/strong&gt; 衡量模型预测值与真实值之间的差异。&lt;/p&gt;
&lt;h3 id="作用"&gt;作用&lt;a class="anchor" href="#%e4%bd%9c%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;指导训练&lt;/strong&gt;：告诉模型如何调整参数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评估性能&lt;/strong&gt;：衡量模型好坏&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优化目标&lt;/strong&gt;：最小化损失函数&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="基本要求"&gt;基本要求&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e8%a6%81%e6%b1%82"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;可微&lt;/strong&gt;：便于梯度下降&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;非负&lt;/strong&gt;：损失应该 ≥ 0&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;单调性&lt;/strong&gt;：预测越准确，损失越小&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="回归损失函数"&gt;回归损失函数&lt;a class="anchor" href="#%e5%9b%9e%e5%bd%92%e6%8d%9f%e5%a4%b1%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-均方误差mse"&gt;1. 均方误差（MSE）&lt;a class="anchor" href="#1-%e5%9d%87%e6%96%b9%e8%af%af%e5%b7%aemse"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="公式"&gt;公式&lt;a class="anchor" href="#%e5%85%ac%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
$$
&lt;h4 id="特点"&gt;特点&lt;a class="anchor" href="#%e7%89%b9%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;对大误差敏感&lt;/strong&gt;：平方项放大误差&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可微&lt;/strong&gt;：梯度连续&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;应用&lt;/strong&gt;：回归问题&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="梯度"&gt;梯度&lt;a class="anchor" href="#%e6%a2%af%e5%ba%a6"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\frac{\partial \text{MSE}}{\partial \hat{y}} = -2(y - \hat{y})
$$
&lt;h3 id="2-平均绝对误差mae"&gt;2. 平均绝对误差（MAE）&lt;a class="anchor" href="#2-%e5%b9%b3%e5%9d%87%e7%bb%9d%e5%af%b9%e8%af%af%e5%b7%aemae"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="公式-1"&gt;公式&lt;a class="anchor" href="#%e5%85%ac%e5%bc%8f-1"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|
$$
&lt;h4 id="特点-1"&gt;特点&lt;a class="anchor" href="#%e7%89%b9%e7%82%b9-1"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;对异常值鲁棒&lt;/strong&gt;：线性惩罚&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不可微&lt;/strong&gt;：在0点不可微（需次梯度）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;应用&lt;/strong&gt;：需要鲁棒性的回归&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-huber损失"&gt;3. Huber损失&lt;a class="anchor" href="#3-huber%e6%8d%9f%e5%a4%b1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;结合MSE和MAE的优点：&lt;/p&gt;
$$
L_\delta(y, \hat{y}) = \begin{cases}
 0.5(y - \hat{y})^2 &amp;amp; \text{if } |y - \hat{y}| \leq \delta \\
 \delta|y - \hat{y}| - 0.5\delta^2 &amp;amp; \text{if } |y - \hat{y}| &amp;gt; \delta
\end{cases}
$$
&lt;p&gt;&lt;strong&gt;特点&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>文件操作</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/9-%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/9-%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C/</guid><description>&lt;h1 id="文件操作"&gt;文件操作&lt;a class="anchor" href="#%e6%96%87%e4%bb%b6%e6%93%8d%e4%bd%9c"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;文件操作是编程中的常见任务。Python 提供了简单而强大的文件操作功能。&lt;/p&gt;
&lt;h2 id="打开和关闭文件"&gt;打开和关闭文件&lt;a class="anchor" href="#%e6%89%93%e5%bc%80%e5%92%8c%e5%85%b3%e9%97%ad%e6%96%87%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="open-函数"&gt;open() 函数&lt;a class="anchor" href="#open-%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 基本语法：open(file, mode=&amp;#39;r&amp;#39;, encoding=None)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;data.txt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;r&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 必须关闭文件&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="文件模式"&gt;文件模式&lt;a class="anchor" href="#%e6%96%87%e4%bb%b6%e6%a8%a1%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# &amp;#39;r&amp;#39; - 只读模式（默认）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;data.txt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;r&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# &amp;#39;w&amp;#39; - 写入模式（覆盖）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;data.txt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;w&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# &amp;#39;a&amp;#39; - 追加模式&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;data.txt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;a&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# &amp;#39;x&amp;#39; - 创建模式（文件不存在时创建）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;new_file.txt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# &amp;#39;b&amp;#39; - 二进制模式&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;image.jpg&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;rb&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# &amp;#39;t&amp;#39; - 文本模式（默认）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;data.txt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;rt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# &amp;#39;+&amp;#39; - 读写模式&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;data.txt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;r+&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 读写&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;data.txt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;w+&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 读写（覆盖）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="with-语句推荐"&gt;with 语句（推荐）&lt;a class="anchor" href="#with-%e8%af%ad%e5%8f%a5%e6%8e%a8%e8%8d%90"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;使用 &lt;code&gt;with&lt;/code&gt; 语句可以自动关闭文件，即使发生异常也会关闭。&lt;/p&gt;</description></item><item><title>Creating a New Theme</title><link>https://oballon.github.io/Knowledge-Shore/posts/creating-a-new-theme/</link><pubDate>Sun, 28 Sep 2014 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/posts/creating-a-new-theme/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This tutorial will show you how to create a simple theme in Hugo. I assume that you are familiar with HTML, the bash command line, and that you are comfortable using Markdown to format content. I&amp;rsquo;ll explain how Hugo uses templates and how you can organize your templates to create a theme. I won&amp;rsquo;t cover using CSS to style your theme.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ll start with creating a new site with a very basic template. Then we&amp;rsquo;ll add in a few pages and posts. With small variations on that, you will be able to create many different types of web sites.&lt;/p&gt;</description></item><item><title>Migrate to Hugo from Jekyll</title><link>https://oballon.github.io/Knowledge-Shore/posts/migrate-from-jekyll/</link><pubDate>Mon, 10 Mar 2014 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/posts/migrate-from-jekyll/</guid><description>&lt;h2 id="move-static-content-to-static"&gt;Move static content to &lt;code&gt;static&lt;/code&gt;&lt;a class="anchor" href="#move-static-content-to-static"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Jekyll has a rule that any directory not starting with &lt;code&gt;_&lt;/code&gt; will be copied as-is to the &lt;code&gt;_site&lt;/code&gt; output. Hugo keeps all static content under &lt;code&gt;static&lt;/code&gt;. You should therefore move it all there.
With Jekyll, something that looked like&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;▾ &amp;lt;root&amp;gt;/
 ▾ images/
 logo.png
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;should become&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;▾ &amp;lt;root&amp;gt;/
 ▾ static/
 ▾ images/
 logo.png
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additionally, you&amp;rsquo;ll want any files that should reside at the root (such as &lt;code&gt;CNAME&lt;/code&gt;) to be moved to &lt;code&gt;static&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>10-不等式判定</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/10-%E4%B8%8D%E7%AD%89%E5%BC%8F%E5%88%A4%E5%AE%9A/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/10-%E4%B8%8D%E7%AD%89%E5%BC%8F%E5%88%A4%E5%AE%9A/</guid><description>&lt;h1 id="不等式判定"&gt;不等式判定&lt;a class="anchor" href="#%e4%b8%8d%e7%ad%89%e5%bc%8f%e5%88%a4%e5%ae%9a"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;收录一般微分不等式、积分不等式式的判定方法&lt;/p&gt;
&lt;p&gt;较复杂情形与中值定理联系颇深，归于中值定理方法中&lt;/p&gt;
&lt;h2 id="具体型不等式判定"&gt;具体型不等式判定&lt;a class="anchor" href="#%e5%85%b7%e4%bd%93%e5%9e%8b%e4%b8%8d%e7%ad%89%e5%bc%8f%e5%88%a4%e5%ae%9a"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. 函数性态分析（最多求二阶导，灵活构造）：&lt;/strong&gt;
&lt;/p&gt;
$$
幂指函数取\ln分析单调性
$$
&lt;p&gt;
&lt;strong&gt;2. 拉格朗日中值&lt;/strong&gt;
&lt;/p&gt;
$$
 不等式（统一形式比大小）：\\
\frac{b-a}{1&amp;#43;b^2}\leqslant \arctan b-\arctan a\leqslant\frac{b-a}{1&amp;#43;a^2}
$$
&lt;h2 id="抽象型不等式判定"&gt;抽象型不等式判定&lt;a class="anchor" href="#%e6%8a%bd%e8%b1%a1%e5%9e%8b%e4%b8%8d%e7%ad%89%e5%bc%8f%e5%88%a4%e5%ae%9a"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1.函数性态&lt;/strong&gt;
&lt;/p&gt;
$$
辅助函数\\
f(x)f&amp;#39;(x)&amp;gt;0\\
\Rightarrow[f^2(x)]&amp;#39;&amp;gt;0\\
\Rightarrow F(x)=f^2(x)\nearrow
$$
&lt;p&gt;
&lt;strong&gt;2. 拉格朗日中值：&lt;/strong&gt;
&lt;/p&gt;
$$
构造不等式：\left\{
\begin{array}{l}
xf&amp;#39;(x)-f(x)=xf&amp;#39;(x)-[f(x)-f(0)]=xf&amp;#39;(x)-f&amp;#39;(\xi)\cdot x\ \ \ (f(0)=0)\\
\\
b-a-\frac{f(b)}{f&amp;#39;(b)}=\frac{f(b)-f(a)}{f&amp;#39;(\xi)}-\frac{f(b)}{f&amp;#39;(b)}=\frac{f(b)}{f&amp;#39;(\xi)}-\frac{f(b)}{f&amp;#39;(b)}\ \ \ (f(a)=0)
\end{array}
\right.
$$
&lt;p&gt;
&lt;strong&gt;3. 泰勒中值展开：&lt;/strong&gt;
&lt;/p&gt;
$$
f(x)二阶可导，f(0)=0，f&amp;#39;(0)&amp;gt;0，f&amp;#39;&amp;#39;(x)&amp;gt;0，判f(0) \diamond f(\frac{1}{2})
$$</description></item><item><title>10-对称三相电路</title><link>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/10-%E5%AF%B9%E7%A7%B0%E4%B8%89%E7%9B%B8%E7%94%B5%E8%B7%AF/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/control-engineering/circuit/10-%E5%AF%B9%E7%A7%B0%E4%B8%89%E7%9B%B8%E7%94%B5%E8%B7%AF/</guid><description/></item><item><title>高级特性</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/10-%E9%AB%98%E7%BA%A7%E7%89%B9%E6%80%A7/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/10-%E9%AB%98%E7%BA%A7%E7%89%B9%E6%80%A7/</guid><description>&lt;h1 id="高级特性"&gt;高级特性&lt;a class="anchor" href="#%e9%ab%98%e7%ba%a7%e7%89%b9%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Python 提供了许多高级特性，如生成器、迭代器、推导式等，这些特性可以让代码更简洁、高效。&lt;/p&gt;
&lt;h2 id="迭代器和可迭代对象"&gt;迭代器和可迭代对象&lt;a class="anchor" href="#%e8%bf%ad%e4%bb%a3%e5%99%a8%e5%92%8c%e5%8f%af%e8%bf%ad%e4%bb%a3%e5%af%b9%e8%b1%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="可迭代对象与迭代器的关系"&gt;可迭代对象与迭代器的关系&lt;a class="anchor" href="#%e5%8f%af%e8%bf%ad%e4%bb%a3%e5%af%b9%e8%b1%a1%e4%b8%8e%e8%bf%ad%e4%bb%a3%e5%99%a8%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;类型&lt;/th&gt;
 &lt;th&gt;实现方法&lt;/th&gt;
 &lt;th&gt;特点&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;可迭代对象&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;__iter__()&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;可用 &lt;code&gt;for&lt;/code&gt; 遍历，可多次迭代&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;迭代器&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;__iter__()&lt;/code&gt; + &lt;code&gt;__next__()&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;可迭代对象的子集，&lt;strong&gt;一次性消耗&lt;/strong&gt;，用完即止&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;迭代器一定是可迭代对象；可迭代对象不一定是迭代器（如 &lt;code&gt;list&lt;/code&gt; 可多次迭代）。&lt;/p&gt;
&lt;h3 id="可迭代对象iterable"&gt;可迭代对象（Iterable）&lt;a class="anchor" href="#%e5%8f%af%e8%bf%ad%e4%bb%a3%e5%af%b9%e8%b1%a1iterable"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;可迭代对象是可以返回迭代器的对象，实现了 &lt;code&gt;__iter__()&lt;/code&gt; 方法。&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 常见的可迭代对象&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# 列表&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 字符串&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_dict&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;a&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c1"&gt;# 字典&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_set&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c1"&gt;# 集合&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_tuple&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 元组&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查是否为可迭代对象&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;collections.abc&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Iterable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_list&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Iterable&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用iter()获取迭代器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;iterator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;iter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="迭代器iterator"&gt;迭代器（Iterator）&lt;a class="anchor" href="#%e8%bf%ad%e4%bb%a3%e5%99%a8iterator"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;迭代器是实现了 &lt;code&gt;__iter__()&lt;/code&gt; 和 &lt;code&gt;__next__()&lt;/code&gt; 方法的对象。&lt;/p&gt;</description></item><item><title>模型评估与调优</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/10-%E6%A8%A1%E5%9E%8B%E8%AF%84%E4%BC%B0%E4%B8%8E%E8%B0%83%E4%BC%98/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/10-%E6%A8%A1%E5%9E%8B%E8%AF%84%E4%BC%B0%E4%B8%8E%E8%B0%83%E4%BC%98/</guid><description>&lt;h2 id="评估指标"&gt;评估指标&lt;a class="anchor" href="#%e8%af%84%e4%bc%b0%e6%8c%87%e6%a0%87"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="分类任务"&gt;分类任务&lt;a class="anchor" href="#%e5%88%86%e7%b1%bb%e4%bb%bb%e5%8a%a1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="1-准确率accuracy"&gt;1. 准确率（Accuracy）&lt;a class="anchor" href="#1-%e5%87%86%e7%a1%ae%e7%8e%87accuracy"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\text{Accuracy} = \frac{TP &amp;#43; TN}{TP &amp;#43; TN &amp;#43; FP &amp;#43; FN}
$$
&lt;p&gt;&lt;strong&gt;特点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;直观易懂&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;问题&lt;/strong&gt;：类别不平衡时不准确&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-精确率precision"&gt;2. 精确率（Precision）&lt;a class="anchor" href="#2-%e7%b2%be%e7%a1%ae%e7%8e%87precision"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\text{Precision} = \frac{TP}{TP &amp;#43; FP}
$$
&lt;p&gt;&lt;strong&gt;含义&lt;/strong&gt;：预测为正的样本中，真正为正的比例。&lt;/p&gt;
&lt;h4 id="3-召回率recall"&gt;3. 召回率（Recall）&lt;a class="anchor" href="#3-%e5%8f%ac%e5%9b%9e%e7%8e%87recall"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\text{Recall} = \frac{TP}{TP &amp;#43; FN}
$$
&lt;p&gt;&lt;strong&gt;含义&lt;/strong&gt;：真正为正的样本中，被正确预测的比例。&lt;/p&gt;
&lt;h4 id="4-f1分数"&gt;4. F1分数&lt;a class="anchor" href="#4-f1%e5%88%86%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\text{F1} = \frac{2 \cdot \text{Precision} \cdot \text{Recall}}{\text{Precision} &amp;#43; \text{Recall}}
$$
&lt;p&gt;&lt;strong&gt;特点&lt;/strong&gt;：平衡精确率和召回率。&lt;/p&gt;
&lt;h4 id="5-roc曲线和auc"&gt;5. ROC曲线和AUC&lt;a class="anchor" href="#5-roc%e6%9b%b2%e7%ba%bf%e5%92%8cauc"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;ROC曲线&lt;/strong&gt;：以假正率（FPR）为横轴，真正率（TPR）为纵轴。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AUC&lt;/strong&gt;：ROC曲线下的面积，值越大越好。&lt;/p&gt;
&lt;h3 id="回归任务"&gt;回归任务&lt;a class="anchor" href="#%e5%9b%9e%e5%bd%92%e4%bb%bb%e5%8a%a1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="1-均方误差mse"&gt;1. 均方误差（MSE）&lt;a class="anchor" href="#1-%e5%9d%87%e6%96%b9%e8%af%af%e5%b7%aemse"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
$$
&lt;h4 id="2-均方根误差rmse"&gt;2. 均方根误差（RMSE）&lt;a class="anchor" href="#2-%e5%9d%87%e6%96%b9%e6%a0%b9%e8%af%af%e5%b7%aermse"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\text{RMSE} = \sqrt{\text{MSE}}
$$
&lt;h4 id="3-平均绝对误差mae"&gt;3. 平均绝对误差（MAE）&lt;a class="anchor" href="#3-%e5%b9%b3%e5%9d%87%e7%bb%9d%e5%af%b9%e8%af%af%e5%b7%aemae"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|
$$
&lt;h4 id="4-r分数"&gt;4. R²分数&lt;a class="anchor" href="#4-r%e5%88%86%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h4&gt;
$$
R^2 = 1 - \frac{SS_{\text{res}}}{SS_{\text{tot}}}
$$
&lt;p&gt;&lt;strong&gt;含义&lt;/strong&gt;：模型解释的方差比例，越接近1越好。&lt;/p&gt;</description></item><item><title>11-不定积分</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/11-%E4%B8%8D%E5%AE%9A%E7%A7%AF%E5%88%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/11-%E4%B8%8D%E5%AE%9A%E7%A7%AF%E5%88%86/</guid><description>&lt;h1 id="不定积分"&gt;&amp;ldquo;&amp;ldquo;不定积分&amp;rdquo;&amp;rdquo;&lt;a class="anchor" href="#%e4%b8%8d%e5%ae%9a%e7%a7%af%e5%88%86"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;只有f(x)连续时，才考原函数相关性质&lt;/li&gt;
&lt;li&gt;不定积分只考三大方法：凑微分法、换元积分法、分部积分法&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;不定积分计算偏大，所求均是&lt;strong&gt;人为构造&lt;/strong&gt;出来的，三大方法掌握到位，&lt;strong&gt;把握好切入点&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="章节概述"&gt;章节概述&lt;a class="anchor" href="#%e7%ab%a0%e8%8a%82%e6%a6%82%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;不定积分与定积分关系：
关联性极其弱，仅在牛顿-莱布尼茨公式中有关联&lt;/li&gt;
&lt;li&gt;不定积分理论薄，&lt;strong&gt;极考计算&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;不定积分核心在于凑基本积分公式的形式，不同解法间不甚相通&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="不定积分书写规范"&gt;不定积分书写规范&lt;a class="anchor" href="#%e4%b8%8d%e5%ae%9a%e7%a7%af%e5%88%86%e4%b9%a6%e5%86%99%e8%a7%84%e8%8c%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\int f(x)dx=F(x)&amp;#43;C（C为任意常数）
$$
&lt;h2 id="原函数与不定积分的定义"&gt;原函数与不定积分的定义&lt;a class="anchor" href="#%e5%8e%9f%e5%87%bd%e6%95%b0%e4%b8%8e%e4%b8%8d%e5%ae%9a%e7%a7%af%e5%88%86%e7%9a%84%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
如果在{\color{blue}区间I}上，可导函数F(x)的导函数为f(x)，即对任一x\in I，都有F&amp;#39;(x)=f(x)\\
则称F(x)为f(x)在区间I上的原函数,
称\int f(x)dx=F(x)&amp;#43;C为f(x)在区间I上的不定积分
$$
&lt;p&gt;
$$注：定义区间\neq定义域，{\color{blue}区间是连续的}，仅是定义域的子集\
求原函数的过程应以不改变f(x)定义区间为前提（原函数之间应只差常数）\&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;三角函数变形（非恒等变形）可能会对间断点产生影响，姑且不计\&lt;/li&gt;
&lt;li&gt;\ln|x|去绝对值号：在不改变函数定义域的情况下，直接去掉$$&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="原函数存在定理"&gt;原函数存在定理&lt;a class="anchor" href="#%e5%8e%9f%e5%87%bd%e6%95%b0%e5%ad%98%e5%9c%a8%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)在区间I上连续，则存在可导函数F(x),使对任一\ x\in I,都有F&amp;#39;(x)=f(x)\\
（区间I可开可闭）
$$
&lt;p&gt;
&lt;/p&gt;
$$
f(x)在区间I内均有定义，则\\
\left\{
\begin{array}{ll}存在可去间断点、跳跃间断点、无穷间断点必无原函数{\color{blue}（导函数不可能出现此三种情况；假设存在反证）}\\
\\
存在振荡间断点可能有原函数
\end{array}
\right.\\
 \ \\
f(x)在区间I内存在{\color{blue}无定义点}，则区间I不存在原函数，可讨论各分段的原函数
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：\int\frac{1}{x}dx=\ln|x|&amp;#43;C仅在(-\infty,0)或(0,&amp;#43;\infty)上存在原函数（区间一定是连续的）
$$
&lt;h2 id="原函数的奇偶性周期性"&gt;原函数的奇偶性、周期性&lt;a class="anchor" href="#%e5%8e%9f%e5%87%bd%e6%95%b0%e7%9a%84%e5%a5%87%e5%81%b6%e6%80%a7%e5%91%a8%e6%9c%9f%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;前提：连续函数的原函数&lt;/strong&gt;&lt;/p&gt;
$$
f(x)\quad 奇 \Longrightarrow \int f(x)dx \quad 偶\\
f(x)\quad 偶 \quad 且\quad F(0)=0 \Longrightarrow \int f(x)dx \quad奇\quad（唯一,且等于\int_0^xf(t)dt）\\
f(x)\quad T \quad 且\quad \int_0^Tf(x)dx=0 \Longleftrightarrow \int f(x)dx \quad T
$$
&lt;h2 id="基本积分公式"&gt;基本积分公式&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e7%a7%af%e5%88%86%e5%85%ac%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
x^k (k\neq -1), \ \frac{1}{x}\qquad
e^x, \ a^x(a&amp;gt;0\ 且\ a\neq1)\qquad
\ln x,\log_ax\qquad
\sin x,\cos x\qquad
\tan x,\cot x\\
\sec x(\frac{1}{\cos x}),\csc x(\frac{1}{\sin x})\qquad
\sec^2x,\csc^2x\qquad
\sec x\tan x,\csc x\cot x\\
\frac{1}{1&amp;#43;x^2},\ \frac{1}{a^2&amp;#43;x^2},\ \frac{1}{x^{2}-a^{2}} ,\ \frac{1}{a^{2}-x^{2}}\qquad
\frac{1}{\sqrt{1-x^2}},\ \frac{1}{\sqrt{a^2-x^2}},\
\frac{1}{\sqrt{x^2&amp;#43;a^2}},\ \frac{1}{\sqrt{x^2-a^2}}\qquad
{\color{blue}\sqrt{x^2&amp;#43;a^2}},{\color{blue}\sqrt{x^2-a^2}},
{\color{blue}\sqrt{a^2-x^2}}
$$
$$
\begin{array}{ll}
\int x^{k} \mathrm{~d} x=\frac{1}{k&amp;#43;1} x^{k&amp;#43;1}&amp;#43;C (k \neq-1); &amp;amp; \int \frac{1}{x} \mathrm{~d} x=\ln|x|&amp;#43;C \\
\\
\int \mathrm{e}^{x} \mathrm{~d} x=\mathrm{e}^{x}&amp;#43;C; &amp;amp; \int a^{x} \mathrm{~d} x=\frac{a^{x}}{\ln a}&amp;#43;C(a&amp;gt;0\ 且 \ a\neq 1) \\
\\
\int \ln x\ dx=x\ln x-x&amp;#43;C; &amp;amp; \int \log_ax\ dx=x\log_ax-\frac{x}{\ln a}&amp;#43;C\\
\\
\int \sin x \mathrm{~d} x=-\cos x&amp;#43;C; &amp;amp; \int \cos x \mathrm{~d} x=\sin x&amp;#43;C \\
\\
\int \tan x \mathrm{~d} x=-\ln |\cos x|&amp;#43;C； &amp;amp; \int \cot x \mathrm{~d} x=\ln |\sin x|&amp;#43;C \\
\\
\int \frac{\mathrm{d} x}{\cos x}=\int \sec x \mathrm{~d} x=\ln |\sec x&amp;#43;\tan x|&amp;#43;C; &amp;amp; \int \frac{\mathrm{d} x}{\sin x}=\int \csc x \mathrm{~d} x=\ln |\csc x-\cot x|&amp;#43;C \\
\\
\int \sec ^{2} x \mathrm{~d} x=\tan x&amp;#43;C; &amp;amp; \int \csc ^{2} x \mathrm{~d} x=-\cot x&amp;#43;C \\
\\
\int \sec x \tan x \mathrm{~d} x=\sec x&amp;#43;C; &amp;amp; \int \csc x \cot x \mathrm{~d} x=-\csc x&amp;#43;C\\
\\
\hdashline\\
\int \frac{1}{1&amp;#43;x^{2}} \mathrm{~d} x=\arctan x&amp;#43;C; &amp;amp; \int \frac{1}{a^{2}&amp;#43;x^{2}} \mathrm{~d} x=\frac{1}{a} \arctan \frac{x}{a}&amp;#43;C(a&amp;gt;0)\\
\ \\
\int \frac{1}{x^{2}-a^{2}} \mathrm{~d} x=\frac{1}{2 a} \ln \left|\frac{x-a}{x&amp;#43;a}\right|&amp;#43;C; &amp;amp;\int \frac{1}{a^{2}-x^{2}} \mathrm{~d} x=\frac{1}{2 a} \ln \left|\frac{x&amp;#43;a}{x-a}\right|&amp;#43;C\\
\\
\hdashline\\
\int \frac{1}{\sqrt{1-x^{2}}} \mathrm{~d} x=\arcsin x&amp;#43;C; &amp;amp; \int \frac{1}{\sqrt{a^{2}-x^{2}}} \mathrm{~d} x=\arcsin \frac{x}{a}&amp;#43;C(a&amp;gt;0)\\
\\
\int \frac{1}{\sqrt{x^{2}&amp;#43;a^{2}}} \mathrm{~d} x=\ln \left(x&amp;#43;\sqrt{x^{2}&amp;#43;a^{2}}\right)&amp;#43;C; &amp;amp; \int \frac{1}{\sqrt{x^{2}-a^{2}}} \mathrm{~d} x=\ln \left|x&amp;#43;\sqrt{x^{2}-a^{2}}\right|&amp;#43;C(|x|&amp;gt;|a|)\\
\ \\
\hdashline\\
{\color{blue}\int \sqrt{x^2&amp;#43;a^2}dx=\frac{x}{2}\sqrt{x^2&amp;#43;a^2}&amp;#43;\frac{a^2}{2}\ln(x&amp;#43;\sqrt{x^2&amp;#43;a^2})&amp;#43;C}\\
\ \\
{\color{blue}\int \sqrt{x^2-a^2}dx=\frac{x}{2}\sqrt{x^2-a^2}&amp;#43;\frac{a^2}{2}\ln|x&amp;#43;\sqrt{x^2-a^2}|&amp;#43;C}\\
\ \\
{\color{blue}\int \sqrt{a^2-x^2}dx=\frac{x}{2}\sqrt{a^2-x^2}&amp;#43;\frac{a^2}{2}\arcsin\frac{x}{a}&amp;#43;C}
\end{array}
$$
&lt;h2 id="不定积分性质"&gt;不定积分性质&lt;a class="anchor" href="#%e4%b8%8d%e5%ae%9a%e7%a7%af%e5%88%86%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\int [af(x)&amp;#43;bg(x)]dx=a\int f(x)dx&amp;#43;b\int g(x)dx 
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>常用内置函数</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/11-%E5%B8%B8%E7%94%A8%E5%86%85%E7%BD%AE%E5%87%BD%E6%95%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/11-%E5%B8%B8%E7%94%A8%E5%86%85%E7%BD%AE%E5%87%BD%E6%95%B0/</guid><description>&lt;h1 id="常用内置函数"&gt;常用内置函数&lt;a class="anchor" href="#%e5%b8%b8%e7%94%a8%e5%86%85%e7%bd%ae%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Python 提供了丰富的内置函数，无需导入即可使用。掌握这些函数可以大大提高编程效率。&lt;/p&gt;
&lt;h2 id="类型相关函数"&gt;类型相关函数&lt;a class="anchor" href="#%e7%b1%bb%e5%9e%8b%e7%9b%b8%e5%85%b3%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="type-和-isinstance"&gt;type() 和 isinstance()&lt;a class="anchor" href="#type-%e5%92%8c-isinstance"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# type() - 获取对象类型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# &amp;lt;class &amp;#39;int&amp;#39;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# &amp;lt;class &amp;#39;str&amp;#39;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; &lt;span class="c1"&gt;# &amp;lt;class &amp;#39;list&amp;#39;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# isinstance() - 检查对象类型（推荐）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;tuple&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt; &lt;span class="c1"&gt;# True（检查多个类型）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="len"&gt;len()&lt;a class="anchor" href="#len"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取序列长度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; &lt;span class="c1"&gt;# 3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;a&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;}))&lt;/span&gt; &lt;span class="c1"&gt;# 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt; &lt;span class="c1"&gt;# 3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="str-int-float-bool"&gt;str(), int(), float(), bool()&lt;a class="anchor" href="#str-int-float-bool"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 类型转换&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;123&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#39;123&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;123&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 123&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;3.7&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 3（向下取整）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;3.14&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 3.14&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;abc&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# True&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="list-tuple-dict-set"&gt;list(), tuple(), dict(), set()&lt;a class="anchor" href="#list-tuple-dict-set"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建容器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;abc&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# [&amp;#39;a&amp;#39;, &amp;#39;b&amp;#39;, &amp;#39;c&amp;#39;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;tuple&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# (1, 2, 3)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;([(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;a&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;b&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)])&lt;/span&gt; &lt;span class="c1"&gt;# {&amp;#39;a&amp;#39;: 1, &amp;#39;b&amp;#39;: 2}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# {1, 2, 3}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="数学函数"&gt;数学函数&lt;a class="anchor" href="#%e6%95%b0%e5%ad%a6%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="abs"&gt;abs()&lt;a class="anchor" href="#abs"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 绝对值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;3.14&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 3.14&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="round"&gt;round()&lt;a class="anchor" href="#round"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 四舍五入&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;3.14159&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;3.14159&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 3.14（保留2位小数）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;3.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;2.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 2（注意：Python的round使用&amp;#34;银行家舍入&amp;#34;）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="min-和-max"&gt;min() 和 max()&lt;a class="anchor" href="#min-%e5%92%8c-max"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 最小值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;abc&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;def&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#39;abc&amp;#39;（使用key函数）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 最大值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# 3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;hi&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#39;hello&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="sum"&gt;sum()&lt;a class="anchor" href="#sum"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 求和&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# 10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 16（从10开始累加）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 10（0+1+2+3+4）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="pow"&gt;pow()&lt;a class="anchor" href="#pow"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 幂运算&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;pow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 8（2的3次方）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;pow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 3（2的3次方对5取模）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="c1"&gt;# 8（等价写法）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="divmod"&gt;divmod()&lt;a class="anchor" href="#divmod"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 返回商和余数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;divmod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# (3, 1)（10除以3，商3余1）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;quotient&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;remainder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;divmod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="序列操作函数"&gt;序列操作函数&lt;a class="anchor" href="#%e5%ba%8f%e5%88%97%e6%93%8d%e4%bd%9c%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="sorted"&gt;sorted()&lt;a class="anchor" href="#sorted"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 排序（返回新列表）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# [1, 1, 3, 4, 5]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;reverse&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# [5, 4, 3, 1, 1]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 使用key函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;words&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;apple&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;banana&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;cherry&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;words&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# [&amp;#39;apple&amp;#39;, &amp;#39;banana&amp;#39;, &amp;#39;cherry&amp;#39;]（按长度）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;words&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 按小写字母排序&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 对字典排序&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;b&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;a&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;c&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# [(&amp;#39;a&amp;#39;, 1), (&amp;#39;b&amp;#39;, 2), (&amp;#39;c&amp;#39;, 3)]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="reversed"&gt;reversed()&lt;a class="anchor" href="#reversed"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 反转序列（返回迭代器）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;reversed&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; &lt;span class="c1"&gt;# [3, 2, 1]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;reversed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# [&amp;#39;o&amp;#39;, &amp;#39;l&amp;#39;, &amp;#39;l&amp;#39;, &amp;#39;e&amp;#39;, &amp;#39;h&amp;#39;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 字符串反转&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;[::&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#39;olleh&amp;#39;（切片方式）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="enumerate"&gt;enumerate()&lt;a class="anchor" href="#enumerate"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 同时获取索引和值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;apple&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;banana&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;cherry&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fruit&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;fruit&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 输出:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 0: apple&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 1: banana&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2: cherry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 指定起始索引&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fruit&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;fruit&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="zip"&gt;zip()&lt;a class="anchor" href="#zip"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 同时遍历多个序列&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;names&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Alice&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Bob&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Charlie&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;35&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;names&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ages&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; is &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; years old&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 转换为列表&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;names&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ages&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# [(&amp;#39;Alice&amp;#39;, 25), (&amp;#39;Bob&amp;#39;, 30), (&amp;#39;Charlie&amp;#39;, 35)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 解包&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;names2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ages2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;names&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ages&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="range"&gt;range()&lt;a class="anchor" href="#range"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 生成数字序列&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# [0, 1, 2, 3, 4]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# [2, 3, 4]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# [0, 2, 4, 6, 8]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# [5, 4, 3, 2, 1]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="输入输出函数"&gt;输入输出函数&lt;a class="anchor" href="#%e8%be%93%e5%85%a5%e8%be%93%e5%87%ba%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="print"&gt;print()&lt;a class="anchor" href="#print"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 基本用法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Hello, World!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 多个参数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;World&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# Hello World !&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 指定分隔符&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;World&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sep&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# Hello-World&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 指定结束符&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;World&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# HelloWorld（不换行）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 格式化输出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Alice&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; is &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; years old&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# Alice is 30 years old&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="input"&gt;input()&lt;a class="anchor" href="#input"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取用户输入&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;请输入你的名字: &amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;你好, &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 注意：input()返回字符串&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;请输入年龄: &amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 需要转换类型&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="对象操作函数"&gt;对象操作函数&lt;a class="anchor" href="#%e5%af%b9%e8%b1%a1%e6%93%8d%e4%bd%9c%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="id"&gt;id()&lt;a class="anchor" href="#id"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取对象的内存地址&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 某个内存地址&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="hash"&gt;hash()&lt;a class="anchor" href="#hash"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取对象的哈希值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 某个整数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 某个整数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# hash([1, 2, 3]) # 错误！列表不可哈希&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="dir"&gt;dir()&lt;a class="anchor" href="#dir"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取对象的属性和方法列表&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;([])&lt;/span&gt; &lt;span class="c1"&gt;# 列表的所有方法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 字符串的所有方法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;__builtins__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 所有内置函数和异常&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="vars-和-dict"&gt;vars() 和 &lt;strong&gt;dict&lt;/strong&gt;&lt;a class="anchor" href="#vars-%e5%92%8c-dict"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取对象的属性字典&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyClass&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;MyClass&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;vars&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# {&amp;#39;x&amp;#39;: 1, &amp;#39;y&amp;#39;: 2}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="vm"&gt;__dict__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# {&amp;#39;x&amp;#39;: 1, &amp;#39;y&amp;#39;: 2}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="hasattr-getattr-setattr"&gt;hasattr(), getattr(), setattr()&lt;a class="anchor" href="#hasattr-getattr-setattr"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyClass&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;MyClass&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# hasattr() - 检查是否有属性&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;hasattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;hasattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# getattr() - 获取属性&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;getattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;getattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 0（默认值）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# setattr() - 设置属性&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;setattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="函数式编程工具"&gt;函数式编程工具&lt;a class="anchor" href="#%e5%87%bd%e6%95%b0%e5%bc%8f%e7%bc%96%e7%a8%8b%e5%b7%a5%e5%85%b7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="map"&gt;map()&lt;a class="anchor" href="#map"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 对序列的每个元素应用函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;squared&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# [1, 4, 9, 16]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 多个序列&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; &lt;span class="c1"&gt;# [4, 6]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="filter"&gt;filter()&lt;a class="anchor" href="#filter"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 过滤序列&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;evens&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# [2, 4]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 过滤None值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;values&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;filtered&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# [1, 2, 3]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="reduce"&gt;reduce()&lt;a class="anchor" href="#reduce"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 累积计算（需要导入）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;functools&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;reduce&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;product&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;reduce&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 24&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 带初始值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;sum_with_init&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;reduce&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 20&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="其他常用函数"&gt;其他常用函数&lt;a class="anchor" href="#%e5%85%b6%e4%bb%96%e5%b8%b8%e7%94%a8%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="any-和-all"&gt;any() 和 all()&lt;a class="anchor" href="#any-%e5%92%8c-all"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# any() - 至少一个为True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;any&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;any&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# all() - 全部为True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;all&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;all&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# False&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="slice"&gt;slice()&lt;a class="anchor" href="#slice"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建切片对象&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# [1, 2, 3]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="iter-和-next"&gt;iter() 和 next()&lt;a class="anchor" href="#iter-%e5%92%8c-next"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# iter() - 获取迭代器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;my_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;iterator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;iter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;iterator&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;iterator&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# next() - 获取下一个值&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;iterator&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;默认值&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;iterator&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;默认值&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 默认值（迭代器耗尽）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="open"&gt;open()&lt;a class="anchor" href="#open"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 打开文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;file.txt&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;r&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="eval-和-exec"&gt;eval() 和 exec()&lt;a class="anchor" href="#eval-%e5%92%8c-exec"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# eval() - 执行表达式（危险！）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;eval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;2 + 3&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# exec() - 执行代码（危险！）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;x = 10&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 注意：eval()和exec()存在安全风险，应谨慎使用&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="函数分类总结"&gt;函数分类总结&lt;a class="anchor" href="#%e5%87%bd%e6%95%b0%e5%88%86%e7%b1%bb%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="类型检查和转换"&gt;类型检查和转换&lt;a class="anchor" href="#%e7%b1%bb%e5%9e%8b%e6%a3%80%e6%9f%a5%e5%92%8c%e8%bd%ac%e6%8d%a2"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;type()&lt;/code&gt;, &lt;code&gt;isinstance()&lt;/code&gt;, &lt;code&gt;str()&lt;/code&gt;, &lt;code&gt;int()&lt;/code&gt;, &lt;code&gt;float()&lt;/code&gt;, &lt;code&gt;bool()&lt;/code&gt;, &lt;code&gt;list()&lt;/code&gt;, &lt;code&gt;tuple()&lt;/code&gt;, &lt;code&gt;dict()&lt;/code&gt;, &lt;code&gt;set()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="数学运算"&gt;数学运算&lt;a class="anchor" href="#%e6%95%b0%e5%ad%a6%e8%bf%90%e7%ae%97"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;abs()&lt;/code&gt;, &lt;code&gt;round()&lt;/code&gt;, &lt;code&gt;min()&lt;/code&gt;, &lt;code&gt;max()&lt;/code&gt;, &lt;code&gt;sum()&lt;/code&gt;, &lt;code&gt;pow()&lt;/code&gt;, &lt;code&gt;divmod()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="序列操作"&gt;序列操作&lt;a class="anchor" href="#%e5%ba%8f%e5%88%97%e6%93%8d%e4%bd%9c"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;len()&lt;/code&gt;, &lt;code&gt;sorted()&lt;/code&gt;, &lt;code&gt;reversed()&lt;/code&gt;, &lt;code&gt;enumerate()&lt;/code&gt;, &lt;code&gt;zip()&lt;/code&gt;, &lt;code&gt;range()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="输入输出"&gt;输入输出&lt;a class="anchor" href="#%e8%be%93%e5%85%a5%e8%be%93%e5%87%ba"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;print()&lt;/code&gt;, &lt;code&gt;input()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="对象操作"&gt;对象操作&lt;a class="anchor" href="#%e5%af%b9%e8%b1%a1%e6%93%8d%e4%bd%9c"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id()&lt;/code&gt;, &lt;code&gt;hash()&lt;/code&gt;, &lt;code&gt;dir()&lt;/code&gt;, &lt;code&gt;vars()&lt;/code&gt;, &lt;code&gt;hasattr()&lt;/code&gt;, &lt;code&gt;getattr()&lt;/code&gt;, &lt;code&gt;setattr()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="函数式编程"&gt;函数式编程&lt;a class="anchor" href="#%e5%87%bd%e6%95%b0%e5%bc%8f%e7%bc%96%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;map()&lt;/code&gt;, &lt;code&gt;filter()&lt;/code&gt;, &lt;code&gt;reduce()&lt;/code&gt;（需要导入functools）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="逻辑判断"&gt;逻辑判断&lt;a class="anchor" href="#%e9%80%bb%e8%be%91%e5%88%a4%e6%96%ad"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;any()&lt;/code&gt;, &lt;code&gt;all()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="使用建议"&gt;使用建议&lt;a class="anchor" href="#%e4%bd%bf%e7%94%a8%e5%bb%ba%e8%ae%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;优先使用内置函数&lt;/strong&gt;，它们通常比自定义实现更快&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;理解函数的返回值类型&lt;/strong&gt;（列表、迭代器等）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;注意内存效率&lt;/strong&gt;（生成器 vs 列表）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;合理使用lambda和函数式编程工具&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;避免使用eval()和exec()&lt;/strong&gt;，除非绝对必要&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="下一步"&gt;下一步&lt;a class="anchor" href="#%e4%b8%8b%e4%b8%80%e6%ad%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;恭喜！你已经掌握了 Python 的核心内容。可以继续学习：&lt;/p&gt;</description></item><item><title>生成模型</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/11-%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/11-%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B/</guid><description>&lt;h2 id="生成模型概述"&gt;生成模型概述&lt;a class="anchor" href="#%e7%94%9f%e6%88%90%e6%a8%a1%e5%9e%8b%e6%a6%82%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="什么是生成模型"&gt;什么是生成模型？&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af%e7%94%9f%e6%88%90%e6%a8%a1%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;生成模型（Generative Models）&lt;/strong&gt; 学习数据的分布，能够生成新的样本。&lt;/p&gt;
&lt;h3 id="与判别模型的区别"&gt;与判别模型的区别&lt;a class="anchor" href="#%e4%b8%8e%e5%88%a4%e5%88%ab%e6%a8%a1%e5%9e%8b%e7%9a%84%e5%8c%ba%e5%88%ab"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;特性&lt;/th&gt;
 &lt;th&gt;判别模型&lt;/th&gt;
 &lt;th&gt;生成模型&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;目标&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;P(y|x)&lt;/td&gt;
 &lt;td&gt;P(x) 或 P(x,y)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;任务&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;分类、回归&lt;/td&gt;
 &lt;td&gt;生成、密度估计&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;示例&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;CNN、RNN&lt;/td&gt;
 &lt;td&gt;VAE、GAN&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="应用场景"&gt;应用场景&lt;a class="anchor" href="#%e5%ba%94%e7%94%a8%e5%9c%ba%e6%99%af"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;图像生成&lt;/strong&gt;：生成新图像&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文本生成&lt;/strong&gt;：生成文本&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据增强&lt;/strong&gt;：生成训练数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;风格迁移&lt;/strong&gt;：转换图像风格&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="变分自编码器vae"&gt;变分自编码器（VAE）&lt;a class="anchor" href="#%e5%8f%98%e5%88%86%e8%87%aa%e7%bc%96%e7%a0%81%e5%99%a8vae"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="概述"&gt;概述&lt;a class="anchor" href="#%e6%a6%82%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;VAE（Variational Autoencoder）&lt;/strong&gt; 结合自编码器和变分推断。&lt;/p&gt;
&lt;h3 id="结构"&gt;结构&lt;a class="anchor" href="#%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;编码器：x → z (潜在变量)
解码器：z → x̂ (重构)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="关键创新"&gt;关键创新&lt;a class="anchor" href="#%e5%85%b3%e9%94%ae%e5%88%9b%e6%96%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="1-潜在空间"&gt;1. 潜在空间&lt;a class="anchor" href="#1-%e6%bd%9c%e5%9c%a8%e7%a9%ba%e9%97%b4"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;将输入编码到潜在空间 &lt;code&gt;z&lt;/code&gt;，而不是固定编码。&lt;/p&gt;</description></item><item><title>12-定积分</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/12-%E5%AE%9A%E7%A7%AF%E5%88%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/12-%E5%AE%9A%E7%A7%AF%E5%88%86/</guid><description>&lt;h1 id="定积分"&gt;定积分&lt;a class="anchor" href="#%e5%ae%9a%e7%a7%af%e5%88%86"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;分为两个体系：固有定积分代入（重点）、牛莱体系求原函数&lt;/p&gt;
&lt;p&gt;已知积分，构造求积分&lt;/p&gt;
&lt;h2 id="积分定义式典型"&gt;积分定义式（典型）&lt;a class="anchor" href="#%e7%a7%af%e5%88%86%e5%ae%9a%e4%b9%89%e5%bc%8f%e5%85%b8%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\lim\limits_{n\to \infty}\sum_{i=1}^{n}f[a&amp;#43;\frac{(b-a)i}{n}]\frac{b-a}{n}=\int_a^b f(x)dx\\
$$
&lt;p&gt;
&lt;/p&gt;
$$
\left\{
\begin{array}{l}a&amp;#43;\frac{(b-a)i}{n}\rightarrow x（范围同样）\\
\\
\frac{b-a}{n}\rightarrow dx
\end{array}
\right.
$$
&lt;h2 id="积分定义式形式关键"&gt;积分定义式形式关键&lt;a class="anchor" href="#%e7%a7%af%e5%88%86%e5%ae%9a%e4%b9%89%e5%bc%8f%e5%bd%a2%e5%bc%8f%e5%85%b3%e9%94%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\lim\limits_{n\to \infty}\sum_{i=1}^{3n}f(\frac{i}{n})\cdot\frac{1}{n}=\int_0^3f(x)dx\\
$$
&lt;p&gt;
&lt;/p&gt;
$$
三要素\left\{
\begin{array}{l}微元宽度\quad \frac{1}{n}\\
变量对应 \quad \frac{i}{n}\\
变量区间 \quad 3n
\end{array}
\right.
$$
&lt;h2 id="定积分存在的充分条件"&gt;定积分存在的充分条件&lt;a class="anchor" href="#%e5%ae%9a%e7%a7%af%e5%88%86%e5%ad%98%e5%9c%a8%e7%9a%84%e5%85%85%e5%88%86%e6%9d%a1%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)在[a,b]上连续（即有界），则\int_a^bf(x)dx存在\\
f(x)在[a,b]上单调（即有界），则\int_a^bf(x)dx存在\\
f(x)在[a,b]上有界，且只有有限个间断点，则\int_a^bf(x)dx存在
$$
&lt;h2 id="定积分重要细节"&gt;定积分重要细节&lt;a class="anchor" href="#%e5%ae%9a%e7%a7%af%e5%88%86%e9%87%8d%e8%a6%81%e7%bb%86%e8%8a%82"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x)有界，\int_{a^-}^af(x)dx=0\\
注：瑕点在一点的积分值难以分析
$$
&lt;h2 id="常用积分值记忆"&gt;常用积分值记忆&lt;a class="anchor" href="#%e5%b8%b8%e7%94%a8%e7%a7%af%e5%88%86%e5%80%bc%e8%ae%b0%e5%bf%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;一个拱，半个拱&lt;/p&gt;
$$
\int_0^{\pi}\sin x\ dx=2（一个拱），
\int_0^{\frac{\pi}{2}}\sin x\ dx=1（半个拱）\\
\ \\
\int_0^{\pi}|\sin kx|dx=2\\
\ \\
\int_0^1 \arcsin x\ dx=\frac{\pi}{2}-\int_0^{\frac{\pi}{2}}\sin x\ dx=\frac{\pi}{2}-1
$$
&lt;h2 id="定积分估值定理"&gt;定积分估值定理&lt;a class="anchor" href="#%e5%ae%9a%e7%a7%af%e5%88%86%e4%bc%b0%e5%80%bc%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
m(b-a)\leqslant\int_a^bf(x)dx\leqslant M(b-a)
$$
&lt;h2 id="定积分的性质"&gt;定积分的性质&lt;a class="anchor" href="#%e5%ae%9a%e7%a7%af%e5%88%86%e7%9a%84%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\int_a^b[\alpha f(x)&amp;#43;\beta g(x)]=\alpha\int_a^bf(x)dx&amp;#43;\beta\int_a^bg(x)dx
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>强化学习基础</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/12-%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/deep-learning/12-%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80/</guid><description>&lt;h2 id="强化学习概述"&gt;强化学习概述&lt;a class="anchor" href="#%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e6%a6%82%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="什么是强化学习"&gt;什么是强化学习？&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;强化学习（Reinforcement Learning）&lt;/strong&gt; 是智能体通过与环境交互，根据奖励信号学习最优策略的机器学习方法。&lt;/p&gt;
&lt;h3 id="核心特点"&gt;核心特点&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e7%89%b9%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;交互式学习&lt;/strong&gt;：通过试错学习&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;延迟奖励&lt;/strong&gt;：奖励可能延迟到来&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;探索与利用&lt;/strong&gt;：平衡探索新动作和利用已知好动作&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="应用场景"&gt;应用场景&lt;a class="anchor" href="#%e5%ba%94%e7%94%a8%e5%9c%ba%e6%99%af"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;游戏AI&lt;/strong&gt;：AlphaGo、Dota 2&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;机器人控制&lt;/strong&gt;：行走、抓取&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动驾驶&lt;/strong&gt;：决策规划&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;推荐系统&lt;/strong&gt;：个性化推荐&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="基本概念"&gt;基本概念&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e6%a6%82%e5%bf%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="智能体与环境"&gt;智能体与环境&lt;a class="anchor" href="#%e6%99%ba%e8%83%bd%e4%bd%93%e4%b8%8e%e7%8e%af%e5%a2%83"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;智能体（Agent）
 ↓ 动作 a_t
环境（Environment）
 ↓ 状态 s_{t+1}, 奖励 r_{t+1}
智能体&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="关键要素"&gt;关键要素&lt;a class="anchor" href="#%e5%85%b3%e9%94%ae%e8%a6%81%e7%b4%a0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="1-状态state"&gt;1. 状态（State）&lt;a class="anchor" href="#1-%e7%8a%b6%e6%80%81state"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;环境的当前情况，用 &lt;code&gt;s&lt;/code&gt; 表示。&lt;/p&gt;</description></item><item><title>13-变限积分函数</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/13-%E5%8F%98%E9%99%90%E7%A7%AF%E5%88%86%E5%87%BD%E6%95%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/13-%E5%8F%98%E9%99%90%E7%A7%AF%E5%88%86%E5%87%BD%E6%95%B0/</guid><description>&lt;h1 id="变限积分函数"&gt;变限积分函数&lt;a class="anchor" href="#%e5%8f%98%e9%99%90%e7%a7%af%e5%88%86%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="变限积分函数的连续性可导性"&gt;变限积分函数的连续性、可导性&lt;a class="anchor" href="#%e5%8f%98%e9%99%90%e7%a7%af%e5%88%86%e5%87%bd%e6%95%b0%e7%9a%84%e8%bf%9e%e7%bb%ad%e6%80%a7%e5%8f%af%e5%af%bc%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\Phi(x)=\int_0^xf(x)dx
$$
$$
1. f(x)在[a,b]可积，\Phi(x)在[a,b]上连续\\
2. f(x)在[a,b]连续，\Phi(x)在[a,b]上可导\\
3. f(x)在[a,b]k阶可导，\Phi(x)在[a,b]上k&amp;#43;1阶可导
$$
&lt;h2 id="变限积分函数在间断点的可导性"&gt;变限积分函数在间断点的可导性&lt;a class="anchor" href="#%e5%8f%98%e9%99%90%e7%a7%af%e5%88%86%e5%87%bd%e6%95%b0%e5%9c%a8%e9%97%b4%e6%96%ad%e7%82%b9%e7%9a%84%e5%8f%af%e5%af%bc%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\Phi(x)=\int_a^xf(t)dt
$$
$$
若x_0是f(x)的可去间断点，则\Phi(x)在x_0处可导，且\\F&amp;#39;(x_0)=\lim\limits_{x\to x_0}f(x)
$$
&lt;p&gt;
&lt;/p&gt;
$$
若x_0是f(x)的跳跃间断点，则\Phi(x)在x_0处连续，但不可导,且\\
F_-&amp;#39;(x_0)=\lim\limits_{x\to x_0^-}f(x),F_&amp;#43;&amp;#39;(x_0)=\lim\limits_{x\to x_0^&amp;#43;}f(x)\\
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：可由洛必达证得
$$
&lt;h2 id="变限积分函数的奇偶性周期性"&gt;变限积分函数的奇偶性、周期性&lt;a class="anchor" href="#%e5%8f%98%e9%99%90%e7%a7%af%e5%88%86%e5%87%bd%e6%95%b0%e7%9a%84%e5%a5%87%e5%81%b6%e6%80%a7%e5%91%a8%e6%9c%9f%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;前提：f(x)可积&lt;/strong&gt;
&lt;/p&gt;
$$
f(x)\ \ \ 奇 \Longrightarrow \int_a^xf(t)dt=\int_0^xf(t)dt-\int_0^af(t)dt \quad 偶
$$
&lt;p&gt;
&lt;/p&gt;
$$
f(x)\ \ \ 偶
\left\{
\begin{array}{l}
\Rightarrow\int_0^xf(t)dt\quad 奇\\
\\
\int_0^af(x)dx=0 \Rightarrow \int_a^xf(t)dt=\int_0^xf(t)dt\Rightarrow\int_a^xf(t)dt \quad奇\\
\end{array}
\right.
$$
&lt;p&gt;
&lt;/p&gt;
$$
f(x)\ \ T \quad 且 \quad \int_0^T f(x)dx=0 \Longleftrightarrow \int_0^x f(t)dt \quad T
$$
&lt;h2 id="变限积分被积函数含积分上限情形"&gt;变限积分“被积函数含积分上限”情形&lt;a class="anchor" href="#%e5%8f%98%e9%99%90%e7%a7%af%e5%88%86%e8%a2%ab%e7%a7%af%e5%87%bd%e6%95%b0%e5%90%ab%e7%a7%af%e5%88%86%e4%b8%8a%e9%99%90%e6%83%85%e5%bd%a2"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;加减型：&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>PEP 8 规范附录</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/pep8%E8%A7%84%E8%8C%83%E9%99%84%E5%BD%95/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/pep8%E8%A7%84%E8%8C%83%E9%99%84%E5%BD%95/</guid><description>&lt;h1 id="pep-8-代码风格指南附录"&gt;PEP 8 代码风格指南附录&lt;a class="anchor" href="#pep-8-%e4%bb%a3%e7%a0%81%e9%a3%8e%e6%a0%bc%e6%8c%87%e5%8d%97%e9%99%84%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;PEP 8 是 Python 官方的代码风格指南，旨在提高代码可读性和一致性。详见 &lt;a href="https://pep8.org/"&gt;pep8.org&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="代码布局"&gt;代码布局&lt;a class="anchor" href="#%e4%bb%a3%e7%a0%81%e5%b8%83%e5%b1%80"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="缩进"&gt;缩进&lt;a class="anchor" href="#%e7%bc%a9%e8%bf%9b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;使用 &lt;strong&gt;4 个空格&lt;/strong&gt; 缩进，不使用 Tab&lt;/li&gt;
&lt;li&gt;续行缩进：与括号内首行对齐，或额外缩进 4 空格&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 续行与括号对齐&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;long_function_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;var_one&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var_two&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;var_three&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var_four&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;var_one&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 悬挂缩进（续行额外缩进）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;some_function_that_takes_arguments&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;arg1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;arg2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;arg3&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;arg4&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;arg5&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="行宽"&gt;行宽&lt;a class="anchor" href="#%e8%a1%8c%e5%ae%bd"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;每行最多 &lt;strong&gt;79 字符&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;文档字符串/注释建议 &lt;strong&gt;72 字符&lt;/strong&gt; 内换行&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="空行"&gt;空行&lt;a class="anchor" href="#%e7%a9%ba%e8%a1%8c"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;顶级定义之间：&lt;strong&gt;2 个空行&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;类内方法之间：&lt;strong&gt;1 个空行&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;函数内逻辑块之间：可加空行提高可读性&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 两个空行分隔顶级定义&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;function_one&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;function_two&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyClass&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;类文档&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;method_one&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;method_two&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="导入"&gt;导入&lt;a class="anchor" href="#%e5%af%bc%e5%85%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;导入放在文件顶部，在模块注释和文档字符串之后&lt;/li&gt;
&lt;li&gt;顺序：标准库 → 相关第三方 → 本地应用&lt;/li&gt;
&lt;li&gt;每组之间空一行&lt;/li&gt;
&lt;li&gt;使用&lt;strong&gt;绝对导入&lt;/strong&gt;，避免 &lt;code&gt;from ... import *&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;模块文档字符串&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;mypackage.utils&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;helper&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="命名规范"&gt;命名规范&lt;a class="anchor" href="#%e5%91%bd%e5%90%8d%e8%a7%84%e8%8c%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;类型&lt;/th&gt;
 &lt;th&gt;规范&lt;/th&gt;
 &lt;th&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;模块&lt;/td&gt;
 &lt;td&gt;短小全小写，下划线可选&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;my_module&lt;/code&gt;, &lt;code&gt;mymodule&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;类&lt;/td&gt;
 &lt;td&gt;驼峰命名 PascalCase&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;MyClass&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;函数/变量&lt;/td&gt;
 &lt;td&gt;小写下划线 snake_case&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;my_function&lt;/code&gt;, &lt;code&gt;my_var&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;常量&lt;/td&gt;
 &lt;td&gt;全大写下划线&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;MAX_SIZE&lt;/code&gt;, &lt;code&gt;DEFAULT_TIMEOUT&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;私有&lt;/td&gt;
 &lt;td&gt;单下划线前缀&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;_internal_var&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;名称修饰&lt;/td&gt;
 &lt;td&gt;双下划线前后缀&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;__name__&lt;/code&gt;（魔术方法）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="避免使用的名称"&gt;避免使用的名称&lt;a class="anchor" href="#%e9%81%bf%e5%85%8d%e4%bd%bf%e7%94%a8%e7%9a%84%e5%90%8d%e7%a7%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;单字符：&lt;code&gt;l&lt;/code&gt;、&lt;code&gt;O&lt;/code&gt;、&lt;code&gt;I&lt;/code&gt;（易与数字混淆）&lt;/li&gt;
&lt;li&gt;可接受：&lt;code&gt;i&lt;/code&gt;、&lt;code&gt;j&lt;/code&gt;、&lt;code&gt;k&lt;/code&gt;（循环变量），&lt;code&gt;e&lt;/code&gt;（异常）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="表达式与语句"&gt;表达式与语句&lt;a class="anchor" href="#%e8%a1%a8%e8%be%be%e5%bc%8f%e4%b8%8e%e8%af%ad%e5%8f%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="空格"&gt;空格&lt;a class="anchor" href="#%e7%a9%ba%e6%a0%bc"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 二元运算符两侧各一个空格&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 逗号后一个空格&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;spam&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ham&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;eggs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;foo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 函数默认参数 = 两侧不加空格&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;func&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 切片冒号两侧空格可选，保持一致&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ham&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;ham&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="比较"&gt;比较&lt;a class="anchor" href="#%e6%af%94%e8%be%83"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 与 None 比较用 is / is not&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 布尔值用 is True / is False（慎用），通常直接 if x:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="字符串引号"&gt;字符串引号&lt;a class="anchor" href="#%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%bc%95%e5%8f%b7"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;单引号 &lt;code&gt;'&lt;/code&gt; 与双引号 &lt;code&gt;&amp;quot;&lt;/code&gt; 等效，项目内保持一致&lt;/li&gt;
&lt;li&gt;三引号文档字符串用 &lt;code&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="注释"&gt;注释&lt;a class="anchor" href="#%e6%b3%a8%e9%87%8a"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="块注释"&gt;块注释&lt;a class="anchor" href="#%e5%9d%97%e6%b3%a8%e9%87%8a"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;与代码同级缩进&lt;/li&gt;
&lt;li&gt;每行以 &lt;code&gt;#&lt;/code&gt; 加一个空格开头&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 这是一个块注释&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 说明下面的逻辑&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="行尾注释"&gt;行尾注释&lt;a class="anchor" href="#%e8%a1%8c%e5%b0%be%e6%b3%a8%e9%87%8a"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;与语句至少 2 个空格间隔&lt;/li&gt;
&lt;li&gt;少用，避免行过长&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;# 补偿边界&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="文档字符串"&gt;文档字符串&lt;a class="anchor" href="#%e6%96%87%e6%a1%a3%e5%ad%97%e7%ac%a6%e4%b8%b2"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;所有公共模块、函数、类、方法应写文档字符串&lt;/li&gt;
&lt;li&gt;多行格式：首行摘要，空行，详细说明&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;complex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;real&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;imag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;Form a complex number.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; Keyword arguments:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; real -- the real part (default 0.0)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; imag -- the imaginary part (default 0.0)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;complex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;real&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;imag&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="类型注解pep-484"&gt;类型注解（PEP 484）&lt;a class="anchor" href="#%e7%b1%bb%e5%9e%8b%e6%b3%a8%e8%a7%a3pep-484"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;建议为函数参数和返回值添加类型注解&lt;/li&gt;
&lt;li&gt;提高可读性和工具链支持&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;greeting&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Hello &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="工具支持"&gt;工具支持&lt;a class="anchor" href="#%e5%b7%a5%e5%85%b7%e6%94%af%e6%8c%81"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;flake8&lt;/strong&gt;：检查 PEP 8 违规&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;black&lt;/strong&gt;：自动格式化（有自身风格，与 PEP 8 大部分一致）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;isort&lt;/strong&gt;：自动排序导入&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;mypy&lt;/strong&gt;：静态类型检查&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="原则总结"&gt;原则总结&lt;a class="anchor" href="#%e5%8e%9f%e5%88%99%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;Beautiful is better than ugly.&lt;br&gt;
Explicit is better than implicit.&lt;br&gt;
Simple is better than complex.&lt;/p&gt;</description></item><item><title>附录1-PEP 8 规范</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/%E9%99%84%E5%BD%951-pep8%E8%A7%84%E8%8C%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/%E9%99%84%E5%BD%951-pep8%E8%A7%84%E8%8C%83/</guid><description>&lt;h1 id="pep-8-代码风格指南附录"&gt;PEP 8 代码风格指南附录&lt;a class="anchor" href="#pep-8-%e4%bb%a3%e7%a0%81%e9%a3%8e%e6%a0%bc%e6%8c%87%e5%8d%97%e9%99%84%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;PEP 8 是 Python 官方的代码风格指南，旨在提高代码可读性和一致性。详见 &lt;a href="https://pep8.org/"&gt;pep8.org&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="代码布局"&gt;代码布局&lt;a class="anchor" href="#%e4%bb%a3%e7%a0%81%e5%b8%83%e5%b1%80"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="缩进"&gt;缩进&lt;a class="anchor" href="#%e7%bc%a9%e8%bf%9b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;使用 &lt;strong&gt;4 个空格&lt;/strong&gt; 缩进，不使用 Tab&lt;/li&gt;
&lt;li&gt;续行缩进：与括号内首行对齐，或额外缩进 4 空格&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 续行与括号对齐&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;long_function_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;var_one&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var_two&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;var_three&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var_four&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;var_one&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 悬挂缩进（续行额外缩进）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;some_function_that_takes_arguments&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;arg1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;arg2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;arg3&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;arg4&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;arg5&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="行宽"&gt;行宽&lt;a class="anchor" href="#%e8%a1%8c%e5%ae%bd"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;每行最多 &lt;strong&gt;79 字符&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;文档字符串/注释建议 &lt;strong&gt;72 字符&lt;/strong&gt; 内换行&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="空行"&gt;空行&lt;a class="anchor" href="#%e7%a9%ba%e8%a1%8c"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;顶级定义之间：&lt;strong&gt;2 个空行&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;类内方法之间：&lt;strong&gt;1 个空行&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;函数内逻辑块之间：可加空行提高可读性&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 两个空行分隔顶级定义&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;function_one&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;function_two&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyClass&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;类文档&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;method_one&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;method_two&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="导入"&gt;导入&lt;a class="anchor" href="#%e5%af%bc%e5%85%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;导入放在文件顶部，在模块注释和文档字符串之后&lt;/li&gt;
&lt;li&gt;顺序：标准库 → 相关第三方 → 本地应用&lt;/li&gt;
&lt;li&gt;每组之间空一行&lt;/li&gt;
&lt;li&gt;使用&lt;strong&gt;绝对导入&lt;/strong&gt;，避免 &lt;code&gt;from ... import *&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;模块文档字符串&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;mypackage.utils&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;helper&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="命名规范"&gt;命名规范&lt;a class="anchor" href="#%e5%91%bd%e5%90%8d%e8%a7%84%e8%8c%83"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;类型&lt;/th&gt;
 &lt;th&gt;规范&lt;/th&gt;
 &lt;th&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;模块&lt;/td&gt;
 &lt;td&gt;短小全小写，下划线可选&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;my_module&lt;/code&gt;, &lt;code&gt;mymodule&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;类&lt;/td&gt;
 &lt;td&gt;驼峰命名 PascalCase&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;MyClass&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;函数/变量&lt;/td&gt;
 &lt;td&gt;小写下划线 snake_case&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;my_function&lt;/code&gt;, &lt;code&gt;my_var&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;常量&lt;/td&gt;
 &lt;td&gt;全大写下划线&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;MAX_SIZE&lt;/code&gt;, &lt;code&gt;DEFAULT_TIMEOUT&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;私有&lt;/td&gt;
 &lt;td&gt;单下划线前缀&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;_internal_var&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;名称修饰&lt;/td&gt;
 &lt;td&gt;双下划线前后缀&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;__name__&lt;/code&gt;（魔术方法）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="避免使用的名称"&gt;避免使用的名称&lt;a class="anchor" href="#%e9%81%bf%e5%85%8d%e4%bd%bf%e7%94%a8%e7%9a%84%e5%90%8d%e7%a7%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;单字符：&lt;code&gt;l&lt;/code&gt;、&lt;code&gt;O&lt;/code&gt;、&lt;code&gt;I&lt;/code&gt;（易与数字混淆）&lt;/li&gt;
&lt;li&gt;可接受：&lt;code&gt;i&lt;/code&gt;、&lt;code&gt;j&lt;/code&gt;、&lt;code&gt;k&lt;/code&gt;（循环变量），&lt;code&gt;e&lt;/code&gt;（异常）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="表达式与语句"&gt;表达式与语句&lt;a class="anchor" href="#%e8%a1%a8%e8%be%be%e5%bc%8f%e4%b8%8e%e8%af%ad%e5%8f%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="空格"&gt;空格&lt;a class="anchor" href="#%e7%a9%ba%e6%a0%bc"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 二元运算符两侧各一个空格&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 逗号后一个空格&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;spam&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ham&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;eggs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;foo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 函数默认参数 = 两侧不加空格&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;func&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 切片冒号两侧空格可选，保持一致&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ham&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;ham&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="比较"&gt;比较&lt;a class="anchor" href="#%e6%af%94%e8%be%83"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 与 None 比较用 is / is not&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 布尔值用 is True / is False（慎用），通常直接 if x:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="字符串引号"&gt;字符串引号&lt;a class="anchor" href="#%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%bc%95%e5%8f%b7"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;单引号 &lt;code&gt;'&lt;/code&gt; 与双引号 &lt;code&gt;&amp;quot;&lt;/code&gt; 等效，项目内保持一致&lt;/li&gt;
&lt;li&gt;三引号文档字符串用 &lt;code&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="注释"&gt;注释&lt;a class="anchor" href="#%e6%b3%a8%e9%87%8a"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="块注释"&gt;块注释&lt;a class="anchor" href="#%e5%9d%97%e6%b3%a8%e9%87%8a"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;与代码同级缩进&lt;/li&gt;
&lt;li&gt;每行以 &lt;code&gt;#&lt;/code&gt; 加一个空格开头&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 这是一个块注释&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 说明下面的逻辑&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;process&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="行尾注释"&gt;行尾注释&lt;a class="anchor" href="#%e8%a1%8c%e5%b0%be%e6%b3%a8%e9%87%8a"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;与语句至少 2 个空格间隔&lt;/li&gt;
&lt;li&gt;少用，避免行过长&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;# 补偿边界&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="文档字符串"&gt;文档字符串&lt;a class="anchor" href="#%e6%96%87%e6%a1%a3%e5%ad%97%e7%ac%a6%e4%b8%b2"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;所有公共模块、函数、类、方法应写文档字符串&lt;/li&gt;
&lt;li&gt;多行格式：首行摘要，空行，详细说明&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;complex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;real&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;imag&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;Form a complex number.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; Keyword arguments:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; real -- the real part (default 0.0)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; imag -- the imaginary part (default 0.0)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;complex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;real&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;imag&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="类型注解pep-484"&gt;类型注解（PEP 484）&lt;a class="anchor" href="#%e7%b1%bb%e5%9e%8b%e6%b3%a8%e8%a7%a3pep-484"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;建议为函数参数和返回值添加类型注解&lt;/li&gt;
&lt;li&gt;提高可读性和工具链支持&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;greeting&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Hello &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="工具支持"&gt;工具支持&lt;a class="anchor" href="#%e5%b7%a5%e5%85%b7%e6%94%af%e6%8c%81"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;flake8&lt;/strong&gt;：检查 PEP 8 违规&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;black&lt;/strong&gt;：自动格式化（有自身风格，与 PEP 8 大部分一致）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;isort&lt;/strong&gt;：自动排序导入&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;mypy&lt;/strong&gt;：静态类型检查&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="原则总结"&gt;原则总结&lt;a class="anchor" href="#%e5%8e%9f%e5%88%99%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;Beautiful is better than ugly.&lt;br&gt;
Explicit is better than implicit.&lt;br&gt;
Simple is better than complex.&lt;/p&gt;</description></item><item><title>14-反常积分</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/14-%E5%8F%8D%E5%B8%B8%E7%A7%AF%E5%88%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/14-%E5%8F%8D%E5%B8%B8%E7%A7%AF%E5%88%86/</guid><description>&lt;h1 id="反常积分"&gt;反常积分&lt;a class="anchor" href="#%e5%8f%8d%e5%b8%b8%e7%a7%af%e5%88%86"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;反常积分审敛两大方法：比较判别法（一般用于证明题）、比较判别法的极限形式&lt;/p&gt;
&lt;h2 id="定积分与反常积分区别"&gt;定积分与反常积分区别&lt;a class="anchor" href="#%e5%ae%9a%e7%a7%af%e5%88%86%e4%b8%8e%e5%8f%8d%e5%b8%b8%e7%a7%af%e5%88%86%e5%8c%ba%e5%88%ab"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;定积分：区间有限（闭区间），函数有界，又称黎曼积分（黎曼关于定积分的理论存在不完备的缺陷）&lt;/p&gt;
&lt;p&gt;反常积分：区间无限，或函数无界，又称广义积分&lt;/p&gt;
&lt;h2 id="反常积分的敛散性"&gt;反常积分的敛散性&lt;a class="anchor" href="#%e5%8f%8d%e5%b8%b8%e7%a7%af%e5%88%86%e7%9a%84%e6%95%9b%e6%95%a3%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;同一函数积分在不同区间的敛散性，函数不同另行讨论：&lt;/strong&gt;
&lt;/p&gt;
$$
需分开计算，但趋向速度可能不一致\\
\int_{-1}^{1}\frac{1}{x}dx=\lim\limits_{x\to 0^-}\int_{-1}^x\frac{1}{x}dx&amp;#43;\lim\limits_{x\to 0^&amp;#43;}\int_{x}^{1}\frac{1}{x}dx\\
\int_{-\infty}^{\infty}\frac{1}{x}dx=\lim\limits_{x\to -\infty}\int_{x}^af(x)dx&amp;#43;\lim\limits_{x\to&amp;#43;\infty}\int_{a}^{x}f(x)dx\\
$$
&lt;p&gt;
&lt;/p&gt;
$$
子区间:\\收敛&amp;#43;收敛=收敛\\
收敛&amp;#43;发散=发散\\
发散&amp;#43;发散= 发散\\
$$
&lt;p&gt;
&lt;strong&gt;反常积分任意子区间积分发散，称反常积分发散&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;发散的反常积分一定不存在&lt;/strong&gt;
&lt;/p&gt;
$$
\int_{-1}^{1}\frac{1}{x}\neq0\ 不收敛
$$
&lt;h2 id="反常积分分析思路"&gt;反常积分分析思路&lt;a class="anchor" href="#%e5%8f%8d%e5%b8%b8%e7%a7%af%e5%88%86%e5%88%86%e6%9e%90%e6%80%9d%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
反常积分敛散与否关键在于反常积分在趋于\\
\left\{
\begin{array}{ll}
\infty\\
\\
瑕点
\end{array}
\right.
时的“表现”\\
故有，反常积分判别尺度
$$
&lt;h2 id="反常积分判别尺度"&gt;反常积分判别尺度&lt;a class="anchor" href="#%e5%8f%8d%e5%b8%b8%e7%a7%af%e5%88%86%e5%88%a4%e5%88%ab%e5%b0%ba%e5%ba%a6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
p \ \nearrow \quad (\frac{1}{x})^p绕(1,1)顺时针旋转\\
$$
&lt;p&gt;
&lt;/p&gt;
$$
\int_0^1(\frac{1}{x})^p\ dx\quad
\left\{
\begin{array}{cl}
0&amp;lt;p&amp;lt;1，&amp;amp; 收敛\\
&amp;amp;&amp;amp;（\infty^p阶次越低越收敛）\\
p\geqslant1，&amp;amp; 发散
\end{array}
\right.
$$
&lt;p&gt;
&lt;/p&gt;
$$
\int_1^{&amp;#43;\infty}(\frac{1}{x})^p\ dx\quad
\left\{
\begin{array}{cl}
p&amp;gt;1，&amp;amp; 收敛\\
&amp;amp;&amp;amp;（0^p阶次越高越收敛）\\
p\leqslant1，&amp;amp; 发散
\end{array}
\right.
$$
&lt;h2 id="比较判别法的极限形式"&gt;比较判别法的极限形式&lt;a class="anchor" href="#%e6%af%94%e8%be%83%e5%88%a4%e5%88%ab%e6%b3%95%e7%9a%84%e6%9e%81%e9%99%90%e5%bd%a2%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;反常积分审敛的核心方法&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>附录2-生成可执行文件</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/%E9%99%84%E5%BD%952-%E7%94%9F%E6%88%90%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/python-notes/%E9%99%84%E5%BD%952-%E7%94%9F%E6%88%90%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6/</guid><description>&lt;h1 id="python-生成可执行文件附录"&gt;Python 生成可执行文件附录&lt;a class="anchor" href="#python-%e7%94%9f%e6%88%90%e5%8f%af%e6%89%a7%e8%a1%8c%e6%96%87%e4%bb%b6%e9%99%84%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;将 Python 脚本打包为独立可执行文件，可在无 Python 环境的机器上运行，便于分发与部署。&lt;/p&gt;
&lt;h2 id="核心概念"&gt;核心概念&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="为何需要可执行文件"&gt;为何需要可执行文件&lt;a class="anchor" href="#%e4%b8%ba%e4%bd%95%e9%9c%80%e8%a6%81%e5%8f%af%e6%89%a7%e8%a1%8c%e6%96%87%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;无 Python 环境&lt;/strong&gt;：目标机器未安装 Python 或版本不一致时仍可运行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;便于分发&lt;/strong&gt;：单文件或单目录即可交付，无需配置依赖。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;保护源码&lt;/strong&gt;：打包后用户难以直接查看或修改源码（非强加密）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="实现方式概览"&gt;实现方式概览&lt;a class="anchor" href="#%e5%ae%9e%e7%8e%b0%e6%96%b9%e5%bc%8f%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;方式&lt;/th&gt;
 &lt;th&gt;代表工具&lt;/th&gt;
 &lt;th&gt;原理&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;打包器&lt;/td&gt;
 &lt;td&gt;PyInstaller、cx_Freeze&lt;/td&gt;
 &lt;td&gt;将解释器、依赖与脚本打包成目录或单文件，运行时解压/加载。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;编译型&lt;/td&gt;
 &lt;td&gt;Nuitka&lt;/td&gt;
 &lt;td&gt;将 Python 编译为 C，再编译为原生二进制，无内置解释器。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="工具选型简表"&gt;工具选型简表&lt;a class="anchor" href="#%e5%b7%a5%e5%85%b7%e9%80%89%e5%9e%8b%e7%ae%80%e8%a1%a8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;工具&lt;/th&gt;
 &lt;th&gt;适用场景&lt;/th&gt;
 &lt;th&gt;跨平台&lt;/th&gt;
 &lt;th&gt;依赖复杂度&lt;/th&gt;
 &lt;th&gt;体积/启动&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;PyInstaller&lt;/td&gt;
 &lt;td&gt;通用、快速打包&lt;/td&gt;
 &lt;td&gt;是&lt;/td&gt;
 &lt;td&gt;低，自动分析多&lt;/td&gt;
 &lt;td&gt;单文件较大、首次略慢&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;cx_Freeze&lt;/td&gt;
 &lt;td&gt;需精细控制、跨平台一致&lt;/td&gt;
 &lt;td&gt;是&lt;/td&gt;
 &lt;td&gt;中，常需写配置&lt;/td&gt;
 &lt;td&gt;目录分发，可控&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Nuitka&lt;/td&gt;
 &lt;td&gt;追求性能、体积或兼容性&lt;/td&gt;
 &lt;td&gt;是&lt;/td&gt;
 &lt;td&gt;高，需 C 编译器&lt;/td&gt;
 &lt;td&gt;体积与启动更优，编译慢&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="pyinstaller推荐首选"&gt;PyInstaller（推荐首选）&lt;a class="anchor" href="#pyinstaller%e6%8e%a8%e8%8d%90%e9%a6%96%e9%80%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="安装"&gt;安装&lt;a class="anchor" href="#%e5%ae%89%e8%a3%85"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install pyinstaller&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="单文件与目录打包"&gt;单文件与目录打包&lt;a class="anchor" href="#%e5%8d%95%e6%96%87%e4%bb%b6%e4%b8%8e%e7%9b%ae%e5%bd%95%e6%89%93%e5%8c%85"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;单文件&lt;/strong&gt;：产出单个 exe（Windows）或可执行文件，运行时解压到临时目录。适合分发。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目录&lt;/strong&gt;：产出一个目录，内含可执行文件与依赖。启动更快，便于调试。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 单文件（最常用）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pyinstaller --onefile script.py
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 目录模式（默认）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pyinstaller script.py&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="常用参数"&gt;常用参数&lt;a class="anchor" href="#%e5%b8%b8%e7%94%a8%e5%8f%82%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;参数&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--onefile&lt;/code&gt; / &lt;code&gt;-F&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;打包成单文件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--name&lt;/code&gt; / &lt;code&gt;-n&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;指定生成的可执行文件名&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--icon&lt;/code&gt; / &lt;code&gt;-i&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;指定图标（Windows .ico）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--add-data&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;将数据文件/目录打进包（格式：&lt;code&gt;src;dest&lt;/code&gt; 或 &lt;code&gt;src:dest&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--hidden-import&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显式加入未自动检测到的模块&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--console&lt;/code&gt; / &lt;code&gt;--noconsole&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;是否保留控制台（GUI 程序常用 &lt;code&gt;--noconsole&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;示例：&lt;/p&gt;</description></item><item><title>15-一元函数积分学的应用</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/15-%E4%B8%80%E5%85%83%E5%87%BD%E6%95%B0%E7%A7%AF%E5%88%86%E5%AD%A6%E7%9A%84%E5%BA%94%E7%94%A8/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/15-%E4%B8%80%E5%85%83%E5%87%BD%E6%95%B0%E7%A7%AF%E5%88%86%E5%AD%A6%E7%9A%84%E5%BA%94%E7%94%A8/</guid><description>&lt;h1 id="一元积分学的应用"&gt;一元积分学的应用&lt;a class="anchor" href="#%e4%b8%80%e5%85%83%e7%a7%af%e5%88%86%e5%ad%a6%e7%9a%84%e5%ba%94%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;旋转体只考沿坐标轴旋转&lt;/p&gt;
&lt;h2 id="几何计算公式"&gt;几何计算公式&lt;a class="anchor" href="#%e5%87%a0%e4%bd%95%e8%ae%a1%e7%ae%97%e5%85%ac%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;两类旋转体体积：&lt;/strong&gt;
&lt;/p&gt;
$$
饼状微元：V=\int_a^b\pi[f(x)]^2dx\\
桶状微元：
V=\int_a^b2\pi |x|\cdot |f(x)|dx
$$
&lt;p&gt;
&lt;strong&gt;旋转体侧面积：&lt;/strong&gt;
&lt;/p&gt;
$$
饼状微元：S=\int_a^b 2\pi |f(x)|\cdot\sqrt{1&amp;#43;f&amp;#39;^2(x)}dx
$$
&lt;p&gt;
&lt;strong&gt;扇形面积：&lt;/strong&gt;
&lt;/p&gt;
$$
S=\int_a^b \frac{1}{2}r^2d\theta
$$
&lt;h2 id="物理量计算公式"&gt;物理量计算公式&lt;a class="anchor" href="#%e7%89%a9%e7%90%86%e9%87%8f%e8%ae%a1%e7%ae%97%e5%85%ac%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
压力微元：\rho gxdS（x为水深）\\
抽水做功微元：\rho gxdV（x为提升高度）
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：旋转体灵活转换坐标系简化计算\\
灵活运用物理意义（x 深度、高度等）
$$</description></item><item><title>16-多元微分</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/16-%E5%A4%9A%E5%85%83%E5%BE%AE%E5%88%86/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/16-%E5%A4%9A%E5%85%83%E5%BE%AE%E5%88%86/</guid><description>&lt;h1 id="多元微分"&gt;多元微分&lt;a class="anchor" href="#%e5%a4%9a%e5%85%83%e5%be%ae%e5%88%86"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;多元微分过于复杂，故考查内容很浅&lt;/li&gt;
&lt;li&gt;主考察二元，三元及以上难以理解&lt;/li&gt;
&lt;li&gt;隐函数存在定理理解即可&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="二元极限的定义"&gt;二元极限的定义&lt;a class="anchor" href="#%e4%ba%8c%e5%85%83%e6%9e%81%e9%99%90%e7%9a%84%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
若二元函数f(x,y)在(x_0,y_0)的去心邻域内有定义，\\
且(x,y)以\ \textbf{任意方式}\ 趋向于(x_0,y_0)时，\\
f(x,y)均趋向于A，则\lim\limits_{(x,y)\to (0,0)}f(x,y)=A
$$
&lt;h2 id="多元函数的连续性"&gt;多元函数的连续性&lt;a class="anchor" href="#%e5%a4%9a%e5%85%83%e5%87%bd%e6%95%b0%e7%9a%84%e8%bf%9e%e7%bb%ad%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
多元初等函数在其自然定义域上是连续的
$$
&lt;h2 id="二元极值定义"&gt;二元极值定义&lt;a class="anchor" href="#%e4%ba%8c%e5%85%83%e6%9e%81%e5%80%bc%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
f(x,y)在U(x_0,y_0)内有定义，对于任意(x,y)\in \mathring{U}(x_0,y_0),\ \ \ f(x,y)&amp;lt;f(x_0,y_0)(或f(x,y)&amp;gt;f(x_0,y_0))，则\\称f(x_0,y_0)为极值
$$
&lt;h2 id="二元可微的定义"&gt;二元可微的定义&lt;a class="anchor" href="#%e4%ba%8c%e5%85%83%e5%8f%af%e5%be%ae%e7%9a%84%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
设函数z=f(x,y)在点(x,y)的某邻域内有定义，如果函数在点(x,y)的全增量\\
\quad\quad\quad\quad\Delta z=f(x&amp;#43;\Delta x,y&amp;#43;\Delta y)-f(x,y)\\
可表示为\\
\quad\quad\quad\quad\quad\Delta z=A\Delta x&amp;#43;B\Delta y&amp;#43;\circ(\rho)（各增量均趋于0）\\
其中A和B不依赖于\Delta x和\Delta y，而仅与x和y有关，\rho=\sqrt{(\Delta x)^2&amp;#43;(\Delta y)^2},\\
则称z=f(x,y)在点(x,y)可微分
$$
&lt;p&gt;
&lt;/p&gt;
$$
A\Delta x&amp;#43;B\Delta y称为z=f(x,y)在点(x,y)的全微分,记作dz\\
即dz=Adx&amp;#43;Bdy\\
$$
&lt;h2 id="多元微分的本质或几何理解"&gt;多元微分的本质或几何理解&lt;a class="anchor" href="#%e5%a4%9a%e5%85%83%e5%be%ae%e5%88%86%e7%9a%84%e6%9c%ac%e8%b4%a8%e6%88%96%e5%87%a0%e4%bd%95%e7%90%86%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
多元微分由一元微分定义，以一元导数的组合理解多元导数\\
可微\Leftrightarrow dz可由\frac{\partial z}{\partial x}dx&amp;#43;\frac{\partial z}{\partial y}dy表示
$$
&lt;h2 id="二元可微的必要条件"&gt;二元可微的必要条件&lt;a class="anchor" href="#%e4%ba%8c%e5%85%83%e5%8f%af%e5%be%ae%e7%9a%84%e5%bf%85%e8%a6%81%e6%9d%a1%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
若函数z=(x,y)可微，则该函数在点(x,y)的偏导数\frac{\partial z}{\partial x},\frac{\partial z}{\partial y}必存在，\\
且dz=\frac{\partial z}{\partial x}dx&amp;#43;\frac{\partial z}{\partial y}dy（偏导虽是坐标轴方向，但(d x,d y)表示任意方式）
$$
&lt;h2 id="二元可微的判定"&gt;二元可微的判定&lt;a class="anchor" href="#%e4%ba%8c%e5%85%83%e5%8f%af%e5%be%ae%e7%9a%84%e5%88%a4%e5%ae%9a"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
定义判定式（充要条件）：\lim\limits_{(x,y)\to (x_0,y_0)}\frac{\Delta z-A\Delta x-B\Delta y}{\sqrt{(x-x_0)^2&amp;#43;(y-y_0)^2}}=0\\
\lim\limits_{(x,y)\rightarrow(x_0,y_0)}\frac{f(x,y)-f(x_0,y_0)-f_x&amp;#39;(0,0)(x-x_0)-f_y&amp;#39;(0,0)(y-y_0)}{\sqrt{(x-x_0)^2&amp;#43;(y-y_0)^2}}=0
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>17-微分方程</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/17-%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/17-%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B/</guid><description>&lt;h1 id="微分方程"&gt;微分方程&lt;a class="anchor" href="#%e5%be%ae%e5%88%86%e6%96%b9%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;难点在于微分方程类型的识别&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;考试大纲要求：仅要求求通解，不要求求出全部解&lt;/p&gt;
&lt;p&gt;微分方程可结合性极强，可结合多种知识考查：&lt;/p&gt;
&lt;p&gt;多元微分关系形成微分方程、幂级数微分关系形成微分方程&lt;/p&gt;
&lt;p&gt;应用题型微分关系形成微分方程&amp;hellip;&amp;hellip;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优先级：一阶线性 &amp;gt; 分离变量型 &amp;gt; 齐次型&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;微分方程只考求解，按习惯计算即可，勿多想&lt;/p&gt;
&lt;h2 id="微分方程可解性"&gt;微分方程可解性&lt;a class="anchor" href="#%e5%be%ae%e5%88%86%e6%96%b9%e7%a8%8b%e5%8f%af%e8%a7%a3%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
只有少数简单的微分方程可以求得解析解\\
微分方程可解性较弱，故复杂题型也均属特殊构造，难点在于整理识别
$$
&lt;h2 id="变量分离型"&gt;变量分离型&lt;a class="anchor" href="#%e5%8f%98%e9%87%8f%e5%88%86%e7%a6%bb%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;分离变量、约分会改变定义域，但不要求求全部解&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;除线性微分方程外，分离变量方法贯穿微分方程求解始终&lt;/strong&gt;&lt;/p&gt;
$$
\frac{dy}{dx}=f(x)g(y)
$$
&lt;h2 id="齐次型微分方程"&gt;齐次型微分方程&lt;a class="anchor" href="#%e9%bd%90%e6%ac%a1%e5%9e%8b%e5%be%ae%e5%88%86%e6%96%b9%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\frac{dy}{dx}=\varphi(\frac{y}{x})
$$
&lt;p&gt;&lt;strong&gt;齐次：整理为标准形式，分子分母阶次相同&lt;/strong&gt;
&lt;/p&gt;
$$
\frac{dy}{dx}=\varphi(\frac{y}{x}):\\
令u=\frac{y}{x},得y=ux,\frac{dy}{dx}=x\frac{du}{dx}&amp;#43;u\\
x\frac{du}{dx}&amp;#43;u=\varphi(u)
$$
$$
\frac{dy}{dx}=f(ax&amp;#43;by&amp;#43;c):\\
u=ax&amp;#43;by&amp;#43;c\\
$$
$$
注：(\frac{y}{x})为0次
$$
&lt;h2 id="一阶线性微分方程"&gt;一阶线性微分方程&lt;a class="anchor" href="#%e4%b8%80%e9%98%b6%e7%ba%bf%e6%80%a7%e5%be%ae%e5%88%86%e6%96%b9%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
y&amp;#39;&amp;#43;p(x)y=q(x)\\
y&amp;#39;&amp;#43;p(x)y=0
$$
$$
y=e^{-\int p(x)dx}[\int e^{\int p(x)dx}\cdot q(x)dx&amp;#43;C]（C为任意常数）
$$
&lt;p&gt;
&lt;/p&gt;
$$
y=Ce^{-\int p(x)dx}
$$
&lt;p&gt;
&lt;/p&gt;
$$
此处\int p(x)dx不加C，仅表示一个原函数\\
\int p(x)dx为\ln|\varphi(x)|可直接去掉所有相关项绝对值（勿深究）
$$
&lt;h2 id="伯努利方程"&gt;伯努利方程&lt;a class="anchor" href="#%e4%bc%af%e5%8a%aa%e5%88%a9%e6%96%b9%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
y&amp;#39;&amp;#43;p(x)y=q(x)y^n(n\neq0,1)
$$
&lt;p&gt;&lt;strong&gt;伯努利方程不易察觉&lt;/strong&gt;
&lt;/p&gt;
$$
变形为：y^{-n}\cdot y&amp;#39;&amp;#43;p(x)y^{1-n}=q(x)
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>18-数项级数</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/18-%E6%95%B0%E9%A1%B9%E7%BA%A7%E6%95%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/18-%E6%95%B0%E9%A1%B9%E7%BA%A7%E6%95%B0/</guid><description>&lt;h1 id="数项级数"&gt;&amp;ldquo;&amp;ldquo;数项级数&amp;rdquo;&amp;rdquo;&lt;a class="anchor" href="#%e6%95%b0%e9%a1%b9%e7%ba%a7%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;数项级数考查敛散性&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;正（负）项级数审敛几大方法：
比较审敛法（一般用于证明）、比较审敛法的极限形式、比值审敛法、根值审敛法、积分审敛法&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;数列的敛散性容易分析，数项级数的敛散性较复杂&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;重难点：数项级数的证明题&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="数列收敛与子列的关系"&gt;数列收敛与子列的关系&lt;a class="anchor" href="#%e6%95%b0%e5%88%97%e6%94%b6%e6%95%9b%e4%b8%8e%e5%ad%90%e5%88%97%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;关键在“致密性”，跟函数与数列的关系同理&lt;/strong&gt;&lt;/p&gt;
$$
\{x_n\}收敛\ \substack{\Rightarrow\\ \not\Leftarrow}\{x_{2n}\}收敛\\
$$
&lt;p&gt;
&lt;/p&gt;
$$
\{x_{2n}\}发散\ \substack{\Rightarrow\\ \not\Leftarrow}\{x_n\}发散
$$
&lt;h2 id="数列与级数的关系"&gt;数列与级数的关系&lt;a class="anchor" href="#%e6%95%b0%e5%88%97%e4%b8%8e%e7%ba%a7%e6%95%b0%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
级数可完全视作数列\\
数列也可完全视作级数\\
\ \\
子数列（连续求和）\neq 子级数（跳跃求和）\sum_{i=1}^{\infty} u_{2i}
$$
&lt;h2 id="级数收敛的必要条件"&gt;级数收敛的必要条件&lt;a class="anchor" href="#%e7%ba%a7%e6%95%b0%e6%94%b6%e6%95%9b%e7%9a%84%e5%bf%85%e8%a6%81%e6%9d%a1%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\sum_{n=0}^{\infty}u_n收敛\Rightarrow\lim\limits_{n\to \infty}u_n=0\\
\lim\limits_{n\to \infty}u_n\neq0\Rightarrow\sum_{n=0}^{\infty}u_n发散
$$
&lt;h2 id="数项级数的性质"&gt;数项级数的性质&lt;a class="anchor" href="#%e6%95%b0%e9%a1%b9%e7%ba%a7%e6%95%b0%e7%9a%84%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
在\sum u_n中任意加括号会提高级数的收敛性\\
\ \\
在\sum u_n中任意加绝对值会提高级数的发散性\\
\ \\
若级数\sum u_n绝对收敛，不论将其各项如何重新排列，所得新级数也绝对收敛，且其和不变
$$
&lt;h2 id="正项级数收敛与有界的关系"&gt;正项级数收敛与有界的关系&lt;a class="anchor" href="#%e6%ad%a3%e9%a1%b9%e7%ba%a7%e6%95%b0%e6%94%b6%e6%95%9b%e4%b8%8e%e6%9c%89%e7%95%8c%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\sum u_n收敛\Leftrightarrow\{S_n\}收敛\Leftrightarrow \{S_n\}有界
$$
&lt;h2 id="数项级数敛散性常用结论1"&gt;数项级数敛散性常用结论1&lt;a class="anchor" href="#%e6%95%b0%e9%a1%b9%e7%ba%a7%e6%95%b0%e6%95%9b%e6%95%a3%e6%80%a7%e5%b8%b8%e7%94%a8%e7%bb%93%e8%ae%ba1"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\sum_{n=1}^{\infty}u_n收敛，\sum_{n=1}^{\infty}v_n收敛\Rightarrow \sum_{n=1}^{\infty}(u_n\pm v_n)收敛\not\Rightarrow
\sum_{n=1}^{\infty}u_n v_n收敛\\（u_n,v_n\to 0的速度互相加快了，但交错级数可能正负号相消了）\\
\ \\
\sum_{n=1}^{\infty}u_n收敛，\sum_{n=1}^{\infty}v_n发散
\Rightarrow \sum_{n=1}^{\infty}(u_n\pm v_n)发散\\
\ \\
\sum_{n=1}^{\infty}u_n发散，\sum_{n=1}^{\infty}v_n发散
\not\Rightarrow \sum_{n=1}^{\infty}(u_n\pm v_n)发散\quad（问题在于正负相消）\\
\ \\
\sum_{n=1}^{\infty}u_n发散(u_n\geqslant0)，\sum_{n=1}^{\infty}v_n发散(v_n\geqslant0)
\Rightarrow \sum_{n=1}^{\infty}(u_n&amp;#43; v_n)发散
$$
&lt;h2 id="数项级数敛散性常用结论2"&gt;数项级数敛散性常用结论2&lt;a class="anchor" href="#%e6%95%b0%e9%a1%b9%e7%ba%a7%e6%95%b0%e6%95%9b%e6%95%a3%e6%80%a7%e5%b8%b8%e7%94%a8%e7%bb%93%e8%ae%ba2"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\sum_{n=1}^{\infty}u_n收敛\ \substack{\Rightarrow\\
\not\Leftarrow}\sum_{n=1}^{\infty}(u_{2n-1}&amp;#43;u_{2n})收敛\quad (反例：u_n=(-1)^n)\\
\ \\
\sum_{n=1}^{\infty}(-1)^{n-1}u_n(u_n&amp;gt;0)收敛\Rightarrow \sum_{n=1}^{\infty}(u_{2n-1}-u_{2n})收敛\\
\ \\
\sum_{n=1}^{\infty}(u_{2n-1}&amp;#43;u_{2n})收敛且\lim\limits_{n\to \infty}u_{n}=0\Rightarrow \sum_{n=1}^{\infty}u_n收敛\quad （S_{2n},S_{2n&amp;#43;1}均收敛于A\Leftrightarrow S_n收敛于A）\\
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>19-幂级数</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/19-%E5%B9%82%E7%BA%A7%E6%95%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/19-%E5%B9%82%E7%BA%A7%E6%95%B0/</guid><description>&lt;h1 id="幂级数"&gt;幂级数&lt;a class="anchor" href="#%e5%b9%82%e7%ba%a7%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="阿贝尔定理"&gt;阿贝尔定理&lt;a class="anchor" href="#%e9%98%bf%e8%b4%9d%e5%b0%94%e5%ae%9a%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\sum_{n=0}^{\infty}a_nx^n在x=x_1处收敛，对于满足|x|&amp;lt;|x_1|的一切x,幂级数\ \textbf{绝对收敛}
$$
$$
\sum_{n=0}^{\infty}a_nx^n在x=x_2处发散，对于满足|x|&amp;gt;|x_1|的一切x,幂级数\ \textbf{发散}
$$
&lt;h2 id="收敛半径的求法"&gt;收敛半径的求法&lt;a class="anchor" href="#%e6%94%b6%e6%95%9b%e5%8d%8a%e5%be%84%e7%9a%84%e6%b1%82%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\lim\limits_{n\to \infty}\left|\frac{a_{n&amp;#43;1}}{a_n}\right|=\rho,\ 则\sum_{n=0}^{\infty}a_nx^n的收敛半径为\\
R=
\left\{
\begin{array}{ll}
\frac{1}{\rho},&amp;amp; \rho\neq0\\
\\
&amp;#43;\infty,&amp;amp; \rho=0\\
\\
0,&amp;amp; \rho=&amp;#43;\infty
\end{array}
\right.\qquad{\color{blue}本质： \lim\limits_{n\to \infty}\left|\frac{a_{n&amp;#43;1}}{a_n}\right|\left|\frac{x_{n&amp;#43;1}}{x_n}\right|&amp;lt;1时绝对收敛，故\left|\frac{x_{n&amp;#43;1}}{x_n}\right|&amp;lt;\frac{1}{\rho}时绝对收敛}
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：
\sum_{n=0}^{\infty}a_{n}x^{n}与\sum_{n=0}^{\infty}a_{2n}x^{2n}收敛半径相同\\
收敛区间为开区间，收敛域需讨论区间端点
$$
&lt;h2 id="幂级数线性叠加的收敛半径"&gt;幂级数线性叠加的收敛半径&lt;a class="anchor" href="#%e5%b9%82%e7%ba%a7%e6%95%b0%e7%ba%bf%e6%80%a7%e5%8f%a0%e5%8a%a0%e7%9a%84%e6%94%b6%e6%95%9b%e5%8d%8a%e5%be%84"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\sum_{n=0}^{\infty}a_n x^n与\sum_{n=0}^{\infty}b_n x^n的收敛半径分别为R_1,R_2(R_1\neq R_2)\\
\sum_{n=0}^{\infty}(\alpha a_n \pm \beta b_n) x^n的收敛半径为\min\{R_1,R_2\}
$$
&lt;p&gt;
&lt;/p&gt;
$$
注：\\
若R_1\neq R_2
\left\{
\begin{array}{l}
公共收敛区间叠加后必收敛\\
\\
非公共收敛区间叠加必发散\\
（由阿贝尔定理，以外区间也发散）
\end{array}
\right.\\
若R_1= R_2，则R\geqslant\min\{R_1,R_2\}
$$
&lt;h2 id="幂级数绝对收敛发散条件收敛的关系"&gt;幂级数绝对收敛、发散、条件收敛的关系&lt;a class="anchor" href="#%e5%b9%82%e7%ba%a7%e6%95%b0%e7%bb%9d%e5%af%b9%e6%94%b6%e6%95%9b%e5%8f%91%e6%95%a3%e6%9d%a1%e4%bb%b6%e6%94%b6%e6%95%9b%e7%9a%84%e5%85%b3%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\sum_{n=0}^{\infty}a_nx^n
\left\{
\begin{array}{ll}
绝对收敛，&amp;amp; |x|&amp;lt;R\\
\\
&amp;amp;|x|=R\Leftarrow (\substack{x=x_1条件收敛\\
\\
或x=x_1收敛，x=-x_1发散})\\
\\
发散，&amp;amp; |x|&amp;gt;R
\end{array}
\right.
$$
&lt;h2 id="和函数性质"&gt;和函数性质&lt;a class="anchor" href="#%e5%92%8c%e5%87%bd%e6%95%b0%e6%80%a7%e8%b4%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
S(x)在收敛域上连续，收敛域即为和函数定义域
$$
&lt;h2 id="幂级数展开式"&gt;幂级数展开式&lt;a class="anchor" href="#%e5%b9%82%e7%ba%a7%e6%95%b0%e5%b1%95%e5%bc%80%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
e^x,\ln(1&amp;#43;x),\quad \frac{1}{1&amp;#43;x},\frac{1}{1-x},\quad \sin x,\cos x,\quad \arctan x
$$
&lt;p&gt;&lt;strong&gt;有阶乘域无穷，无阶乘域为“1”&lt;/strong&gt;
&lt;/p&gt;</description></item><item><title>20-空间解析几何</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/20-%E7%A9%BA%E9%97%B4%E8%A7%A3%E6%9E%90%E5%87%A0%E4%BD%95/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/20-%E7%A9%BA%E9%97%B4%E8%A7%A3%E6%9E%90%E5%87%A0%E4%BD%95/</guid><description>&lt;h1 id="空间解析几何"&gt;空间解析几何&lt;a class="anchor" href="#%e7%a9%ba%e9%97%b4%e8%a7%a3%e6%9e%90%e5%87%a0%e4%bd%95"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="数量积向量积混合积"&gt;数量积、向量积、混合积&lt;a class="anchor" href="#%e6%95%b0%e9%87%8f%e7%a7%af%e5%90%91%e9%87%8f%e7%a7%af%e6%b7%b7%e5%90%88%e7%a7%af"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
数量积：\textbf{a}\cdot\textbf{b}=|\textbf{a}|\cdot|\textbf{b}|\cos\theta
$$
$$
向量积：\textbf{a}\times \textbf{b}=
\left|
\begin{array}{ccc}
\textbf{i}&amp;amp;\textbf{j}&amp;amp;\textbf{k}\\
\\
a_1&amp;amp;a_2&amp;amp;a_3\\
\\
b_1&amp;amp;b_2&amp;amp;b_3
\end{array}
\right|\\
\ \\
|\textbf{a}\times\textbf{b}|=|\textbf{a}|\cdot|\textbf{b}|\cdot\sin(\widehat{\textbf{a},\textbf{b}})\quad （平行四边形面积）
$$
&lt;p&gt;
&lt;/p&gt;
$$
混合积：[abc]=(a\times b)\cdot c=
\left|
\begin{array}{ccc}
a_x&amp;amp;a_y&amp;amp;a_z\\
\\
b_x&amp;amp;b_y&amp;amp;b_z\\
\\
c_x&amp;amp;c_y&amp;amp;c_z
\end{array}
\right|\quad（六面体体积）
$$
&lt;h2 id="垂直平行的向量表示"&gt;垂直、平行的向量表示&lt;a class="anchor" href="#%e5%9e%82%e7%9b%b4%e5%b9%b3%e8%a1%8c%e7%9a%84%e5%90%91%e9%87%8f%e8%a1%a8%e7%a4%ba"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\mathbf{s_1}=(m_1,n_1,p_1),\mathbf{s_2}=(m_2,n_2,p_2)
$$
$$
\mathbf{s_1}\parallel\mathbf{s_2}\Leftrightarrow \mathbf{s_1}\times\mathbf{s_2}=\mathbf{0}\Leftrightarrow \frac{m_1}{m_2}=\frac{n_1}{n_2}=\frac{p_1}{p_2}\\
$$
&lt;p&gt;
&lt;/p&gt;
$$
\mathbf{s_1}\perp\mathbf{s_2}\Leftrightarrow \mathbf{s_1}\cdot\mathbf{s_2}=m_1m_2&amp;#43;n_1n_2&amp;#43;p_1p_2=0
$$
&lt;h2 id="点到直线平面距离"&gt;点到直线、平面距离&lt;a class="anchor" href="#%e7%82%b9%e5%88%b0%e7%9b%b4%e7%ba%bf%e5%b9%b3%e9%9d%a2%e8%b7%9d%e7%a6%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
平面：d_{线}=\frac{|Ax_0&amp;#43;By_0&amp;#43;C|}{\sqrt{A^2&amp;#43;B^2}}\\
空间：d_{线}=\frac{|\textbf{s}\times \overrightarrow{MM_1}|}{|\textbf{s}|}\qquad点M_1(x_1,y_1,z_1)到直线L:\frac{x-x_0}{m}=\frac{y-y_0}{n}=\frac{z-z_0}{p}的距离
$$
&lt;p&gt;
&lt;/p&gt;
$$
d_{面}=\frac{|Ax_0&amp;#43;By_0&amp;#43;Cz_0&amp;#43;D|}{\sqrt{A^2&amp;#43;B^2&amp;#43;C^2}}
$$
&lt;h2 id="直线方程的三种形式"&gt;直线方程的三种形式&lt;a class="anchor" href="#%e7%9b%b4%e7%ba%bf%e6%96%b9%e7%a8%8b%e7%9a%84%e4%b8%89%e7%a7%8d%e5%bd%a2%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
点向式：\frac{x-x_0}{l}=\frac{y-y_0}{m}=\frac{z-z_0}{n}\\
参数式：\left\{
\begin{array}{l}
x=x_0&amp;#43;lt\\
y=y_0&amp;#43;mt\\
z=z_0&amp;#43;nt
\end{array}
\right.\\
两点式：\frac{x-x_1}{x_2-x_1}=\frac{y-y_1}{y_2-y_1}=\frac{z-z_1}{z_2-z_1}
$$
&lt;h2 id="平面方程的三种形式"&gt;平面方程的三种形式&lt;a class="anchor" href="#%e5%b9%b3%e9%9d%a2%e6%96%b9%e7%a8%8b%e7%9a%84%e4%b8%89%e7%a7%8d%e5%bd%a2%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
一般式：Ax&amp;#43;By&amp;#43;Cz&amp;#43;D=0
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>21-多元函数积分学</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/21-%E5%A4%9A%E5%85%83%E5%87%BD%E6%95%B0%E7%A7%AF%E5%88%86%E5%AD%A6/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/21-%E5%A4%9A%E5%85%83%E5%87%BD%E6%95%B0%E7%A7%AF%E5%88%86%E5%AD%A6/</guid><description>&lt;h1 id="多元函数积分学"&gt;多元函数积分学&lt;a class="anchor" href="#%e5%a4%9a%e5%85%83%e5%87%bd%e6%95%b0%e7%a7%af%e5%88%86%e5%ad%a6"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="考情分析"&gt;考情分析&lt;a class="anchor" href="#%e8%80%83%e6%83%85%e5%88%86%e6%9e%90"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;一元定积分、二重积分、三重积分求原函数的难度逐渐递减&lt;/p&gt;
&lt;p&gt;两类曲线积分间、两类曲面积分间的转化灵活使用&lt;/p&gt;
&lt;h2 id="方向余弦"&gt;方向余弦&lt;a class="anchor" href="#%e6%96%b9%e5%90%91%e4%bd%99%e5%bc%a6"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\cos\alpha,\cos\beta,\cos\gamma
$$
$$
三元方程F(x,y,z)=0
$$
&lt;p&gt;
&lt;/p&gt;
$$
\textbf{n}=\frac{(F&amp;#39;_x,F&amp;#39;_y,F&amp;#39;_z)}{\sqrt{(F&amp;#39;_x)^2&amp;#43;(F&amp;#39;_y)^2&amp;#43;(F&amp;#39;_z)^2}}=\ \cos\alpha\ \textbf{i}&amp;#43;\cos\beta\ \textbf{j}&amp;#43;\cos\gamma\ \textbf{k}
$$
&lt;p&gt;
&lt;/p&gt;
$$
\cos\alpha=\frac{F&amp;#39;_x}{\sqrt{(F&amp;#39;_x)^2&amp;#43;(F&amp;#39;_y)^2&amp;#43;(F&amp;#39;_z)^2}}\\
\cos\beta=\frac{F&amp;#39;_y}{\sqrt{(F&amp;#39;_x)^2&amp;#43;(F&amp;#39;_y)^2&amp;#43;(F&amp;#39;_z)^2}}\\
\cos\gamma=\frac{F&amp;#39;_z}{\sqrt{(F&amp;#39;_x)^2&amp;#43;(F&amp;#39;_y)^2&amp;#43;(F&amp;#39;_z)^2}}
$$
$$
注：(F&amp;#39;_x,F&amp;#39;_y,F&amp;#39;_z)的内、外法线方向需另判断处理\\
球面指向为外法线方向
$$
&lt;h2 id="二重积分定义式"&gt;二重积分定义式&lt;a class="anchor" href="#%e4%ba%8c%e9%87%8d%e7%a7%af%e5%88%86%e5%ae%9a%e4%b9%89%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;最多考区间 x,y∈(0,a)&lt;/strong&gt;
&lt;/p&gt;
$$
\quad\lim\limits_{n\to \infty}\sum_{i=1}^{n}\sum_{j=1}^{n}\frac{2}{(\frac{ia}{n})^2&amp;#43;4(\frac{jb}{n})^2&amp;#43;2(\frac{ia}{n}&amp;#43;2\frac{jb}{n})&amp;#43;2}\cdot\frac{ab}{n^2}\\
=\lim\limits_{n\to \infty}\sum_{i=1}^{an}\sum_{j=1}^{bn}\frac{2}{(\frac{i}{n})^2&amp;#43;4(\frac{j}{n})^2&amp;#43;2(\frac{i}{n}&amp;#43;2\frac{j}{n})&amp;#43;2}\cdot\frac{1}{n^2}\\
=\int_0^adx\int_0^b\frac{2}{x^2&amp;#43;4y^2&amp;#43;2x&amp;#43;4y&amp;#43;2}dy
$$
&lt;p&gt;
&lt;strong&gt;变限积分：&lt;/strong&gt;
&lt;/p&gt;
$$
\lim\limits_{n\to \infty}\sum_{i=1}^{n}\sum_{j=1}^{i}f(\frac{i}{n},\frac{j}{n})\cdot\frac{1}{n^2}=\int_0^1 dx\int_0^x f(x,y)dy
$$
&lt;h2 id="极坐标转换"&gt;极坐标转换&lt;a class="anchor" href="#%e6%9e%81%e5%9d%90%e6%a0%87%e8%bd%ac%e6%8d%a2"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\left\{
\begin{array}{l}
x=r\cos\theta\\
y=r\sin\theta\\
d\sigma=rd\theta dr
\end{array}
\right.\qquad \iint\limits_{D}
 f(x, y) \mathrm{d} \sigma= \iint\limits_{D}f(r \cos \theta, r \sin \theta) r d\theta dr
$$
&lt;p&gt;
&lt;/p&gt;
$$
积分区域\left\{\begin{array}{rl}
(x-a)^2&amp;#43;y^2=a^2 &amp;amp;\leftrightarrow \rho=2a\cos \theta\\
(x-a)^2&amp;#43;(y-b)^2=a^2&amp;#43;b^2&amp;amp;\leftrightarrow \rho=2a\cos \theta&amp;#43;2b\sin\theta
\end{array}
\right.
$$
&lt;h2 id="二重积分广义极坐标变换"&gt;二重积分广义极坐标变换&lt;a class="anchor" href="#%e4%ba%8c%e9%87%8d%e7%a7%af%e5%88%86%e5%b9%bf%e4%b9%89%e6%9e%81%e5%9d%90%e6%a0%87%e5%8f%98%e6%8d%a2"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
积分区域D:\frac{x^2}{a^2}&amp;#43;\frac{y^2}{b^2}\leqslant 1\\
令x = a\rho\cos\theta，y = b\rho\sin\theta\\
将区域D：\frac{x^{2}}{a^{2}}&amp;#43;\frac{y^{2}}{b^{2}}\leq1变为D^{\prime}：0\leq \rho\leq1，0\leq\theta\leq2\pi\\
雅可比行列式 J=\frac{\partial(x,y)}{\partial(r,\theta)}=
\begin{vmatrix}
\frac{\partial x}{\partial \rho}&amp;amp;\frac{\partial x}{\partial\theta}\\
\ \\
\frac{\partial y}{\partial \rho}&amp;amp;\frac{\partial y}{\partial\theta}\end{vmatrix}=\begin{vmatrix}a\cos\theta&amp;amp;-a\rho\sin\theta\\b\sin\theta&amp;amp;b\rho\cos\theta
\end{vmatrix}=ab\rho\\
积分公式\iint_{D}y^{2}dxdy=\iint_{D^{\prime}}(b\rho\sin\theta)^{2}\cdot|J|d\rho d\theta=\int_{0}^{2\pi}d\theta\int_{0}^{1}b^{2}\rho^{2}\sin^{2}\theta\cdot ab\rho d\rho=\frac{\pi ab^{3}}{4}
$$
&lt;h2 id="二重积分雅可比换元法"&gt;二重积分雅可比换元法&lt;a class="anchor" href="#%e4%ba%8c%e9%87%8d%e7%a7%af%e5%88%86%e9%9b%85%e5%8f%af%e6%af%94%e6%8d%a2%e5%85%83%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
D=\{(x,y)|x&amp;#43;y\leqslant 1,x\geqslant 0,y\geqslant 0\}, I =\iint \limits_{D} \frac{e^{-(x&amp;#43;y)}}{\sqrt{xy}}dxdy\\
换元u=-(x&amp;#43;y),v=x,则\\
D&amp;#39;=\{(u,v)|-1\leqslant u\leqslant 0, 0\leqslant v\leqslant 1, -1\leqslant u&amp;#43;v\leqslant 0\},\\
I =\iint \limits_{D&amp;#39;}\frac{e^{-u}}{\sqrt{v(-v-u)}}\begin{vmatrix}
\frac{\partial x}{\partial u}&amp;amp;\frac{\partial x}{\partial v}\\
\ \\
\frac{\partial y}{\partial u}&amp;amp;\frac{\partial y}{\partial v}\end{vmatrix}dudv=\iint \limits_{D&amp;#39;}\frac{e^{-u}}{\sqrt{v(-v-u)}}dudv
$$
$$
注：配为x,y对应得换元后积分区域
$$
&lt;h2 id="二重积分平移坐标系"&gt;二重积分平移坐标系&lt;a class="anchor" href="#%e4%ba%8c%e9%87%8d%e7%a7%af%e5%88%86%e5%b9%b3%e7%a7%bb%e5%9d%90%e6%a0%87%e7%b3%bb"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
D=\{(x,y)|(x-1)^2&amp;#43;(y-1)^2\leqslant 1\}, I =\iint f(x,y)dxdy\\
坐标变换：u=x-1,v=y-1,则\\
D&amp;#39;=\{(u,v)|u^2&amp;#43;v^2\leqslant 1\}, I =\iint f(u&amp;#43;1,v&amp;#43;1)dudv
$$
&lt;h2 id="球面坐标转换"&gt;球面坐标转换&lt;a class="anchor" href="#%e7%90%83%e9%9d%a2%e5%9d%90%e6%a0%87%e8%bd%ac%e6%8d%a2"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\left\{
\begin{array}{l}
x=r\sin \varphi\cos\theta\\
y=r\sin \varphi\sin \theta\\
z=r\cos\varphi\\
dv=r^2\sin\varphi d\theta d\varphi dr
\end{array}
\right.\qquad \iiint\limits_{\Omega}f(x,y,z)dv=\iiint\limits_{\Omega}f(r\sin\varphi \cos\theta,r\sin\varphi \sin\theta, r\cos\varphi)r^2\sin\varphi d\theta d\varphi dr\\
\varphi\in(0,\pi)\quad \theta\in (0,2\pi)
$$
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>22-其他</title><link>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/22-%E5%85%B6%E4%BB%96/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/mathematics/advance-math/22-%E5%85%B6%E4%BB%96/</guid><description>&lt;h1 id="横向知识点对比"&gt;横向知识点对比&lt;a class="anchor" href="#%e6%a8%aa%e5%90%91%e7%9f%a5%e8%af%86%e7%82%b9%e5%af%b9%e6%af%94"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;极限、级数、反常积分收敛对比&lt;/strong&gt;&lt;/p&gt;
&lt;!-- **子极限自变量趋向速度不一致** --&gt;
$$
\begin{array}{lll}\lim\limits_{x\to \infty}f(x)&amp;#43;\lim\limits_{x\to \infty}g(x)&amp;amp;&amp;amp; \lim\limits_{x\to \infty}[f(x)&amp;#43;g(x)]&amp;amp;（收&amp;#43;收=收，收&amp;#43;发=发，发&amp;#43;发=不一定）\\
\\
\sum_{n=1}^\infty a_n&amp;#43;\sum_{n=1}^\infty b_n&amp;amp;&amp;amp;\sum_{n=1}^\infty (a_n&amp;#43;b_n)&amp;amp;（收&amp;#43;收=收，收&amp;#43;发=发，发&amp;#43;发=不一定）\\
\\
\lim\limits_{x\to 0^-}\int_{-1}^x\frac{1}{x}dx&amp;#43;\lim\limits_{x\to 0^&amp;#43;}\int_{x}^{1}\frac{1}{x}dx&amp;amp;&amp;amp; \int_{-1}^1\frac{1}{x}dx（规定趋向方式不统一）&amp;amp;（收&amp;#43;收=收，收&amp;#43;发=发，发&amp;#43;发=发）
\end{array}
$$
&lt;h1 id="备用知识点"&gt;备用知识点&lt;a class="anchor" href="#%e5%a4%87%e7%94%a8%e7%9f%a5%e8%af%86%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="特殊题型反证"&gt;特殊题型（反证）&lt;a class="anchor" href="#%e7%89%b9%e6%ae%8a%e9%a2%98%e5%9e%8b%e5%8f%8d%e8%af%81"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\int_0^1 xf(x)dx=\int_0^1f(x)dx,证\int_0^\xi f(t)dt=0
$$
$$
对\int_0^xf(t)dt用零点定理：
$$
&lt;p&gt;
&lt;/p&gt;
$$
设\int_0^xf(t)dt恒正或恒负\\
\int _0^1(x-1)f(x)dx=\int_0^1(x-1)d(\int_0^xf(t)dx)=\\(x-1)\int_0^xf(t)dt\bigg|_0^1-\int_0^1(\int_0^xf(t)dt)dx&amp;lt;0\\
与题不符，故\int_0^xf(t)dt不可能恒正或恒负
$$
&lt;h2 id="变限积分函数周期性证明"&gt;变限积分函数周期性证明&lt;a class="anchor" href="#%e5%8f%98%e9%99%90%e7%a7%af%e5%88%86%e5%87%bd%e6%95%b0%e5%91%a8%e6%9c%9f%e6%80%a7%e8%af%81%e6%98%8e"&gt;#&lt;/a&gt;&lt;/h2&gt;
$$
\int_0^x f(t)dt \ \ \ \ T\Longrightarrow f(x)\ \ \ T \quad 且 \quad \int_0^T f(x)dx=0 
$$
$$
\begin{array}{ll}
\begin{array}{rl}
&amp;amp;\int_0^x f(t)dt \ \ \ \ T\\
\\
\Rightarrow &amp;amp; \int_0^x f(t)dt =\int_0^{x&amp;#43;T} f(t)dt \\
\\
\Rightarrow &amp;amp; \int_x^{x&amp;#43;T} f(t)dt=0\\
\\
即&amp;amp;\ \int_0^Tf(x)dx=0
 \end{array}
&amp;amp;
\begin{array}{rl}
&amp;amp;\int_0^xf(t)dt\\
\\
\xlongequal{t&amp;#43;T=u}&amp;amp;\int_{T}^{T&amp;#43;x}f(u-T)du\\
\\
=&amp;amp; \int_0^{x}f(u-T)du&amp;#43;\int_x^{x&amp;#43;T}f(u-T)du-\int_0^Tf(u-T)du\\
\\
=&amp;amp; \int_0^xf(u-T)du\\
\\即&amp;amp;\ \int_0^xf(t)-f(t-T)dt\equiv 0\\
故&amp;amp;\ f(t)\equiv f(t-T)
\end{array}
\end{array}
$$
&lt;h2 id="特殊反常积分"&gt;特殊反常积分&lt;a class="anchor" href="#%e7%89%b9%e6%ae%8a%e5%8f%8d%e5%b8%b8%e7%a7%af%e5%88%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;狄利克雷积分：
&lt;/p&gt;</description></item><item><title>附录1-PyTorch 完整参考</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/%E9%99%84%E5%BD%951-pytorch%E5%AE%8C%E6%95%B4%E5%8F%82%E8%80%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/pytorch-notes/%E9%99%84%E5%BD%951-pytorch%E5%AE%8C%E6%95%B4%E5%8F%82%E8%80%83/</guid><description>&lt;h1 id="pytorch-完整参考"&gt;PyTorch 完整参考&lt;a class="anchor" href="#pytorch-%e5%ae%8c%e6%95%b4%e5%8f%82%e8%80%83"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;本附录提供 PyTorch 核心 API 速查、优化器与损失函数数学公式、以及官方文档索引，便于快速查阅。&lt;/p&gt;
&lt;h2 id="一torch-核心-api-速查"&gt;一、torch 核心 API 速查&lt;a class="anchor" href="#%e4%b8%80torch-%e6%a0%b8%e5%bf%83-api-%e9%80%9f%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="11-张量创建"&gt;1.1 张量创建&lt;a class="anchor" href="#11-%e5%bc%a0%e9%87%8f%e5%88%9b%e5%bb%ba"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;函数&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.tensor(data)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;从数据创建张量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.zeros(*size)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;全零张量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.ones(*size)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;全一张量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.empty(*size)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;未初始化张量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.rand(*size)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;[0,1) 均匀分布&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.randn(*size)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;标准正态分布&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.arange(start, end, step)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;等差序列&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.linspace(start, end, steps)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;等间距序列&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.eye(n)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;单位矩阵&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.from_numpy(ndarray)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;NumPy 转张量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="12-张量操作"&gt;1.2 张量操作&lt;a class="anchor" href="#12-%e5%bc%a0%e9%87%8f%e6%93%8d%e4%bd%9c"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;函数&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.cat(tensors, dim)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;沿维度拼接&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.stack(tensors, dim)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;堆叠（新增维度）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.split(tensor, split_size, dim)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;分割&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.chunk(tensor, chunks, dim)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;均分&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.gather(input, dim, index)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;按索引 gather&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.scatter(input, dim, index, src)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;按索引 scatter&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.masked_select(input, mask)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;掩码选择&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.where(condition, x, y)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;条件选择&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="13-数学运算"&gt;1.3 数学运算&lt;a class="anchor" href="#13-%e6%95%b0%e5%ad%a6%e8%bf%90%e7%ae%97"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;函数&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.matmul(a, b)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;矩阵乘法&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.mm(a, b)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;2D 矩阵乘法&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.bmm(a, b)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;批量矩阵乘法&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.einsum(equation, *operands)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;爱因斯坦求和&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.svd(A)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;奇异值分解&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.inverse(A)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;矩阵求逆&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.linalg.solve(A, B)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;线性方程组求解&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="14-设备与类型"&gt;1.4 设备与类型&lt;a class="anchor" href="#14-%e8%ae%be%e5%a4%87%e4%b8%8e%e7%b1%bb%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;函数/属性&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tensor.to(device)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;移至设备&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tensor.cuda()&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;移至 GPU&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tensor.cpu()&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;移至 CPU&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tensor.float()&lt;/code&gt; / &lt;code&gt;.double()&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;类型转换&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.cuda.is_available()&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;CUDA 是否可用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;torch.set_default_device(device)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;设置默认设备&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="二优化器算法原理"&gt;二、优化器算法原理&lt;a class="anchor" href="#%e4%ba%8c%e4%bc%98%e5%8c%96%e5%99%a8%e7%ae%97%e6%b3%95%e5%8e%9f%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="21-sgd随机梯度下降"&gt;2.1 SGD（随机梯度下降）&lt;a class="anchor" href="#21-sgd%e9%9a%8f%e6%9c%ba%e6%a2%af%e5%ba%a6%e4%b8%8b%e9%99%8d"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;基础形式&lt;/strong&gt;：
&lt;/p&gt;</description></item><item><title>(Hu)go Template Primer</title><link>https://oballon.github.io/Knowledge-Shore/posts/goisforlovers/</link><pubDate>Wed, 02 Apr 2014 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/posts/goisforlovers/</guid><description>&lt;p&gt;Hugo uses the excellent &lt;a href="https://golang.org/"&gt;Go&lt;/a&gt; &lt;a href="https://golang.org/pkg/html/template/"&gt;html/template&lt;/a&gt; library for
its template engine. It is an extremely lightweight engine that provides a very
small amount of logic. In our experience that it is just the right amount of
logic to be able to create a good static website. If you have used other
template systems from different languages or frameworks you will find a lot of
similarities in Go templates.&lt;/p&gt;
&lt;p&gt;This document is a brief primer on using Go templates. The &lt;a href="https://golang.org/pkg/html/template/"&gt;Go docs&lt;/a&gt;
provide more details.&lt;/p&gt;</description></item><item><title>Getting Started with Hugo</title><link>https://oballon.github.io/Knowledge-Shore/posts/hugoisforlovers/</link><pubDate>Wed, 02 Apr 2014 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/posts/hugoisforlovers/</guid><description>&lt;h2 id="step-1-install-hugo"&gt;Step 1. Install Hugo&lt;a class="anchor" href="#step-1-install-hugo"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Go to &lt;a href="https://github.com/spf13/hugo/releases"&gt;Hugo releases&lt;/a&gt; and download the
appropriate version for your OS and architecture.&lt;/p&gt;
&lt;p&gt;Save it somewhere specific as we will be using it in the next step.&lt;/p&gt;
&lt;p&gt;More complete instructions are available at &lt;a href="https://gohugo.io/getting-started/installing/"&gt;Install Hugo&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="step-2-build-the-docs"&gt;Step 2. Build the Docs&lt;a class="anchor" href="#step-2-build-the-docs"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Hugo has its own example site which happens to also be the documentation site
you are reading right now.&lt;/p&gt;
&lt;p&gt;Follow the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Clone the &lt;a href="http://github.com/spf13/hugo"&gt;Hugo repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Go into the repo&lt;/li&gt;
&lt;li&gt;Run hugo in server mode and build the docs&lt;/li&gt;
&lt;li&gt;Open your browser to http://localhost:1313&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Corresponding pseudo commands:&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/example/collapsed/3rd-level/4th-level/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/example/collapsed/3rd-level/4th-level/</guid><description>&lt;h1 id="4th-level-of-menu"&gt;4th Level of Menu&lt;a class="anchor" href="#4th-level-of-menu"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="caesorum-illa-tu-sentit-micat-vestes-papyriferi"&gt;Caesorum illa tu sentit micat vestes papyriferi&lt;a class="anchor" href="#caesorum-illa-tu-sentit-micat-vestes-papyriferi"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Inde aderam facti; Theseus vis de tauri illa peream. Oculos &lt;strong&gt;uberaque&lt;/strong&gt; non
regisque vobis cursuque, opus venit quam vulnera. Et maiora necemque, lege modo;
gestanda nitidi, vero? Dum ne pectoraque testantur.&lt;/p&gt;
&lt;p&gt;Venasque repulsa Samos qui, exspectatum eram animosque hinc, &lt;a href="http://www.creveratnon.net/apricaaetheriis"&gt;aut
manes&lt;/a&gt;, Assyrii. Cupiens auctoribus
pariter rubet, profana magni super nocens. Vos ius sibilat inpar turba visae
iusto! Sedes ante dum superest &lt;strong&gt;extrema&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/example/hidden/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/example/hidden/</guid><description>&lt;h1 id="this-page-is-hidden-in-menu"&gt;This page is hidden in menu&lt;a class="anchor" href="#this-page-is-hidden-in-menu"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="quondam-non-pater-est-dignior-ille-eurotas"&gt;Quondam non pater est dignior ille Eurotas&lt;a class="anchor" href="#quondam-non-pater-est-dignior-ille-eurotas"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="latent-te-facies"&gt;Latent te facies&lt;a class="anchor" href="#latent-te-facies"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lorem markdownum arma ignoscas vocavit quoque ille texit mandata mentis ultimus,
frementes, qui in vel. Hippotades Peleus &lt;a href="http://gratia.net/tot-qua.php"&gt;pennas
conscia&lt;/a&gt; cuiquam Caeneus quas.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pater demittere evincitque reddunt&lt;/li&gt;
&lt;li&gt;Maxime adhuc pressit huc Danaas quid freta&lt;/li&gt;
&lt;li&gt;Soror ego&lt;/li&gt;
&lt;li&gt;Luctus linguam saxa ultroque prior Tatiumque inquit&lt;/li&gt;
&lt;li&gt;Saepe liquitur subita superata dederat Anius sudor&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cum-honorum-latona"&gt;Cum honorum Latona&lt;a class="anchor" href="#cum-honorum-latona"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;O fallor &lt;a href="http://www.spectataharundine.org/aquas-relinquit.html"&gt;in sustinui
iussorum&lt;/a&gt; equidem.
Nymphae operi oris alii fronde parens dumque, in auro ait mox ingenti proxima
iamdudum maius?&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/buttons/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/buttons/</guid><description>&lt;h1 id="buttons"&gt;Buttons&lt;a class="anchor" href="#buttons"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Buttons are styled links that can lead to local page or external link.&lt;/p&gt;
&lt;h2 id="example"&gt;Example&lt;a class="anchor" href="#example"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-tpl" data-lang="tpl"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="na"&gt;button&lt;/span&gt; &lt;span class="na"&gt;relref&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;...&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;Get Home&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="na"&gt;button&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="na"&gt;button&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;https://github.com/alex-shpak/hugo-book&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;Contribute&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="na"&gt;button&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a class="book-btn"href="https://oballon.github.io/Knowledge-Shore/"&gt;Get Home&lt;/a&gt;
&lt;a class="book-btn"href="https://github.com/alex-shpak/hugo-book"rel="noopener"target="_blank"&gt;Contribute&lt;/a&gt;&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/columns/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/columns/</guid><description>&lt;h1 id="columns"&gt;Columns&lt;a class="anchor" href="#columns"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Columns help organize shorter pieces of content horizontally for readability. &lt;code&gt;columns&lt;/code&gt; shortcode styles markdown list as up to 3 columns.&lt;/p&gt;
&lt;h2 id="example"&gt;Example&lt;a class="anchor" href="#example"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-tpl" data-lang="tpl"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="na"&gt;columns&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="na"&gt;ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;1:1&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;...&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;- ### Left Content
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; Lorem markdownum insigne...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;- ### Mid Content
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; Lorem markdownum insigne...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;- ### Right Content
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; Lorem markdownum insigne...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="na"&gt;columns&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="book-columns"id="book-columns-0"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;h3 id="left-content"&gt;Left Content&lt;a class="anchor" href="#left-content"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Lorem markdownum insigne. Olympo signis Delphis! Retexi Nereius nova develat
stringit, frustra Saturnius uteroque inter! Oculis non ritibus Telethusa
protulit, sed sed aere valvis inhaesuro Pallas animam: qui &lt;em&gt;quid&lt;/em&gt;, ignes.
Miseratus fonte Ditis conubia.&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/details/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/details/</guid><description>&lt;h1 id="details"&gt;Details&lt;a class="anchor" href="#details"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Details shortcode is a helper for &lt;code&gt;details&lt;/code&gt; html5 element. To collapse the details either omit the &lt;code&gt;open&lt;/code&gt;
keyword when using positional arguments or set &lt;code&gt;open=false&lt;/code&gt; when using parameters.&lt;/p&gt;
&lt;h2 id="example-with-positional-arguments"&gt;Example with positional arguments&lt;a class="anchor" href="#example-with-positional-arguments"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-tpl" data-lang="tpl"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="na"&gt;details&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Title&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="na"&gt;open&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;## Markdown content
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;Lorem markdownum insigne...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="na"&gt;details&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;details open="true"&gt;&lt;summary&gt;Title&lt;/summary&gt;&lt;div class="markdown-inner"&gt;
&lt;h2 id="markdown-content"&gt;Markdown content&lt;a class="anchor" href="#markdown-content"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lorem markdownum insigne&amp;hellip;&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/experimental/asciinema/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/experimental/asciinema/</guid><description>&lt;h1 id="asciinema"&gt;Asciinema&lt;a class="anchor" href="#asciinema"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote class='book-hint warning'&gt;
&lt;p&gt;Experimental, could change in the future or be removed&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Asciinema shortcode integrates asciinema player into the markdown page.&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-tpl" data-lang="tpl"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="na"&gt;asciinema&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;cast&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;asciinema-627097.cast&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;or&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;cast&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;https://asciinema.org/a/vJNKUQFjuh7qKI2j3OoaKs8Jk.cast&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;loop&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;autoplay&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;speed&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;link rel="stylesheet" href="https://oballon.github.io/Knowledge-Shore/asciinema/asciinema-player.css" /&gt;&lt;script defer src="https://oballon.github.io/Knowledge-Shore/asciinema/asciinema-player.min.js"&gt;&lt;/script&gt;&lt;script defer src="https://oballon.github.io/Knowledge-Shore/asciinema/asciinema-auto.js"&gt;&lt;/script&gt;&lt;div class="asciinema book-asciinema"id="asciinema-0"x-data-cast="asciinema-627097.cast"x-data-opts="{&amp;#34;autoplay&amp;#34;:true,&amp;#34;loop&amp;#34;:true,&amp;#34;speed&amp;#34;:2}"&gt;&lt;/div&gt;

&lt;h2 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;All parameters added to the shortcode will be transformed to options for Asciinema player, expect &lt;code&gt;cast&lt;/code&gt; parameter that is used to locate cast file. Cast file follows same rules as portable image, it could be site resource, page resource or remote file URL.&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/experimental/badges/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/experimental/badges/</guid><description>&lt;h1 id="badges"&gt;Badges&lt;a class="anchor" href="#badges"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote class='book-hint warning'&gt;
&lt;p&gt;Experimental, could change in the future or be removed&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Badges can be used to annotate your pages with additional information or mark specific places in markdown content.&lt;/p&gt;
&lt;p&gt;&lt;span class="book-badge default"&gt;&lt;span class="book-badge-title"&gt;Title&lt;/span&gt;&lt;span class="book-badge-value"&gt;Value&lt;/span&gt;&lt;/span&gt;
&lt;span class="book-badge info"&gt;&lt;span class="book-badge-title"&gt;Hugo&lt;/span&gt;&lt;span class="book-badge-value"&gt;0.147.6&lt;/span&gt;&lt;/span&gt;
&lt;span class="book-badge success"&gt;&lt;span class="book-badge-title"&gt;Build&lt;/span&gt;&lt;span class="book-badge-value"&gt;Passing&lt;/span&gt;&lt;/span&gt;
&lt;span class="book-badge warning"&gt;&lt;span class="book-badge-title"&gt;Coverage&lt;/span&gt;&lt;span class="book-badge-value"&gt;25%&lt;/span&gt;&lt;/span&gt;
&lt;span class="book-badge danger"&gt;&lt;span class="book-badge-title"&gt;Issues&lt;/span&gt;&lt;span class="book-badge-value"&gt;120&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Shortcode&lt;/th&gt;
 &lt;th&gt;Output&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;{{&amp;lt; badge style=&amp;quot;info&amp;quot; title=&amp;quot;hugo&amp;quot; value=&amp;quot;0.147.6&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="book-badge info"&gt;&lt;span class="book-badge-title"&gt;Hugo&lt;/span&gt;&lt;span class="book-badge-value"&gt;0.147.6&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;{{&amp;lt; badge style=&amp;quot;success&amp;quot; title=&amp;quot;Build&amp;quot; value=&amp;quot;Passing&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="book-badge success"&gt;&lt;span class="book-badge-title"&gt;Build&lt;/span&gt;&lt;span class="book-badge-value"&gt;Passing&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;{{&amp;lt; badge style=&amp;quot;warning&amp;quot; title=&amp;quot;Coverage&amp;quot; value=&amp;quot;25%&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="book-badge warning"&gt;&lt;span class="book-badge-title"&gt;Coverage&lt;/span&gt;&lt;span class="book-badge-value"&gt;25%&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;{{&amp;lt; badge style=&amp;quot;danger&amp;quot; title=&amp;quot;Issues&amp;quot; value=&amp;quot;120&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="book-badge danger"&gt;&lt;span class="book-badge-title"&gt;Issues&lt;/span&gt;&lt;span class="book-badge-value"&gt;120&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;{{&amp;lt; badge style=&amp;quot;info&amp;quot; title=&amp;quot;Title&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="book-badge info"&gt;&lt;span class="book-badge-title"&gt;Title&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;{{&amp;lt; badge style=&amp;quot;info&amp;quot; value=&amp;quot;Value&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="book-badge info"&gt;&lt;span class="book-badge-value"&gt;Value&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;{{&amp;lt; badge title=&amp;quot;Default&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="book-badge default"&gt;&lt;span class="book-badge-value"&gt;Default&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="use-in-links"&gt;Use in links&lt;a class="anchor" href="#use-in-links"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A badge can be wrapped in markdown link producing following result: &lt;a href="https://github.com/gohugoio/hugo/releases/tag/v0.147.6"&gt;&lt;span class="book-badge default"&gt;&lt;span class="book-badge-title"&gt;Hugo&lt;/span&gt;&lt;span class="book-badge-value"&gt;0.147.6&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/experimental/cards/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/experimental/cards/</guid><description>&lt;h1 id="cards"&gt;Cards&lt;a class="anchor" href="#cards"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote class='book-hint warning'&gt;
&lt;p&gt;Experimental, could change in the future or be removed&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id="example"&gt;Example&lt;a class="anchor" href="#example"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="book-columns"id="book-columns-0"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="book-card"&gt;&lt;img src="placeholder.svg" alt="" /&gt;&lt;div class="markdown-inner"&gt;
&lt;h3 id="line-1"&gt;Line 1&lt;a class="anchor" href="#line-1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Line 2&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="book-card"&gt;&lt;img src="placeholder.svg" alt="" /&gt;&lt;div class="markdown-inner"&gt;
&lt;p&gt;This is tab MacOS content.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="book-columns"id="book-columns-1"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="book-card"&gt;&lt;a href="https://oballon.github.io/Knowledge-Shore/docs/shortcodes/experimental/cards"&gt;&lt;div class="markdown-inner"&gt;
&lt;p&gt;&lt;strong&gt;Markdown&lt;/strong&gt;&lt;br&gt;
Suspendisse sed congue orci, eu congue metus. Nullam feugiat urna massa.&lt;/p&gt;
&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="book-card"&gt;&lt;div class="markdown-inner"&gt;
&lt;p&gt;Suspendisse sed congue orci, eu congue metus. Nullam feugiat urna massa, et fringilla metus consectetur molestie.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="book-card"&gt;&lt;div class="markdown-inner"&gt;
&lt;h3 id="heading"&gt;Heading&lt;a class="anchor" href="#heading"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This is tab MacOS content.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/experimental/images/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/experimental/images/</guid><description>&lt;h1 id="images"&gt;Images&lt;a class="anchor" href="#images"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote class='book-hint warning'&gt;
&lt;p&gt;Experimental, could change in the future or be removed&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Image shortcode produces an image that can be clicked to expand.&lt;/p&gt;
&lt;h2 id="example"&gt;Example&lt;a class="anchor" href="#example"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go-html-template" data-lang="go-html-template"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;image&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;placeholder.svg&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;alt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;A placeholder&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;A placeholder&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;loading&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;lazy&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;label class="book-image" for="book-image-toggle-0"&gt;
 &lt;input class="hidden toggle" type="checkbox" id="book-image-toggle-0" /&gt;
 &lt;img src="placeholder.svg" alt="A placeholder"loading="lazy"title="A placeholder" /&gt;
&lt;/label&gt;
&lt;h2 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;src&lt;/code&gt; &lt;span class="book-badge warning"&gt;&lt;span class="book-badge-title"&gt;Required&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;The link to the image&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;class&lt;/code&gt; &lt;span class="book-badge info"&gt;&lt;span class="book-badge-title"&gt;Optional&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;An optional CSS class name that will be applied to the &lt;code&gt;img&lt;/code&gt; element&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;alt&lt;/code&gt; &lt;span class="book-badge info"&gt;&lt;span class="book-badge-title"&gt;Optional&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;An optional alternate text for the image&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;title&lt;/code&gt; &lt;span class="book-badge info"&gt;&lt;span class="book-badge-title"&gt;Optional&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;An optional title for the image&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;loading&lt;/code&gt; &lt;span class="book-badge info"&gt;&lt;span class="book-badge-title"&gt;Optional&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;Sets &lt;code&gt;loading&lt;/code&gt; control for the image: &lt;code&gt;lazy&lt;/code&gt;, &lt;code&gt;eager&lt;/code&gt; or &lt;code&gt;auto&lt;/code&gt;&lt;/dd&gt;
&lt;/dl&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/hints/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/hints/</guid><description>&lt;h1 id="hints"&gt;Hints&lt;a class="anchor" href="#hints"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Hint shortcode can be used as a hint/alert/notification block.&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-tpl" data-lang="tpl"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="na"&gt;hint&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="na"&gt;info&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="na"&gt;success&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="na"&gt;warning&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="na"&gt;danger&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;**Markdown content** 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;Lorem markdownum insigne. Olympo signis Delphis! Retexi Nereius nova develat
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;stringit, frustra Saturnius uteroque inter! Oculis non ritibus Telethusa
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="na"&gt;hint&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&amp;gt; [!NOTE|TIP|IMPORTANT|WARNING|CAUTION]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&amp;gt; **Markdown content** 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&amp;gt; Lorem markdownum insigne. Olympo signis Delphis! Retexi Nereius nova develat
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&amp;gt; stringit, frustra Saturnius uteroque inter! Oculis non ritibus Telethusa&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="example"&gt;Example&lt;a class="anchor" href="#example"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote class="book-hint default"&gt;
&lt;p&gt;&lt;strong&gt;Markdown content&lt;/strong&gt;&lt;br&gt;
Lorem markdownum insigne. Olympo signis Delphis! Retexi Nereius nova develat
stringit, frustra Saturnius uteroque inter! Oculis non ritibus Telethusa&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/mermaid/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/mermaid/</guid><description>&lt;h1 id="mermaid-chart"&gt;Mermaid Chart&lt;a class="anchor" href="#mermaid-chart"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://mermaid-js.github.io/"&gt;MermaidJS&lt;/a&gt; is library for generating svg charts and diagrams from text.&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;
&lt;p&gt;&lt;strong&gt;Override Mermaid initialization config&lt;/strong&gt;&lt;br&gt;
To override the &lt;a href="https://mermaid-js.github.io/mermaid/#/Setup"&gt;initialization config&lt;/a&gt; for Mermaid,
create a &lt;code&gt;mermaid.json&lt;/code&gt; file in your &lt;code&gt;assets&lt;/code&gt; folder!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="example"&gt;Example&lt;a class="anchor" href="#example"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="book-columns"id="book-columns-1"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-tpl" data-lang="tpl"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;```mermaid
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;stateDiagram-v2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; State1: The state with a note
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; note right of State1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; Important information! You can write
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; notes.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; end note
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; State1 --&amp;gt; State2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; note left of State2 : This is the note to the left.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;```&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;pre class="mermaid"&gt;stateDiagram-v2
 State1: The state with a note
 note right of State1
 Important information! You can write
 notes.
 end note
 State1 --&amp;gt; State2
 note left of State2 : This is the note to the left.&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="book-columns"id="book-columns-2"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-tpl" data-lang="tpl"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="na"&gt;mermaid&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;...&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;stateDiagram-v2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; State1: The state with a note
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; note right of State1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; Important information! You can write
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; notes.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; end note
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; State1 --&amp;gt; State2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; note left of State2 : This is the note to the left.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="na"&gt;mermaid&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;pre class="mermaid"&gt;
stateDiagram-v2
 State1: The state with a note
 note right of State1
 Important information! You can write
 notes.
 end note
 State1 --&amp;gt; State2
 note left of State2 : This is the note to the left.
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="diagrams"&gt;Diagrams&lt;a class="anchor" href="#diagrams"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Explore more diagrams and syntax on Mermaid &lt;a href="https://mermaid.js.org/syntax/flowchart.html"&gt;documentation page&lt;/a&gt;.&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/section/first-page/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/section/first-page/</guid><description>&lt;h1 id="first-page"&gt;First page&lt;a class="anchor" href="#first-page"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/section/second-page/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/section/second-page/</guid><description>&lt;h1 id="second-page"&gt;Second Page&lt;a class="anchor" href="#second-page"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/steps/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/steps/</guid><description>&lt;h1 id="steps"&gt;Steps&lt;a class="anchor" href="#steps"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Steps shortcode styles numbered list as series of points for better content organization.&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-tpl" data-lang="tpl"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="na"&gt;steps&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;1. ## Suspendisse sed congue orci.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;2. ## Maecenas scelerisque sem.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;3. ## Etiam risus purus.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;4. ## Curabitur sed lacinia velit.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="na"&gt;steps&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="example"&gt;Example&lt;a class="anchor" href="#example"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="book-steps"&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;h2 id="suspendisse-sed-congue-orci"&gt;Suspendisse sed congue orci.&lt;a class="anchor" href="#suspendisse-sed-congue-orci"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Suspendisse sed congue orci, eu congue metus. Nullam feugiat urna massa, et fringilla metus consectetur molestie. Curabitur pellentesque sodales ipsum, sed efficitur libero euismod ac. Donec sit amet erat nunc. Suspendisse porta nisl velit, quis auctor massa commodo nec. Donec sollicitudin tellus sit amet massa condimentum luctus. Etiam molestie at ante et convallis.&lt;/p&gt;</description></item><item><title/><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/tabs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/tabs/</guid><description>&lt;h1 id="tabs"&gt;Tabs&lt;a class="anchor" href="#tabs"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Tabs let you organize content by context, for example installation instructions for each supported platform.&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-tpl" data-lang="tpl"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="na"&gt;tabs&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="na"&gt;tab&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;MacOS&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt; # MacOS Content &lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="na"&gt;tab&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="na"&gt;tab&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Linux&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt; # Linux Content &lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="na"&gt;tab&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="na"&gt;tab&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Windows&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt; # Windows Content &lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="na"&gt;tab&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="x"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="x"&gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="na"&gt;tabs&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="example"&gt;Example&lt;a class="anchor" href="#example"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="book-tabs"&gt;

&lt;input type="radio" class="toggle" name="tabs-0" id="tabs-0-0" checked="checked" /&gt;&lt;label for="tabs-0-0"&gt;MacOS&lt;/label&gt;&lt;div class="book-tabs-content markdown-inner"&gt;
&lt;h1 id="macos"&gt;MacOS&lt;a class="anchor" href="#macos"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;This is tab &lt;strong&gt;MacOS&lt;/strong&gt; content.&lt;/p&gt;</description></item><item><title>1-常用</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/algorithm/1-%E5%B8%B8%E7%94%A8/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/algorithm/1-%E5%B8%B8%E7%94%A8/</guid><description>&lt;h2 id="常见递归"&gt;常见递归&lt;a class="anchor" href="#%e5%b8%b8%e8%a7%81%e9%80%92%e5%bd%92"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;&amp;#34;阶乘&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;factorial&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nf"&gt;factorial&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;斐波那契数列&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;fibonaci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;fibonaci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nf"&gt;fibonaci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>1-数据类型</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/c-notes/1-%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/c-notes/1-%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/</guid><description>&lt;h2 id="结构体"&gt;结构体&lt;a class="anchor" href="#%e7%bb%93%e6%9e%84%e4%bd%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;基本语法&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Books&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="n"&gt;book1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;value1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;value2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;value3&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="n"&gt;book1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;book1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;book1：原地新建的实例（也可后续新建），可以有多个, 也可原地初始化&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;Books：结构体的名称，可以是任意的标识符&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;若Books省略，必须有原地实例book1&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="访问成员方式"&gt;访问成员方式&lt;a class="anchor" href="#%e8%ae%bf%e9%97%ae%e6%88%90%e5%91%98%e6%96%b9%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;变量访问：book.data，传参printbook(book1)，定义void printbook(struct Books book)
指针访问：book-&amp;gt;data，传参printbook(&amp;amp;book1)，定义void printbook(struct Books* book)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="typedef"&gt;typedef&lt;a class="anchor" href="#typedef"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;typedef&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;INT&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;INT&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;typedef&lt;/span&gt; &lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;tag_name&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;author&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;price&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;Book&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Book&lt;/span&gt; &lt;span class="n"&gt;book1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;C 程序设计&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Runoob&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;Book：typedef后的新类型名，可以用来定义变量&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;tag_name可省略&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="共用体"&gt;共用体&lt;a class="anchor" href="#%e5%85%b1%e7%94%a8%e4%bd%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;共用体所有成员共享同一段内存空间，其大小等于最大成员大小，任意时刻，共用体只能存放其中一个成员的值&lt;/p&gt;</description></item><item><title>1-线性表</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/data-structure/1-%E7%BA%BF%E6%80%A7%E8%A1%A8/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/data-structure/1-%E7%BA%BF%E6%80%A7%E8%A1%A8/</guid><description>&lt;h2 id="线性表定义"&gt;线性表定义&lt;a class="anchor" href="#%e7%ba%bf%e6%80%a7%e8%a1%a8%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;线性表是具有相同数据类型的n（n\geqslant 0）个数据元素的有限序列&lt;/p&gt;
&lt;p&gt;核心特点：个数有限、有先后次序、为数据元素、类型相同、抽象数据元素&lt;/p&gt;
&lt;p&gt;包含：顺序表、链表&lt;/p&gt;
&lt;h2 id="顺序表"&gt;顺序表&lt;a class="anchor" href="#%e9%a1%ba%e5%ba%8f%e8%a1%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;定义：用一组地址连续的存储单元依次存储线性表中的数据元素，使得逻辑上相邻的两个元素在物理位置上也相邻&lt;/p&gt;
&lt;p&gt;优点：插入和删除操作简单、随机访问操作快、占用内存小&lt;/p&gt;
&lt;p&gt;缺点：插入和删除操作耗时、需要连续存储空间不灵活&lt;/p&gt;
&lt;h3 id="静态存储与动态存储"&gt;静态存储与动态存储&lt;a class="anchor" href="#%e9%9d%99%e6%80%81%e5%ad%98%e5%82%a8%e4%b8%8e%e5%8a%a8%e6%80%81%e5%ad%98%e5%82%a8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;静态分配：表大小固定&lt;/p&gt;
&lt;p&gt;动态分配：表大小可变，另寻存储空间并拷贝原数据&lt;/p&gt;
&lt;p&gt;（若定义新指针，&lt;code&gt;realloc&lt;/code&gt;会自动处理数据复制）&lt;/p&gt;
&lt;h3 id="顺序表动态存储典例"&gt;顺序表动态存储典例&lt;a class="anchor" href="#%e9%a1%ba%e5%ba%8f%e8%a1%a8%e5%8a%a8%e6%80%81%e5%ad%98%e5%82%a8%e5%85%b8%e4%be%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;动态数组列表&amp;#34;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;typedef&lt;/span&gt; &lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 数组指针
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 当前元素数量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;capacity&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 总容量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;DynamicArray&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;DynamicArray&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nf"&gt;createArray&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;initialCapacity&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;DynamicArray&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DynamicArray&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nf"&gt;malloc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DynamicArray&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nf"&gt;malloc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;initialCapacity&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;capacity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;initialCapacity&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DynamicArray&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;capacity&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// 扩展容量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;capacity&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nf"&gt;realloc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;capacity&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 满时下标为size-1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;malloc(sizeof(type))：分配内存，内容随机，保证函数结束后内存不回收，数据可继续使用&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;calloc(n,sizeof(type))：分配并初始化为0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;realloc(data,sizeof(type)*n)：调整已分配内存块的大小并拷贝原数据,返回新数据的指针&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;free(ptr)：传入malloc/calloc/realloc返回的地址,释放对应地址内存（不手动释放可能导致内存泄漏）&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="链表"&gt;链表&lt;a class="anchor" href="#%e9%93%be%e8%a1%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;线性表的链式表示：通过“链”建立元素之间的逻辑关系，不要求逻辑相邻的元素物理位置也相邻&lt;/p&gt;</description></item><item><title>2-排序算法</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/algorithm/2-%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/algorithm/2-%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/</guid><description/></item><item><title>2-语法token</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/c-notes/2-%E8%AF%AD%E6%B3%95token/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/c-notes/2-%E8%AF%AD%E6%B3%95token/</guid><description>&lt;h2 id="运算符"&gt;运算符&lt;a class="anchor" href="#%e8%bf%90%e7%ae%97%e7%ac%a6"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;算数运算符： + - * / %（取余数） ++ --（前缀/后缀）

比较运算符： == != &amp;gt; &amp;lt; &amp;gt;= &amp;lt;=

逻辑运算符： &amp;amp;&amp;amp; || ！

位运算符： &amp;amp; | ~ ^ &amp;lt;&amp;lt; &amp;gt;&amp;gt; （位 与、或、非、异或、左移、右移）

赋值运算符： = += -= *= /= %= &amp;amp;= |= ^= &amp;lt;&amp;lt;= &amp;gt;&amp;gt;= 

其他运算符： &amp;amp; *（指针） []（数组下标） ()（函数调用/强制类型转换） 
sizeof ?: （条件运算符） -&amp;gt; .（结构体成员访问）

&amp;#34;变量&amp;lt;&amp;lt;=移动位数&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="关键字"&gt;关键字&lt;a class="anchor" href="#%e5%85%b3%e9%94%ae%e5%ad%97"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;变量类型：int float double char signed unsigned short long const enum union struct extern static register volatile（复杂）

控制流： return while do for continue if else switch case default break goto(不建议)

其他： void sizeof typedef auto（多余）

continue: 继续下次循环
break: 终止循环；或跳出switch，若无，继续判断后续case
default: switch中轮到时默认执行

C中auto不被显式使用，但C++中用于让编译器决定变量类型&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="其他"&gt;其他&lt;a class="anchor" href="#%e5%85%b6%e4%bb%96"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="强制类型转换"&gt;强制类型转换&lt;a class="anchor" href="#%e5%bc%ba%e5%88%b6%e7%b1%bb%e5%9e%8b%e8%bd%ac%e6%8d%a2"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;float a:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="注释"&gt;注释&lt;a class="anchor" href="#%e6%b3%a8%e9%87%8a"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;//单行注释
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 单行注释 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;多行注释
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="分隔符"&gt;分隔符&lt;a class="anchor" href="#%e5%88%86%e9%9a%94%e7%ac%a6"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="字符常量"&gt;字符常量&lt;a class="anchor" href="#%e5%ad%97%e7%ac%a6%e5%b8%b8%e9%87%8f"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;\\: \字符
\&amp;#39;: &amp;#39;字符
\&amp;#34;: &amp;#34;字符
\?: ?字符
\a: 警报铃声
\b: 退格键
\f: 换页符
\n: 换行符
\r: 回车
\t: 水平制表符
\v: 垂直制表符
\ooo: 一到三位的八进制数（如\101表示字符&amp;#39;A&amp;#39;）
\xhh...: 一个或多个数字的十六进制数（如\x41也表示&amp;#39;A&amp;#39;）&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="指针"&gt;指针&lt;a class="anchor" href="#%e6%8c%87%e9%92%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="指针含义"&gt;指针含义&lt;a class="anchor" href="#%e6%8c%87%e9%92%88%e5%90%ab%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 指针p存放地址，*p访问对应地址的数据
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="n"&gt;pp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 双指针 pp 存放指针 p 的地址，*pp访问 p 存放的地址，**pp访问value的值
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;双指针严格按照上述规范定义&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;取地址规范&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="c1"&gt;// 普通变量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt; &lt;span class="c1"&gt;// 一个数组元素
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 数组名
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;p1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// p存取p1的内容
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;malloc&lt;/span&gt;&lt;span class="p"&gt;(...);&lt;/span&gt; &lt;span class="c1"&gt;// 函数返回的地址
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;abc&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="指针加减"&gt;指针加减&lt;a class="anchor" href="#%e6%8c%87%e9%92%88%e5%8a%a0%e5%87%8f"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;ptr1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ptr1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ptr1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//指针向后移动2个数据类型大小地址
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="n"&gt;ptr1&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ptr1&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ptr1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;ptr2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dif&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ptr2&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;ptr1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 同一数组或同一块内存区域，两指针相隔元素个数 dif=4
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="指针数组"&gt;指针数组&lt;a class="anchor" href="#%e6%8c%87%e9%92%88%e6%95%b0%e7%bb%84"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;num1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;num2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;num3&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;ptrArray&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;num1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;num2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;num3&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt; &lt;span class="c1"&gt;// *ptrArray[0]=1, ptrArray[0]= -1896874448内存地址
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;指针数组仅可存储地址（新标准）&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="回调函数"&gt;回调函数&lt;a class="anchor" href="#%e5%9b%9e%e8%b0%83%e5%87%bd%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;定义：通过函数指针调用函数，利用一个函数的指针作为参数传递给另一个函数&lt;/p&gt;</description></item><item><title>2-栈和队列</title><link>https://oballon.github.io/Knowledge-Shore/docs/computer-science/data-structure/2-%E6%A0%88%E5%92%8C%E9%98%9F%E5%88%97/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/computer-science/data-structure/2-%E6%A0%88%E5%92%8C%E9%98%9F%E5%88%97/</guid><description>&lt;h2 id="栈"&gt;栈&lt;a class="anchor" href="#%e6%a0%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;定义：栈是限定仅在表位进行插入或删除操作的线性表，遵循&amp;quot;后进先出&amp;quot;原则&lt;/p&gt;
&lt;p&gt;注：栈是计算机科学的基石之一，其&amp;quot;后进先出&amp;quot;的特性完美匹配了许多场景&lt;/p&gt;
&lt;h3 id="实现方式"&gt;实现方式&lt;a class="anchor" href="#%e5%ae%9e%e7%8e%b0%e6%96%b9%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;基于数组：使用一个固定大小或动态扩容的数组，并用一个变量（通常叫 top或 size）来跟踪栈顶的位置&lt;/p&gt;
&lt;p&gt;基于链表：使用一个链表，通常将链表的头部作为栈顶（&lt;code&gt;push&lt;/code&gt;相当于在链表头部插入新节点，&lt;code&gt;pop&lt;/code&gt;相当于删除头部节点）&lt;/p&gt;
&lt;h3 id="核心操作"&gt;核心操作&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e6%93%8d%e4%bd%9c"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Push&lt;/code&gt;（入栈/压栈）&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Pop&lt;/code&gt;（出栈/弹栈）&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Peek/Top&lt;/code&gt;（查看栈顶元素）&lt;/p&gt;
&lt;p&gt;&lt;code&gt;isEmpty&lt;/code&gt;（判空）&lt;/p&gt;
&lt;p&gt;&lt;code&gt;isFull&lt;/code&gt;（判满）&lt;/p&gt;</description></item><item><title>3-重要用法</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/c-notes/3-%E9%87%8D%E8%A6%81%E7%94%A8%E6%B3%95/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/c-notes/3-%E9%87%8D%E8%A6%81%E7%94%A8%E6%B3%95/</guid><description>&lt;h2 id="可变函数参数"&gt;可变函数参数&lt;a class="anchor" href="#%e5%8f%af%e5%8f%98%e5%87%bd%e6%95%b0%e5%8f%82%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;参数数量可变&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;double&lt;/span&gt; &lt;span class="nf"&gt;average&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,...)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c1"&gt;// 固定参数count传入必要信息 + 可变参数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="n"&gt;va_list&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// va_list 为特殊类型
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="nf"&gt;va_start&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 初始化va_list变量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="kt"&gt;double&lt;/span&gt; &lt;span class="n"&gt;sum&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;sum&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nf"&gt;va_arg&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 获取下一个参数，并移动指针到下一位
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;va_end&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 清理va_list列表，必须与va_start配对使用
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;sum&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;标准库&amp;lt;stdarg.h&amp;gt;核心内容：类型va_list, 宏va_start va_arg va_end va_copy&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="命令行参数"&gt;命令行参数&lt;a class="anchor" href="#%e5%91%bd%e4%bb%a4%e8%a1%8c%e5%8f%82%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;argc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[]){};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;argc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;){};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;命令行传参数不是函数传参，传入：程序名 + args&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;main内部自动得到argc = args数 + 1（即命令行所有输入字符串单元包括程序名的数量）&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;&amp;#34;argv[0]=程序名，argv[1]... 引号包围表示一个字符串单元 &amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>CSS快速参考</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/html5-+-css/%E9%99%84%E5%BD%952-css%E5%BF%AB%E9%80%9F%E5%8F%82%E8%80%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/html5-+-css/%E9%99%84%E5%BD%952-css%E5%BF%AB%E9%80%9F%E5%8F%82%E8%80%83/</guid><description>&lt;h1 id="css-快速参考"&gt;CSS 快速参考&lt;a class="anchor" href="#css-%e5%bf%ab%e9%80%9f%e5%8f%82%e8%80%83"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;CSS选择器及属性极其庞杂，具体使用具体查询，无法快速吸收&lt;/p&gt;
&lt;h2 id="-目录"&gt;📖 目录&lt;a class="anchor" href="#-%e7%9b%ae%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#css-%e5%9f%ba%e7%a1%80"&gt;CSS 基础&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e9%80%89%e6%8b%a9%e5%99%a8"&gt;选择器&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%b8%b8%e7%94%a8%e5%b1%9e%e6%80%a7"&gt;常用属性&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%b8%83%e5%b1%80"&gt;布局&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%93%8d%e5%ba%94%e5%bc%8f%e8%ae%be%e8%ae%a1"&gt;响应式设计&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%8a%a8%e7%94%bb%e4%b8%8e%e8%bf%87%e6%b8%a1"&gt;动画与过渡&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%ae%9e%e7%94%a8%e6%8a%80%e5%b7%a7"&gt;实用技巧&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="css-基础"&gt;CSS 基础&lt;a class="anchor" href="#css-%e5%9f%ba%e7%a1%80"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;CSS（层叠样式表）用于描述HTML元素的显示方式，控制网页的外观和布局。CSS通过选择器选择元素，然后应用样式属性来改变元素的外观。&lt;/p&gt;
&lt;h3 id="引入方式"&gt;引入方式&lt;a class="anchor" href="#%e5%bc%95%e5%85%a5%e6%96%b9%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;CSS可以通过多种方式引入到HTML文档中，每种方式都有其特点和适用场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;内联样式&lt;/strong&gt;：直接在HTML元素的&lt;code&gt;style&lt;/code&gt;属性中编写CSS，优先级最高，但不利于维护和复用，仅适用于临时样式或特定场景。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内部样式表&lt;/strong&gt;：在HTML文档的&lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt;标签中编写CSS，适合单页面样式，但无法在多个页面间复用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;外部样式表&lt;/strong&gt;（推荐）：将CSS代码保存在独立的&lt;code&gt;.css&lt;/code&gt;文件中，通过&lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt;标签引入，便于维护、复用和缓存，是生产环境的最佳实践。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;@import导入&lt;/strong&gt;：在CSS文件内部使用&lt;code&gt;@import&lt;/code&gt;导入其他CSS文件，但会影响页面加载性能，不推荐使用。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;/* 1. 内联样式 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;color: red;&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;文本&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;/* 2. 内部样式表 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;/* 3. 外部样式表（推荐） */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;link&lt;/span&gt; &lt;span class="nt"&gt;rel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;stylesheet&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;style.css&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;/* 4. 导入 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nt"&gt;url&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;style.css&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="语法结构"&gt;语法结构&lt;a class="anchor" href="#%e8%af%ad%e6%b3%95%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;CSS的基本语法由三部分组成：&lt;/p&gt;</description></item><item><title>KaTeX</title><link>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/katex/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/archive/shortcodes/katex/</guid><description>&lt;h1 id="katex"&gt;KaTeX&lt;a class="anchor" href="#katex"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;KaTeX shortcode let you render math typesetting in markdown document. See &lt;a href="https://katex.org/"&gt;KaTeX&lt;/a&gt;&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;
&lt;p&gt;&lt;strong&gt;Override KaTeX initialization config&lt;/strong&gt;&lt;br&gt;
To override the &lt;a href="https://katex.org/docs/options.html"&gt;initialization config&lt;/a&gt; for KaTeX,
create a &lt;code&gt;katex.json&lt;/code&gt; file in your &lt;code&gt;assets&lt;/code&gt; folder!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="example"&gt;Example&lt;a class="anchor" href="#example"&gt;#&lt;/a&gt;&lt;/h1&gt;

&lt;h2 id="activation"&gt;Activation&lt;a class="anchor" href="#activation"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;KaTeX is activated on the page by first use of the shortcode or render block. you can force activation with empty &lt;code&gt;{{&amp;lt; katex /&amp;gt;}}&lt;/code&gt; and use delimiters defined in configuration in &lt;code&gt;assets/katex.json&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="rendering-as-block"&gt;Rendering as block&lt;a class="anchor" href="#rendering-as-block"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="book-columns flex flex-wrap"id="book-columns-2"&gt;&lt;div class="flex-even markdown-inner" style="flex-grow: 1;"&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-latex" data-lang="latex"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;{{&lt;/span&gt;&amp;lt; katex display=true &amp;gt;&lt;span class="nb"&gt;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;f(x) = &lt;span class="k"&gt;\int&lt;/span&gt;&lt;span class="nb"&gt;_{&lt;/span&gt;-&lt;span class="k"&gt;\infty&lt;/span&gt;&lt;span class="nb"&gt;}^&lt;/span&gt;&lt;span class="k"&gt;\infty\hat&lt;/span&gt; f(&lt;span class="k"&gt;\xi&lt;/span&gt;)&lt;span class="k"&gt;\,&lt;/span&gt;e&lt;span class="nb"&gt;^{&lt;/span&gt;2 &lt;span class="k"&gt;\pi&lt;/span&gt; i &lt;span class="k"&gt;\xi&lt;/span&gt; x&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="k"&gt;\,&lt;/span&gt;d&lt;span class="k"&gt;\xi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;{{&lt;/span&gt;&amp;lt; /katex &amp;gt;&lt;span class="nb"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-latex" data-lang="latex"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;```katex
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;f(x) = &lt;span class="k"&gt;\int&lt;/span&gt;&lt;span class="nb"&gt;_{&lt;/span&gt;-&lt;span class="k"&gt;\infty&lt;/span&gt;&lt;span class="nb"&gt;}^&lt;/span&gt;&lt;span class="k"&gt;\infty\hat&lt;/span&gt; f(&lt;span class="k"&gt;\xi&lt;/span&gt;)&lt;span class="k"&gt;\,&lt;/span&gt;e&lt;span class="nb"&gt;^{&lt;/span&gt;2 &lt;span class="k"&gt;\pi&lt;/span&gt; i &lt;span class="k"&gt;\xi&lt;/span&gt; x&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="k"&gt;\,&lt;/span&gt;d&lt;span class="k"&gt;\xi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;```&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-latex" data-lang="latex"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;$$&lt;/span&gt;&lt;span class="nb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;f&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;x&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\int&lt;/span&gt;&lt;span class="nb"&gt;_{&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;\infty&lt;/span&gt;&lt;span class="nb"&gt;}^&lt;/span&gt;&lt;span class="nv"&gt;\infty\hat&lt;/span&gt;&lt;span class="nb"&gt; f&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;\xi&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nv"&gt;\,&lt;/span&gt;&lt;span class="nb"&gt;e^{&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\pi&lt;/span&gt;&lt;span class="nb"&gt; i &lt;/span&gt;&lt;span class="nv"&gt;\xi&lt;/span&gt;&lt;span class="nb"&gt; x}&lt;/span&gt;&lt;span class="nv"&gt;\,&lt;/span&gt;&lt;span class="nb"&gt;d&lt;/span&gt;&lt;span class="nv"&gt;\xi&lt;/span&gt;&lt;span class="nb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;&lt;/span&gt;&lt;span class="s"&gt;$$&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="flex-even markdown-inner" style="flex-grow: 1;"&gt;
&lt;div class="book-katex"&gt;\[ 
f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi
 \]&lt;/div&gt;
&lt;hr&gt;
&lt;span&gt;\[ f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi \]&lt;/span&gt;&lt;hr&gt;
$$

f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi

$$
&lt;/div&gt;&lt;/div&gt;
&lt;h2 id="rendering-inline"&gt;Rendering inline&lt;a class="anchor" href="#rendering-inline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When KaTeX is active on the page it is possible to write inline expressions.&lt;/p&gt;</description></item><item><title>SCSS语法参考</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/html5-+-css/%E9%99%84%E5%BD%953-scss%E8%AF%AD%E6%B3%95%E5%8F%82%E8%80%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/html5-+-css/%E9%99%84%E5%BD%953-scss%E8%AF%AD%E6%B3%95%E5%8F%82%E8%80%83/</guid><description>&lt;h1 id="scss-语法参考"&gt;SCSS 语法参考&lt;a class="anchor" href="#scss-%e8%af%ad%e6%b3%95%e5%8f%82%e8%80%83"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="-目录"&gt;📖 目录&lt;a class="anchor" href="#-%e7%9b%ae%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#scss-%e5%9f%ba%e7%a1%80"&gt;SCSS 基础&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%8f%98%e9%87%8f"&gt;变量&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%b5%8c%e5%a5%97"&gt;嵌套&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e6%b7%b7%e5%90%88mixins"&gt;混合（Mixins）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e7%bb%a7%e6%89%bfextend"&gt;继承（Extend）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%87%bd%e6%95%b0functions"&gt;函数（Functions）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e8%bf%90%e7%ae%97"&gt;运算&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%af%bc%e5%85%a5%e4%b8%8e%e6%a8%a1%e5%9d%97%e5%8c%96"&gt;导入与模块化&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e6%8e%a7%e5%88%b6%e6%8c%87%e4%bb%a4"&gt;控制指令&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e6%8f%92%e5%80%bc"&gt;插值&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%ae%9e%e7%94%a8%e6%8a%80%e5%b7%a7"&gt;实用技巧&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="scss-基础"&gt;SCSS 基础&lt;a class="anchor" href="#scss-%e5%9f%ba%e7%a1%80"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SCSS（Sassy CSS）是Sass（Syntactically Awesome Style Sheets）的语法扩展，是一种CSS预处理器。SCSS在CSS的基础上增加了编程语言的特性，使CSS代码更加模块化、可维护和可复用。&lt;/p&gt;
&lt;h3 id="什么是-scss"&gt;什么是 SCSS&lt;a class="anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af-scss"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;SCSS（Sassy CSS）是 CSS 的预处理器，提供了变量、嵌套、混合、函数等高级功能。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：SCSS扩展了CSS的功能，允许使用变量、嵌套、混合、函数、运算等特性编写样式代码，然后编译成标准的CSS代码。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优势&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;代码复用&lt;/strong&gt;：通过变量、混合、继承等特性减少重复代码&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模块化&lt;/strong&gt;：可以将样式代码拆分成多个文件，便于管理和维护&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可维护性&lt;/strong&gt;：修改变量值即可全局更新样式，提高维护效率&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能强大&lt;/strong&gt;：支持运算、函数、控制指令等，使样式编写更灵活&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;向后兼容&lt;/strong&gt;：SCSS语法完全兼容CSS，可以直接在SCSS文件中编写CSS代码&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;编译过程&lt;/strong&gt;：SCSS文件（&lt;code&gt;.scss&lt;/code&gt;）需要通过Sass编译器转换为标准CSS文件（&lt;code&gt;.css&lt;/code&gt;），浏览器只能识别CSS代码。编译可以在开发时自动完成，或通过构建工具（如Webpack、Gulp）集成到开发流程中。&lt;/p&gt;
&lt;h3 id="文件扩展名"&gt;文件扩展名&lt;a class="anchor" href="#%e6%96%87%e4%bb%b6%e6%89%a9%e5%b1%95%e5%90%8d"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.scss&lt;/code&gt; - SCSS 语法（使用大括号和分号）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.sass&lt;/code&gt; - Sass 语法（缩进语法，不使用大括号）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="注释"&gt;注释&lt;a class="anchor" href="#%e6%b3%a8%e9%87%8a"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code-block-wrapper"&gt;&lt;div class="code-block-container"&gt;
 &lt;button class="copy-code-button" type="button" aria-label="复制代码"&gt;
 &lt;svg class="copy-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z" fill="currentColor"&gt;&lt;/path&gt;
 &lt;/svg&gt;
 &lt;span class="copy-text"&gt;复制&lt;/span&gt;
 &lt;span class="copy-success" style="display: none;"&gt;已复制!&lt;/span&gt;
 &lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-scss" data-lang="scss"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 单行注释（不会编译到 CSS）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/* 多行注释（会编译到 CSS） */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/*!
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; 重要注释（压缩时也会保留）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="变量"&gt;变量&lt;a class="anchor" href="#%e5%8f%98%e9%87%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;变量是SCSS的核心特性之一，允许你存储值（如颜色、尺寸、字体等）并在整个样式表中重复使用。&lt;/p&gt;</description></item><item><title>Showcases</title><link>https://oballon.github.io/Knowledge-Shore/showcases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/showcases/</guid><description>&lt;div class="book-hero text-center"&gt;
&lt;h1 id="at-the-moment-this-page-is-empty"&gt;At the moment this page is empty&lt;a class="anchor" href="#at-the-moment-this-page-is-empty"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;div&gt;</description></item><item><title>附录1-HTML5标签完全参考</title><link>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/html5-+-css/%E9%99%84%E5%BD%951-html5%E6%A0%87%E7%AD%BE%E5%AE%8C%E5%85%A8%E5%8F%82%E8%80%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oballon.github.io/Knowledge-Shore/docs/coding-notes/html5-+-css/%E9%99%84%E5%BD%951-html5%E6%A0%87%E7%AD%BE%E5%AE%8C%E5%85%A8%E5%8F%82%E8%80%83/</guid><description>&lt;h1 id="html5-标签完全参考"&gt;HTML5 标签完全参考&lt;a class="anchor" href="#html5-%e6%a0%87%e7%ad%be%e5%ae%8c%e5%85%a8%e5%8f%82%e8%80%83"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="-目录"&gt;📖 目录&lt;a class="anchor" href="#-%e7%9b%ae%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#%e6%96%87%e6%a1%a3%e7%bb%93%e6%9e%84%e6%a0%87%e7%ad%be"&gt;文档结构标签&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e6%96%87%e6%9c%ac%e5%86%85%e5%ae%b9%e6%a0%87%e7%ad%be"&gt;文本内容标签&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e8%a1%a8%e5%8d%95%e6%a0%87%e7%ad%be"&gt;表单标签&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%aa%92%e4%bd%93%e6%a0%87%e7%ad%be"&gt;媒体标签&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%88%97%e8%a1%a8%e6%a0%87%e7%ad%be"&gt;列表标签&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e8%a1%a8%e6%a0%bc%e6%a0%87%e7%ad%be"&gt;表格标签&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e8%af%ad%e4%b9%89%e5%8c%96%e6%a0%87%e7%ad%be"&gt;语义化标签&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e4%ba%a4%e4%ba%92%e6%a0%87%e7%ad%be"&gt;交互标签&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%85%83%e6%95%b0%e6%8d%ae%e6%a0%87%e7%ad%be"&gt;元数据标签&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e5%b7%b2%e5%ba%9f%e5%bc%83%e6%a0%87%e7%ad%be"&gt;已废弃标签&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="文档结构标签"&gt;文档结构标签&lt;a class="anchor" href="#%e6%96%87%e6%a1%a3%e7%bb%93%e6%9e%84%e6%a0%87%e7%ad%be"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="基础结构"&gt;基础结构&lt;a class="anchor" href="#%e5%9f%ba%e7%a1%80%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;标签&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;HTML5 文档类型声明&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;HTML 文档根元素&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;html lang=&amp;quot;zh-CN&amp;quot;&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;文档头部（元数据）&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;head&amp;gt;...&amp;lt;/head&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;文档主体内容&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;body&amp;gt;...&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="元数据标签在-head-中使用"&gt;元数据标签（在 &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; 中使用）&lt;a class="anchor" href="#%e5%85%83%e6%95%b0%e6%8d%ae%e6%a0%87%e7%ad%be%e5%9c%a8-head-%e4%b8%ad%e4%bd%bf%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;标签&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;文档标题&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;title&amp;gt;我的网站&amp;lt;/title&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;元数据信息&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;外部资源链接&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;style.css&amp;quot;&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;内联样式&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;style&amp;gt;body { color: red; }&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;JavaScript 代码&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;script src=&amp;quot;app.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;base&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;基础 URL&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;base href=&amp;quot;https://example.com/&amp;quot;&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;noscript&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;脚本不可用时的内容&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;noscript&amp;gt;请启用 JavaScript&amp;lt;/noscript&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="语义化标签html5-新增"&gt;语义化标签（HTML5 新增）&lt;a class="anchor" href="#%e8%af%ad%e4%b9%89%e5%8c%96%e6%a0%87%e7%ad%behtml5-%e6%96%b0%e5%a2%9e"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="页面结构"&gt;页面结构&lt;a class="anchor" href="#%e9%a1%b5%e9%9d%a2%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;标签&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;页面或区域的头部&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;header&amp;gt;&amp;lt;h1&amp;gt;网站标题&amp;lt;/h1&amp;gt;&amp;lt;/header&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;导航链接区域&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;nav&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot;&amp;gt;首页&amp;lt;/a&amp;gt;&amp;lt;/nav&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;主要内容区域&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;main&amp;gt;&amp;lt;article&amp;gt;...&amp;lt;/article&amp;gt;&amp;lt;/main&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;独立的文章内容&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;article&amp;gt;&amp;lt;h2&amp;gt;文章标题&amp;lt;/h2&amp;gt;&amp;lt;/article&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;文档的章节&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;章节标题&amp;lt;/h2&amp;gt;&amp;lt;/section&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;侧边栏内容&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;aside&amp;gt;&amp;lt;p&amp;gt;相关链接&amp;lt;/p&amp;gt;&amp;lt;/aside&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;页面或区域的底部&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;footer&amp;gt;&amp;lt;p&amp;gt;版权信息&amp;lt;/p&amp;gt;&amp;lt;/footer&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;使用示例&lt;/strong&gt;：&lt;/p&gt;</description></item></channel></rss>