<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[OIdiot's Blog]]></title><description><![CDATA[~一个步履蹒跚的小码农~]]></description><link>https://oidiotlin.com/</link><image><url>https://oidiotlin.com/favicon.png</url><title>OIdiot&apos;s Blog</title><link>https://oidiotlin.com/</link></image><generator>Ghost 5.26</generator><lastBuildDate>Wed, 06 May 2026 10:41:17 GMT</lastBuildDate><atom:link href="https://oidiotlin.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[torchtracer：一个管理 PyTorch AI 实验项目的工具]]></title><description><![CDATA[在使用 pytorch 框架进行机器学习（尤其是深度学习）实验时，经常需要考虑如何保存以下实验数据：

- 模型的 checkpoints
- 每次训练的 hyper-parameters
- 训练过程中的各种变化参数及其图像（loss, accuracy, learning-rate 等）

除此之外，[Keras](https://keras.io/) 之类的其他框架在 fit 时会有一个表示训练进度的进度条，而 pytorch 原生并没有。]]></description><link>https://oidiotlin.com/torchtracer/</link><guid isPermaLink="false">63847a40ff82689f3f5c0619</guid><category><![CDATA[Machine Learning]]></category><category><![CDATA[Tech]]></category><dc:creator><![CDATA[Huidong Lin]]></dc:creator><pubDate>Wed, 14 Nov 2018 11:55:57 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2018/09/Konachan-267155.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x9879;&#x76EE;&#x5730;&#x5740;</h2>
<img src="https://oidiotlin.com/content/images/2018/09/Konachan-267155.jpg" alt="torchtracer&#xFF1A;&#x4E00;&#x4E2A;&#x7BA1;&#x7406; PyTorch AI &#x5B9E;&#x9A8C;&#x9879;&#x76EE;&#x7684;&#x5DE5;&#x5177;"><p>Github: <a href="https://github.com/OIdiotLin/torchtracer/">https://github.com/OIdiotLin/torchtracer/</a></p>
<p>PyPI: <a href="https://pypi.org/project/torchtracer/">https://pypi.org/project/torchtracer/</a></p>
<h2 id="torchtracer">&#x5F00;&#x53D1; torchtracer &#x7684;&#x521D;&#x8877;</h2>
<p>&#x5728;&#x4F7F;&#x7528; pytorch &#x6846;&#x67B6;&#x8FDB;&#x884C;&#x673A;&#x5668;&#x5B66;&#x4E60;&#xFF08;&#x5C24;&#x5176;&#x662F;&#x6DF1;&#x5EA6;&#x5B66;&#x4E60;&#xFF09;&#x5B9E;&#x9A8C;&#x65F6;&#xFF0C;&#x7ECF;&#x5E38;&#x9700;&#x8981;&#x8003;&#x8651;&#x5982;&#x4F55;&#x4FDD;&#x5B58;&#x4EE5;&#x4E0B;&#x5B9E;&#x9A8C;&#x6570;&#x636E;&#xFF1A;</p>
<ul>
<li>&#x6A21;&#x578B;&#x7684; checkpoints</li>
<li>&#x6BCF;&#x6B21;&#x8BAD;&#x7EC3;&#x7684; hyper-parameters</li>
<li>&#x8BAD;&#x7EC3;&#x8FC7;&#x7A0B;&#x4E2D;&#x7684;&#x5404;&#x79CD;&#x53D8;&#x5316;&#x53C2;&#x6570;&#x53CA;&#x5176;&#x56FE;&#x50CF;&#xFF08;loss, accuracy, learning-rate &#x7B49;&#xFF09;</li>
</ul>
<p>&#x9664;&#x6B64;&#x4E4B;&#x5916;&#xFF0C;<a href="https://keras.io/">Keras</a> &#x4E4B;&#x7C7B;&#x7684;&#x5176;&#x4ED6;&#x6846;&#x67B6;&#x5728; fit &#x65F6;&#x4F1A;&#x6709;&#x4E00;&#x4E2A;&#x8868;&#x793A;&#x8BAD;&#x7EC3;&#x8FDB;&#x5EA6;&#x7684;&#x8FDB;&#x5EA6;&#x6761;&#xFF0C;&#x800C; pytorch &#x539F;&#x751F;&#x5E76;&#x6CA1;&#x6709;&#x3002;</p>
<p>&#x5176;&#x5B9E;&#x4E0A;&#x8FF0;&#x7684;&#x8FD9;&#x4E9B;&#x529F;&#x80FD;&#x5B8C;&#x5168;&#x53EF;&#x4EE5;&#x5728; <a href="https://github.com/lanpa/tensorboardX">tensorboardX</a> &#x4E2D;&#x627E;&#x5230;&#xFF0C;&#x800C;&#x4E14; UI/UX &#x6548;&#x679C;&#x4E5F;&#x975E;&#x5E38;&#x597D;&#xFF0C;&#x4F46;&#x662F;<s>&#x914D;&#x7F6E; tensorboardX &#x592A;&#x590D;&#x6742;&#x4E86;</s>&#x6211;&#x592A;&#x83DC;&#x4E86;&#xFF0C;&#x4E8E;&#x662F;&#x60F3;&#x8981;&#x81EA;&#x5DF1;&#x505A;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x5C0F;&#x5DE5;&#x5177;&#x6EE1;&#x8DB3;&#x4E0A;&#x8FF0;&#x9700;&#x6C42;&#x3002;</p>
<h2 id>&#x5982;&#x4F55;&#x4F7F;&#x7528;</h2>
<p>&#x4F7F;&#x7528;&#x65B9;&#x6CD5;&#x5728;&#x9879;&#x76EE;&#x5730;&#x5740;&#x91CC;&#x6709;&#xFF0C;&#x8FD9;&#x91CC;&#x518D;&#x6574;&#x7406;&#x4E00;&#x4E0B;&#x3002;</p>
<h3 id>&#x5B89;&#x88C5;</h3>
<pre><code class="language-bash">pip install torchtracer
</code></pre>
<h3 id="tracer">&#x521B;&#x5EFA; <code>Tracer</code> &#x5B9E;&#x4F8B;</h3>
<p>&#x6240;&#x6709;&#x64CD;&#x4F5C;&#x90FD;&#x662F;&#x57FA;&#x4E8E; <code>Tracer</code> &#x7C7B;&#x7684;&#x5B9E;&#x4F8B;&#xFF0C;&#x5B83;&#x662F;&#x6240;&#x6709;&#x6570;&#x636E;&#x7684;&#x63A7;&#x5236;&#x8005;&#x3002;&#x6BD4;&#x5982;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x5728; <code>checkpoints</code> &#x76EE;&#x5F55;&#x4E0B;&#x65B0;&#x5EFA;&#x4E00;&#x4E2A;&#x4EFB;&#x52A1; <code>lmmnb</code>&#xFF1A;</p>
<pre><code class="language-python">from torchtracer import Tracer

tracer = Tracer(&apos;checkpoints&apos;).attach(&apos;lmmnb&apos;)
</code></pre>
<p>&#x9700;&#x8981;&#x6CE8;&#x610F;&#x7684;&#x662F;&#xFF0C;<strong>checkpoints &#x6839;&#x76EE;&#x5F55;&#x9700;&#x8981;&#x63D0;&#x524D;&#x521B;&#x5EFA;&#x597D;</strong>&#x3002;&#x4E3A;&#x4E86;&#x907F;&#x514D;&#x7528;&#x6237;&#x4E00;&#x4E0D;&#x5C0F;&#x5FC3;&#x8986;&#x76D6;&#x4E86;&#x67D0;&#x4E2A;&#x5DF2;&#x5B58;&#x5728;&#x7684;&#x4EFB;&#x52A1;&#x6587;&#x4EF6;&#x5939;&#xFF0C;&#x5F53;&#x4EFB;&#x52A1;&#x6587;&#x4EF6;&#x5939;&#xFF08;&#x6BD4;&#x5982;&#x4E0A;&#x9762;&#x7684; <code>lmmnb</code>&#xFF09;&#x5DF2;&#x5B58;&#x5728;&#x65F6;&#xFF0C;&#x518D;&#x5C1D;&#x8BD5;&#x521B;&#x5EFA;&#x5219;&#x4F1A;&#x62A5;&#x9519;&#x3002;</p>
<p>&#x5982;&#x679C; <code>attach()</code> &#x4E0D;&#x6307;&#x5B9A;&#x4EFB;&#x52A1;&#x540D;&#xFF0C;&#x5219;&#x4F1A;&#x4EE5;&#x5F53;&#x524D;&#x7684; <code>datetime</code> &#x4F5C;&#x4E3A;&#x4EFB;&#x52A1;&#x540D;&#x3002;</p>
<pre><code class="language-python">tracer = Tracer(&apos;checkpoints&apos;).attach()
</code></pre>
<h3 id>&#x4FDD;&#x5B58;&#x5B9E;&#x9A8C;&#x914D;&#x7F6E;/&#x8D85;&#x53C2;</h3>
<p>&#x539F;&#x59CB;&#x914D;&#x7F6E;&#x5E94;&#x8BE5;&#x4EE5; <code>dict</code> &#x5F62;&#x5F0F;&#x4F20;&#x5165; <code>Config</code> &#x6784;&#x9020;&#x51FD;&#x6570;&#xFF0C;&#x5E76;&#x7528; <code>tracer.store()</code> &#x65B9;&#x6CD5;&#x4FDD;&#x5B58;&#x4E4B;&#x3002;</p>
<pre><code class="language-python">from torchtracer.data import Config

# `net` is a defined nn.Module
args = {&apos;epoch_n&apos;: 120,
        &apos;batch_size&apos;: 10,
        &apos;criterion&apos;: nn.MSELoss(),
        &apos;optimizer&apos;: torch.optim.RMSprop(net.parameters(), lr=1e-3)}

tracer.store(Config(args))
</code></pre>
<p>&#x8FD9;&#x4E00;&#x6B65;&#x4F1A;&#x5728; <code>./checkpoints/lmmnb</code> &#x4E0B;&#x521B;&#x5EFA;&#x4E00;&#x4E2A; <code>config.json</code>&#xFF0C;&#x5185;&#x5BB9;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre><code class="language-javascript">{
  &quot;epoch_n&quot;: 120,
  &quot;batch_size&quot;: 10,
  &quot;criterion&quot;: &quot;MSELoss&quot;,
  &quot;optimizer&quot;: {
    &quot;lr&quot;: 0.001,
    &quot;momentum&quot;: 0,
    &quot;alpha&quot;: 0.99,
    &quot;eps&quot;: 1e-08,
    &quot;centered&quot;: false,
    &quot;weight_decay&quot;: 0,
    &quot;name&quot;: &quot;RMSprop&quot;
  }
}
</code></pre>
<h3 id>&#x8F93;&#x51FA;&#x65E5;&#x5FD7;</h3>
<p>&#x5728;&#x8BAD;&#x7EC3;&#x65F6;&#xFF08;&#x5B9E;&#x9645;&#x4E0A;&#x4EC0;&#x4E48;&#x65F6;&#x5019;&#x90FD;&#x53EF;&#x4EE5;&#xFF09;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <code>tracer.log(msg, file)</code> &#x65B9;&#x6CD5;&#x6765;&#x8F93;&#x51FA;&#x65E5;&#x5FD7;&#x5230;&#x6587;&#x4EF6;&#x3002;&#x5982;&#x679C;&#x4E0D;&#x6307;&#x5B9A; <code>file</code> &#x53C2;&#x6570;&#xFF0C;&#x5219;&#x4F1A;&#x8F93;&#x51FA;&#x5230; <code>./checkpoints/lmmnb/log</code> &#x6587;&#x4EF6;&#x4E2D;&#x53BB;&#xFF0C;&#x5426;&#x5219;&#x4F1A;&#x8F93;&#x51FA;&#x5230; <code>./checkpoints/lmmnb/something.log</code>&#x3002;</p>
<pre><code class="language-python">tracer.log(msg=&apos;Epoch #{:03d}\ttrain_loss: {:.4f}\tvalid_loss: {:.4f}&apos;.format(epoch, train_loss, valid_loss),
           file=&apos;losses&apos;)
</code></pre>
<p>&#x4E0A;&#x9762;&#x8FD9;&#x6BB5;&#x4EE3;&#x7801;&#x4F1A;&#x5728; <code>./checkpoints/lmmnb/</code> &#x4E2D;&#x521B;&#x5EFA; <code>losses.log</code>&#xFF0C;&#x5176;&#x4E2D;&#x7684;&#x65E5;&#x5FD7;&#x4FE1;&#x606F;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre><code class="language-plain">Epoch #001	train_loss: 18.6356	valid_loss: 21.3882
Epoch #002	train_loss: 19.1731	valid_loss: 17.8482
Epoch #003	train_loss: 19.6756	valid_loss: 19.1418
Epoch #004	train_loss: 20.0638	valid_loss: 18.3875
Epoch #005	train_loss: 18.4679	valid_loss: 19.6304
...
</code></pre>
<h3 id>&#x4FDD;&#x5B58;&#x6A21;&#x578B;</h3>
<p>&#x548C; <code>Config</code> &#x4E00;&#x6837;&#xFF0C;&#x4F20;&#x9012;&#x7ED9; <code>tracer</code> &#x7684;&#x6A21;&#x578B;&#x4E5F;&#x9700;&#x8981;&#x6784;&#x9020;&#x6210; <code>torchtracer.data.Model</code>&#x3002;</p>
<pre><code class="language-python">tracer.store(Model(model), file=&apos;somename&apos;)
</code></pre>
<p>&#x5982;&#x679C;&#x4E0D;&#x6307;&#x5B9A; <code>file</code>&#xFF0C;&#x5219;&#x6A21;&#x578B;&#x540D;&#x7F3A;&#x7701;&#x4E3A; <code>model</code>&#x3002;</p>
<p>&#x4E0A;&#x9762;&#x8FD9;&#x6BB5;&#x4EE3;&#x7801;&#x4F1A;&#x5728; <code>./checkpoints/lmmnb/</code> &#x4E2D;&#x521B;&#x5EFA;&#x4E24;&#x4E2A;&#x6587;&#x4EF6;&#xFF1A;</p>
<ul>
<li><strong>&#x6A21;&#x578B;&#x7ED3;&#x6784;&#x63CF;&#x8FF0;&#x6587;&#x4EF6;</strong> <code>somename.txt</code></li>
</ul>
<pre><code class="language-plain">Sequential(
  (0): Linear(in_features=1, out_features=6, bias=True)
  (1): ReLU()
  (2): Linear(in_features=6, out_features=12, bias=True)
  (3): ReLU()
  (4): Linear(in_features=12, out_features=12, bias=True)
  (5): ReLU()
  (6): Linear(in_features=12, out_features=1, bias=True)
)
</code></pre>
<ul>
<li><strong>&#x6A21;&#x578B;&#x53C2;&#x6570;&#x6587;&#x4EF6;</strong> <code>somename.pth</code></li>
</ul>
<h3 id="matplotlib">&#x4FDD;&#x5B58; <code>matplotlib</code> &#x56FE;&#x50CF;</h3>
<p>&#x8BAD;&#x7EC3;&#x8FC7;&#x7A0B;&#x4E2D;&#x4EA7;&#x751F;&#x7684; <code>matplotlib</code> &#x56FE;&#x50CF;&#xFF0C;&#x6211;&#x4EEC;&#x4E5F;&#x5E0C;&#x671B;&#x5408;&#x7406;&#x5730;&#x3001;&#x6709;&#x7ED3;&#x6784;&#x5730;&#x4FDD;&#x5B58;&#x4E0B;&#x6765;&#x3002;&#x4F7F;&#x7528; <code>tracer.store(figure, file)</code> &#x5728; <code>images</code> &#x76EE;&#x5F55;&#x4E0B;&#x4FDD;&#x5B58;&#x56FE;&#x7247;&#x3002;</p>
<pre><code class="language-python"># assume that `train_losses` and `valid_losses` are lists of losses. 
# create figure manually.
plt.plot(train_losses, label=&apos;train loss&apos;, c=&apos;b&apos;)
plt.plot(valid_losses, label=&apos;valid loss&apos;, c=&apos;r&apos;)
plt.title(&apos;Demo Learning on SQRT&apos;)
plt.legend()
# save figure. remember to call `plt.gcf()`
tracer.store(plt.gcf(), &apos;losses.png&apos;)
</code></pre>
<p>&#x4E0A;&#x9762;&#x8FD9;&#x6BB5;&#x4EE3;&#x7801;&#x4F1A;&#x5728; <code>./checkpoints/lmmnb/images/</code> &#x4E2D;&#x4EA7;&#x751F;&#x4E00;&#x4E2A; <code>losses.png</code>&#xFF0C;&#x8868;&#x8FBE;&#x4E86; loss &#x53D8;&#x5316;&#x66F2;&#x7EBF;&#x3002;</p>
<h3 id>&#x8BAD;&#x7EC3;&#x8FDB;&#x5EA6;&#x6761;</h3>
<p>&#x5728;&#x8BAD;&#x7EC3;&#x5F00;&#x59CB;&#x524D;&#xFF0C;&#x4F7F;&#x7528; <code>tracer.epoch_bar_init(total)</code> &#x521D;&#x59CB;&#x5316;&#x8FDB;&#x5EA6;&#x6761;&#x3002;</p>
<pre><code class="language-python">tracer.epoch_bar_init(epoch_n)
</code></pre>
<p>&#x5728;&#x8BAD;&#x7EC3;&#x8FC7;&#x7A0B;&#x4E2D;&#xFF0C;&#x4F7F;&#x7528; <code>tracer.epoch_bar.update(n, **param)</code> &#x65B9;&#x6CD5;&#x6765;&#x66F4;&#x65B0;&#x8FDB;&#x5EA6;&#x6761;&#x548C;&#x8FDB;&#x5EA6;&#x6761;&#x4E4B;&#x540E;&#x7684;&#x53C2;&#x6570;&#x3002;</p>
<pre><code class="language-python"># this runs in the end of each epoch.
tracer.epoch_bar.update(train_loss=train_loss, valid_loss=train_loss)
</code></pre>
<pre><code class="language-plain">Tracer start at /home/oidiotlin/projects/torchtracer/checkpoints
Tracer attached with task: lmmnb
Epoch: 100%|&#x2588;&#x2588;&#x2588;&#x2588;&#x2588;&#x2588;&#x2588;&#x2588;&#x2588;| 120/120 [00:02&lt;00:00, 41.75it/s, train_loss=0.417, valid_loss=0.417]
</code></pre>
<p><strong>&#x6700;&#x540E;&#xFF0C;&#x5343;&#x4E07;&#x522B;&#x5FD8;&#x4E86;&#x5173;&#x95ED; progress bar</strong>&#xFF1A;<code>tracer.epoch_bar.close()</code></p>
<h2 id>&#x6700;&#x540E;</h2>
<p>&#x5982;&#x679C;&#x4F60;&#x4F7F;&#x7528;&#x4E86;&#x6211;&#x7684; <code>torchtracer</code>&#xFF0C;&#x5E76;&#x6709;&#x4EC0;&#x4E48;&#x65B0;&#x7684;&#x9700;&#x6C42;/&#x610F;&#x89C1;/&#x5EFA;&#x8BAE;&#xFF0C;&#x6B22;&#x8FCE;&#x63D0;&#x4EA4; Issue&#x3002;&#x5F53;&#x7136;&#xFF0C;&#x4E5F;&#x6B22;&#x8FCE; Star&#x3002;&#x4E07;&#x5206;&#x611F;&#x8C22;&#x3002;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[使用 travis 自动部署 vuejs 项目]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="travis">&#x4EC0;&#x4E48;&#x662F; Travis&#xFF1F;</h2>
<p><a href="https://travis-ci.com/">Travis</a> &#x662F;&#x4E00;&#x4E2A;&#x5728;&#x7EBF;&#x7684;&#x8F6F;&#x4EF6;&#x6301;&#x7EED;&#x96C6;&#x6210;&#x670D;&#x52A1;&#xFF0C;&#x4E0E; <a href="https://github.com/">GitHub</a> &#x4E4B;&#x95F4;&#x6709;&#x7740;&#x826F;&#x597D;&#x7684;&#x534F;&#x540C;&#x5173;&#x7CFB;&#x3002;</p>
<p>&#x8FD9;&#x7BC7;&#x8BB0;&#x5F55;&#x5C06;&#x4F1A;&#x4EE5; <a href="https://github.com/OIdiotLin/mdzz-web">mdzz-web</a> &#x8FD9;&#x4E2A; vuejs &#x9879;&#x76EE;&#x4E3E;&#x4F8B;</p>]]></description><link>https://oidiotlin.com/shi-yong-travis-zi-dong-bu-shu-vuejs-xiang-mu/</link><guid isPermaLink="false">63847a40ff82689f3f5c061b</guid><dc:creator><![CDATA[Huidong Lin]]></dc:creator><pubDate>Fri, 19 Oct 2018 08:47:39 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2018/10/Konachan-271850.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="travis">&#x4EC0;&#x4E48;&#x662F; Travis&#xFF1F;</h2>
<img src="https://oidiotlin.com/content/images/2018/10/Konachan-271850.jpg" alt="&#x4F7F;&#x7528; travis &#x81EA;&#x52A8;&#x90E8;&#x7F72; vuejs &#x9879;&#x76EE;"><p><a href="https://travis-ci.com/">Travis</a> &#x662F;&#x4E00;&#x4E2A;&#x5728;&#x7EBF;&#x7684;&#x8F6F;&#x4EF6;&#x6301;&#x7EED;&#x96C6;&#x6210;&#x670D;&#x52A1;&#xFF0C;&#x4E0E; <a href="https://github.com/">GitHub</a> &#x4E4B;&#x95F4;&#x6709;&#x7740;&#x826F;&#x597D;&#x7684;&#x534F;&#x540C;&#x5173;&#x7CFB;&#x3002;</p>
<p>&#x8FD9;&#x7BC7;&#x8BB0;&#x5F55;&#x5C06;&#x4F1A;&#x4EE5; <a href="https://github.com/OIdiotLin/mdzz-web">mdzz-web</a> &#x8FD9;&#x4E2A; vuejs &#x9879;&#x76EE;&#x4E3E;&#x4F8B;&#x3002;</p>
<hr>
<h2 id="vuejs">vuejs &#x9879;&#x76EE;&#x7684;&#x624B;&#x52A8;&#x90E8;&#x7F72;</h2>
<p>&#x5982;&#x679C;&#x4E0D;&#x7528; travis&#xFF0C;&#x5BF9;&#x4E8E;&#x4E00;&#x4E2A; vuejs &#x9879;&#x76EE;&#x6765;&#x8BF4;&#xFF0C;&#x5927;&#x6982;&#x6709;&#x8FD9;&#x4E24;&#x79CD;&#x90E8;&#x7F72;&#x65B9;&#x5F0F;&#xFF1A;</p>
<h3 id>&#x5F00;&#x53D1;&#x73AF;&#x5883;&#x6253;&#x5305;</h3>
<p>&#x5728;&#x5F00;&#x53D1;&#x673A;&#x4E0A;&#x6253;&#x5305;&#x51FA;&#x9759;&#x6001;&#x6587;&#x4EF6;&#xFF0C;&#x518D;&#x5C06; <code>dist</code> &#x4E0A;&#x4F20;&#x5230;&#x751F;&#x4EA7;&#x73AF;&#x5883;&#x3002;</p>
<pre><code class="language-bash">npm install
npm run build
rsync ./dist/* &lt;USERNAME&gt;@&lt;HOST&gt;:&lt;TARGET-PATH&gt;
</code></pre>
<h3 id>&#x751F;&#x4EA7;&#x73AF;&#x5883;&#x6253;&#x5305;</h3>
<p>&#x5728;&#x751F;&#x4EA7;&#x73AF;&#x5883;&#x4E2D;&#x62C9;&#x53D6;&#x4ED3;&#x5E93;&#xFF0C;&#x6253;&#x5305;&#xFF0C;&#x518D;&#x62F7;&#x8D1D;&#x5230;&#x76EE;&#x6807;&#x8DEF;&#x5F84;&#x3002;</p>
<pre><code class="language-bash">npm install
npm run build
cp ./dist/* &lt;TARGET-PATH&gt;
</code></pre>
<p>&#x8FD9;&#x6837;&#x505A;&#x5E76;&#x4E0D;&#x590D;&#x6742;&#xFF0C;&#x4F46;&#x662F;&#x60F3;&#x8BA9;&#x96C6;&#x6210;&#x8FC7;&#x7A0B;&#x66F4;&#x52A0;&#x81EA;&#x52A8;&#x5316;&#xFF08;&#x6BD4;&#x5982;&#x81EA;&#x52A8;&#x6D4B;&#x8BD5;&#xFF09;&#xFF0C;&#x4E5F;&#x4E3A;&#x4E86;&#x8BA9;&#x5176;&#x4ED6;&#x540C;&#x5B66;&#x66F4;&#x597D;&#x5730;&#x8D21;&#x732E;&#x4EE3;&#x7801;&#xFF0C;&#x8FD8;&#x662F;&#x51B3;&#x5B9A;&#x4E0A; travis&#x3002;</p>
<h2 id="traviscicd">&#x4F7F;&#x7528; travis &#x8FDB;&#x884C; CI/CD</h2>
<h3 id="travisgithub">&#x5728; travis &#x4E2D;&#x540C;&#x6B65; github &#x4ED3;&#x5E93;</h3>
<p>&#x5728; travis &#x4E3B;&#x9875;&#x4E2D;&#xFF0C;&#x70B9;&#x51FB; <code>sync now</code>&#xFF0C;&#x4EE5;&#x540C;&#x6B65; github &#x4E2D;&#x7684;&#x4ED3;&#x5E93;&#x3002;&#x540C;&#x65F6;&#xFF0C;&#x4F60;&#x4E5F;&#x8981;&#x5728; github &#x4E2D;&#x7ED9; travis &#x8BBE;&#x7F6E;&#x53EF;&#x8BBF;&#x95EE;&#x7684;&#x4ED3;&#x5E93;&#x6709;&#x54EA;&#x4E9B;&#x3002;</p>
<h3 id="travisyml">&#x5728;&#x4ED3;&#x5E93;&#x4E2D;&#x6DFB;&#x52A0; <code>.travis.yml</code></h3>
<p>&#x4F60;&#x9700;&#x8981;&#x5728;&#x4ED3;&#x5E93;&#x7684;&#x6839;&#x76EE;&#x5F55;&#x4E0B;&#x65B0;&#x5EFA;&#x4E00;&#x4E2A; <code>.travis.yml</code> &#x6765;&#x544A;&#x77E5; travis CI &#x7684;&#x76F8;&#x5173;&#x914D;&#x7F6E;&#x3002;&#x5728;&#x672C;&#x4F8B;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x8981;&#x5C06;&#x9879;&#x76EE;&#x90E8;&#x7F72;&#x5230; <code>gz.oidiotlin.com</code>&#xFF0C;&#x4E14;&#x4EC5;&#x5BF9; master &#x5206;&#x652F;&#x4E0A;&#x7684; commit &#x505A;&#x96C6;&#x6210;&#xFF0C;&#x4F8B;&#x5982;&#xFF1A;</p>
<pre><code class="language-yaml">language: node_js
node_js: stable
branches:
  only:
  - master
addons:
  ssh_known_hosts:
  - gz.oidiotlin.com
install:
- npm install
script:
- npm run build
after_success:
- rsync -az --delete ./dist/* travis@gz.oidiotlin.com:/var/www/mdzz-web/
</code></pre>
<h3 id="ssh">SSH &#x5361;&#x4F4F;&#x4E86;&#xFF1F;</h3>
<p>&#x5982;&#x679C;&#x4EC5;&#x4EC5;&#x662F;&#x50CF;&#x4E0A;&#x9762;&#x90A3;&#x6837;&#x914D;&#x7F6E;&#x7684;&#x8BDD;&#xFF0C;travis build &#x7684;&#x65F6;&#x5019;&#x4F1A;&#x5361;&#x4F4F;&#x3002;&#x56E0;&#x4E3A; <code>rsync</code> &#x5DE5;&#x5177;&#x9700;&#x8981;&#x8F93;&#x5165; ssh &#x767B;&#x5F55;&#x5BC6;&#x7801;&#xFF0C;&#x800C;&#x5728; travis build &#x73AF;&#x5883;&#x91CC;&#xFF0C;&#x6211;&#x4EEC;&#x6839;&#x672C;&#x65E0;&#x6CD5;&#x8F93;&#x5165;&#x5BC6;&#x7801;&#x3002;</p>
<h4 id="sshkeygen">&#x4F7F;&#x7528; <code>ssh-keygen</code></h4>
<p>&#x81EA;&#x7136;&#xFF0C;&#x6211;&#x4EEC;&#x5E0C;&#x671B;&#x4E0D;&#x9700;&#x8981;&#x8F93;&#x5165;&#x5BC6;&#x7801;&#x5C31;&#x80FD;&#x767B;&#x5F55; <code>gz.oidiotlin.com</code>&#xFF0C;&#x8FD9;&#x91CC;&#x4F7F;&#x7528; <code>ssh-keygen</code> &#x5DE5;&#x5177;&#x4EA7;&#x751F;&#x516C;/&#x79C1;&#x94A5;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[CTF 试题初体验]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id></h2>
<p>&#x88AB;&#x9017;&#x54E5;(@<a href="https://github.com/Hustcw">Hustcw</a>)&#x5B89;&#x5229;&#x4E86;&#x4E00;&#x6CE2; CTF &#x8D5B;&#xFF0C;&#x4F5C;&#x4E3A;&#x840C;&#x65B0;&#x6211;&#x51B3;&#x5B9A;&#x627E;&#x70B9;&#x9898;&#x76EE;&#x7EC3;&#x7EC3;&#x624B;&#x3002;</p>
<h2 id="ctf">&#x4EC0;&#x4E48;&#x662F; CTF&#xFF1F;</h2>
<blockquote>
<p>CTF&#xFF08;Capture The Flag&#xFF09;&#x4E2D;&#x6587;&#x4E00;&#x822C;&#x8BD1;&#x4F5C;&#x593A;&#x65D7;&#x8D5B;&#xFF0C;&#x5728;&#x7F51;</p></blockquote>]]></description><link>https://oidiotlin.com/ctf-newbie/</link><guid isPermaLink="false">63847a40ff82689f3f5c061a</guid><dc:creator><![CDATA[Huidong Lin]]></dc:creator><pubDate>Mon, 08 Oct 2018 04:06:39 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2018/10/konachan-268519.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id></h2>
<img src="https://oidiotlin.com/content/images/2018/10/konachan-268519.jpg" alt="CTF &#x8BD5;&#x9898;&#x521D;&#x4F53;&#x9A8C;"><p>&#x88AB;&#x9017;&#x54E5;(@<a href="https://github.com/Hustcw">Hustcw</a>)&#x5B89;&#x5229;&#x4E86;&#x4E00;&#x6CE2; CTF &#x8D5B;&#xFF0C;&#x4F5C;&#x4E3A;&#x840C;&#x65B0;&#x6211;&#x51B3;&#x5B9A;&#x627E;&#x70B9;&#x9898;&#x76EE;&#x7EC3;&#x7EC3;&#x624B;&#x3002;</p>
<h2 id="ctf">&#x4EC0;&#x4E48;&#x662F; CTF&#xFF1F;</h2>
<blockquote>
<p>CTF&#xFF08;Capture The Flag&#xFF09;&#x4E2D;&#x6587;&#x4E00;&#x822C;&#x8BD1;&#x4F5C;&#x593A;&#x65D7;&#x8D5B;&#xFF0C;&#x5728;&#x7F51;&#x7EDC;&#x5B89;&#x5168;&#x9886;&#x57DF;&#x4E2D;&#x6307;&#x7684;&#x662F;&#x7F51;&#x7EDC;&#x5B89;&#x5168;&#x6280;&#x672F;&#x4EBA;&#x5458;&#x4E4B;&#x95F4;&#x8FDB;&#x884C;&#x6280;&#x672F;&#x7ADE;&#x6280;&#x7684;&#x4E00;&#x79CD;&#x6BD4;&#x8D5B;&#x5F62;&#x5F0F;&#x3002;&#x5176;&#x5927;&#x81F4;&#x6D41;&#x7A0B;&#x662F;&#xFF0C;&#x53C2;&#x8D5B;&#x56E2;&#x961F;&#x4E4B;&#x95F4;&#x901A;&#x8FC7;&#x8FDB;&#x884C;&#x653B;&#x9632;&#x5BF9;&#x6297;&#x3001;&#x7A0B;&#x5E8F;&#x5206;&#x6790;&#x7B49;&#x5F62;&#x5F0F;&#xFF0C;&#x7387;&#x5148;&#x4ECE;&#x4E3B;&#x529E;&#x65B9;&#x7ED9;&#x51FA;&#x7684;&#x6BD4;&#x8D5B;&#x73AF;&#x5883;&#x4E2D;&#x5F97;&#x5230;&#x4E00;&#x4E32;&#x5177;&#x6709;&#x4E00;&#x5B9A;&#x683C;&#x5F0F;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x6216;&#x5176;&#x4ED6;&#x5185;&#x5BB9;&#xFF0C;&#x5E76;&#x5C06;&#x5176;&#x63D0;&#x4EA4;&#x7ED9;&#x4E3B;&#x529E;&#x65B9;&#xFF0C;&#x4ECE;&#x800C;&#x593A;&#x5F97;&#x5206;&#x6570;&#x3002;</p>
</blockquote>
<blockquote>
<p>CTF &#x4E3B;&#x8981;&#x5206;&#x4E3A;3&#x7C7B;&#x6BD4;&#x8D5B;&#x6A21;&#x5F0F;&#xFF1A;<br>
&#x4E00;&#x3001;&#x89E3;&#x9898;&#x6A21;&#x5F0F;&#xFF08;Jeopardy&#xFF09;<br>
&#x5728;&#x89E3;&#x9898;&#x6A21;&#x5F0F;CTF&#x8D5B;&#x5236;&#x4E2D;&#xFF0C;&#x53C2;&#x8D5B;&#x961F;&#x4F0D;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4E92;&#x8054;&#x7F51;&#x6216;&#x8005;&#x73B0;&#x573A;&#x7F51;&#x7EDC;&#x53C2;&#x4E0E;&#xFF0C;&#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x7684;CTF&#x7ADE;&#x8D5B;&#x4E0E;ACM&#x7F16;&#x7A0B;&#x7ADE;&#x8D5B;&#x3001;&#x4FE1;&#x606F;&#x5B66;&#x5965;&#x8D5B;&#x6BD4;&#x8F83;&#x7C7B;&#x4F3C;&#xFF0C;&#x4EE5;&#x89E3;&#x51B3;&#x7F51;&#x7EDC;&#x5B89;&#x5168;&#x6280;&#x672F;&#x6311;&#x6218;&#x9898;&#x76EE;&#x7684;&#x5206;&#x503C;&#x548C;&#x65F6;&#x95F4;&#x6765;&#x6392;&#x540D;&#xFF0C;&#x901A;&#x5E38;&#x7528;&#x4E8E;&#x5728;&#x7EBF;&#x9009;&#x62D4;&#x8D5B;&#x3002;&#x9898;&#x76EE;&#x4E3B;&#x8981;&#x5305;&#x542B;&#x9006;&#x5411;&#x3001;&#x6F0F;&#x6D1E;&#x6316;&#x6398;&#x4E0E;&#x5229;&#x7528;&#x3001;Web&#x6E17;&#x900F;&#x3001;&#x5BC6;&#x7801;&#x3001;&#x53D6;&#x8BC1;&#x3001;&#x9690;&#x5199;&#x3001;&#x5B89;&#x5168;&#x7F16;&#x7A0B;&#x7B49;&#x7C7B;&#x522B;&#x3002;<br>
&#x4E8C;&#x3001;&#x653B;&#x9632;&#x6A21;&#x5F0F;&#xFF08;Attack-Defense&#xFF09;<br>
&#x5728;&#x653B;&#x9632;&#x6A21;&#x5F0F;CTF&#x8D5B;&#x5236;&#x4E2D;&#xFF0C;&#x53C2;&#x8D5B;&#x961F;&#x4F0D;&#x5728;&#x7F51;&#x7EDC;&#x7A7A;&#x95F4;&#x4E92;&#x76F8;&#x8FDB;&#x884C;&#x653B;&#x51FB;&#x548C;&#x9632;&#x5B88;&#xFF0C;&#x6316;&#x6398;&#x7F51;&#x7EDC;&#x670D;&#x52A1;&#x6F0F;&#x6D1E;&#x5E76;&#x653B;&#x51FB;&#x5BF9;&#x624B;&#x670D;&#x52A1;&#x6765;&#x5F97;&#x5206;&#xFF0C;&#x4FEE;&#x8865;&#x81EA;&#x8EAB;&#x670D;&#x52A1;&#x6F0F;&#x6D1E;&#x8FDB;&#x884C;&#x9632;&#x5FA1;&#x6765;&#x907F;&#x514D;&#x4E22;&#x5206;&#x3002;&#x653B;&#x9632;&#x6A21;&#x5F0F;CTF&#x8D5B;&#x5236;&#x53EF;&#x4EE5;&#x5B9E;&#x65F6;&#x901A;&#x8FC7;&#x5F97;&#x5206;&#x53CD;&#x6620;&#x51FA;&#x6BD4;&#x8D5B;&#x60C5;&#x51B5;&#xFF0C;&#x6700;&#x7EC8;&#x4E5F;&#x4EE5;&#x5F97;&#x5206;&#x76F4;&#x63A5;&#x5206;&#x51FA;&#x80DC;&#x8D1F;&#xFF0C;&#x662F;&#x4E00;&#x79CD;&#x7ADE;&#x4E89;&#x6FC0;&#x70C8;&#xFF0C;&#x5177;&#x6709;&#x5F88;&#x5F3A;&#x89C2;&#x8D4F;&#x6027;&#x548C;&#x9AD8;&#x5EA6;&#x900F;&#x660E;&#x6027;&#x7684;&#x7F51;&#x7EDC;&#x5B89;&#x5168;&#x8D5B;&#x5236;&#x3002;&#x5728;&#x8FD9;&#x79CD;&#x8D5B;&#x5236;&#x4E2D;&#xFF0C;&#x4E0D;&#x4EC5;&#x4EC5;&#x662F;&#x6BD4;&#x53C2;&#x8D5B;&#x961F;&#x5458;&#x7684;&#x667A;&#x529B;&#x548C;&#x6280;&#x672F;&#xFF0C;&#x4E5F;&#x6BD4;&#x4F53;&#x529B;&#xFF08;&#x56E0;&#x4E3A;&#x6BD4;&#x8D5B;&#x4E00;&#x822C;&#x90FD;&#x4F1A;&#x6301;&#x7EED;48&#x5C0F;&#x65F6;&#x53CA;&#x4EE5;&#x4E0A;&#xFF09;&#xFF0C;&#x540C;&#x65F6;&#x4E5F;&#x6BD4;&#x56E2;&#x961F;&#x4E4B;&#x95F4;&#x7684;&#x5206;&#x5DE5;&#x914D;&#x5408;&#x4E0E;&#x5408;&#x4F5C;&#x3002;<br>
&#x4E09;&#x3001;&#x6DF7;&#x5408;&#x6A21;&#x5F0F;&#xFF08;Mix&#xFF09;<br>
&#x7ED3;&#x5408;&#x4E86;&#x89E3;&#x9898;&#x6A21;&#x5F0F;&#x4E0E;&#x653B;&#x9632;&#x6A21;&#x5F0F;&#x7684;CTF&#x8D5B;&#x5236;&#xFF0C;&#x6BD4;&#x5982;&#x53C2;&#x8D5B;&#x961F;&#x4F0D;&#x901A;&#x8FC7;&#x89E3;&#x9898;&#x53EF;&#x4EE5;&#x83B7;&#x53D6;&#x4E00;&#x4E9B;&#x521D;&#x59CB;&#x5206;&#x6570;&#xFF0C;&#x7136;&#x540E;&#x901A;&#x8FC7;&#x653B;&#x9632;&#x5BF9;&#x6297;&#x8FDB;&#x884C;&#x5F97;&#x5206;&#x589E;&#x51CF;&#x7684;&#x96F6;&#x548C;&#x6E38;&#x620F;&#xFF0C;&#x6700;&#x7EC8;&#x4EE5;&#x5F97;&#x5206;&#x9AD8;&#x4F4E;&#x5206;&#x51FA;&#x80DC;&#x8D1F;&#x3002;&#x91C7;&#x7528;&#x6DF7;&#x5408;&#x6A21;&#x5F0F;CTF&#x8D5B;&#x5236;&#x7684;&#x5178;&#x578B;&#x4EE3;&#x8868;&#x5982;iCTF&#x56FD;&#x9645;CTF&#x7ADE;&#x8D5B;&#x3002;</p>
</blockquote>
<h2 id>&#x4E0A;&#x624B;&#x9898;</h2>
<p>&#x840C;&#x65B0;&#x5F53;&#x7136;&#x9009;&#x62E9;&#x89E3;&#x9898;&#x6A21;&#x5F0F;&#x4E0A;&#x624B;&#x5566;&#x3002;&#x627E;&#x5230;&#x4E86;&#x4E00;&#x4E2A;&#x5165;&#x95E8;&#x7F51;&#x7AD9; <a href="https://ctflearn.com/">ctflearn.com</a>&#xFF0C;<s>&#x7279;&#x610F;</s> &#x968F;&#x4FBF;&#x9009;&#x4E86;&#x51E0;&#x9053; <span class="green">Easy</span> &#x7684;&#x9898;&#x76EE;&#x8BD5;&#x8BD5;&#x3002;</p>
<h3 id="problemabasicinjection">Problem A - Basic Injection</h3>
<p><strong>&#x4F20;&#x9001;&#x95E8;&#xFF1A;</strong> <a href="https://ctflearn.com/problems/88">https://ctflearn.com/problems/88</a></p>
<p>&#x9898;&#x76EE;&#x7ED9;&#x4E86;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x7F51;&#x9875; <a href="https://web.ctflearn.com/web4/">https://web.ctflearn.com/web4/</a> &#xFF0C;&#x8981;&#x6C42;&#x6211;&#x4EEC;&#x62D6;&#x5E93;&#x3002;</p>
<p><img src="https://oidiotlin.com/content/images/2018/10/basic-injection-1.png" alt="CTF &#x8BD5;&#x9898;&#x521D;&#x4F53;&#x9A8C;" loading="lazy"></p>
<p>&#x68C0;&#x67E5; html &#x6587;&#x4EF6;&#xFF0C;&#x53D1;&#x73B0; input &#x680F;&#x4E0A;&#x6709;&#x6CE8;&#x91CA;&#xFF1A;</p>
<p><img src="https://oidiotlin.com/content/images/2018/10/basic-injection-2.png" alt="CTF &#x8BD5;&#x9898;&#x521D;&#x4F53;&#x9A8C;" loading="lazy"></p>
<p>&#x4E8E;&#x662F;&#x6211;&#x968F;&#x4FBF;&#x8BD5;&#x4E86;&#x51E0;&#x4E2A;&#x540D;&#x5B57;&#xFF0C;&#x53D1;&#x73B0;&#x67E5;&#x8BE2; <code>Luke</code> &#x65F6;&#xFF0C;&#x4F1A;&#x5C55;&#x793A; data&#xFF1A;</p>
<p><img src="https://oidiotlin.com/content/images/2018/10/basic-injection-3.png" alt="CTF &#x8BD5;&#x9898;&#x521D;&#x4F53;&#x9A8C;" loading="lazy"></p>
<p>&#x56E0;&#x4E3A;&#x8FD9;&#x662F;&#x4E00;&#x9053;&#x7B80;&#x5355;&#x9898;&#xFF0C;&#x6211;&#x731C;&#x6D4B;&#x5F88;&#x53EF;&#x80FD;&#x901A;&#x8FC7;&#x5F88;&#x7B80;&#x5355;&#x7684; SQL&#x6CE8;&#x5165; &#x7684;&#x65B9;&#x5F0F;&#x5C31;&#x80FD;&#x62D6;&#x5E93;&#xFF0C;&#x4E8E;&#x662F;&#x952E;&#x5165; <code>&apos; or &apos;1&apos;=&apos;1</code>&#x3002;&#xFF08;&#x540E;&#x53F0;&#x5F88;&#x53EF;&#x80FD;&#x5C31;&#x662F;&#x4E00;&#x6761; SQL:</p>
<pre><code class="language-sql">SELECT * FROM users WHERE name = &apos;SOMENAME_KEYIN&apos;
</code></pre>
<p>&#x679C;&#x7136;&#xFF0C;&#x6CE8;&#x5165;&#x6210;&#x529F;&#x3002;Flag &#x4E3A; <code>th4t_is_why_you_n33d_to_sanitiz3_inputs</code></p>
<h3 id="problembforensics101">Problem B - FORENSICS 101</h3>
<p><strong>&#x4F20;&#x9001;&#x95E8;&#xFF1A;</strong> <a href="https://ctflearn.com/problems/96">https://ctflearn.com/problems/96</a></p>
<p>&#x9898;&#x76EE;&#x7ED9;&#x4E86;&#x4E00;&#x4E2A;&#x56FE;&#x50CF;&#x6587;&#x4EF6;&#xFF1A;</p>
<p><img src="https://oidiotlin.com/content/images/2018/10/x.jpg" alt="CTF &#x8BD5;&#x9898;&#x521D;&#x4F53;&#x9A8C;" loading="lazy"></p>
<p>&#x8981;&#x4ECE;&#x4E8C;&#x8FDB;&#x5236;&#x6587;&#x4EF6;&#x91CC;&#x53D6;&#x5230; Flag&#xFF0C;&#x6211;&#x7ACB;&#x9A6C;&#x7528; python &#x5C06;&#x56FE;&#x7247;&#x6587;&#x4EF6;&#x4EE5;&#x4E8C;&#x8FDB;&#x5236;&#x8BFB;&#x5165;&#xFF0C;&#x7136;&#x540E;&#x67E5;&#x8BE2;&#x5176;&#x4E2D;&#x662F;&#x4E0D;&#x662F;&#x5939;&#x5E26;&#x4E86; Flag&#x3002;</p>
<p><img src="https://oidiotlin.com/content/images/2018/10/image-flag.png" alt="CTF &#x8BD5;&#x9898;&#x521D;&#x4F53;&#x9A8C;" loading="lazy"></p>
<p>&#x679C;&#x7136;&#x5939;&#x5E26;&#x4E86; flag&#xFF01;</p>
<h3 id="problemctakingls">Problem C - Taking Ls</h3>
<p><strong>&#x4F20;&#x9001;&#x95E8;&#xFF1A;</strong> <a href="https://ctflearn.com/problems/103">https://ctflearn.com/problems/103</a></p>
<p>&#x9898;&#x76EE;&#x7ED9;&#x4E86;&#x4E00;&#x4E2A; zip &#x5305; <code>The Flag.zip</code>&#xFF0C;&#x4F7F;&#x7528; <code>unzip</code> &#x89E3;&#x538B;&#x65F6;&#x53D1;&#x73B0;&#x91CC;&#x9762;&#x6709;&#x4E2A;&#x9690;&#x85CF;&#x6587;&#x4EF6;&#x5939; <code>.ThePassword</code>&#xFF0C;&#x5185;&#x542B; <code>ThePassword.txt</code>&#xFF0C;&#x67E5;&#x770B;&#x6B64;&#x6587;&#x4EF6;&#x53D1;&#x73B0;&#x4E00;&#x4EFD;&#x5BC6;&#x7801; <code>Im The Flag</code>.</p>
<p><img src="https://oidiotlin.com/content/images/2018/10/taking-ls-1.png" alt="CTF &#x8BD5;&#x9898;&#x521D;&#x4F53;&#x9A8C;" loading="lazy"></p>
<p><code>The Flag/</code> &#x4E0B;&#x8FD8;&#x6709;&#x4E00;&#x4E2A; pdf &#x6587;&#x4EF6;&#xFF0C;&#x9700;&#x8981;&#x5BC6;&#x7801;&#x6253;&#x5F00;&#xFF0C;&#x8F93;&#x5165;&#x4E0A;&#x4E00;&#x6B65;&#x4E2D;&#x5F97;&#x5230;&#x7684;&#x5BC6;&#x7801;&#x5C31;&#x884C;&#x5566;&#x3002;</p>
<h3 id="problemdwikipedia">Problem D - WIKIPEDIA</h3>
<p><strong>&#x4F20;&#x9001;&#x95E8;&#xFF1A;</strong> <a href="https://ctflearn.com/problems/168">https://ctflearn.com/problems/168</a></p>
<p>&#x9898;&#x76EE;&#x6CA1;&#x6709;&#x7ED9;&#x5B9A;&#x4EFB;&#x4F55;&#x6587;&#x4EF6;&#xFF0C;&#x53EA;&#x7ED9;&#x4E86;&#x4E24;&#x4E2A;&#x5173;&#x952E;&#x5B57; <code>WIKIPEDIA</code> &#x548C; <code>128.125.52.138</code>&#x3002;</p>
<p>&#x4E8E;&#x662F;&#x4E0A; WIKIPEDIA &#x641C;&#x7D22;&#x8FD9;&#x4E2A; ip&#xFF0C;&#x5F97;&#x5230;&#x4EE5;&#x4E0B;&#x7ED3;&#x679C;&#xFF1A;</p>
<p><img src="https://oidiotlin.com/content/images/2018/10/wikipedia-1.png" alt="CTF &#x8BD5;&#x9898;&#x521D;&#x4F53;&#x9A8C;" loading="lazy"></p>
<p>&#x53D1;&#x73B0;&#x5728;&#x8BCD;&#x6761; Flag &#x4E0B;&#x6709;&#x4E00;&#x4E2A; diff &#x6765;&#x6E90;&#x4E8E; 128.125.52.138&#xFF0C;&#x67E5;&#x770B;&#x8FD9;&#x4E2A; diff &#x7684;&#x8BE6;&#x60C5;&#xFF1A;</p>
<p><img src="https://oidiotlin.com/content/images/2018/10/wikipedia-2.png" alt="CTF &#x8BD5;&#x9898;&#x521D;&#x4F53;&#x9A8C;" loading="lazy"></p>
<p>&#x5F97;&#x5230; FLAG{cNi76bV2IVERlh97hP}&#xFF01;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[numpy-100，上手numpy的百题斩]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="numpy100">&#x4EC0;&#x4E48;&#x662F; numpy-100&#xFF1F;</h2>
<p><a href="https://github.com/rougier/numpy-100/">numpy-100</a> &#x662F;&#x4E00;&#x4E2A;&#x7EC3;&#x4E60;&#x96C6;&#xFF0C;&#x6765;&#x6E90;&#x4E8E; numpy &#x7684;&#x90AE;&#x4EF6;&#x5217;&#x8868;&#x3001;stackoverflow &#x4EE5;&#x53CA; numpy &#x7684;&#x5B98;&#x65B9;&#x6587;&#x6863;&#x3002;&#x5176;&#x76EE;&#x7684;&#x662F;&#x4E3A;&#x4E86;&#x7ED9;&#x65B0;&#x624B;&#xFF08;&#x5982;&#x679C;&#x8001;&#x73A9;&#x5BB6;&#x4E5F;&#x9700;</p>]]></description><link>https://oidiotlin.com/numpy-100/</link><guid isPermaLink="false">63847a40ff82689f3f5c0618</guid><category><![CDATA[Tech]]></category><dc:creator><![CDATA[Huidong Lin]]></dc:creator><pubDate>Mon, 20 Aug 2018 08:01:37 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2018/08/Konachan-269712-compressed.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="numpy100">&#x4EC0;&#x4E48;&#x662F; numpy-100&#xFF1F;</h2>
<img src="https://oidiotlin.com/content/images/2018/08/Konachan-269712-compressed.jpg" alt="numpy-100&#xFF0C;&#x4E0A;&#x624B;numpy&#x7684;&#x767E;&#x9898;&#x65A9;"><p><a href="https://github.com/rougier/numpy-100/">numpy-100</a> &#x662F;&#x4E00;&#x4E2A;&#x7EC3;&#x4E60;&#x96C6;&#xFF0C;&#x6765;&#x6E90;&#x4E8E; numpy &#x7684;&#x90AE;&#x4EF6;&#x5217;&#x8868;&#x3001;stackoverflow &#x4EE5;&#x53CA; numpy &#x7684;&#x5B98;&#x65B9;&#x6587;&#x6863;&#x3002;&#x5176;&#x76EE;&#x7684;&#x662F;&#x4E3A;&#x4E86;&#x7ED9;&#x65B0;&#x624B;&#xFF08;&#x5982;&#x679C;&#x8001;&#x73A9;&#x5BB6;&#x4E5F;&#x9700;&#x8981;&#x7684;&#x8BDD;&#xFF09;&#x63D0;&#x4F9B;&#x65B9;&#x4FBF;&#x5FEB;&#x6377;&#x7684;&#x67E5;&#x8BE2;&#x53CA;&#x76F8;&#x5173;&#x7EC3;&#x4E60;&#x3002;</p>
<h2 id>&#x5F00;&#x59CB;&#x505A;&#x9898;&#x5427;</h2>
<ol>
<li>&#x5BFC;&#x5165; <code>numpy</code> &#x5305;&#x5E76;&#x547D;&#x540D;&#x4E3A; <code>np</code> (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">import numpy as np
</code></pre>
<ol start="2">
<li>&#x67E5;&#x770B; <code>numpy</code> &#x7248;&#x672C;&#x53CA;&#x914D;&#x7F6E;&#x4FE1;&#x606F; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">print(np.__version__)
np.show_config()
</code></pre>
<ol start="3">
<li>&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A; 10 &#x7EF4;&#x7684;&#x96F6;&#x5411;&#x91CF; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.zeros(10)
print(x)
</code></pre>
<ol start="4">
<li>&#x83B7;&#x53D6;&#x67D0;&#x4E2A; <code>ndarray</code> &#x5360;&#x7528;&#x7684;&#x5185;&#x5B58;&#x5927;&#x5C0F; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.zeros((10, 8))
print(&apos;{0} bytes&apos;.format(x.size * x.itemsize))
</code></pre>
<ol start="5">
<li>&#x5982;&#x4F55;&#x5728;&#x547D;&#x4EE4;&#x884C;&#x4E2D;&#x83B7;&#x53D6; <code>numpy</code> &#x4E2D;&#x67D0;&#x4E2A;&#x51FD;&#x6570;&#x7684;&#x5E2E;&#x52A9;&#x6587;&#x6863; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-bash">python -c &quot;import numpy as np; np.info(np.add)&quot;
</code></pre>
<ol start="6">
<li>&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A; 10 &#x7EF4;&#x7684;&#x96F6;&#x5411;&#x91CF;&#xFF0C;&#x5E76;&#x5C06;&#x5176;&#x7B2C; 5 &#x7EF4;&#x7684;&#x6570;&#x8BBE;&#x4E3A; 1 (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.zeros(10)
x[5] = 1
print(x)
</code></pre>
<ol start="7">
<li>&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A;&#x5411;&#x91CF; [10, 11, ..., 49] (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.arange(10, 50)
print(x)
</code></pre>
<ol start="8">
<li>&#x7FFB;&#x8F6C;&#x4E00;&#x4E2A;&#x5411;&#x91CF;&#xFF08;&#x9996;&#x5C3E;&#x4EA4;&#x6362;&#xFF09;(&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.arange(50)
x = x[::-1]
print(x)

9. &#x5EFA;&#x7ACB;&#x4E00;&#x4E2A; 3&#xD7;3 &#x7684;&#x77E9;&#x9635;&#xFF0C;&#x503C;&#x4E3A; [0, 8] (&#x2605;&#x2606;&#x2606;)

```python
x = np.arange(9).reshape(3, 3)
print(x)
</code></pre>
<ol start="10">
<li>&#x627E;&#x51FA; [1,2,0,0,4,0] &#x4E2D;&#x6240;&#x6709;&#x975E;&#x96F6;&#x6570;&#x7684;&#x4E0B;&#x6807; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">idx = np.nonzero([1,2,0,0,4,0])
print(idx)
</code></pre>
<ol start="11">
<li>&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A; 3&#xD7;3 &#x7684;&#x5355;&#x4F4D;&#x77E9;&#x9635; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.eye(3)
print(x)
</code></pre>
<ol start="12">
<li>&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A; 3&#xD7;3&#xD7;3 &#x7684;&#x968F;&#x673A;&#x6570;&#x7EC4; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.random((3,3,3))
print(x)
</code></pre>
<ol start="13">
<li>&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A; 10&#xD7;10 &#x7684;&#x968F;&#x673A;&#x77E9;&#x9635;&#xFF0C;&#x5E76;&#x627E;&#x51FA;&#x5176;&#x4E2D;&#x7684;&#x6700;&#x5927;&#x503C;&#x548C;&#x6700;&#x5C0F;&#x503C; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.random((10,10))
xmin, xmax = x.min(), x.max()
print(xmin, xmax)
</code></pre>
<ol start="14">
<li>&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A; 30 &#x7EF4;&#x7684;&#x968F;&#x673A;&#x5411;&#x91CF;&#xFF0C;&#x5E76;&#x8BA1;&#x7B97;&#x5747;&#x503C; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.random(30)
xmean = x.mean()
print(xmean)
</code></pre>
<ol start="15">
<li>&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A;&#x77E9;&#x9635;&#xFF0C;&#x6700;&#x5916;&#x5C42;&#x4E3A; 1&#xFF0C;&#x5185;&#x90E8;&#x7528; 0 &#x586B;&#x5145; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.ones((10,10))
x[1:-1, 1:-1] = 0
print(x)
</code></pre>
<ol start="16">
<li>&#x4E3A;&#x67D0;&#x4E2A;&#x6570;&#x7EC4;&#x6DFB;&#x52A0; padding (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.random((5,5))
x = np.pad(x, pad_width=1, mode=&apos;constant&apos;, constant_values=0)
print(x)
</code></pre>
<ol start="17">
<li>&#x4E0B;&#x5217;&#x8868;&#x8FBE;&#x5F0F;&#x7684;&#x503C;&#x662F;&#x4EC0;&#x4E48;&#xFF1F;(&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">print(0 * np.nan)                 # nan
print(np.nan == np.nan)           # False
print(np.inf &gt; np.nan)            # False
print(np.nan - np.nan)            # nan
print(0.3 == 3 * 0.1)             # False
</code></pre>
<ol start="18">
<li>&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A; 5&#xD7;5 &#x7684;&#x96F6;&#x77E9;&#x9635;&#xFF0C;&#x5BF9;&#x89D2;&#x7EBF;&#x4E0B;&#x65B9;&#x7684;&#x503C;&#x4E3A; 1,2,3,4 (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.diag(np.arange(1,5), k=-1)
print(x)
</code></pre>
<ol start="19">
<li>&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A; 0-1 &#x77E9;&#x9635;&#xFF0C;&#x6309;&#x56FD;&#x9645;&#x8C61;&#x68CB;&#x68CB;&#x76D8;&#x4E00;&#x6837;&#x4EA4;&#x9519;&#x5206;&#x5E03; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.zeros((13,13))
x[1::2, ::2] = 1
x[::2, 1::2] = 1
print(x)
</code></pre>
<ol start="20">
<li>&#x5728;&#x4E00;&#x4E2A; 6&#xD7;7&#xD7;8 &#x7684;&#x6570;&#x7EC4;&#x4E2D;&#xFF0C;&#x7B2C; 100 &#x4E2A;&#x6570;&#x7684;&#x4E0B;&#x6807; (x,y,z) &#x662F;&#x591A;&#x5C11;&#xFF1F;(&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">print(np.unravel_index(99, (6,7,8)))
</code></pre>
<ol start="21">
<li>&#x7528; <code>np.tile()</code> &#x5EFA;&#x7ACB;&#x4E00;&#x4E2A;&#x6309;&#x56FD;&#x9645;&#x8C61;&#x68CB;&#x68CB;&#x76D8;&#x4E00;&#x6837;&#x4EA4;&#x9519;&#x5206;&#x5E03;&#x7684; 0-1 &#x77E9;&#x9635; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.tile(np.array([0,1],[1,0]), (4,4))
</code></pre>
<ol start="22">
<li>&#x5F52;&#x4E00;&#x5316;&#x4E00;&#x4E2A;&#x968F;&#x673A;&#x77E9;&#x9635; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.random((5,5))
xmin, xmax = x.min(), x.max()
x = (x-xmin)/(xmax-xmin)
print(x)
</code></pre>
<ol start="23">
<li>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x81EA;&#x5B9A;&#x4E49;&#x7684; <code>dtype</code>&#xFF0C;&#x8868;&#x793A; RGBA &#x989C;&#x8272; (4 unsigned bytes) (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">rgba_color = np.dtype([(&quot;r&quot;, np.ubyte, 1),
                       (&quot;g&quot;, np.ubyte, 1),
                       (&quot;b&quot;, np.ubyte, 1),
                       (&quot;a&quot;, np.ubyte, 1)])
print(rgba_color)
</code></pre>
<ol start="24">
<li>&#x8BA1;&#x7B97;&#x77E9;&#x9635;&#x4E58;&#x79EF; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">print(np.dot(np.ones((5,3)), np.ones((3,2))))   # solution A
print(np.ones((4,3)) @ np.ones((3,2)))          # solution B in python35 and later
</code></pre>
<ol start="25">
<li>&#x5C06;&#x5411;&#x91CF;&#x4E2D;&#x6240;&#x6709;&#x5904;&#x4E8E; [3,8] &#x533A;&#x95F4;&#x5185;&#x7684;&#x6570;&#x53D6;&#x5176;&#x76F8;&#x53CD;&#x6570; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.arange(16)
x[(3 &lt;= x) &amp; (x &lt;= 8)] *= -1
print(x)
</code></pre>
<ol start="26">
<li>&#x4EE5;&#x4E0B;&#x7A0B;&#x5E8F;&#x4F1A;&#x8F93;&#x51FA;&#x4EC0;&#x4E48;&#xFF1F;(&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">print(sum(range(5),-1))      # 9
from numpy import *          # import numpy.sum
print(sum(range(5),-1))      # 10
</code></pre>
<ol start="27">
<li>&#x5982;&#x679C; <code>x</code> &#x662F;&#x4E2A;&#x6574;&#x578B;&#x5411;&#x91CF;&#xFF0C;&#x90A3;&#x4E48;&#x4EE5;&#x4E0B;&#x54EA;&#x4E9B;&#x8868;&#x8FBE;&#x5F0F;&#x662F;&#x5408;&#x6CD5;&#x7684;&#xFF1F;(&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x**x             # legal
2 &lt;&lt; x &gt;&gt; 2      # illegal
x &lt;- x           # legal
1j*x             # legal
x/1/1            # legal
x&lt;x&gt;x            # illegal
</code></pre>
<ol start="28">
<li>&#x4EE5;&#x4E0B;&#x8868;&#x8FBE;&#x5F0F;&#x7684;&#x7ED3;&#x679C;&#x662F;&#xFF1F;(&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">print(np.array(0) / np.array(0))                        # nan
print(np.array(0) // np.array(0))                       # 0
print(np.array([np.nan]).astype(int).astype(float))     # [-9.22337204e+18]
</code></pre>
<ol start="29">
<li>&#x5982;&#x4F55;&#x56DB;&#x820D;&#x4E94;&#x5165;&#xFF1F;(&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.uniform(-10,+10,10)
print (np.copysign(np.ceil(np.abs(x)), x))
</code></pre>
<ol start="30">
<li>&#x627E;&#x5230;&#x4E24;&#x4E2A;&#x6570;&#x7EC4;&#x4E2D;&#x516C;&#x6709;&#x7684;&#x6570; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">x1 = np.random.randint(0,10,10)
x2 = np.random.randint(0,10,10)
print(x1,x2)
print(np.intersect1d(x1,x2))
</code></pre>
<ol start="31">
<li>&#x5982;&#x4F55;&#x5173;&#x95ED; numpy &#x7684;&#x8B66;&#x544A;&#xFF1F;(&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">with np.errstate(divide=&apos;ignore&apos;):
    x = np.ones(1) / 0
</code></pre>
<ol start="32">
<li>&#x8FD9;&#x4E2A;&#x8868;&#x8FBE;&#x5F0F;&#x4E3A; <code>True</code> &#x5417;&#xFF1F;(&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">np.sqrt(-1) == np.emath.sqrt(-1)        # False
</code></pre>
<ol start="33">
<li>&#x5982;&#x4F55;&#x83B7;&#x53D6;&#x6628;&#x5929;&#x3001;&#x4ECA;&#x5929;&#x3001;&#x660E;&#x5929;&#x7684;&#x65E5;&#x671F;&#xFF1F;(&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">yesterday = np.datetime64(&apos;today&apos;, &apos;D&apos;) - np.timedelta64(1, &apos;D&apos;)
today     = np.datetime64(&apos;today&apos;, &apos;D&apos;)
tomorrow  = np.datetime64(&apos;today&apos;, &apos;D&apos;) + np.timedelta64(1, &apos;D&apos;)
</code></pre>
<ol start="34">
<li>&#x5982;&#x4F55;&#x83B7;&#x5F97; 2018 &#x5E74; 8 &#x6708;&#x7684;&#x6240;&#x6709;&#x65E5;&#x671F;&#xFF1F;(&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">dates = np.arange(&apos;2018-08&apos;, &apos;2018-09&apos;, dtype=&apos;datetime64[D]&apos;)
print(dates)
</code></pre>
<ol start="35">
<li>&#x5982;&#x4F55;&#x5373;&#x65F6;&#x8BA1;&#x7B97;&#xFF08;&#x65E0;&#x9700;&#x62F7;&#x8D1D;&#x5730;&#xFF09;\((a+b)\cdot(-a/2)\) ? (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">a = np.random.random(3)
b = np.random.random(3)
np.add(a, b, out=b)
np.negative(a, out=a)
np.divide(a, 2, out=a)
np.multiply(a, b, out=a)
print(a)
</code></pre>
<ol start="36">
<li>&#x4E3A;&#x4E00;&#x4E2A;&#x968F;&#x673A;&#x5411;&#x91CF;&#x53D6;&#x5176;&#x6574;&#x6570;&#x90E8;&#x5206;&#xFF08;5&#x79CD;&#x65B9;&#x6CD5;&#xFF09;(&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.random(6) * 10
print(x)
print(x - x%1)
print(np.floor(x))
print(np.ceil(x) - 1)
print(x.astype(int))
print(np.trunc(x))
</code></pre>
<ol start="37">
<li>&#x521B;&#x5EFA;&#x4E00;&#x4E2A; 5 &#x9636;&#x77E9;&#x9635;&#xFF0C;&#x6BCF;&#x884C;&#x4E0A;&#x7684;&#x6570;&#x503C;&#x90FD;&#x662F; 0 &#x5230; 4 (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.zeros((5,5))
x += np.arange(5)
print(x)
</code></pre>
<ol start="38">
<li>&#x4F7F;&#x7528;&#x751F;&#x6210;&#x5668;&#xFF08;<code>generator</code>&#xFF09;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x5411;&#x91CF; (&#x2605;&#x2606;&#x2606;)</li>
</ol>
<pre><code class="language-python">def gen():
    for i in range(10):
        yield i

x = np.fromiter(gen(), dtype=int, count=-1)
print(x)
</code></pre>
<ol start="39">
<li>&#x521B;&#x5EFA;&#x4E00;&#x4E2A; 10 &#x7EF4;&#x5411;&#x91CF;&#xFF0C;&#x5747;&#x5206;&#x533A;&#x95F4; \((0, 1)\) &#x4E0A; (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.linspace(0, 1, 11, endpoint=False)[1:]
print(x)
</code></pre>
<ol start="40">
<li>&#x521B;&#x5EFA; 10 &#x7EF4;&#x968F;&#x673A;&#x5411;&#x91CF;&#xFF0C;&#x5E76;&#x5347;&#x5E8F;&#x6392;&#x5E8F; (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.random(10)
x.sort()
print(x)
</code></pre>
<ol start="41">
<li>&#x5F53; <code>darray</code> &#x5F88;&#x5C0F;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x5982;&#x4F55;&#x66F4;&#x5FEB;&#x5730;&#x6C42;&#x548C;&#xFF1F;&#xFF08;&#x6BD4; <code>np.sum</code> &#x5FEB;&#xFF09;(&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.random(5)
print(np.add.reduce(x))
</code></pre>
<ol start="42">
<li>&#x5BF9;&#x4E8E;&#x4E24;&#x4E2A;&#x968F;&#x673A;&#x5411;&#x91CF;&#xFF0C;&#x5224;&#x65AD;&#x5176;&#x662F;&#x5426;&#x76F8;&#x7B49; (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python"># x = np.random.randint(0, 2, 5)
# y = np.random.randint(0, 2, 5)
x = np.array([1,2,3,4,5, 5.999999])
y = np.array([1,2,3,4,5,6])
print(np.allclose(x, y))        # True, &#x5141;&#x8BB8;&#x8BEF;&#x5DEE;
print(np.array_equal(x, y))     # False, &#x4E0D;&#x5141;&#x8BB8;&#x8BEF;&#x5DEE;
</code></pre>
<ol start="43">
<li>&#x4F7F;&#x4E00;&#x4E2A;&#x6570;&#x7EC4;&#x53EA;&#x8BFB; (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.random(6)
x.flags.writeable = False
x[0] = 0
</code></pre>
<ol start="44">
<li>&#x6709;&#x4E00;&#x4E2A; 10&#xD7;2 &#x7684;&#x77E9;&#x9635;&#xFF0C;&#x4FDD;&#x5B58;&#x4E86; 10 &#x4E2A;&#x7B1B;&#x5361;&#x5C14;&#x5750;&#x6807;&#xFF0C;&#x628A;&#x5B83;&#x4EEC;&#x8F6C;&#x5316;&#x6210;&#x6781;&#x5750;&#x6807; (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">cardesian = np.random.random((10, 2))
x, y = cardesian[:, 0], cardesian[:, 1]
rho = np.sqrt(x**2 + y**2)
theta = np.arctan2(y, x)
polar = np.dstack((rho, theta))[0]
print(polar)
</code></pre>
<ol start="45">
<li>&#x628A;&#x6570;&#x7EC4;&#x4E2D;&#x6700;&#x5927;&#x7684;&#x90A3;&#x4E2A;&#x6570;&#x66FF;&#x6362;&#x4E3A; 0 (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.random(10)
x[x.argmax()] = 0
print(x)
</code></pre>
<ol start="46">
<li>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x7ED3;&#x6784;&#x5316;&#x6570;&#x7EC4;&#xFF0C;&#x5176; x &#x548C; y &#x5750;&#x6807;&#x8986;&#x76D6; \([0,1]\times [0,1]\) &#x533A;&#x57DF; (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">coordinates = np.zeros((11, 11), [(&apos;x&apos;, float), (&apos;y&apos;, float)])
coordinates[&apos;x&apos;], coordinates[&apos;y&apos;] = np.meshgrid(np.linspace(0, 1, 11),
                                                 np.linspace(0, 1, 11))
print(coordinates)
</code></pre>
<ol start="47">
<li>&#x5DF2;&#x77E5;&#x4E24;&#x4E2A;&#x5411;&#x91CF; \(\vec{x}, \vec{y}\)&#xFF0C;&#x6C42;&#x5B83;&#x4EEC;&#x7684;&#x67EF;&#x897F;&#x77E9;&#x9635; \(\bf{C}\) (\(\bf{C}_{ij} = \frac{1}{x_i - y_j}\)) (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.random(10)
y = np.random.random(10)
C = 1.0 / np.subtract.outer(x, y)
print(C)
</code></pre>
<ol start="48">
<li>&#x67E5;&#x8BE2;&#x5404;&#x4E2A; <code>dtype</code> &#x7684;&#x6700;&#x5927;&#x6700;&#x5C0F;&#x503C;&#x4EE5;&#x53CA;&#x7CBE;&#x5EA6; (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">for dtype in [np.int8, np.int32, np.int64]:
    print(dtype)
    print(np.iinfo(dtype).min)
    print(np.iinfo(dtype).max)
for dtype in [np.float32, np.float64]:
    print(dtype)
    print(np.finfo(dtype).min)
    print(np.finfo(dtype).max)
    print(np.finfo(dtype).eps)
</code></pre>
<ol start="49">
<li>&#x6253;&#x5370;&#x6574;&#x4E2A; <code>darray</code> (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">np.set_printoptions(threshold=np.nan)
x = np.ones((32,32))
print(x)
</code></pre>
<ol start="50">
<li>&#x627E;&#x5230;&#x6570;&#x7EC4;&#x4E2D;&#x6700;&#x63A5;&#x8FD1;&#x7ED9;&#x5B9A; key &#x7684;&#x6570; (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">x = np.random.randint(20, size=(20))
print(x)
key = np.random.uniform(0, 20)
print(key)
idx = np.abs(key-x).argmin()
print(x[idx])
</code></pre>
<ol start="51">
<li>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x7ED3;&#x6784;&#x5316;&#x7684;&#x6570;&#x7EC4;&#x8868;&#x793A;&#x5750;&#x6807; (x,y) &#x548C;&#x989C;&#x8272; (r,g,b) (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">foo = np.zeros(10, [(&apos;coordinate&apos;, [(&apos;x&apos;, float, 1),
                                    (&apos;y&apos;, float, 1)]),
                    (&apos;color&apos;, [(&apos;r&apos;, float, 1),
                               (&apos;g&apos;, float, 1),
                               (&apos;b&apos;, float, 1)])])
print(foo)
</code></pre>
<ol start="52">
<li>&#x7ED9;&#x5B9A;&#x4E00;&#x4E2A;&#x968F;&#x673A; (100&#xD7;2) &#x7684;&#x6570;&#x636E;&#xFF0C;&#x8868;&#x793A;&#x5E73;&#x9762;&#x4E0A;&#x7684; 100 &#x4E2A;&#x70B9;&#xFF0C;&#x6C42;&#x5B83;&#x4EEC;&#x4E4B;&#x95F4;&#x7684;&#x8DDD;&#x79BB;&#x3002; (&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">Z = np.random.random((10,2))
X,Y = np.atleast_2d(Z[:,0], Z[:,1])
D = np.sqrt( (X-X.T)**2 + (Y-Y.T)**2)
print(D)

# Much faster with scipy
import scipy
# Thanks Gavin Heverly-Coulson (#issue 1)
import scipy.spatial

Z = np.random.random((10,2))
D = scipy.spatial.distance.cdist(Z,Z)
print(D)
</code></pre>
<ol start="53">
<li>&#x5C06; <code>float32</code> &#x7684;&#x6570;&#x7EC4; in place &#x5730;&#x8F6C;&#x5316;&#x6210; <code>int32</code> &#x7684;&#x6570;&#x7EC4;&#x3002;</li>
</ol>
<pre><code class="language-python">x = np.random.random((2,3), dtype=np.float32)
x = x.astype(np.int32, copy=False)
print(x)
</code></pre>
<ol start="54">
<li>&#x5982;&#x4F55;&#x8BFB;&#x5165;&#x4EE5;&#x4E0B;&#x6587;&#x4EF6;&#xFF1F;(&#x2605;&#x2605;&#x2606;)</li>
</ol>
<pre><code class="language-python">from io import StringIO
# Fake file
s = StringIO(&quot;&quot;&quot;1, 2, 3, 4, 5\n
                6,  ,  , 7, 8\n
                 ,  , 9,10,11\n&quot;&quot;&quot;)
                 
# solution
x = np.genfromtext(s, delimiter=&apos;,&apos;, dtype=np.int)
</code></pre>
<p>Continue...</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Fedora 安装并破解 StarUML 2.8.1]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x793A;&#x4F8B;&#x7CFB;&#x7EDF;&#x73AF;&#x5883;</h2>
<ul>
<li>Fedora 27</li>
<li>x86_64</li>
</ul>
<h2 id>&#x4F60;&#x9700;&#x8981;&#x51C6;&#x5907;</h2>
<ul>
<li>&#x4E0B;&#x8F7D; <a href="http://staruml.io/download/">StarUML</a> &#xFF0C;&#x8FD9;&#x91CC;&#x4EE5; <code>StarUML-v2.8.1-64-bit.deb</code> &#x4E3A;&#x4F8B;&#x3002;</li>
<li>&#x4E0B;&#x8F7D; <a href="http://download.opensuse.org/repositories/openSUSE:/Evergreen:/11.2/standard/x86_64/libgcrypt11-1.4.4-5.1.x86_64.rpm">libgcrypt</a>&#x3002;</li>
</ul>
<h2 id="staruml">&#x5B89;&#x88C5; StarUML</h2>
<h3 id="deb">&#x89E3;&#x538B; deb</h3>
<pre><code class="language-bash">ar vx ./StarUML-v2.8.1-64-bit.deb
tar -xf ./data.tar.xz</code></pre>]]></description><link>https://oidiotlin.com/install-and-crack-staruml-on-fedora/</link><guid isPermaLink="false">63847a40ff82689f3f5c0617</guid><category><![CDATA[Tech]]></category><dc:creator><![CDATA[Huidong Lin]]></dc:creator><pubDate>Wed, 18 Apr 2018 04:09:54 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2018/04/Konachan-263705.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x793A;&#x4F8B;&#x7CFB;&#x7EDF;&#x73AF;&#x5883;</h2>
<ul>
<li>Fedora 27</li>
<li>x86_64</li>
</ul>
<h2 id>&#x4F60;&#x9700;&#x8981;&#x51C6;&#x5907;</h2>
<ul>
<li>&#x4E0B;&#x8F7D; <a href="http://staruml.io/download/">StarUML</a> &#xFF0C;&#x8FD9;&#x91CC;&#x4EE5; <code>StarUML-v2.8.1-64-bit.deb</code> &#x4E3A;&#x4F8B;&#x3002;</li>
<li>&#x4E0B;&#x8F7D; <a href="http://download.opensuse.org/repositories/openSUSE:/Evergreen:/11.2/standard/x86_64/libgcrypt11-1.4.4-5.1.x86_64.rpm">libgcrypt</a>&#x3002;</li>
</ul>
<h2 id="staruml">&#x5B89;&#x88C5; StarUML</h2>
<h3 id="deb">&#x89E3;&#x538B; deb</h3>
<pre><code class="language-bash">ar vx ./StarUML-v2.8.1-64-bit.deb
tar -xf ./data.tar.xz
</code></pre>
<h3 id>&#x89E3;&#x51B3;&#x4E00;&#x4E9B;&#x4F9D;&#x8D56;&#x95EE;&#x9898;</h3>
<pre><code class="language-bash">sudo dnf install binutils systemd-libs
rpm -Uvh libgcrypt11-1.4.4-5.1.x86_64.rpm
</code></pre>
<img src="https://oidiotlin.com/content/images/2018/04/Konachan-263705.jpg" alt="Fedora &#x5B89;&#x88C5;&#x5E76;&#x7834;&#x89E3; StarUML 2.8.1"><p>&#x5982;&#x679C;&#x4E0D;&#x5B58;&#x5728; <code>/usr/lib64/libudev.so.0</code>&#xFF0C;&#x90A3;&#x4E48;&#x505A;&#x4E00;&#x4E2A;&#x94FE;&#x63A5;&#xFF1A;</p>
<pre><code class="language-bash">sudo ln -s /usr/lib64/libudev.so.1 /usr/lib64/libudev.so.0
</code></pre>
<h3 id>&#x62F7;&#x8D1D;&#x6587;&#x4EF6;</h3>
<pre><code class="language-bash">sudo cp -rf opt/staruml/ /opt/
sudo cp -rf usr/share/doc/staruml/ /usr/share/doc/
sudo cp -rf usr/share/icons/hicolor/ /usr/share/icons/
</code></pre>
<h3 id>&#x521B;&#x5EFA;&#x542F;&#x52A8;&#x7B26;&#x53F7;&#x94FE;&#x63A5;</h3>
<pre><code class="language-shell">sudo ln -s /opt/staruml/staruml /usr/bin
</code></pre>
<h3 id>&#x521B;&#x5EFA;&#x542F;&#x52A8;&#x56FE;&#x6807;</h3>
<p>&#x5728; <code>/usr/share/applications</code> &#x76EE;&#x5F55;&#x4E0B;&#x521B;&#x5EFA;&#x6587;&#x4EF6; <code>StarUML.desktop</code>&#xFF0C;&#x5411;&#x5176;&#x5199;&#x5165;&#xFF1A;</p>
<pre><code class="language-plain-text">[Desktop Entry]
Name=StarUml
Comment=Uml Modeling tool
TryExec=/usr/bin/staruml
Exec=/usr/bin/staruml
Icon=/opt/staruml/appshell256.png
Type=Application
Categories=Development;GNOME;GTK
StartupNotify=true
</code></pre>
<p>&#x81F3;&#x6B64;&#x4E3A;&#x6B62;&#xFF0C;&#x5DF2;&#x7ECF;&#x53EF;&#x4EE5;&#x5728;&#x684C;&#x9762;&#x5E94;&#x7528;&#x4E2D;&#x627E;&#x5230; StarUML &#x5E76;&#x542F;&#x52A8;&#x5B83;&#x4E86;&#x3002;</p>
<h2 id>&#x5F00;&#x59CB;&#x7834;&#x89E3;&#x5427;&#xFF01;</h2>
<p>&#x5B89;&#x88C5;&#x6210;&#x529F;&#x540E;&#xFF0C;&#x4FEE;&#x6539; <code>StarUML/www/license/node/LicenseManagerDomain.js</code>&#x3002;</p>
<p>&#x4FEE;&#x6539;&#x5176;&#x4E2D;&#x7684; <code>validate(PK, name, product, licenseKey)</code> &#x51FD;&#x6570;&#xFF0C; &#x5E76;&#x4FDD;&#x5B58;&#x6587;&#x4EF6;&#xFF1A;</p>
<pre><code class="language-javascript">function validate(PK, name, product, licenseKey) {
    return {
        name: &quot;OIdiotLin&quot;,
        product: &quot;StarUML&quot;,
        licenseType: &quot;vip&quot;,
        quantity: &quot;unlimited&quot;,
        licenseKey: &quot;lmmnb!!!&quot;
    }
}
</code></pre>
<p>&#x6253;&#x5F00; StarUML&#xFF0C;&#x5728; <code>Help &gt; Enter License...</code> &#x4E2D;&#x8F93;&#x5165; <code>name</code> &#x548C; <code>licenseKey</code> &#xFF08;&#x5982;&#x672C;&#x4F8B;&#x4E2D;&#x7684; &quot;OIdiotLin&quot; &#x548C; &quot;lmmnb!!!&quot;&#xFF09;&#x3002;</p>
<p><img src="https://oidiotlin.com/content/images/2018/04/staruml-screenshot.png" alt="Fedora &#x5B89;&#x88C5;&#x5E76;&#x7834;&#x89E3; StarUML 2.8.1" loading="lazy"></p>
<p>&#x6CE8;&#x518C;&#x6210;&#x529F;&#xFF0C;&#x7ED3;&#x675F;&#x64CD;&#x4F5C;&#x3002;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[在 pytorch 中建立自己的图片数据集]]></title><description><![CDATA[通常情况下，待处理的图片数据有两种存放方式： 所有图片在同一目录下，另有一份文本文件记录了标签。 不同标签的图片放在不同目录下，文件夹名就是标签。 对于这两种情况，我们有不同的解决方法。]]></description><link>https://oidiotlin.com/create-custom-dataset-in-pytorch/</link><guid isPermaLink="false">63847a40ff82689f3f5c0616</guid><category><![CDATA[Tech]]></category><category><![CDATA[Machine Learning]]></category><dc:creator><![CDATA[Huidong Lin]]></dc:creator><pubDate>Tue, 27 Feb 2018 01:57:57 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2018/02/pytorch-custom-dataset.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h3 id>&#x76EE;&#x5F55;</h3>
<ul>
<li><a href="#one-directory">&#x56FE;&#x7247;&#x6587;&#x4EF6;&#x5728;&#x540C;&#x4E00;&#x76EE;&#x5F55;&#x4E0B;</a></li>
<li><a href="#multi-directories">&#x56FE;&#x7247;&#x6587;&#x4EF6;&#x5728;&#x4E0D;&#x540C;&#x76EE;&#x5F55;&#x4E0B;</a></li>
</ul>
<hr>
<img src="https://oidiotlin.com/content/images/2018/02/pytorch-custom-dataset.jpg" alt="&#x5728; pytorch &#x4E2D;&#x5EFA;&#x7ACB;&#x81EA;&#x5DF1;&#x7684;&#x56FE;&#x7247;&#x6570;&#x636E;&#x96C6;"><p>&#x901A;&#x5E38;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x5F85;&#x5904;&#x7406;&#x7684;&#x56FE;&#x7247;&#x6570;&#x636E;&#x6709;&#x4E24;&#x79CD;&#x5B58;&#x653E;&#x65B9;&#x5F0F;&#xFF1A;</p>
<ul>
<li>&#x6240;&#x6709;&#x56FE;&#x7247;&#x5728;<strong>&#x540C;&#x4E00;&#x76EE;&#x5F55;</strong>&#x4E0B;&#xFF0C;&#x53E6;&#x6709;&#x4E00;&#x4EFD;&#x6587;&#x672C;&#x6587;&#x4EF6;&#x8BB0;&#x5F55;&#x4E86;&#x6807;&#x7B7E;&#x3002;</li>
<li>&#x4E0D;&#x540C;&#x6807;&#x7B7E;&#x7684;&#x56FE;&#x7247;&#x653E;&#x5728;<strong>&#x4E0D;&#x540C;&#x76EE;&#x5F55;</strong>&#x4E0B;&#xFF0C;&#x6587;&#x4EF6;&#x5939;&#x540D;&#x5C31;&#x662F;&#x6807;&#x7B7E;&#x3002;</li>
</ul>
<p>&#x5BF9;&#x4E8E;&#x8FD9;&#x4E24;&#x79CD;&#x60C5;&#x51B5;&#xFF0C;&#x6211;&#x4EEC;&#x6709;&#x4E0D;&#x540C;&#x7684;&#x89E3;&#x51B3;&#x65B9;&#x6CD5;&#x3002;</p>
<h3 id="aclassmyanchornameonedirectorya"><a class="my-anchor" name="one-directory"></a>&#x56FE;&#x7247;&#x6587;&#x4EF6;&#x5728;&#x540C;&#x4E00;&#x76EE;&#x5F55;&#x4E0B;</h3>
<p>&#x5047;&#x8BBE;&#x5728; <code>./data/</code> &#x76EE;&#x5F55;&#x4E0B;&#x6709;&#x6240;&#x9700;&#x7684;&#x6240;&#x6709;&#x7684;&#x56FE;&#x7247;&#xFF0C;&#x4EE5;&#x53CA;&#x4E00;&#x4EFD;&#x6807;&#x8BB0;&#x4E86;&#x56FE;&#x7247;&#x6807;&#x7B7E;&#x7684;&#x6587;&#x672C;&#x6587;&#x4EF6;&#xFF08;&#x5217;&#x4E3A;&#x56FE;&#x7247;&#x8DEF;&#x5F84;+&#x6807;&#x7B7E;&#xFF09;<code>./labels.txt</code></p>
<pre><code class="language-plain-text">./data/IZvVCYcuOkcu6Ufj.jpg 0
./data/2wuPp4yYoc2wJbZI.jpg 0
./data/vzlBbG4Z1KKJ4P6L.jpg 1
./data/nR8VZBPbjF92wNGC.jpg 2
......
</code></pre>
<p>&#x601D;&#x8DEF;&#x662F;&#x7EE7;&#x627F; <code>torch.utils.data.Dataset</code>&#xFF0C;&#x5E76;&#x91CD;&#x70B9;&#x91CD;&#x5199;&#x5176; <code>__getitem__</code> &#x65B9;&#x6CD5;&#xFF0C;&#x793A;&#x4F8B;&#x4EE3;&#x7801;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre><code class="language-python">class CustomDataset(Dataset):
    def __init__(self, label_file_path):
        with open(label_file_path, &apos;r&apos;) as f:
            # (image_path(str), image_label(str))
            self.imgs = list(map(lambda line: line.strip().split(&apos; &apos;), f))
    
    def __getitem__(self, index):
        path, label = self.imgs[index]
        img = transforms.Compose([transforms.Scale(224),
                                  transforms.CenterCrop(224),
                                  transforms.ToTensor(),])(Image.open(path).convert(&apos;RGB&apos;))
        label = int(label)
        return img, label
    
    def __len__(self):
        return len(self.imgs)

dataset = CustomDataset(&apos;./labels.txt&apos;)
loader = DataLoader(dataset, batch_size=64, shuffle=True)
</code></pre>
<p>&#x81F3;&#x6B64;&#xFF0C;&#x53EF;&#x4EE5;&#x7528; <code>enumerate(loader)</code> &#x7684;&#x65B9;&#x5F0F;&#x8FED;&#x4EE3;&#x6570;&#x636E;&#x4E86;&#x3002;&#x9700;&#x8981;&#x6CE8;&#x610F;&#x7684;&#x662F;&#xFF0C;&#x5728; <code>__getitem__</code> &#x65F6;&#x8981;&#x786E;&#x4FDD; <strong>batch &#x5185;&#x56FE;&#x7247;&#x5C3A;&#x5BF8;&#x76F8;&#x540C;</strong>&#xFF08;&#x4E0A;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x7528;&#x4E86; Scale+CenterCrop &#x7684;&#x65B9;&#x6CD5;&#xFF09;&#xFF0C;&#x5426;&#x5219;&#x4F1A;&#x51FA;&#x73B0; <code>RuntimeError: inconsistent tensor sizes at ...</code> &#x7684;&#x9519;&#x8BEF;&#x3002;</p>
<h3 id="aclassmyanchornamemultidirectoriesa"><a class="my-anchor" name="multi-directories"></a>&#x56FE;&#x7247;&#x6587;&#x4EF6;&#x5728;&#x4E0D;&#x540C;&#x76EE;&#x5F55;&#x4E0B;</h3>
<p>&#x5F53;&#x56FE;&#x7247;&#x6587;&#x4EF6;&#x4F9D;&#x636E; label &#x5904;&#x4E8E;&#x4E0D;&#x540C;&#x6587;&#x4EF6;&#x4E0B;&#x65F6;&#xFF0C;&#x5982;&#xFF1A;</p>
<pre><code class="language-plain-text">&#x2500;&#x2500;&#x2500; data
 &#xA0;&#xA0; &#x251C;&#x2500;&#x2500; &#x867E;&#x997A;
 &#xA0;&#xA0; &#x2502;&#xA0;&#xA0; &#x251C;&#x2500;&#x2500; 00856315f0df13536183d8ae6cbaf8d6a54f37ce.jpg
 &#xA0;&#xA0; &#x2502;&#xA0;&#xA0; &#x2514;&#x2500;&#x2500; 00ce9dccdf9a218d3b891e006c81f8e66524b1b3.jpg
 &#xA0;&#xA0; &#x251C;&#x2500;&#x2500; &#x516B;&#x5B9D;&#x7CA5;
 &#xA0;&#xA0; &#x2502;&#xA0;&#xA0; &#x251C;&#x2500;&#x2500; 055133235f649411e599ce5dba83627d58996209.jpg
 &#xA0;&#xA0; &#x2502;&#xA0;&#xA0; &#x2514;&#x2500;&#x2500; 0a72473884cb6c03191ca929a9aa0b2bbe4abb3d.jpg
 &#xA0;&#xA0; &#x2514;&#x2500;&#x2500; &#x94B5;&#x4ED4;&#x7CD5;
 &#xA0;&#xA0;  &#xA0;&#xA0; &#x251C;&#x2500;&#x2500; 1237b1e7b7e7da0ac78f9e1c8317b9462fe92803.jpg
 &#xA0;&#xA0;  &#xA0;&#xA0; &#x2514;&#x2500;&#x2500; 14a7d6c1a881d1dcfe855bf783064ad2c9d5aba4.jpg
</code></pre>
<p>&#x6B64;&#x65F6;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5229;&#x7528; <code>torchvision.datasets.ImageFolder</code> &#x6765;&#x76F4;&#x63A5;&#x6784;&#x9020;&#x51FA; dataset&#xFF0C;&#x4EE3;&#x7801;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre><code class="language-python">dataset = ImageFolder(path)
loader = DataLoader(dataset)
</code></pre>
<p>ImageFolder &#x4F1A;&#x5C06;&#x76EE;&#x5F55;&#x4E2D;&#x7684;&#x6587;&#x4EF6;&#x5939;&#x540D;&#x81EA;&#x52A8;&#x8F6C;&#x5316;&#x6210;&#x5E8F;&#x5217;&#xFF0C;&#x90A3;&#x4E48; <code>loader</code> &#x8F7D;&#x5165;&#x65F6;&#xFF0C;&#x6807;&#x7B7E;&#x5C31;&#x662F;&#x6574;&#x6570;&#x5E8F;&#x5217;&#x4E86;&#x3002;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[使用 Spatial Pyramid Pooling 让 CNN 接受可变尺寸的图像]]></title><description><![CDATA[在传统 CNN 中，由于 Fully-Connected 层的存在，输入图像的尺寸受到了严格限制。通常情况下，我们需要对原始图片进行裁剪（crop）或变形（warp）的操作来调整其尺寸使其适配于 CNN。然而裁剪过的图片可能包含不了所需的所有信息，而改变纵横比的变形操作也可能会使关键部分产生非期望的形变。由于图片内容的丢失或失真，模型的准确度会受到很大的影响。]]></description><link>https://oidiotlin.com/sppnet-tutorial/</link><guid isPermaLink="false">63847a40ff82689f3f5c0615</guid><category><![CDATA[Tech]]></category><category><![CDATA[Machine Learning]]></category><dc:creator><![CDATA[Huidong Lin]]></dc:creator><pubDate>Fri, 16 Feb 2018 12:15:10 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2018/02/low-poly-egypt.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h3 id>&#x76EE;&#x5F55;</h3>
<ul>
<li><a href="#technical-issue">&#x4F20;&#x7EDF; CNN &#x7684;&#x5F0A;&#x7AEF;</a></li>
<li><a href="#sppnet-overview">SPP-Net &#x6982;&#x8FF0;</a></li>
<li><a href="#sppnet-architecture">SPP-Net &#x7ED3;&#x6784;&#x7EC6;&#x8282;</a></li>
<li><a href="#sppnet-training">SPP-Net &#x8BAD;&#x7EC3;&#x65B9;&#x6CD5;</a></li>
<li><a href="#pytorch-implementation">&#x5728; pytorch &#x6846;&#x67B6;&#x4E2D;&#x5B9E;&#x73B0; SPP</a></li>
</ul>
<img src="https://oidiotlin.com/content/images/2018/02/low-poly-egypt.jpg" alt="&#x4F7F;&#x7528; Spatial Pyramid Pooling &#x8BA9; CNN &#x63A5;&#x53D7;&#x53EF;&#x53D8;&#x5C3A;&#x5BF8;&#x7684;&#x56FE;&#x50CF;"><p>&#x53C2;&#x8003;&#x8BBA;&#x6587;&#xFF1A;<a href="https://arxiv.org/pdf/1406.4729.pdf">Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition</a></p>
<hr>
<h3 id="anametechnicalissueclassmyanchoracnn"><a name="technical-issue" class="my-anchor"></a>&#x4F20;&#x7EDF; CNN &#x7684;&#x5F0A;&#x7AEF;</h3>
<p>&#x5728;&#x4F20;&#x7EDF; CNN &#x4E2D;&#xFF0C;&#x7531;&#x4E8E; Fully-Connected &#x5C42;&#x7684;&#x5B58;&#x5728;&#xFF0C;&#x8F93;&#x5165;&#x56FE;&#x50CF;&#x7684;&#x5C3A;&#x5BF8;&#x53D7;&#x5230;&#x4E86;&#x4E25;&#x683C;&#x9650;&#x5236;&#x3002;&#x901A;&#x5E38;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x5BF9;&#x539F;&#x59CB;&#x56FE;&#x7247;&#x8FDB;&#x884C;**&#x88C1;&#x526A;&#xFF08;crop&#xFF09;<strong>&#x6216;</strong>&#x53D8;&#x5F62;&#xFF08;warp&#xFF09;**&#x7684;&#x64CD;&#x4F5C;&#x6765;&#x8C03;&#x6574;&#x5176;&#x5C3A;&#x5BF8;&#x4F7F;&#x5176;&#x9002;&#x914D;&#x4E8E; CNN&#x3002;&#x7136;&#x800C;&#x88C1;&#x526A;&#x8FC7;&#x7684;&#x56FE;&#x7247;&#x53EF;&#x80FD;&#x5305;&#x542B;&#x4E0D;&#x4E86;&#x6240;&#x9700;&#x7684;&#x6240;&#x6709;&#x4FE1;&#x606F;&#xFF0C;&#x800C;&#x6539;&#x53D8;&#x7EB5;&#x6A2A;&#x6BD4;&#x7684;&#x53D8;&#x5F62;&#x64CD;&#x4F5C;&#x4E5F;&#x53EF;&#x80FD;&#x4F1A;&#x4F7F;&#x5173;&#x952E;&#x90E8;&#x5206;&#x4EA7;&#x751F;&#x975E;&#x671F;&#x671B;&#x7684;&#x5F62;&#x53D8;&#x3002;&#x7531;&#x4E8E;&#x56FE;&#x7247;&#x5185;&#x5BB9;&#x7684;&#x4E22;&#x5931;&#x6216;&#x5931;&#x771F;&#xFF0C;&#x6A21;&#x578B;&#x7684;&#x51C6;&#x786E;&#x5EA6;&#x4F1A;&#x53D7;&#x5230;&#x5F88;&#x5927;&#x7684;&#x5F71;&#x54CD;&#x3002;</p>
<p><img src="https://oidiotlin.com/content/images/2018/02/crop-and-warp.jpg" alt="&#x4F7F;&#x7528; Spatial Pyramid Pooling &#x8BA9; CNN &#x63A5;&#x53D7;&#x53EF;&#x53D8;&#x5C3A;&#x5BF8;&#x7684;&#x56FE;&#x50CF;" loading="lazy"></p>
<p class="cmt">&#x4E0A;&#x56FE;&#x4E2D;&#x5206;&#x522B;&#x8868;&#x73B0;&#x4E86;&#x4E24;&#x79CD; resize &#x7684;&#x65B9;&#x6CD5;&#xFF1A;&#x88C1;&#x526A;&#xFF08;&#x5DE6;&#xFF09;&#x3001;&#x53D8;&#x5F62;&#xFF08;&#x53F3;&#xFF09;&#x3002;&#x5B83;&#x4EEC;&#x5BF9;&#x539F;&#x56FE;&#x90FD;&#x9020;&#x6210;&#x4E86;&#x975E;&#x671F;&#x671B;&#x7684;&#x5F71;&#x54CD;&#x3002;</p>
<h3 id="anamesppnetoverviewclassmyanchorasppnet"><a name="sppnet-overview" class="my-anchor"></a>SPP-Net &#x6982;&#x8FF0;</h3>
<p>&#x4ECE; CNN &#x7684;&#x7ED3;&#x6784;&#x6765;&#x770B;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x8BA9;&#x56FE;&#x50CF;&#x5728;&#x8FDB;&#x5165; FC &#x5C42;&#x524D;&#x5C31;&#x5C06;&#x5C3A;&#x5EA6;&#x56FA;&#x5B9A;&#x5230;&#x6307;&#x5B9A;&#x5927;&#x5C0F;&#x3002;&#x901A;&#x8FC7;&#x4FEE;&#x6539;&#x5377;&#x79EF;&#x5C42;&#x6216;&#x6C60;&#x5316;&#x5C42;&#x53C2;&#x6570;&#x53EF;&#x4EE5;&#x6539;&#x53D8;&#x56FE;&#x7247;&#x5927;&#x5C0F;&#xFF0C;&#x5176;&#x4E2D;&#x6C60;&#x5316;&#x5C42;&#x4E0D;&#x5177;&#x6709;&#x5B66;&#x4E60;&#x529F;&#x80FD;&#xFF0C;&#x5176;&#x53C2;&#x6570;&#x4E0D;&#x4F1A;&#x968F;&#x7740;&#x8BAD;&#x7EC3;&#x8FC7;&#x7A0B;&#x53D8;&#x5316;&#xFF0C;&#x81EA;&#x7136;&#x800C;&#x7136;&#x627F;&#x62C5;&#x8D77;&#x6539;&#x53D8; spatial size &#x7684;&#x5DE5;&#x4F5C;&#x3002;&#x6211;&#x4EEC;&#x5728;&#x7B2C;&#x4E00;&#x4E2A; FC &#x5C42;&#x524D;&#x52A0;&#x5165;&#x4E00;&#x4E2A;&#x7279;&#x6B8A;&#x7684;&#x6C60;&#x5316;&#x5C42;&#xFF0C;&#x5176;&#x53C2;&#x6570;&#x662F;&#x968F;&#x7740;&#x8F93;&#x5165;&#x5927;&#x5C0F;&#x800C;&#x6210;&#x6BD4;&#x4F8B;&#x53D8;&#x5316;&#x7684;&#x3002;</p>
<p><img src="https://oidiotlin.com/content/images/2018/02/sppnet-structure.png" alt="&#x4F7F;&#x7528; Spatial Pyramid Pooling &#x8BA9; CNN &#x63A5;&#x53D7;&#x53EF;&#x53D8;&#x5C3A;&#x5BF8;&#x7684;&#x56FE;&#x50CF;" loading="lazy"></p>
<p class="cmt">&#x56FE;1. &#x4F7F;&#x7528; crop &#x6216; warp &#x65B9;&#x6CD5;&#x7684; CNN &#x7684;&#x5C42;&#x7EA7;&#x7ED3;&#x6784;&#x3002;&#x56FE;2. &#x5728;&#x5377;&#x79EF;&#x5C42;&#x4E0E;&#x7B2C;&#x4E00;&#x4E2A;&#x5168;&#x8FDE;&#x63A5;&#x5C42;&#x4E4B;&#x95F4;&#x52A0;&#x5165; SPP &#x5C42;&#x3002;</p>
<p>SPP-Net &#x4E2D;&#x6709;&#x82E5;&#x5E72;&#x4E2A;&#x5E76;&#x884C;&#x7684;&#x6C60;&#x5316;&#x5C42;&#xFF0C;&#x5C06;&#x5377;&#x79EF;&#x5C42;&#x7684;&#x7ED3;&#x679C; \([w\times h\times d]\) &#x6C60;&#x5316;&#x6210; \([1\times 1],[2\times 2], [4\times 4], \cdots\) &#x7684;&#x4E00;&#x5C42;&#x5C42;&#x7ED3;&#x679C;&#xFF0C;&#x518D;&#x5C06;&#x5176;&#x6240;&#x6709;&#x7ED3;&#x679C;&#x4E0E; FC &#x5C42;&#x76F8;&#x8FDE;&#x3002;</p>
<p><img src="https://oidiotlin.com/content/images/2018/02/sppnet-comparison.jpg" alt="&#x4F7F;&#x7528; Spatial Pyramid Pooling &#x8BA9; CNN &#x63A5;&#x53D7;&#x53EF;&#x53D8;&#x5C3A;&#x5BF8;&#x7684;&#x56FE;&#x50CF;" loading="lazy"></p>
<p>&#x5F53;&#x8F93;&#x5165;&#x4E3A;&#x4EFB;&#x610F;&#x5927;&#x5C0F;&#x7684;&#x56FE;&#x7247;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x968F;&#x610F;&#x8FDB;&#x884C;&#x5377;&#x79EF;&#x3001;&#x6C60;&#x5316;&#xFF0C;&#x5728; FC &#x5C42;&#x4E4B;&#x524D;&#xFF0C;&#x901A;&#x8FC7; SPP &#x5C42;&#xFF0C;&#x5C06;&#x56FE;&#x7247;&#x62BD;&#x8C61;&#x51FA;&#x56FA;&#x5B9A;&#x5927;&#x5C0F;&#x7684;&#x7279;&#x5F81;&#xFF08;&#x5373;&#x591A;&#x5C3A;&#x5EA6;&#x7279;&#x5F81;&#x4E0B;&#x7684;&#x56FA;&#x5B9A;&#x7279;&#x5F81;&#x5411;&#x91CF;&#x62BD;&#x53D6;&#xFF09;&#x3002;</p>
<h3 id="anamesppnetarchitectureclassmyanchorasppnet"><a name="sppnet-architecture" class="my-anchor"></a>SPP-Net &#x7ED3;&#x6784;&#x7EC6;&#x8282;</h3>
<img src="https://oidiotlin.com/content/images/2018/02/sppnet-details.jpg" width="80%" alt="&#x4F7F;&#x7528; Spatial Pyramid Pooling &#x8BA9; CNN &#x63A5;&#x53D7;&#x53EF;&#x53D8;&#x5C3A;&#x5BF8;&#x7684;&#x56FE;&#x50CF;">
<p>&#x7ED3;&#x6784;&#x5982;&#x4E0A;&#x6240;&#x793A;&#xFF0C;&#x5DF2;&#x77E5;&#x8F93;&#x5165; conv5 &#x7684;&#x5927;&#x5C0F;&#x662F; \([w\times h\times d]\)&#xFF0C;SPP &#x4E2D;&#x67D0;&#x4E00;&#x5C42;&#x8F93;&#x51FA;&#x7ED3;&#x679C;&#x5927;&#x5C0F;&#x4E3A; \([n\times n\times d]\)&#xFF0C;&#x90A3;&#x4E48;&#x5982;&#x4F55;&#x8BBE;&#x5B9A;&#x8BE5;&#x5C42;&#x7684;&#x53C2;&#x6570;&#x5462;&#xFF1F;</p>
<ul>
<li><strong>&#x611F;&#x53D7;&#x91CE;&#x5927;&#x5C0F;</strong> \([w_r\times h_r]\)&#xFF1A;\(w_r = \lceil\frac{w}{n}\rceil\)&#xFF0C;\(h_r = \lceil\frac{h}{n}\rceil\)</li>
<li><strong>&#x6B65;&#x957F;</strong> \((s_w, s_h)\)&#xFF1A;\(s_w = \lfloor\frac{w}{n}\rfloor\)&#xFF0C;\(s_h = \lfloor\frac{h}{n}\rfloor\)</li>
</ul>
<p>&#x5047;&#x8BBE;&#x8F93;&#x5165;&#x662F; \([30\times 42\times 256]\)&#xFF0C;&#x5BF9;&#x4E8E; SPP &#x4E2D; \([4\times 4]\) &#x7684;&#x5C42;&#x800C;&#x8A00;&#xFF0C;&#x5176;&#xFF1A;</p>
<ul>
<li>&#x611F;&#x53D7;&#x91CE;&#x5927;&#x5C0F;&#x5E94;&#x4E3A; \([\lceil\frac{30}{4}\rceil\times \lceil\frac{42}{4}\rceil] = [8\times 11]\)</li>
<li>&#x6B65;&#x957F;&#x5E94;&#x4E3A; \((\lfloor\frac{30}{4}\rfloor, \lfloor\frac{42}{4}\rfloor) = (7, 10)\)</li>
</ul>
<p>&#x6700;&#x540E;&#x518D;&#x5C06; SPP &#x4E2D;&#x6240;&#x6709;&#x5C42;&#x7684;&#x6C60;&#x5316;&#x7ED3;&#x679C;&#xFF08;&#x6C60;&#x5316;&#x64CD;&#x4F5C;&#x901A;&#x5E38;&#x662F;&#x53D6;&#x611F;&#x53D7;&#x91CE;&#x5185;&#x7684; max&#xFF09;&#x53D8;&#x6210; 1 &#x7EF4;&#x5411;&#x91CF;&#xFF0C;&#x5E76;&#x4E0E; FC &#x5C42;&#x4E2D;&#x7684;&#x795E;&#x7ECF;&#x5143;&#x8FDE;&#x63A5;&#x3002;</p>
<p>&#x5982;&#x4E0A;&#x56FE;&#x4E2D;&#x7684; SPP &#x6709;&#x4E09;&#x5C42;(\([1\times 1],[2\times 2],[4\times 4]\))&#xFF0C;&#x5219;&#x901A;&#x8FC7; SPP &#x540E;&#x7684;&#x7279;&#x5F81;&#x6709; \( (1+4+16)\times 256\) &#x4E2A;&#x3002;</p>
<h3 id="aclassmyanchornamesppnettrainingasppnet"><a class="my-anchor" name="sppnet-training"></a>SPP-Net &#x8BAD;&#x7EC3;&#x65B9;&#x6CD5;</h3>
<p>&#x867D;&#x7136;&#x4F7F;&#x7528;&#x4E86; SPP&#xFF0C;&#x7406;&#x8BBA;&#x4E0A;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x7528;&#x53D8;&#x5C3A;&#x5EA6;&#x7684;&#x56FE;&#x50CF;&#x96C6;&#x4F5C;&#x4E3A;&#x8F93;&#x5165;&#x8FDB;&#x884C;&#x8BAD;&#x7EC3;&#xFF0C;&#x4F46;&#x662F;&#x5E38;&#x7528;&#x7684;&#x4E00;&#x4E9B;&#x6846;&#x67B6;&#xFF08;&#x5982; CUDA-convnet&#x3001;Caffe&#x7B49;&#xFF09;&#x5728;&#x5E95;&#x5C42;&#x5B9E;&#x73B0;&#x4E2D;&#x66F4;&#x9002;&#x5408;&#x56FA;&#x5B9A;&#x5C3A;&#x5BF8;&#x7684;&#x8BA1;&#x7B97;&#xFF08;&#x6548;&#x7387;&#x66F4;&#x9AD8;&#xFF09;&#x3002;&#x539F;&#x8BBA;&#x6587;&#x4E2D;&#x63D0;&#x53CA;&#x4E86;&#x4E24;&#x79CD;&#x8BAD;&#x7EC3;&#x65B9;&#x6CD5;&#xFF1A;</p>
<ul>
<li>Single-Size&#xFF1A;&#x5C06;&#x6240;&#x6709;&#x7684;&#x56FE;&#x7247;&#x56FA;&#x5B9A;&#x5230;&#x540C;&#x4E00;&#x5C3A;&#x5EA6;&#x3002;</li>
<li>Multi-Size&#xFF1A;&#x5C06;&#x539F;&#x56FE;&#x7247;&#x901A;&#x8FC7; crop &#x5F97;&#x5230;&#x67D0;&#x4E00;&#x5C3A;&#x5EA6; A&#xFF0C;&#x518D;&#x628A; A &#x901A;&#x8FC7; warp &#x653E;&#x7F29;&#x6210;&#x66F4;&#x5C0F;&#x7684;&#x5C3A;&#x5BF8; B&#x3002;&#x4E4B;&#x540E;&#x7528; A &#x5C3A;&#x5EA6;&#x8BAD;&#x7EC3;&#x4E00;&#x4E2A; epoch&#xFF0C;&#x518D;&#x7528; B &#x5C3A;&#x5EA6;&#x8BAD;&#x7EC3;&#x4E00;&#x4E2A; epoch&#xFF0C;&#x4EA4;&#x66FF;&#x8FED;&#x4EE3;&#x3002;</li>
</ul>
<p>&#x7531;&#x4F55;&#x51EF;&#x660E;&#x7B49;&#x4EBA;&#x7684;&#x5B9E;&#x9A8C;&#x7ED3;&#x679C;&#x53EF;&#x4EE5;&#x53D1;&#x73B0;&#xFF0C;&#x91C7;&#x7528; Multi-Size &#x65B9;&#x6CD5;&#x8BAD;&#x7EC3;&#x5F97;&#x5230;&#x7684;&#x6A21;&#x578B;&#x9519;&#x8BEF;&#x7387;&#x66F4;&#x4F4E;&#xFF0C;&#x4E14;&#x6536;&#x655B;&#x901F;&#x5EA6;&#x66F4;&#x5FEB;&#x3002;</p>
<h3 id="anamepytorchimplementationclassmyanchorapytorchspp"><a name="pytorch-implementation" class="my-anchor"></a>&#x5728; pytorch &#x6846;&#x67B6;&#x4E2D;&#x5B9E;&#x73B0; SPP</h3>
<pre><code>class SpatialPyramidPool2D(nn.Module):
    &quot;&quot;&quot;
    Args:
        out_side (tuple): Length of side in the pooling results of each pyramid layer. 
    
    Inputs:
        - `input`: the input Tensor to invert ([batch, channel, width, height])
    &quot;&quot;&quot;
    def __init__(self, out_side):
        super(SpatialPyramidPool2D, self).__init__()
        self.out_side = out_side
    
    def forward(self, x):
        out = None
        for n in self.out_side:
            w_r, h_r = map(lambda s: math.ceil(s/n), x.size()[2:])    # Receptive Field Size
            s_w, s_h = map(lambda s: math.floor(s/n), x.size()[2:])   # Stride
            max_pool = nn.MaxPool2d(kernel_size=(w_r, h_r), stride=(s_w, s_h))
            y = max_pool(x)
            if out is None:
                out = y.view(y.size()[0], -1)
            else:
                out = torch.cat((out, y.view(y.size()[0], -1)), 1)
        return out</code></pre>
<p>&#x53EF;&#x4EE5;&#x5728;&#x6A21;&#x578B;&#x4E2D;&#x63D2;&#x5165;&#x8BE5;&#x6A21;&#x5757;&#xFF0C;&#x5982;&#xFF1A;</p>
<pre><code class="language-python">nn.Sequential(
    nn.Conv2d(
        in_channels=1,
        out_channels=16,
        kernel_size=5,
        stride=1,
        padding=2,
    ),
    nn.ReLU(),
    SpatialPyramidPool2D(out_side=(1,2,4))
)</code></pre><!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[卷积神经网络入门]]></title><description><![CDATA[传统神经网络模型不能很好适应整张2维图片。比如一张 32×32×3(长32-宽32-RGB) 的彩色图片，在传统模型中第一层输入为了读入整张图片就需要 32×32×3 = 3072 个神经元，也就是有 3027 组参数，在这个简单的小图数据集（比如 CIFAR-10）好像看上去还能接受，但是一旦图片变成 200×200 的分辨率，就有 120,000 组参数了，这显然是训练时难以接受的。]]></description><link>https://oidiotlin.com/cnn-tutorial/</link><guid isPermaLink="false">63847a40ff82689f3f5c0613</guid><category><![CDATA[Tech]]></category><category><![CDATA[Machine Learning]]></category><dc:creator><![CDATA[OIdiot]]></dc:creator><pubDate>Thu, 08 Feb 2018 02:18:00 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2018/01/low-poly-01.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h3 id>&#x76EE;&#x5F55;</h3>
<ul>
<li><a href="#architecture-overview">CNN &#x7ED3;&#x6784;&#x6982;&#x8FF0;</a></li>
<li><a href="#convnet-layers">ConvNet &#x7528;&#x5230;&#x7684;&#x5404;&#x79CD;&#x7F51;&#x7EDC;&#x5C42;</a>
<ul>
<li><a href="#convolutional-layer">Convolutional Layer &#x5377;&#x79EF;&#x5C42;</a></li>
<li><a href="#pooling-layer">Pooling Layer &#x6C60;&#x5316;&#x5C42;</a></li>
<li><a href="#fully-connected-layer">Fully-Connected Layer &#x5168;&#x8FDE;&#x63A5;&#x5C42;</a></li>
</ul>
</li>
<li><a href="#convnet-architectures">ConvNet &#x5E38;&#x89C1;&#x67B6;&#x6784;</a>
<ul>
<li><a href="#layer-patterns">&#x5C42;&#x7EA7;&#x7ED3;&#x6784;</a></li>
<li><a href="#layer-sizing-patterns">&#x5C42;&#x5185;&#x5927;&#x5C0F;&#x53C2;&#x6570;</a></li>
</ul>
</li>
</ul>
<img src="https://oidiotlin.com/content/images/2018/01/low-poly-01.jpg" alt="&#x5377;&#x79EF;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x5165;&#x95E8;"><p class="cmt">*&#x4EE5;&#x4E0B;&#x6240;&#x6709;&#x56FE;&#x7247;&#x63F4;&#x5F15;&#x81EA; Stanford CS231n</p>
<hr>
<h3 id="anamearchitectureoverviewclassmyanchoracnn"><a name="architecture-overview" class="my-anchor"></a>CNN &#x7ED3;&#x6784;&#x6982;&#x8FF0;</h3>
<p>&#x4F20;&#x7EDF;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x6A21;&#x578B;&#x4E0D;&#x80FD;&#x5F88;&#x597D;&#x9002;&#x5E94;&#x6574;&#x5F20;2&#x7EF4;&#x56FE;&#x7247;&#x3002;&#x6BD4;&#x5982;&#x4E00;&#x5F20; 32&#xD7;32&#xD7;3(&#x957F;32-&#x5BBD;32-RGB) &#x7684;&#x5F69;&#x8272;&#x56FE;&#x7247;&#xFF0C;&#x5728;&#x4F20;&#x7EDF;&#x6A21;&#x578B;&#x4E2D;&#x7B2C;&#x4E00;&#x5C42;&#x8F93;&#x5165;&#x4E3A;&#x4E86;&#x8BFB;&#x5165;&#x6574;&#x5F20;&#x56FE;&#x7247;&#x5C31;&#x9700;&#x8981; 32&#xD7;32&#xD7;3 = 3072 &#x4E2A;&#x795E;&#x7ECF;&#x5143;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x6709; 3027 &#x7EC4;&#x53C2;&#x6570;&#xFF0C;&#x5728;&#x8FD9;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x5C0F;&#x56FE;&#x6570;&#x636E;&#x96C6;&#xFF08;&#x6BD4;&#x5982; CIFAR-10&#xFF09;&#x597D;&#x50CF;&#x770B;&#x4E0A;&#x53BB;&#x8FD8;&#x80FD;&#x63A5;&#x53D7;&#xFF0C;&#x4F46;&#x662F;&#x4E00;&#x65E6;&#x56FE;&#x7247;&#x53D8;&#x6210; 200&#xD7;200 &#x7684;&#x5206;&#x8FA8;&#x7387;&#xFF0C;&#x5C31;&#x6709; 120,000 &#x7EC4;&#x53C2;&#x6570;&#x4E86;&#xFF0C;&#x8FD9;&#x663E;&#x7136;&#x662F;&#x8BAD;&#x7EC3;&#x65F6;&#x96BE;&#x4EE5;&#x63A5;&#x53D7;&#x7684;&#x3002;</p>
<p>&#x4E0D;&#x540C;&#x4E8E;&#x4F20;&#x7EDF;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x4E2D;&#x7684;&#x6BCF;&#x4E00;&#x5C42;&#x90FD;&#x662F;&#x4E00;&#x7EF4;&#xFF0C;CNN &#x4E2D;&#x6BCF;&#x5C42;&#x662F;&#x4E09;&#x7EF4;&#x7684;&#xFF1A;<strong>width, height, depth</strong>. &#x90A3;&#x4E48;&#x521A;&#x624D;&#x63D0;&#x5230;&#x7684; 32&#xD7;32&#xD7;3 &#x7684; CIFAR-10 &#x56FE;&#x7247;&#x5728; CNN &#x4E2D;&#x7684;&#x8F93;&#x5165;&#x5C42;&#x5C31;&#x662F; 32&#xD7;32&#xD7;3 &#x7684;&#xFF0C;&#x800C;&#x4E0B;&#x4E00;&#x5C42;&#x4E2D;&#x7684;&#x6BCF;&#x4E2A;&#x795E;&#x7ECF;&#x5143;&#x90FD;&#x662F;&#x7531;&#x4E0A;&#x4E00;&#x5C42;&#x4E2D;&#x7684;&#x4E00;&#x5757;&#x533A;&#x57DF;&#x4F20;&#x9012;&#x800C;&#x6765;&#xFF08;&#x8FD9;&#x5C31;&#x548C;&#x4F20;&#x7EDF;&#x6A21;&#x578B;&#x7684;&#x5168;&#x8FDE;&#x63A5;&#x4E0D;&#x540C;&#x4E86;&#xFF09;&#x3002;&#x6700;&#x540E;&#x4E00;&#x5C42;&#x8F93;&#x51FA;&#x5C42;&#x5219;&#x662F; 1&#xD7;10&#xFF0C;&#x8868;&#x793A;&#x7740; 10 &#x79CD;&#x5206;&#x7C7B;&#x7684; score&#x3002;</p>
<p><img src="https://oidiotlin.com/content/images/2018/02/cnn-tutorial-01.jpeg" alt="&#x5377;&#x79EF;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x5165;&#x95E8;" loading="lazy"></p>
<p class="cmt">&#x5DE6;&#x56FE;&#x4E2D;&#x662F;&#x4E09;&#x5C42;&#x7684;&#x5168;&#x8FDE;&#x63A5;&#x578B;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x3002;&#x53F3;&#x56FE;&#x662F; CNN&#xFF0C;&#x7EA2;&#x8272;&#x5C42;&#x662F;&#x539F;&#x59CB;&#x56FE;&#x7247;&#xFF0C;&#x5C42;&#x4E0E;&#x5C42;&#x4E4B;&#x95F4;&#x505A;&#x4E86;&#x4E00;&#x4E2A; 3D &#x5230; 3D &#x7684;&#x6620;&#x5C04;&#x3002;</p>
<h3 id="anameconvnetlayersclassmyanchoraconvnet"><a name="convnet-layers" class="my-anchor"></a>ConvNet &#x7528;&#x5230;&#x7684;&#x5404;&#x79CD;&#x7F51;&#x7EDC;&#x5C42;</h3>
<p>&#x901A;&#x8FC7;&#x4E0A;&#x9762;&#x7684;&#x6982;&#x8FF0;&#xFF0C;&#x7B80;&#x5355;&#x7684; ConvNet &#x5176;&#x5B9E;&#x5C31;&#x662F;&#x4E00;&#x7EC4;&#x7F51;&#x7EDC;&#x5C42;&#x5E8F;&#x5217;&#xFF0C;&#x5176;&#x4E2D;&#x4E3B;&#x8981;&#x7528;&#x5230;&#x7684;&#x7C7B;&#x578B;&#x6709;&#xFF1A;<strong>&#x5377;&#x79EF;&#x5C42;(Convolutional Layer)</strong>, <strong>&#x6C60;&#x5316;&#x5C42;(Pooling Layer)</strong>, <strong>&#x5168;&#x8FDE;&#x63A5;&#x5C42;(Fully-Connected Layer)</strong>&#x3002;&#x8FD9;&#x4E9B;&#x5C42;&#x5806;&#x53E0;&#x5728;&#x4E00;&#x8D77;&#x5C31;&#x6784;&#x6210;&#x4E86;&#x7B80;&#x5355;&#x7684; ConvNet&#x3002;</p>
<p>&#x62FF; CIFAR-10 &#x4F5C;&#x6570;&#x636E;&#x96C6;&#x7684;&#x6A21;&#x578B;&#x4E3A;&#x4F8B;&#xFF0C;&#x4E00;&#x4E2A;&#x6BD4;&#x8F83;&#x7B80;&#x5355;&#x7684;&#x6A21;&#x578B;&#x7684;&#x67B6;&#x6784;&#x662F;&#x3010;&#x8F93;&#x5165;-&#x5377;&#x79EF;-ReLU-&#x6C60;&#x5316;-&#x5168;&#x8FDE;&#x63A5;&#x3011;&#xFF1A;</p>
<ul>
<li>&#x8F93;&#x5165;&#x5C42; [32&#xD7;32&#xD7;3] &#x662F;&#x539F;&#x59CB;&#x56FE;&#x50CF;&#xFF0C;&#x957F;32&#xFF0C;&#x5BBD;32&#xFF0C;&#x6709;3&#x4E2A;&#x8272;&#x5F69;&#x901A;&#x9053;&#x3002;</li>
<li>&#x5377;&#x79EF;&#x5C42;&#x4E2D;&#x6BCF;&#x4E00;&#x4E2A;&#x5377;&#x79EF;&#x6838;&#x4E0E;&#x8F93;&#x5165;&#x5C42;&#x4E2D;&#x7684;&#x533A;&#x57DF;&#x4F5C;&#x70B9;&#x79EF;&#xFF0C;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x7528;8&#x4E2A;&#x5377;&#x79EF;&#x6838;&#xFF0C;&#x90A3;&#x4E48;&#x5F97;&#x5230;&#x7684;&#x7ED3;&#x679C;&#x5C31;&#x662F; [32&#xD7;32&#xD7;8]&#x3002;</li>
<li>&#x6FC0;&#x6D3B;&#x5C42;&#x91C7;&#x7528; ReLU &#x51FD;&#x6570;&#xFF0C;&#x5B83;&#x4E0D;&#x4F1A;&#x6539;&#x53D8;&#x5377;&#x79EF;&#x7684;&#x5927;&#x5C0F;&#xFF0C;&#x7ED3;&#x679C;&#x4F9D;&#x7136;&#x662F; [32&#xD7;32&#xD7;8]&#x3002;</li>
<li>&#x6C60;&#x5316;&#x5C42;&#x8FDB;&#x884C;&#x4E86;&#x4E00;&#x4E2A;&#x4E0B;&#x91C7;&#x6837;&#x64CD;&#x4F5C;&#xFF0C;&#x5B83;&#x4E0D;&#x4F1A;&#x6539;&#x53D8;&#x6DF1;&#x5EA6;&#xFF0C;&#x4F46;&#x662F;&#x957F;&#x4E0E;&#x5BBD;&#x56E0;&#x4E3A;&#x91C7;&#x6837;&#x64CD;&#x4F5C;&#x88AB;&#x7F29;&#x5C0F;&#x4E86;&#xFF0C;&#x7ED3;&#x679C;&#x53D8;&#x6210;&#x4E86; [16&#xD7;16&#xD7;8]&#x3002;</li>
<li>&#x5168;&#x8FDE;&#x63A5;&#x5C42;&#x7528;&#x6765;&#x8BA1;&#x7B97;&#x7ED3;&#x679C;&#xFF0C;&#x5176;&#x4E2D;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x795E;&#x7ECF;&#x5143;&#x90FD;&#x4F1A;&#x4E0E;&#x4E0A;&#x5C42;&#x4E2D;&#x7684;&#x6240;&#x6709;&#x795E;&#x7ECF;&#x5143;&#x76F8;&#x8FDE;&#xFF0C;&#x5728; CIFAR-10 &#x4E2D;&#xFF0C;&#x5176;&#x7ED3;&#x679C;&#x53D8;&#x6210;&#x4E86; [1&#xD7;10]&#xFF0C;&#x8868;&#x8FBE;&#x4E86;&#x6BCF;&#x79CD;&#x5206;&#x7C7B;&#x7684;&#x7F6E;&#x4FE1;&#x5EA6;&#x3002;</li>
</ul>
<p>&#x6240;&#x4EE5;&#xFF0C;&#x901A;&#x8FC7;&#x4E00;&#x5C42;&#x5C42;&#x7684;&#x8BA1;&#x7B97;&#xFF0C;CNN &#x5C06;&#x8F93;&#x5165;&#x7684;&#x56FE;&#x50CF;&#x8F6C;&#x6362;&#x6210;&#x4E86;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x7684; class score&#x3002;&#x503C;&#x5F97;&#x6CE8;&#x610F;&#x7684;&#x662F;&#xFF0C;&#x5176;&#x4E2D;&#x6709;&#x7684;&#x5C42;&#x662F;&#x643A;&#x5E26;&#x53C2;&#x6570;&#x7684;&#xFF08;&#x5982;&#x5377;&#x79EF;&#x5C42;&#x3001;&#x5168;&#x8FDE;&#x63A5;&#x5C42;&#xFF09;&#xFF0C;&#x800C;&#x6709;&#x7684;&#x662F;&#x6CA1;&#x6709;&#x53C2;&#x6570;&#x7684;&#xFF08;&#x6FC0;&#x6D3B;&#x5C42;&#x3001;&#x6C60;&#x5316;&#x5C42;&#xFF09;</p>
<p><img src="https://oidiotlin.com/content/images/2018/02/cnn-tutorial-02.jpeg" alt="&#x5377;&#x79EF;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x5165;&#x95E8;" loading="lazy"></p>
<p class="cmt">&#x4EE5;&#x4E0A;&#x662F;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684; ConvNet&#xFF0C;&#x6709;&#x7740; [((Conv+ReLU)&#xD7;2+Pool)&#xD7;3+FC] &#x7684;&#x7ED3;&#x6784;&#xFF0C;&#x662F;&#x4E00;&#x79CD;&#x5C0F;&#x578B;&#x7684; VGG Net&#x3002;&#x8FD9;&#x91CC;&#x7531;&#x4E8E;3D&#x5377;&#x79EF;&#x4E0D;&#x597D;&#x8868;&#x793A;&#xFF0C;&#x5C31;&#x5C06;&#x6DF1;&#x5EA6;&#x5207;&#x5206;&#x6210; 10 &#x5F20;&#x56FE;&#x7247;&#x4E86;&#x3002;</p>
<h4 id="anameconvolutionallayerclassmyanchoraconvolutionallayer"><a name="convolutional-layer" class="my-anchor"></a>Convolutional Layer &#x5377;&#x79EF;&#x5C42;</h4>
<p>&#x5377;&#x79EF;&#x5C42;&#x91CC;&#x7684;&#x53C2;&#x6570;&#x5176;&#x5B9E;&#x662F;&#x4E00;&#x7EC4;&#x53EF;&#x5B66;&#x4E60;&#x7684;&#x5377;&#x79EF;&#x6838;/&#x8FC7;&#x6EE4;&#x5668;(filter)&#xFF0C;&#x6BCF;&#x4E2A;&#x5377;&#x79EF;&#x6838;&#x8D2F;&#x7A7F;&#x4E86;&#x8F93;&#x5165;&#x5C42;&#x7684;&#x6DF1;&#x5EA6;&#xFF0C;&#x6BD4;&#x5982;&#x4E00;&#x4E2A; ConvNet &#x7B2C;&#x4E00;&#x5C42;&#x7684; 5&#xD7;5&#xD7;3 &#x7684;&#x5377;&#x79EF;&#x6838;&#x5C31;&#x4EE3;&#x8868;&#x7740;&#x5176;&#x5BBD;&#x9AD8;&#x5747;&#x4E3A; 5&#xFF0C;&#x4E14;&#x6DF1;&#x5EA6;&#x4E3A; 3&#xFF08;&#x5373;&#x8F93;&#x5165;&#x7684;&#x539F;&#x59CB;&#x56FE;&#x50CF;&#x7684; 3 &#x4E2A;&#x989C;&#x8272;&#x901A;&#x9053;&#xFF09;&#x3002;&#x5728;&#x524D;&#x5411;&#x4F20;&#x64AD;&#x8FC7;&#x7A0B;&#x4E2D;&#xFF0C;&#x5377;&#x79EF;&#x6838;&#x6CBF;&#x7740;&#x56FE;&#x50CF;&#x7684;&#x957F;&#x4E0E;&#x5BBD;&#x8FDB;&#x884C;&#x626B;&#x63CF;&#xFF0C;&#x5C06;&#x6BCF;&#x4E2A;&#x626B;&#x63CF;&#x533A;&#x57DF;&#x7684;&#x50CF;&#x7D20;&#x70B9;&#x4E0E;&#x5377;&#x79EF;&#x6838;&#x4E2D;&#x7684;&#x76F8;&#x5E94;&#x4F4D;&#x7F6E;&#x53C2;&#x6570;&#x8FDB;&#x884C;&#x70B9;&#x79EF;&#xFF0C;&#x5F97;&#x5230;&#x5E73;&#x9762;&#x5927;&#x5C0F;&#x4E0D;&#x53D8;&#xFF0C;&#x6DF1;&#x5EA6;&#x53D8;&#x4E3A; 1 &#x7684;&#x70B9;&#x79EF;&#x7ED3;&#x679C;&#xFF0C;&#x5373;&#x4E00;&#x4E2A;&#x4E8C;&#x7EF4;&#x56FE;&#xFF0C;&#x8868;&#x793A;&#x7740;&#x8BE5;&#x5377;&#x79EF;&#x6838;&#x5BF9;&#x6BCF;&#x4E2A;&#x4F4D;&#x7F6E;&#x7684;&#x54CD;&#x5E94;&#x3002;&#x6700;&#x540E;&#x628A;&#x6BCF;&#x4E2A;&#x5377;&#x79EF;&#x6838;&#x5BF9;&#x8F93;&#x5165;&#x5C42;&#x7684;&#x5377;&#x79EF;&#x7ED3;&#x679C;&#x6CBF;&#x7740;&#x6DF1;&#x5EA6;&#x7EF4;&#x5EA6;&#x5806;&#x53E0;&#x5230;&#x4E00;&#x8D77;&#xFF0C;&#x6784;&#x6210;&#x4E86;&#x4E00;&#x4E2A;&#x4E09;&#x7EF4;&#x7684;&#x7ED3;&#x679C;&#x3002;</p>
<p>&#x4E3E;&#x4E2A;&#x4F8B;&#x5B50;&#xFF0C;&#x8F93;&#x5165;&#x5C42;&#x662F;&#x4E00;&#x5F20; [32&#xD7;32&#xD7;3] &#x7684;&#x56FE;&#x7247;&#xFF0C;&#x5982;&#x679C;&#x5377;&#x79EF;&#x6838;&#x7684;&#x5927;&#x5C0F;(filter size/receptive field)&#x662F; 5&#xD7;5&#xFF0C;&#x90A3;&#x4E48;&#x5B83;&#x5C31;&#x6709; 5&#xD7;5&#xD7;3=75 &#x4E2A;&#x53C2;&#x6570;&#xFF08;&#x8FD9;&#x91CC;&#x4E0D;&#x7B97; bias&#xFF09;&#x3002;&#x5982;&#x679C;&#x7B2C;&#x4E00;&#x5C42;&#x5377;&#x79EF;&#x5C42;&#x6709; 8 &#x4E2A;&#x5377;&#x79EF;&#x6838;&#xFF0C;&#x90A3;&#x4E48;&#x6700;&#x540E;&#x7684;&#x7ED3;&#x679C;&#x5C31;&#x662F; [32&#xD7;32&#xD7;8]&#x3002;</p>
<p><img src="https://oidiotlin.com/content/images/2018/02/cnn-tutorial-03.jpeg" alt="&#x5377;&#x79EF;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x5165;&#x95E8;" loading="lazy"></p>
<p class="cmt">&#x5DE6;&#x56FE;&#x4E2D;&#x7684;&#x7EA2;&#x8272;&#x5757;&#x662F;&#x8F93;&#x5165;&#x7684;&#x539F;&#x59CB;&#x56FE;&#x7247; [32&#xD7;32&#xD7;3](CIFAR-10)&#xFF0C;&#x5377;&#x79EF;&#x5C42;&#x4E2D;&#x6709; 5 &#x4E2A;&#x5377;&#x79EF;&#x6838;&#xFF0C;&#x5F97;&#x5230;&#x7684;&#x84DD;&#x8272;&#x7ED3;&#x679C;&#x5C31;&#x662F; [32&#xD7;32&#xD7;5]&#x3002;&#x53F3;&#x56FE;&#x8868;&#x793A;&#x7684;&#x662F;&#x5377;&#x79EF;&#x6838;&#x4E0E;&#x5377;&#x79EF;&#x533A;&#x57DF;&#x4E4B;&#x95F4;&#x7684;&#x8BA1;&#x7B97;&#x65B9;&#x5F0F;&#xFF0C;&#x8FD9;&#x4E0E;&#x7ECF;&#x5178;&#x795E;&#x7ECF;&#x5143;&#x5E76;&#x65E0;&#x4E8C;&#x81F4;&#xFF0C;&#x53EA;&#x662F;&#x73B0;&#x5728;&#x7684;&#x8FDE;&#x901A;&#x533A;&#x57DF;&#x88AB;&#x9650;&#x5B9A;&#x5728;&#x4E86;&#x4E00;&#x4E2A;&#x56FA;&#x5B9A;&#x7684;&#x5927;&#x5C0F;&#xFF08;&#x5377;&#x79EF;&#x6838;&#x5927;&#x5C0F;&#xFF09;&#x91CC;&#x3002;</p>
<p>&#x5377;&#x79EF;&#x5C42;&#x7ED3;&#x679C;&#x7684;&#x5927;&#x5C0F;&#x4E0E;&#x4EE5;&#x4E0B;&#x4E09;&#x4E2A;&#x8D85;&#x53C2;&#x6570;&#x6709;&#x5173;&#xFF1A;<strong>&#x5377;&#x79EF;&#x6838;&#x4E2A;&#x6570;(depth)</strong>&#xFF0C;<strong>&#x6B65;&#x957F;(stride)</strong>&#xFF0C;<strong>&#x96F6;&#x586B;&#x5145;(zero-padding)</strong>&#x3002;</p>
<ul>
<li>&#x5377;&#x79EF;&#x6838;&#x4E2A;&#x6570;&#x51B3;&#x5B9A;&#x4E86;&#x8F93;&#x51FA;&#x7ED3;&#x679C;&#x7684;&#x6DF1;&#x5EA6;&#xFF0C;&#x6BCF;&#x4E00;&#x4E2A;&#x6DF1;&#x5EA6;&#x4E0A;&#x7684;&#x795E;&#x7ECF;&#x5143;&#x5BF9;&#x539F;&#x56FE;&#x90FD;&#x6709;&#x7740;&#x4E0D;&#x540C;&#x7684;&#x76F8;&#x5E94;&#xFF08;&#x53EF;&#x80FD;&#x662F;&#x8FB9;&#x7F18;&#x671D;&#x5411;&#xFF0C;&#x4E5F;&#x53EF;&#x80FD;&#x662F;&#x8272;&#x5F69;&#x504F;&#x597D;&#xFF09;&#x3002;</li>
<li>&#x6B65;&#x957F;&#x6307;&#x7684;&#x662F;&#x5377;&#x79EF;&#x6838;&#x5728;&#x8F93;&#x5165;&#x4E0A;&#x6BCF;&#x6B21;&#x79FB;&#x52A8;&#x7684;&#x8DDD;&#x79BB;&#x3002;&#x5F53;&#x6B65;&#x957F;&#x4E3A; 1 &#x65F6;&#xFF0C;&#x6BCF;&#x6B21;&#x79FB;&#x52A8; 1 &#x4E2A;&#x50CF;&#x7D20;&#xFF0C;&#x5F97;&#x5230;&#x7684;&#x7ED3;&#x679C;&#x548C;&#x8F93;&#x5165;&#x4E00;&#x6837;&#x5927;&#xFF08;&#x5BBD;&#x9AD8;&#xFF09;&#xFF1B;&#x5F53;&#x6B65;&#x957F;&#x5927;&#x4E8E; 1 &#x65F6;&#xFF0C;&#x5F97;&#x5230;&#x7684;&#x7ED3;&#x679C;&#x6BD4;&#x8F93;&#x5165;&#x5C0F;&#xFF1B;&#x5F53;&#x6B65;&#x957F;&#x5C0F;&#x4E8E; 1 &#x65F6;&#xFF0C;&#x5F97;&#x5230;&#x7684;&#x7ED3;&#x679C;&#x6BD4;&#x8F93;&#x5165;&#x5927;&#x3002;</li>
<li>&#x96F6;&#x586B;&#x5145;&#x6307;&#x7684;&#x662F;&#x67D0;&#x4E9B;&#x65F6;&#x5019;&#x6211;&#x4EEC;&#x8981;&#x5728;&#x539F;&#x56FE;&#x5468;&#x56F4;&#x586B;&#x5145;&#x4E00;&#x4E9B; 0&#xFF0C;&#x8FD9;&#x80FD;&#x65B9;&#x4FBF;&#x6211;&#x4EEC;&#x8C03;&#x8282;&#x5E73;&#x9762;&#x7684;&#x5927;&#x5C0F;&#xFF08;&#x901A;&#x5E38;&#x9047;&#x5230;&#x7684;&#x60C5;&#x51B5;&#x662F;&#x7528;&#x8FD9;&#x79CD;&#x65B9;&#x6CD5;&#x4F7F;&#x8F93;&#x5165;&#x56FE;&#x7247;&#x53D8;&#x6210;&#x5BBD;&#x9AD8;&#x76F8;&#x7B49;&#xFF09;&#x3002;</li>
</ul>
<p>&#x5047;&#x8BBE;&#x8F93;&#x5165;&#x7684;&#x5927;&#x5C0F;&#x662F; \(W\)&#xFF0C;&#x5377;&#x79EF;&#x6838;&#x5927;&#x5C0F;&#x662F; \(F\)&#xFF0C;&#x6B65;&#x957F;&#x4E3A; \(S\)&#xFF0C;&#x96F6;&#x586B;&#x5145;&#x7684;&#x5927;&#x5C0F;&#x4E3A; \(P\)&#x3002;&#x5219;&#x8F93;&#x51FA;&#x7684;&#x5927;&#x5C0F;&#x662F; \((W-F+2P)/S+1\)&#x3002;&#x4F8B;&#x5982;&#x8F93;&#x5165;&#x4E3A; 7&#xD7;7&#xFF0C;&#x5377;&#x79EF;&#x6838;&#x5927;&#x5C0F;&#x4E3A; 3&#xD7;3&#xFF0C;&#x6B65;&#x957F;&#x4E3A; 1&#xFF0C;&#x96F6;&#x586B;&#x5145;&#x4E3A; 0 &#x65F6;&#xFF0C;&#x8F93;&#x51FA;&#x5C31;&#x662F; 5&#xD7;5&#xFF0C;&#x6B65;&#x957F;&#x4E3A; 2 &#x65F6;&#xFF0C;&#x8F93;&#x51FA;&#x5C31;&#x662F; 3&#xD7;3&#x3002;</p>
<p><img src="https://oidiotlin.com/content/images/2018/02/cnn-tutorial-04.jpeg" alt="&#x5377;&#x79EF;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x5165;&#x95E8;" loading="lazy"></p>
<p class="cmt">&#x4E0A;&#x56FE;&#x8BA8;&#x8BBA;&#x4E86;&#x8F93;&#x5165;&#x4E3A; 5&#xD7;1&#xFF0C;&#x5377;&#x79EF;&#x6838;&#x5927;&#x5C0F;&#x4E3A; 3&#xFF0C;&#x96F6;&#x586B;&#x5145;&#x4E3A; 1 &#x65F6;&#x7684;&#x60C5;&#x51B5;&#x3002;&#x5DE6;&#x56FE;&#x662F;&#x6B65;&#x957F;&#x4E3A; 1 &#x65F6;&#xFF0C;&#x7ED3;&#x679C;&#x4E3A; 5&#xD7;1&#xFF0C;&#x4E2D;&#x56FE;&#x662F;&#x6B65;&#x957F;&#x4E3A; 2 &#x65F6;&#xFF0C;&#x7ED3;&#x679C;&#x4E3A; 3&#xD7;1&#x3002;&#x6700;&#x53F3;&#x4FA7;&#x7684;&#x56FE;&#x662F;&#x5377;&#x79EF;&#x6838;&#x5185;&#x90E8;&#x53C2;&#x6570;&#xFF08;&#x65E0; bias&#xFF09;&#x3002;&#x7070;&#x8272;&#x662F;&#x8F93;&#x5165;&#x5C42;&#xFF0C;&#x9EC4;&#x8272;&#x662F;&#x5377;&#x79EF;&#x5C42;&#x7ED3;&#x679C;&#x3002;</p>
<p>&#x5728;&#x4E0A;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#xFF08;&#x5DE6;&#x56FE;&#xFF09;&#xFF0C;&#x8F93;&#x5165;&#x5927;&#x5C0F;&#x662F; 5&#xFF0C;&#x8F93;&#x51FA;&#x5927;&#x5C0F;&#x6070;&#x597D;&#x4E5F;&#x662F; 5&#xFF0C;&#x8FD9;&#x662F;&#x6211;&#x4EEC;&#x559C;&#x6B22;&#x7684;&#x7ED3;&#x679C;&#x3002;&#x5982;&#x679C;&#x6CA1;&#x6709;&#x96F6;&#x586B;&#x5145;&#x7684;&#x8BDD;&#xFF0C;&#x8F93;&#x51FA;&#x5927;&#x5C0F;&#x5C06;&#x4F1A;&#x53D8;&#x4E3A; 3&#x3002;&#x7B80;&#x5355;&#x63A8;&#x5BFC;&#x51FA;&#x6B65;&#x957F;&#x4E3A; 1 &#x65F6;&#xFF0C;&#x8BA9;&#x8F93;&#x51FA;&#x4E0E;&#x8F93;&#x5165;&#x5927;&#x5C0F;&#x76F8;&#x7B49;&#x7684;&#x516C;&#x5F0F;&#xFF1A;\(P=\frac{F-1}{2}\)&#x3002;&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x975E;&#x5E38;&#x5E38;&#x7528;&#x7684;&#x6280;&#x5DE7;&#xFF0C;&#x4E4B;&#x540E;&#x4F1A;&#x8BA8;&#x8BBA;&#x5230;&#x5176;&#x4E2D;&#x7684;&#x7EC6;&#x8282;&#x3002;</p>
<p>&#x6B65;&#x957F;&#x5176;&#x5B9E;&#x4E5F;&#x662F;&#x6709;&#x9650;&#x5236;&#x7684;&#xFF0C;&#x5BF9;&#x4E8E;&#x4E00;&#x4E2A;&#x5927;&#x5C0F;&#x4E3A; 10 &#x7684;&#x8F93;&#x5165;&#x548C;&#x5927;&#x5C0F;&#x4E3A; 3 &#x7684;&#x5377;&#x79EF;&#x6838;&#xFF0C;&#x5982;&#x679C;&#x6B65;&#x957F;&#x4E3A; 2 &#x5C31;&#x4F1A;&#x51FA;&#x73B0;&#x8F93;&#x51FA;&#x5927;&#x5C0F;&#x4E3A; \((W-F+2P)/2+1=4.5\) &#x7684;&#x60C5;&#x51B5;&#xFF0C;&#x8FD9;&#x663E;&#x7136;&#x662F;&#x4E0D;&#x5408;&#x6CD5;&#x7684;&#x3002;&#x4E00;&#x4E9B;&#x6DF1;&#x5EA6;&#x5B66;&#x4E60;&#x7684;&#x6846;&#x67B6;&#x91CC;&#x4F1A;&#x5BF9;&#x6B65;&#x957F;&#x505A;&#x68C0;&#x67E5;&#xFF0C;&#x6B64;&#x65F6;&#x5C31;&#x4F1A;&#x629B;&#x51FA;&#x5F02;&#x5E38;&#x3002;</p>
<p>&#x63A5;&#x4E0B;&#x6765;&#x770B;&#x4E00;&#x4E2A;&#x4F8B;&#x5B50;&#xFF08;&#x70B9;&#x51FB; toggle movement &#x63A7;&#x5236;&#x64AD;&#x653E;&#xFF09;&#xFF0C;&#x56FE;&#x4E2D;&#x7684;&#x6DF1;&#x5EA6;&#x7531;&#x4E8E;&#x4E0D;&#x597D;&#x8868;&#x793A;&#x4F9D;&#x7136;&#x662F;&#x88AB;&#x5212;&#x5206;&#x6210;&#x4E00;&#x5F20;&#x5F20;&#x7684;&#x56FE;&#x3002;&#x8F93;&#x5165;&#x5BBD; \(W=5\)&#xFF0C;&#x9AD8;&#x4E3A; \(H=5\)&#xFF0C;&#x6DF1;&#x5EA6;&#x4E3A; \(D=3\)&#xFF0C;&#x96F6;&#x586B;&#x5145;&#x5927;&#x5C0F;&#x4E3A; \(P=1\)&#xFF0C;&#x5377;&#x79EF;&#x6838;&#x4E2A;&#x6570;&#x4E3A; \(K=2\)&#xFF0C;&#x5377;&#x79EF;&#x6838;&#x5927;&#x5C0F;&#x4E3A; \(F=3\)&#xFF0C;&#x6B65;&#x957F;&#x4E3A; \(S=2\)&#xFF0C;&#x6240;&#x4EE5;&#x8F93;&#x51FA;&#x7684;&#x5E73;&#x9762;&#x5927;&#x5C0F;&#x4E3A; \((W-F+2P)/S+1=3\)&#x3002;</p>
<iframe src="https://cs231n.github.io/assets/conv-demo/index.html" frameborder="0" scrolling="yes" width="100%" height="700px"></iframe>
<h4 id="anamepoolinglayerclassmyanchorapoolinglayer"><a name="pooling-layer" class="my-anchor"></a>Pooling Layer &#x6C60;&#x5316;&#x5C42;</h4>
<p>&#x5728;&#x4E4B;&#x524D;&#x7684; ConvNet &#x7ED3;&#x6784;&#x4E2D;&#x6211;&#x4EEC;&#x770B;&#x5230;&#x5F80;&#x5F80;&#x6709;&#x4E2A;&#x5168;&#x8FDE;&#x63A5;&#x5C42;&#xFF0C;&#x4E3A;&#x4E86;&#x51CF;&#x5C11;&#x53C2;&#x6570;&#x91CF;&#xFF0C;&#x6211;&#x4EEC;&#x5E0C;&#x671B;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x5377;&#x79EF;&#x5C42;&#x7528;&#x5C3D;&#x53EF;&#x80FD;&#x5C0F;&#x7684;&#x4F53;&#x79EF;&#x5305;&#x542B;&#x5C3D;&#x53EF;&#x80FD;&#x591A;&#x7684;&#x4FE1;&#x606F;&#x3002;&#x5982;&#x4F55;&#x51CF;&#x5C0F;&#x5377;&#x79EF;&#x7684;&#x4F53;&#x79EF;&#x5462;&#xFF1F;&#x6211;&#x4EEC;&#x5728;&#x5377;&#x79EF;&#x5C42;&#x4E4B;&#x95F4;&#x52A0;&#x5165;&#x6C60;&#x5316;&#x5C42;(Pooling Layer)&#xFF0C;&#x9010;&#x6E10;&#x51CF;&#x5C0F;&#x5377;&#x79EF;&#x7684;&#x7A7A;&#x95F4;&#x4F53;&#x79EF;&#xFF0C;&#x8FD9;&#x540C;&#x65F6;&#x4E5F;&#x4F1A;&#x907F;&#x514D;&#x8FC7;&#x62DF;&#x5408;&#x3002;&#x5BF9;&#x4E0A;&#x4E00;&#x5C42;&#x8F93;&#x51FA;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x6DF1;&#x5EA6;&#x5207;&#x7247;&#xFF0C;&#x901A;&#x8FC7;&#x53D6;&#x533A;&#x57DF;&#x6700;&#x5927;&#x503C;&#x7684;&#x65B9;&#x6CD5;&#x7F29;&#x51CF;&#x5BBD;&#x9AD8;&#xFF0C;&#x800C;&#x6DF1;&#x5EA6;&#x4F9D;&#x7136;&#x4FDD;&#x6301;&#x4E0D;&#x53D8;&#x3002;&#x6700;&#x5E38;&#x89C1;&#x7684;&#x4F8B;&#x5B50;&#x5C31;&#x662F;&#x7528; 2&#xD7;2 &#x7684;&#x8FC7;&#x6EE4;&#x5668;&#x4EE5; 2 &#x4E3A;&#x6B65;&#x957F;&#x8FDB;&#x884C;&#x533A;&#x57DF;&#x6700;&#x5927;&#x503C;&#x9009;&#x53D6;&#x3002;&#x5BF9;&#x4E8E;&#x4E00;&#x4E2A;&#x6C60;&#x5316;&#x533A;&#x57DF;&#x800C;&#x8A00;&#xFF0C;&#x5176;&#x5927;&#x5C0F;&#x4E3A; 4&#xFF0C;&#x800C;&#x6700;&#x5927;&#x503C;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#xFF0C;&#x6240;&#x4EE5; \(\frac{3}{4}\) &#x7684;&#x503C;&#x4F1A;&#x88AB;&#x629B;&#x5F03;&#x3002;&#x66F4;&#x4E00;&#x822C;&#x5316;&#x6765;&#x8BF4;&#xFF0C;&#x6C60;&#x5316;&#x5C42;&#x5E94;&#x5F53;&#xFF1A;</p>
<ul>
<li>&#x8F93;&#x5165;&#x5377;&#x79EF;&#x5927;&#x5C0F;&#x4E3A; \(W_1 \times H_1 \times D_1\)</li>
<li>&#x9700;&#x8981;&#x4E24;&#x4E2A;&#x8D85;&#x53C2;&#x6570;&#xFF1A;
<ul>
<li>&#x533A;&#x57DF;&#x5927;&#x5C0F;(spatial extent) \(F\)</li>
<li>&#x6B65;&#x957F;(stride) \(S\)</li>
</ul>
</li>
<li>&#x8F93;&#x51FA;&#x7ED3;&#x679C;&#x7684;&#x5927;&#x5C0F;&#x4E3A; \(W_2 \times H_2 \times D_2\)&#xFF0C;&#x5176;&#x4E2D;&#xFF1A;
<ul>
<li>\(W_2=(W_1-F)/S+1\)</li>
<li>\(H_2=(H_1-F)/S+1\)</li>
<li>\(D_2=D_1\)</li>
</ul>
</li>
<li>&#x4E0D;&#x5177;&#x6709;&#x5B66;&#x4E60;&#x6027;&#xFF0C;&#x6CA1;&#x6709;&#x54CD;&#x5E94;&#x7684;&#x53C2;&#x6570;</li>
<li>&#x4E00;&#x822C;&#x5728;&#x6C60;&#x5316;&#x5C42;&#x4E2D;&#x4E0D;&#x4F7F;&#x7528;&#x96F6;&#x586B;&#x5145;</li>
</ul>
<p>&#x503C;&#x5F97;&#x6CE8;&#x610F;&#x7684;&#x662F; \(F=2,3\), \(S=2\) &#x662F;&#x4E24;&#x7EC4;&#x7ECF;&#x9A8C;&#x53C2;&#x6570;&#xFF0C;\(F\) &#x8FC7;&#x5927;&#x7684;&#x8BDD;&#x4F1A;&#x5BF9;&#x91C7;&#x6837;&#x7ED3;&#x679C;&#x9020;&#x6210;&#x5F88;&#x4E0D;&#x5229;&#x7684;&#x5F71;&#x54CD;&#x3002;&#x9664;&#x4E86;&#x6700;&#x5927;&#x6C60;&#x5316;&#x5C42;&#xFF0C;&#x4E5F;&#x53EF;&#x4EE5;&#x5E94;&#x7528;&#x5176;&#x4ED6;&#x4E00;&#x4E9B;&#x51FD;&#x6570;&#xFF0C;&#x6BD4;&#x5982;&#x53D6;&#x5E73;&#x5747;&#x3001;&#x53D6;L2&#x8303;&#x6570;&#x7B49;&#x3002;&#x4F46;&#x662F;&#x6700;&#x8FD1;&#x7684;&#x7814;&#x7A76;&#x8868;&#x660E;&#xFF0C;&#x6700;&#x5927;&#x6C60;&#x5316;&#x5C42;&#x8868;&#x73B0;&#x66F4;&#x80DC;&#x4E00;&#x7B79;&#x3002;</p>
<p><img src="https://oidiotlin.com/content/images/2018/02/cnn-tutorial-05.jpeg" alt="&#x5377;&#x79EF;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x5165;&#x95E8;" loading="lazy"></p>
<p class="cmt">&#x6C60;&#x5316;&#x5C42;&#x5BF9;&#x8F93;&#x5165;&#x5377;&#x79EF;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x6DF1;&#x5EA6;&#x7684;&#x5207;&#x7247;&#x505A;&#x4E86;&#x4E00;&#x4E2A;&#x4E0B;&#x91C7;&#x6837;&#x7684;&#x64CD;&#x4F5C;&#x3002;&#x5DE6;&#x56FE;&#x4E2D;&#x8F93;&#x5165;&#x5927;&#x5C0F;&#x4E3A; [224&#xD7;224&#xD7;64]&#xFF0C;&#x901A;&#x8FC7;&#x5927;&#x5C0F;&#x4E3A; 2&#xFF0C;&#x6B65;&#x957F;&#x4E3A; 2 &#x7684;&#x8FC7;&#x6EE4;&#x5668;&#x6C60;&#x5316;&#x540E;&#xFF0C;&#x8F93;&#x51FA;&#x53D8;&#x6210;&#x4E86; [112&#xD7;112&#xD7;64]&#xFF0C;&#x5176;&#x6DF1;&#x5EA6;&#x6CA1;&#x6709;&#x53D1;&#x751F;&#x53D8;&#x5316;&#x3002;&#x53F3;&#x56FE;&#x4E2D;&#x662F;&#x6700;&#x5E38;&#x7528;&#x7684;&#x6700;&#x5927;&#x6C60;&#x5316;&#x5C42;&#x5BF9;&#x4E8E;&#x4E00;&#x4E2A; 4&#xD7;4 &#x8F93;&#x5165;&#x7684;&#x6C60;&#x5316;&#x8FC7;&#x7A0B;</p>
<p>&#x4E0D;&#x4F7F;&#x7528;&#x6C60;&#x5316;&#x5C42;&#x5176;&#x5B9E;&#x4E5F;&#x80FD;&#x505A;&#x5230;&#x524A;&#x51CF;&#x5377;&#x79EF;&#x5927;&#x5C0F;&#xFF0C;&#x53EA;&#x8981;&#x5728;&#x5377;&#x79EF;&#x4E2D;&#x5C06;&#x6B65;&#x957F;&#x8C03;&#x5927;&#xFF0C;&#x81EA;&#x7136;&#x5E73;&#x9762;&#x5927;&#x5C0F;&#x5C31;&#x53D8;&#x5C0F;&#xFF0C;&#x5982; VAEs, GANs &#x7B49;&#x3002;&#x4F46;&#x6C60;&#x5316;&#x5C42;&#x4F9D;&#x7136;&#x662F;&#x4E00;&#x79CD;&#x4E3B;&#x6D41;&#x505A;&#x6CD5;&#xFF0C;&#x4E14;&#x6536;&#x6548;&#x751A;&#x597D;&#x3002;</p>
<h4 id="anamefullyconnectedlayerclassmyanchorafullyconnectedlayer"><a name="fully-connected-layer" class="my-anchor"></a>Fully-Connected Layer &#x5168;&#x8FDE;&#x63A5;&#x5C42;</h4>
<p>&#x5168;&#x8FDE;&#x63A5;&#x5C42;&#x4E2D;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x795E;&#x7ECF;&#x5143;&#x90FD;&#x4E0E;&#x4E0A;&#x4E00;&#x5C42;&#x4E2D;&#x7684;&#x6240;&#x6709;&#x6FC0;&#x6D3B;&#x7ED3;&#x679C;&#x5B8C;&#x5168;&#x8FDE;&#x63A5;&#xFF0C;&#x4E0E;&#x7ECF;&#x5178;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x6A21;&#x578B;&#x5DEE;&#x522B;&#x4E0D;&#x5927;&#xFF0C;&#x8FD9;&#x91CC;&#x4E0D;&#x518D;&#x505A;&#x8D58;&#x8FF0;&#x3002;</p>
<h3 id="anameconvnetarchitecturesclassmyanchoraconvnet"><a name="convnet-architectures" class="my-anchor"></a>ConvNet &#x5E38;&#x89C1;&#x67B6;&#x6784;</h3>
<h4 id="anamelayerpatternsclassmyanchora"><a name="layer-patterns" class="my-anchor"></a>&#x5C42;&#x7EA7;&#x7ED3;&#x6784;</h4>
<p>&#x6700;&#x4E3A;&#x5E38;&#x89C1;&#x7684;&#x5C42;&#x7EA7;&#x6A21;&#x5F0F;&#x5C31;&#x662F;&#x591A;&#x4E2A; Conv-ReLU &#x540E;&#x63A5; Pool&#xFF0C;&#x518D;&#x4F9D;&#x6B64;&#x91CD;&#x590D;&#x5806;&#x53E0;&#xFF0C;&#x76F4;&#x5230;&#x56FE;&#x50CF;&#x88AB;&#x8F6C;&#x5316;&#x6210;&#x8F83;&#x5C0F;&#x7684;&#x5C3A;&#x5BF8;&#xFF0C;&#x6700;&#x540E;&#x901A;&#x5E38;&#x518D;&#x81EA;&#x7136;&#x5730;&#x63A5;&#x5165;&#x5168;&#x8FDE;&#x63A5;&#x5C42;&#x3002;&#x4E00;&#x822C;&#x800C;&#x8A00;&#xFF0C;&#x6700;&#x4E3A;&#x5E38;&#x89C1;&#x7684; ConvNet &#x6709;&#x7740;&#x8FD9;&#x6837;&#x7684;&#x7ED3;&#x6784;&#x6A21;&#x5F0F;&#xFF1A;<br>
<code>Input &#x2192; [Conv &#x2192; ReLU]*N &#x2192; Pool?]*M &#x2192; [FC &#x2192; ReLU]*K &#x2192; FC</code></p>
<p>&#x5176;&#x4E2D; <code>*</code> &#x8868;&#x793A;&#x91CD;&#x590D;&#xFF0C;<code>Pool?</code> &#x8868;&#x793A;&#x8BE5;&#x5904;&#x6C60;&#x5316;&#x662F;&#x53EF;&#x9009;&#x5C42;&#x3002;&#x901A;&#x5E38;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;<code>N,K</code>&#x5E94;&#x5F53;&#x4E0D;&#x8D85;&#x8FC7;3&#x3002;</p>
<h4 id="anamelayersizingpatternsclassmyanchora"><a name="layer-sizing-patterns" class="my-anchor"></a>&#x5C42;&#x5185;&#x5927;&#x5C0F;&#x53C2;&#x6570;</h4>
<p>&#x5C42;&#x5185;&#x4E5F;&#x662F;&#x6709;&#x90E8;&#x5206;&#x8D85;&#x53C2;&#x6570;&#x9700;&#x8981;&#x8BBE;&#x7F6E;&#x7684;&#x3002;</p>
<p>&#x8F93;&#x5165;&#x5C42;&#x7684;&#x5927;&#x5C0F;&#x5E94;&#x5F53;&#x80FD;&#x88AB; 2 &#x6574;&#x9664;&#x591A;&#x6B21;&#x3002;&#x6BD4;&#x5982; 32(&#x5982; CIFAR-10), 64, 96(&#x5982; STL-10), 224(&#x5982; ImageNet Common ConvNets), 384 &#x6216; 512.</p>
<p>&#x5377;&#x79EF;&#x5C42;&#x7684;&#x5377;&#x79EF;&#x6838;&#x5E94;&#x5F53;&#x5C0F;&#x3002;&#x901A;&#x5E38;&#x9009;&#x62E9; [3&#xD7;3] &#x6216;&#x8005; [5&#xD7;5]&#xFF08;&#x53EA;&#x6709;&#x5728;&#x6700;&#x521D;&#x7684;&#x5377;&#x79EF;&#x5C42;&#x4E0A;&#x624D;&#x4F1A;&#x4F7F;&#x7528;&#x66F4;&#x5927;&#x7684;&#x5377;&#x79EF;&#x6838;&#xFF0C;&#x5982; [7&#xD7;7]&#xFF09;&#x3002;&#x4E4B;&#x524D;&#x8BA8;&#x8BBA;&#x8FC7;&#x5229;&#x7528; \(P=\frac{F-1}{2}\)&#xFF0C;&#x4F7F;&#x5F97;&#x56FE;&#x50CF;&#x5927;&#x5C0F;&#x4E0D;&#x53D1;&#x751F;&#x6539;&#x53D8;&#x3002;</p>
<p>&#x6C60;&#x5316;&#x5C42;&#x8D1F;&#x8D23;&#x4E0B;&#x91C7;&#x6837;&#x64CD;&#x4F5C;&#x3002;&#x901A;&#x5E38;&#x9009;&#x62E9; [2&#xD7;2] &#x4F5C;&#x4E3A;&#x6C60;&#x5316;&#x533A;&#x57DF;&#xFF0C;&#x6B65;&#x957F;&#x8BBE;&#x4E3A; 2&#x3002;</p>
<hr>
<p>&#x7B80;&#x5355;&#x7684;&#x4ECB;&#x7ECD;&#x5C31;&#x5230;&#x6B64;&#x4E3A;&#x6B62;&#x4E86;&#xFF0C;&#x4EE5;&#x4E0B;&#x662F;&#x4E00;&#x4E9B;&#x5E38;&#x7528;&#x7684;&#x6A21;&#x578B;&#xFF1A;</p>
<ul>
<li>LeNet.</li>
<li>AlexNet.</li>
<li>ZF Net.</li>
<li>GoogLeNet.</li>
<li>VGGNet.</li>
<li>ResNet.</li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[爬爬爬 —— BeautifulSoup 还是 Scrapy？]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x4E3A;&#x4EC0;&#x4E48;&#x5199;&#x8FD9;&#x7BC7;&#x77ED;&#x6587;</h2>
<ol>
<li>&#x6700;&#x8FD1;&#x5728;&#x505A;&#x4E00;&#x4E2A; DL&#xD7;CV &#x7684; proj&#xFF0C;&#x9700;&#x8981;&#x5927;&#x91CF;&#x7684;&#x5E7F;&#x4E1C;&#x7F8E;&#x98DF;&#x56FE;&#x7247;&#x6570;&#x636E;&#xFF0C;&#x521A;&#x597D;&#x5199;&#x4E00;&#x53D1;&#x722C;&#x866B;&#x3002;</li>
<li>&#x53D1;&#x73B0;&#x8EAB;&#x8FB9;&#x5F88;&#x591A;&#x540C;&#x5B66;</li></ol>]]></description><link>https://oidiotlin.com/beautifulsoup-vs-scrapy/</link><guid isPermaLink="false">63847a40ff82689f3f5c0614</guid><category><![CDATA[Tech]]></category><dc:creator><![CDATA[OIdiot]]></dc:creator><pubDate>Mon, 05 Feb 2018 14:41:07 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2018/02/spidermanfeatured.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x4E3A;&#x4EC0;&#x4E48;&#x5199;&#x8FD9;&#x7BC7;&#x77ED;&#x6587;</h2>
<ol>
<li>&#x6700;&#x8FD1;&#x5728;&#x505A;&#x4E00;&#x4E2A; DL&#xD7;CV &#x7684; proj&#xFF0C;&#x9700;&#x8981;&#x5927;&#x91CF;&#x7684;&#x5E7F;&#x4E1C;&#x7F8E;&#x98DF;&#x56FE;&#x7247;&#x6570;&#x636E;&#xFF0C;&#x521A;&#x597D;&#x5199;&#x4E00;&#x53D1;&#x722C;&#x866B;&#x3002;</li>
<li>&#x53D1;&#x73B0;&#x8EAB;&#x8FB9;&#x5F88;&#x591A;&#x540C;&#x5B66;&#x7A81;&#x7136;&#x770B;&#x8D77;&#x4E86; python&#xFF0C;&#x800C;&#x4E0A;&#x624B; proj &#x5C31;&#x662F;&#x5199;&#x722C;&#x866B;&#xFF0C;&#x7136;&#x800C;&#x7F51;&#x4E0A;&#x8D44;&#x6599;&#x7EB7;&#x7E41;&#x590D;&#x6742;&#xFF0C;&#x7EA0;&#x7ED3;&#x662F;&#x7528; bs &#x8FD8;&#x662F; scrapy&#x3002;</li>
</ol>
<img src="https://oidiotlin.com/content/images/2018/02/spidermanfeatured.jpg" alt="&#x722C;&#x722C;&#x722C; &#x2014;&#x2014; BeautifulSoup &#x8FD8;&#x662F; Scrapy&#xFF1F;"><p><strong>&#x8FD9;&#x91CC;&#x7684;&#x4ECB;&#x7ECD;&#x975E;&#x5E38;&#x7B80;&#x8981;&#xFF0C;&#x6D89;&#x53CA;&#x6DF1;&#x5C42;&#x59FF;&#x52BF;&#x7684;&#x90E8;&#x5206;&#x8BF7;&#x51FA;&#x95E8;&#x53F3;&#x62D0;&#x5B98;&#x7F51;&#x3002;</strong></p>
<h2 id>&#x4E00;&#x4E9B;&#x80CC;&#x666F;&#x59FF;&#x52BF;</h2>
<p>&#x5728; bs &#x548C; scrapy &#x4E4B;&#x95F4;&#x505A;&#x9009;&#x62E9;&#x524D;&#xFF0C;&#x9996;&#x5148;&#x5F53;&#x7136;&#x8981;&#x4E86;&#x89E3;&#x4ED6;&#x4EEC;&#x662F;&#x4EC0;&#x4E48;&#xFF0C;&#x5DEE;&#x522B;&#x4F55;&#x5728;&#x3002;</p>
<ul>
<li><a href="https://scrapy.org/">Scrapy</a> &#x662F;&#x4E00;&#x4E2A;&#x975E;&#x5E38;&#x6210;&#x719F;&#x7684;&#x5DE5;&#x5177;&#x5305;&#xFF0C;&#x4F60;&#x53EA;&#x8981;&#x5199;&#x5F88;&#x5C11;&#x7684;&#x4E1C;&#x897F;&#x5C31;&#x80FD;&#x8FBE;&#x5230;&#x4F60;&#x8981;&#x7684;&#x6548;&#x679C;&#x2014;&#x2014;&#x521B;&#x5EFA;&#x4E00;&#x4E2A; spider &#x4E0B;&#x8F7D;&#x7F51;&#x9875;&#x5E76;&#x63D0;&#x53D6;&#x5176;&#x4E2D;&#x6709;&#x7528;&#x7684;&#x6570;&#x636E;&#x3002;</li>
<li><a href="https://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a> &#x5219;&#x662F;&#x4E00;&#x4E2A;&#x9762;&#x5411;&#x7F51;&#x9875;&#x7684;&#x5DE5;&#x5177;&#xFF0C;&#x5B83;&#x80FD;&#x591F;&#x89E3;&#x6790; DOM &#x6811;&#x5E76;&#x63D0;&#x53D6;&#x67D0;&#x4E9B;&#x7279;&#x5B9A;&#x7684;&#x8282;&#x70B9;&#xFF08;&#x6BD4;&#x5982; <code>&lt;img&gt;</code>,<code>&lt;p&gt;</code> &#x7B49;&#xFF09;&#x3002;</li>
</ul>
<p>&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;&#x53EA;&#x7528; bs &#x662F;&#x505A;&#x4E0D;&#x4E86;&#x722C;&#x866B;&#x7684;&#xFF0C;&#x5FC5;&#x987B;&#x8981;&#x5F15;&#x5165; <a href="http://docs.python-requests.org/en/master/">requests</a> &#x4E4B;&#x7C7B;&#x7684;&#x5305;&#x7528;&#x6765;&#x4E0B;&#x8F7D;&#x7F51;&#x9875;&#xFF0C;&#x8FD9;&#x6837; bs &#x624D;&#x80FD;&#x5BF9;&#x7F51;&#x9875;&#x8FDB;&#x884C;&#x89E3;&#x6790;&#x3002;</p>
<p>&#x6240;&#x4EE5;&#xFF0C;&#x4E8C;&#x8005;&#x5DEE;&#x522B;&#x5176;&#x5B9E;&#x633A;&#x5927;&#x7684;&#xFF1A;</p>
<ul>
<li>Scrapy &#x7528;&#x4E8E;&#x4ECE;&#x7F51;&#x7EDC;&#x4E0A;&#x4E0B;&#x8F7D;&#xFF0C;&#x6E05;&#x6D17;&#xFF0C;&#x5B58;&#x50A8;&#x6570;&#x636E;&#xFF0C;&#x800C;&#x4E14;&#x5185;&#x7F6E;&#x4E86;&#x5F88;&#x591A;&#x4EE3;&#x7801;&#x8282;&#x7EA6;&#x4F60;&#x7684;&#x7F16;&#x5199;&#x65F6;&#x95F4;&#x3002;</li>
<li>&#x800C; BeautifulSoup &#x4EC5;&#x4EC5;&#x53EA;&#x662F;&#x5BF9;&#x7F51;&#x9875;&#x8FDB;&#x884C;&#x89E3;&#x6790;&#x62BD;&#x53D6;&#x3002;</li>
</ul>
<h2 id>&#x5982;&#x4F55;&#x9009;&#x62E9;&#x5462;&#xFF1F;</h2>
<p>&#x5982;&#x679C;&#x4F60;&#x662F;&#x60F3;&#x5FEB;&#x901F;&#x64B8;&#x51FA;&#x4E00;&#x4E2A;&#x722C;&#x866B;&#xFF0C;Scrapy &#x5F53;&#x4EC1;&#x4E0D;&#x8BA9;&#x3002;&#x5B83;&#x5DF2;&#x7ECF;&#x5E2E;&#x4F60;&#x89E3;&#x51B3;&#x4E86;&#x5927;&#x91CF;&#x7684;&#x672C;&#x8BE5;&#x7531;&#x4F60;&#x81EA;&#x5DF1;&#x89E3;&#x51B3;&#x7684;&#x95EE;&#x9898;&#xFF0C;&#x6BD4;&#x5982;&#xFF1A;</p>
<ul>
<li>&#x722C;&#x53D6;&#x7684;&#x6570;&#x636E;&#x683C;&#x5F0F;&#x9519;&#x7EFC;&#x590D;&#x6742;&#xFF0C;Scrapy &#x80FD;&#x8BA9;&#x4F60;&#x7528;&#x5F88;&#x77ED;&#x7684;&#x4EE3;&#x7801;&#x5B8C;&#x6210;&#x6570;&#x636E;&#x7684;&#x683C;&#x5F0F;&#x5316;&#x3002;</li>
<li>Scrapy &#x5BB9;&#x9519;&#x7387;&#x5F88;&#x9AD8;&#xFF0C;&#x5F53;&#x51FA;&#x73B0;&#x670D;&#x52A1;&#x5668;&#x9519;&#x8BEF;&#x3001;&#x9875;&#x9762;&#x672A;&#x627E;&#x5230;&#x7B49;&#x9519;&#x8BEF;&#x65F6;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5185;&#x7F6E;&#x7684; tools &#x8F7B;&#x677E;&#x8FD4;&#x56DE;&#x4E0A;&#x4E00;&#x6B65;&#xFF0C;&#x8DF3;&#x8FC7;&#x6216;&#x91CD;&#x8BD5;&#x8BE5;&#x5904;&#x9519;&#x8BEF;&#x3002;</li>
<li>&#x6709;&#x7684;&#x9875;&#x9762;&#x9700;&#x8981;&#x767B;&#x5F55;&#x624D;&#x80FD;&#x8BBF;&#x95EE;&#xFF0C;Scrapy &#x5185;&#x7F6E;&#x4E86;&#x4F18;&#x96C5;&#x7684; login &#x5DE5;&#x5177;&#xFF0C;&#x5728; scrape &#x524D;&#x5C31;&#x80FD;&#x5904;&#x7406;&#x597D;&#x767B;&#x5F55;&#x52A8;&#x4F5C;&#x3002;</li>
<li>&#x6709;&#x7684;&#x7F51;&#x7AD9;&#x7ECF;&#x5E38;&#x6539;&#x53D8;&#x5176;&#x5E03;&#x5C40;&#x683C;&#x5F0F;&#xFF0C;&#x800C; Scrapy &#x652F;&#x6301; Sensible Spiders&#xFF0C;&#x5373;&#x5206;&#x79BB;&#x51FA;&#x4E86;&#x5E03;&#x5C40;&#x683C;&#x5F0F;&#x7684;&#x903B;&#x8F91;&#xFF0C;&#x4F7F;&#x5F97;&#x6211;&#x4EEC;&#x4E0D;&#x9700;&#x8981;&#x7ECF;&#x5E38;&#x7EF4;&#x62A4;&#x4FEE;&#x6539; spider &#x6765;&#x652F;&#x6301;&#x53D8;&#x5E7B;&#x65E0;&#x5E38;&#x7684;&#x9875;&#x9762;&#x3002;</li>
<li>&#x6709;&#x7684;&#x7F51;&#x7AD9;&#x9650;&#x6D41;&#xFF0C;&#x6709;&#x65F6;&#x8D85;&#x51FA;&#x9650;&#x5B9A;&#x5219;&#x4F1A;&#x9501; ip&#x3002;Scrapy &#x5185;&#x7F6E;&#x4E86;&#x63A7;&#x5236;&#x6D41;&#x901F;&#x7684;&#x529F;&#x80FD;&#xFF0C;&#x80FD;&#x8F7B;&#x677E;&#x8C03;&#x63A7;&#x722C;&#x53D6;&#x901F;&#x5EA6;&#x3002;</li>
<li>Scrapy &#x652F;&#x6301;&#x591A;&#x7EBF;&#x7A0B;&#xFF0C;&#x540C;&#x65F6;&#x80FD;&#x53D1;&#x51FA;&#x591A;&#x4E2A; requests&#xFF0C;&#x63D0;&#x5347;&#x4E86;&#x901F;&#x5EA6;&#x3002;</li>
</ul>
<p>&#x4EBA;&#x751F;&#x82E6;&#x77ED;&#x4E0D;&#x5982; python&#xFF0C;&#x65E2;&#x7136;&#x90FD;&#x9009;&#x62E9; py &#x4E86;&#xFF0C;&#x4E3A;&#x4EC0;&#x4E48;&#x4E0D;&#x9009;&#x62E9;&#x7528;&#x66F4;&#x65B9;&#x4FBF;&#x7684; Scrapy &#x5462;&#xFF1F;</p>
<p>&#x5F53;&#x7136;&#xFF0C;Scrapy &#x5982;&#x6B64;&#x65B9;&#x4FBF;&#x5F53;&#x7136;&#x4E5F;&#x610F;&#x5473;&#x7740;&#x4F60;&#x7684;&#x81EA;&#x7531;&#x5EA6;&#x4E0B;&#x964D;&#x4E86;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x5E76;&#x4E0D;&#x9700;&#x8981;&#x4EE5;&#x4E0A;&#x8BF4;&#x7684;&#x90A3;&#x4E9B;&#x7279;&#x6027;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x5E0C;&#x671B;&#x5199;&#x51FA;&#x66F4;&#x52A0;&#x81EA;&#x7531;&#x7684;&#x722C;&#x866B;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x8981;&#x6DF1;&#x5165;&#x4E86;&#x89E3;&#x722C;&#x866B;&#x7684;&#x5185;&#x90E8;&#x7ED3;&#x6784;&#xFF0C;&#x5F53;&#x7136;&#x8FD8;&#x662F;&#x63A8;&#x8350;&#x7528; bs + requests + coroutine &#x4E4B;&#x7C7B;&#x7684;&#x4E1C;&#x897F;&#x6162;&#x6162;&#x6298;&#x817E;&#x5566;&#x3002;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[LSTM - 你还记得吗？该忘的就忘了吧。]]></title><description><![CDATA[一时兴起，来推导一下 LSTM（Long Short Term Memory - 长短期记忆）……
在处理序列型数据时，我们常常使用循环神经网络（RNN），这正是 LSTM 的前身。]]></description><link>https://oidiotlin.com/lstm-tutorial/</link><guid isPermaLink="false">63847a40ff82689f3f5c0612</guid><category><![CDATA[Tech]]></category><category><![CDATA[Machine Learning]]></category><dc:creator><![CDATA[OIdiot]]></dc:creator><pubDate>Tue, 31 Oct 2017 13:37:12 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2017/10/pixel.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id></h2>
<img src="https://oidiotlin.com/content/images/2017/10/pixel.png" alt="LSTM - &#x4F60;&#x8FD8;&#x8BB0;&#x5F97;&#x5417;&#xFF1F;&#x8BE5;&#x5FD8;&#x7684;&#x5C31;&#x5FD8;&#x4E86;&#x5427;&#x3002;"><p>&#x4E00;&#x65F6;&#x5174;&#x8D77;&#xFF0C;&#x6765;&#x63A8;&#x5BFC;&#x4E00;&#x4E0B; LSTM&#xFF08;Long Short Term Memory - &#x957F;&#x77ED;&#x671F;&#x8BB0;&#x5FC6;&#xFF09;&#x2026;&#x2026;</p>
<h2 id="lstm">LSTM &#x4ECE;&#x4F55;&#x800C;&#x6765;&#xFF1F;</h2>
<p>&#x5728;&#x5904;&#x7406;&#x5E8F;&#x5217;&#x578B;&#x6570;&#x636E;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x5E38;&#x5E38;&#x4F7F;&#x7528;&#x5FAA;&#x73AF;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#xFF08;RNN&#xFF09;&#xFF0C;&#x8FD9;&#x6B63;&#x662F; LSTM &#x7684;&#x524D;&#x8EAB;&#x3002;</p>
<h3 id="rnn">&#x6700;&#x7B80;&#x5355;&#x7684; RNN</h3>
<p><img src="https://oidiotlin.com/content/images/2017/10/simple_rnn.png" alt="LSTM - &#x4F60;&#x8FD8;&#x8BB0;&#x5F97;&#x5417;&#xFF1F;&#x8BE5;&#x5FD8;&#x7684;&#x5C31;&#x5FD8;&#x4E86;&#x5427;&#x3002;" loading="lazy"></p>
<p>&#x6211;&#x4EEC;&#x5148;&#x4ECE;&#x6700;&#x7B80;&#x5355;&#x7684;&#x65E0;&#x9690;&#x5C42; RNN &#x5F00;&#x59CB;&#x3002;&#x5B83;&#x7684;&#x72B6;&#x6001;&#x66F4;&#x65B0;&#x65B9;&#x7A0B;&#x6EE1;&#x8DB3;&#xFF08;\(f\) &#x662F;&#x67D0;&#x6FC0;&#x6D3B;&#x51FD;&#x6570;&#xFF09;&#xFF1A;$$\hat y_t = f(x_t*W+\hat y_{t-1}*V+b)$$</p>
<p>&#x901A;&#x8FC7;&#x8FD9;&#x79CD;&#x65B9;&#x5F0F;&#xFF0C;&#x6BCF;&#x4E2A;&#x795E;&#x7ECF;&#x5143;&#x90FD;&#x4F1A;&#x5728;&#x8BA1;&#x7B97; \(t\) &#x65F6;&#x523B;&#x8F93;&#x51FA;&#x65F6;&#x8003;&#x8651;&#x4E0A;&#x4E00;&#x4E2A;&#x795E;&#x7ECF;&#x5143;&#x5F97;&#x51FA;&#x7684; \(\hat y_{t-1}\)&#x3002;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;<strong>&#x5728;&#x6BCF;&#x6B21;&#x505A;&#x51B3;&#x7B56;&#x65F6;&#xFF0C;&#x8BE5;&#x795E;&#x7ECF;&#x5143;&#x90FD;&#x4F1A;&#x53D7;&#x5230;&#x4E0A;&#x4E00;&#x4E2A;&#x51B3;&#x7B56;&#x7ED3;&#x679C;&#x7684;&#x5F71;&#x54CD;</strong>&#xFF0C;&#x901A;&#x8FC7; \(t-1\) &#x4E0E; \(t\) &#x7684;&#x5173;&#x7CFB;&#xFF0C;&#x6211;&#x4EEC;&#x4E5F;&#x5C31;&#x5BF9;&#x6574;&#x4E2A;&#x5E8F;&#x5217;&#x4E2D;&#x7684;&#x5143;&#x7D20;&#x5EFA;&#x7ACB;&#x4E86;&#x8054;&#x7CFB;&#x3002;</p>
<p>&#x7136;&#x800C;&#x4E8B;&#x5B9E;&#x5E76;&#x975E;&#x5982;&#x6B64;&#xFF0C;&#x60F3;&#x60F3;&#x4EBA;&#x7C7B;&#x7684;&#x5728;&#x8003;&#x8651;&#x5E8F;&#x5217;&#x5F0F;&#x95EE;&#x9898;&#x65F6;&#x7684;&#x601D;&#x7EF4;&#x6A21;&#x5F0F;&#xFF0C;&#x5047;&#x8BBE;&#x4F60;&#x6B63;&#x5728;&#x6253;&#x9EBB;&#x5C06;&#x724C;&#xFF0C;&#x5BF9;&#x4E8E;&#x4E00;&#x822C;&#x7684;&#x4EBA;&#x800C;&#x8A00;&#xFF0C;&#x6BCF;&#x4E2A;&#x65F6;&#x523B;&#xFF08;&#x51FA;&#x724C;&#x65F6;&#xFF09;&#x90FD;&#x4F1A;&#xFF1A;</p>
<ol>
<li>&#x770B;&#x770B;&#x6478;&#x5230;&#x4E86;&#x4EC0;&#x4E48;&#x724C;&#xFF0C;&#x624B;&#x724C;&#x53C8;&#x5982;&#x4F55;&#x3002;</li>
<li>&#x56DE;&#x987E;&#x4E4B;&#x524D;&#x7684;&#x724C;&#x5C40;&#x3002;</li>
<li>&#x901A;&#x8FC7; 1 &#x548C; 2 &#x5206;&#x6790;&#x51FA;&#x5F53;&#x524D;&#x7684;&#x6700;&#x4F18;&#x7B56;&#x7565;&#x3002;</li>
</ol>
<p>&#x7B2C; 1 &#x6B65;&#x4E2D;&#x7684;&#x6478;&#x724C;&#x548C;&#x770B;&#x624B;&#x724C;&#x89C6;&#x4E3A;&#x5F53;&#x524D;&#x65F6;&#x523B;&#x7684;&#x8F93;&#x5165;&#x6570;&#x636E; \(x_{t}\)&#x3002;&#x7B2C; 2 &#x6B65;&#x4E2D;&#x7684;&#x56DE;&#x987E;&#x724C;&#x5C40;&#x5C31;&#x662F;&#x8BBF;&#x95EE;&#x8BB0;&#x5FC6;&#x3002;&#x800C;&#x7B2C; 3 &#x6B65;&#x5C31;&#x662F;&#x901A;&#x8FC7;&#x8FD9;&#x4E9B;&#x4FE1;&#x606F;&#x505A;&#x51FA;&#x51B3;&#x7B56;&#x6C42; \(\hat y_t\)&#x3002;&#x4F46;&#x662F;&#x4E0D;&#x96BE;&#x53D1;&#x73B0;&#xFF0C;&#x6211;&#x4EEC;&#x8BBF;&#x95EE;&#x7684;&#x8BB0;&#x5FC6;&#x4FE1;&#x606F;<strong>&#x4E0D;&#x53EA;&#x662F;&#x4E0A;&#x4E00;&#x6B65;&#x505A;&#x51FA;&#x7684;&#x51B3;&#x7B56;</strong> \(\hat y_{t-1}\)&#xFF0C;&#x800C;&#x662F;&#x5BF9;&#x6574;&#x4E2A;&#x724C;&#x5C40;&#x7684;&#x56DE;&#x987E;&#xFF0C;&#x5373;&#x4F7F;&#x8BB0;&#x5FC6;&#x6A21;&#x7CCA;&#x5374;&#x4E5F;&#x5305;&#x542B;&#x4E86;&#x8BB8;&#x591A;&#x4FE1;&#x606F;&#xFF0C;&#x81F3;&#x5C11;&#xFF0C;&#x5B83;&#x5E94;&#x8BE5;&#x662F;&#x6839;&#x636E;&#x6700;&#x8FD1;&#x51E0;&#x4E2A;&#x56DE;&#x5408;&#x7684;&#x724C;&#x5C40;&#x4EA7;&#x751F;&#x7684;&#x62BD;&#x8C61;&#x8BB0;&#x5FC6;&#x3002;</p>
<h3 id="rnn">&#x643A;&#x5E26;&#x9690;&#x5C42;&#x8282;&#x70B9;&#x7684;&#x7ECF;&#x5178; RNN</h3>
<p>&#x6240;&#x8C13;&#x7684;&#x62BD;&#x8C61;&#x8BB0;&#x5FC6;&#xFF0C;&#x5176;&#x5B9E;&#x5C31;&#x662F; RNN &#x4E2D;&#x7684;&#x9690;&#x72B6;&#x6001;&#x3002;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x628A; \(t\) &#x65F6;&#x523B;&#x795E;&#x7ECF;&#x5143;&#x7684;&#x8F93;&#x51FA;&#x770B;&#x4F5C;&#x662F;&#x4E24;&#x90E8;&#x5206;&#xFF0C;&#x4E00;&#x90E8;&#x5206;&#x662F;&#x51B3;&#x7B56; \(\hat y_t\)&#xFF0C;&#x53E6;&#x4E00;&#x90E8;&#x5206;&#x5C31;&#x662F;&#x9690;&#x72B6;&#x6001; \(h_t\)&#x3002;&#x4F20;&#x9012;&#x7ED9; \(t\) &#x65F6;&#x523B;&#x7684;&#x4FE1;&#x606F;&#x4E0D;&#x518D;&#x662F;&#x7B80;&#x5355;&#x7684;&#x51B3;&#x7B56; \(\hat y_{t-1}\) &#x800C;&#x5DF2;&#xFF0C;&#x800C;&#x662F;&#x5386;&#x53F2;&#x8BB0;&#x5FC6;&#x7684;&#x878D;&#x5408; \(h_{t-1}\)&#x3002;</p>
<p><img src="https://oidiotlin.com/content/images/2017/10/rnn_with_hidden.png" alt="LSTM - &#x4F60;&#x8FD8;&#x8BB0;&#x5F97;&#x5417;&#xFF1F;&#x8BE5;&#x5FD8;&#x7684;&#x5C31;&#x5FD8;&#x4E86;&#x5427;&#x3002;" loading="lazy"></p>
<p>&#x5982;&#x4E0A;&#x56FE;&#x6240;&#x793A;&#xFF0C;&#x8FD9;&#x5C31;&#x662F;&#x7ECF;&#x5178; RNN&#xFF0C;&#x5B83;&#x7684;&#x72B6;&#x6001;&#x66F4;&#x65B0;&#x6EE1;&#x8DB3;&#x65B9;&#x7A0B;&#xFF08;\(f,g\) &#x5747;&#x4E3A;&#x6FC0;&#x6D3B;&#x51FD;&#x6570;&#xFF09;&#xFF1A;<br>
$$ \begin{align} h_t&amp;=g(x_{t}*U+h_{t-1}*W+b)<br>
\\ \hat y_{t}&amp;=f(h_{t}*V+c) \end{align}$$</p>
<p>&#x8FD9;&#x6837;&#x4E00;&#x6765;&#xFF0C;&#x8FC7;&#x53BB;&#x67D0;&#x4E00;&#x4E2A; \(\hat y_{i}\) &#x53EF;&#x80FD;&#x4F1A;&#x901A;&#x8FC7;&#x5F71;&#x54CD; \(h\) &#x6765;&#x5F71;&#x54CD; \(y_{t}\)&#x3002;</p>
<h3 id="rnn">&#x4F20;&#x7EDF; RNN &#x7684;&#x5F0A;&#x7AEF;</h3>
<p>&#x4ECE;&#x4E0A;&#x9762;&#x7684; RNN &#x72B6;&#x6001;&#x66F4;&#x65B0;&#x65B9;&#x7A0B;&#x4E0D;&#x96BE;&#x53D1;&#x73B0;&#xFF0C;&#x4F5C;&#x4E3A;&#x201C;&#x5386;&#x53F2;&#x8BB0;&#x5FC6;&#x201D;&#x7684; \(h\) &#x5176;&#x5B9E;&#x662F;&#x5957;&#x5728; \(g(\cdot)\)&#x8FD9;&#x4E2A;&#x51FD;&#x6570;&#x91CC;&#x7684;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;&#x5728;&#x8BEF;&#x5DEE;&#x9006;&#x4F20;&#x64AD;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x7531;&#x4E8E;&#x6C42;&#x5BFC;&#x94FE;&#x5F0F;&#x6CD5;&#x5219;&#xFF0C;&#x68AF;&#x5EA6;&#x4F1A;&#x88AB;&#x8868;&#x793A;&#x6210;&#x8FDE;&#x79EF;&#x7684;&#x5F62;&#x5F0F;&#xFF0C;&#x5F53; RNN &#x7684;&#x957F;&#x5EA6; \(\tau\) &#x8F83;&#x957F;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x68AF;&#x5EA6;&#x4ECE;&#x7B2C; \(\tau\) &#x4E2A;&#x795E;&#x7ECF;&#x5143;&#x4F20;&#x81F3;&#x7B2C;&#x4E00;&#x4E2A;&#x65F6;&#xFF0C;&#x7EC8;&#x4F1A;<strong>&#x5F25;&#x6563;</strong>&#x6216;&#x662F;<strong>&#x7206;&#x70B8;</strong>&#xFF08;&#x4E0D;&#x7B49;&#x4E8E; 1 &#x7684;&#x6570;&#x8FDE;&#x4E58;&#xFF09;&#x3002;</p>
<p>&#x8FD9;&#x4F1A;&#x5BFC;&#x81F4;&#x4EC0;&#x4E48;&#x5462;&#xFF1F;<strong>&#x5728;&#x67D0;&#x4E2A;&#x65F6;&#x523B;&#x51FA;&#x73B0;&#x7684;&#x91CD;&#x8981;&#x4E8B;&#x4EF6;&#x7531;&#x4E8E;&#x65F6;&#x95F4;&#x76F8;&#x9694;&#x957F;&#x8FDC;&#xFF0C;&#x53EF;&#x80FD;&#x65E0;&#x6CD5;&#x5BF9;&#x8BB0;&#x5FC6;&#x9020;&#x6210;&#x5F71;&#x54CD;</strong>&#x3002;&#x4F9D;&#x7136;&#x4E3E;&#x9EBB;&#x5C06;&#x7684;&#x4F8B;&#x5B50;&#x3002;&#x67D0;&#x4E00;&#x523B;&#x4F60;&#x6478;&#x5230;&#x4E86;&#x4E00;&#x5F20;&#x724C;&#xFF0C;&#x4F60;&#x53D1;&#x73B0;&#x53EF;&#x4EE5;&#x7559;&#x7740;&#x8FD9;&#x5F20;&#x724C;&#x7528;&#x6765;&#x542C;&#x724C;&#xFF0C;&#x5374;&#x5FD8;&#x8BB0;&#x4E86;&#x4F60;&#x8981;&#x542C;&#x7684;&#x90A3;&#x5F20;&#x724C;&#x5F88;&#x4E45;&#x4EE5;&#x524D;&#x7684;&#x56DE;&#x5408;&#x4E2D;&#x5C31;&#x5DF2;&#x7ECF;&#x88AB;&#x6253;&#x5B8C;&#x4E86;&#x2014;&#x2014;&#x957F;&#x8FDC;&#x8BB0;&#x5FC6;&#x4E22;&#x5931;&#x4E86;&#x3002;</p>
<p>&#xFF08;&#x867D;&#x7136;&#x53EF;&#x4EE5;&#x7528;&#x68AF;&#x5EA6;&#x622A;&#x65AD;&#x7684; trick&#xFF0C;&#x4F46;&#x8FD8;&#x662F;&#x4F1A;&#x4E22;&#x5931;&#x90E8;&#x5206;&#x957F;&#x8FDC;&#x7684;&#x8BB0;&#x5FC6;&#xFF0C;&#x8FD9;&#x91CC;&#x4E0D;&#x4F5C;&#x8BE6;&#x7EC6;&#x4ECB;&#x7ECD;&#xFF09;</p>
<h3 id>&#x89E3;&#x51B3;&#x68AF;&#x5EA6;&#x5F25;&#x6563;/&#x7206;&#x70B8;&#x95EE;&#x9898;</h3>
<p>&#x5728;&#x4F20;&#x7EDF; RNN &#x91CC;&#xFF0C;&#x68AF;&#x5EA6;&#x4FE1;&#x606F;&#x7ECF;&#x8FC7;&#x82E5;&#x5E72;&#x65F6;&#x523B;&#x540E;&#x4F1A;&#x5F25;&#x6563;&#x6216;&#x7206;&#x70B8;&#xFF0C;&#x6211;&#x4EEC;&#x600E;&#x6837;&#x624D;&#x80FD;&#x5C06;&#x68AF;&#x5EA6;&#x6BEB;&#x65E0;&#x635F;&#x5931;&#x5730;&#x4F20;&#x8F93;&#x7ED9;&#x5404;&#x4E2A;&#x795E;&#x7ECF;&#x5143;&#x5462;&#xFF1F;</p>
<p>&#x4ECE;&#x4E4B;&#x524D;&#x7684;&#x8BA8;&#x8BBA;&#x53EF;&#x4EE5;&#x63D0;&#x51FA;&#x95EE;&#x9898;&#xFF1A;&#x4EC0;&#x4E48;&#x68AF;&#x5EA6;&#x5728;&#x7ECF;&#x5386;&#x4E86;&#x8FDE;&#x7EED;&#x7684;&#x4E58;&#x79EF;&#x4F5C;&#x7528;&#x540E;&#x4F9D;&#x7136;&#x80FD;&#x591F;&#x6709;&#x6548;&#x4F20;&#x8F93;&#x5462;&#xFF1F;&#x5F53;&#x7136;&#x662F; 1 &#x5566;&#xFF01;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;&#x8BB0;<strong>&#x957F;&#x65F6;&#x8BB0;&#x5FC6;&#x5355;&#x5143;</strong>&#x4E3A; \(c\)&#xFF0C;&#x90A3;&#x4E48;&#x6211;&#x4EEC;&#x8981;&#x6C42; \(c_t = c_{t-1}\)&#xFF0C;&#x5373; \(\nabla c_t = 1\)&#x3002;</p>
<p>&#x8FD9;&#x6837;&#x5C31;&#x4E0D;&#x5B58;&#x5728;&#x4EC0;&#x4E48;&#x5F25;&#x6563; or &#x7206;&#x70B8;&#x7684;&#x95EE;&#x9898;&#x4E86;&#xFF0C;\(c\) &#x4EE5;&#x67D0;&#x79CD;&#x65B9;&#x5F0F;&#x5305;&#x542B;&#x7740;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x7684;&#x4FE1;&#x606F;&#xFF0C;&#x80FD;&#x628A;&#x68AF;&#x5EA6;&#x53CD;&#x9988;&#x82E5;&#x5E72;&#x5C42;&#x4E5F;&#x4E0D;&#x4F1A;&#x6709;&#x4EFB;&#x4F55;&#x635F;&#x5931;&#x3002;</p>
<h3 id>&#x957F;&#x65F6;&#x8BB0;&#x5FC6;&#x5355;&#x5143;&#x4E2D;&#x7684;&#x4FE1;&#x606F;&#x5982;&#x4F55;&#x4FDD;&#x5B58;</h3>
<p>&#x5176;&#x5B9E;&#x4E0A;&#x9762;&#x8BF4;&#x7684;&#x201C;&#x67D0;&#x79CD;&#x65B9;&#x5F0F;&#x201D;&#x624D;&#x662F;&#x91CD;&#x70B9;&#xFF0C;&#x6211;&#x4EEC;&#x5728;&#x6700;&#x7B80; RNN &#x7684;&#x57FA;&#x7840;&#x4E0A;&#x8BA8;&#x8BBA;&#x4E00;&#x4E0B;&#x8FD9;&#x4E2A;&#x95EE;&#x9898;&#x3002;&#x90A3;&#x4E48;&#x8FD9;&#x4E2A;&#x65F6;&#x5019;&#x6211;&#x4EEC;&#x7684;&#x65B0;&#x4FE1;&#x606F;&#x5C31;&#x662F; \(t\) &#x65F6;&#x523B;&#x7684;&#x8F93;&#x5165; \(x_t\) &#x4E0E;&#x4E0A;&#x4E00;&#x65F6;&#x523B;&#x7684;&#x8F93;&#x51FA; \(\hat y_{t-1}\) &#x7EC4;&#x5408;&#x540E;&#x7684;&#x7ED3;&#x679C;&#xFF0C;&#x8BB0;&#x4F5C; \(\hat c_t\)&#x3002;$$ \hat c_t = f(x_t * W, \hat y_{t-1} * V) $$</p>
<p>&#x73B0;&#x5728;&#x8981;&#x505A;&#x7684;&#x4E8B;&#x60C5;&#x662F;&#xFF0C;&#x628A; \(\hat c\) &#x653E;&#x8FDB; \(c\) &#x91CC;&#x3002;&#x7531;&#x4E8E;&#x94FE;&#x5F0F;&#x6C42;&#x5BFC;&#x6CD5;&#x5219;&#xFF0C;&#x6211;&#x4EEC;&#x80AF;&#x5B9A;&#x6452;&#x5F03;&#x4E58;&#x6CD5;&#x64CD;&#x4F5C;&#x3002;</p>
<blockquote>
<p><strong>&#x4E58;&#x6CD5;&#x64CD;&#x4F5C;</strong>&#x66F4;&#x591A;&#x7684;&#x662F;&#x4F5C;&#x4E3A;&#x4E00;&#x79CD;&#x5BF9;&#x4FE1;&#x606F;&#x8FDB;&#x884C;&#x67D0;&#x79CD;<strong>&#x63A7;&#x5236;</strong>&#x7684;&#x64CD;&#x4F5C;&#xFF08;&#x6BD4;&#x5982;&#x4EFB;&#x610F;&#x6570;&#x4E0E; 0 &#x76F8;&#x4E58;&#x540E;&#x76F4;&#x63A5;&#x6D88;&#x5931;&#xFF0C;&#x76F8;&#x5F53;&#x4E8E;&#x5173;&#x95ED;&#x64CD;&#x4F5C;&#xFF1B;&#x4EFB;&#x610F;&#x6570;&#x4E0E;&#x5927;&#x4E8E; 1 &#x7684;&#x6570;&#x76F8;&#x4E58;&#x540E;&#x4F1A;&#x88AB;&#x653E;&#x5927;&#x89C4;&#x6A21;&#x7B49;&#xFF09;&#xFF0C;&#x4E3B;&#x8981;&#x7528;&#x4E8E;<strong>&#x63A7;&#x5236;</strong>&#x6216;&#x8005; <strong>scaling</strong>&#x3002;<br>
<strong>&#x52A0;&#x6CD5;&#x64CD;&#x4F5C;</strong>&#x5219;&#x662F;<strong>&#x65B0;&#x4FE1;&#x606F;&#x53E0;&#x52A0;&#x65E7;&#x4FE1;&#x606F;</strong>&#x7684;&#x64CD;&#x4F5C;&#x3002;</p>
</blockquote>
<p>&#x6211;&#x4EEC;&#x9009;&#x62E9;&#x7528;&#x52A0;&#x6CD5;&#x64CD;&#x4F5C;&#xFF0C;&#x90A3;&#x4E48;&#x6B64;&#x65F6;&#x6709;&#xFF1A;$$c_t=c_{t-1}+\hat c_{t}$$</p>
<p>&#x7136;&#x800C;&#xFF0C;&#x6BCF;&#x6B21;&#x6709;&#x65B0;&#x4FE1;&#x606F;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;<strong>&#x5E76;&#x4E0D;&#x662F;&#x9009;&#x62E9;&#x5C06;&#x6240;&#x6709;&#x7684; \(\hat c_t\) &#x90FD;&#x6DFB;&#x52A0;&#x8FDB; \(c_t\) &#x91CC;</strong>&#xFF0C;&#x8FD9;&#x4E5F;&#x548C;&#x4EBA;&#x7C7B;&#x8BB0;&#x5FC6;&#x65B9;&#x5F0F;&#x662F;&#x76F8;&#x8FDD;&#x80CC;&#x7684;&#xFF0C;&#x6211;&#x4EEC;&#x6CA1;&#x6709;&#x5FC5;&#x8981;&#x5C06;&#x6BCF;&#x4E00;&#x65F6;&#x523B;&#x7684;&#x6240;&#x6709;&#x4FE1;&#x606F;&#x90FD;&#x653E;&#x8FDB;&#x5927;&#x8111;&#x91CC;&#xFF0C;&#x6211;&#x4EEC;&#x53EA;&#x8BB0;&#x5FC6;&#x90A3;&#x4E9B;&#x6211;&#x4EEC;&#x5173;&#x6CE8;&#x7684;&#x4E1C;&#x897F;&#x3002;</p>
<p>&#x5982;&#x4F55;&#x63A7;&#x5236;&#x8BB0;&#x8FD8;&#x662F;&#x4E0D;&#x8BB0;&#xFF1F;&#x9996;&#x9009;&#x4E58;&#x6CD5;&#x64CD;&#x4F5C;&#xFF0C;&#x6211;&#x4EEC;&#x5728; \(\hat c_t\) &#x524D;&#x52A0;&#x5165;&#x4E00;&#x4E2A;&#x63A7;&#x5236;&#x5668;&#xFF0C;&#x51B3;&#x5B9A;&#x6211;&#x4EEC;&#x8981;&#x4E0D;&#x8981;&#x8BB0;&#x5FC6;&#x65B0;&#x4FE1;&#x606F;&#x3002;&#x90A3;&#x4E48;&#x5BF9;&#x4E8E;&#x5355;&#x4E2A;&#x957F;&#x65F6;&#x8BB0;&#x5FC6;&#x5355;&#x5143;&#xFF0C;&#x6211;&#x4EEC;&#x6709;&#xFF1A;$$c_t=c_{t-1}+g_{in} * \hat c_t$$</p>
<p>&#x6211;&#x4EEC;&#x79F0;&#x5176;&#x4E2D;&#x7684; \(g_{in}\) &#x4E3A;<strong>&#x8F93;&#x5165;&#x95E8;</strong>&#xFF0C;&#x5B83;&#x9700;&#x8981;&#x5728; \( [0,1]\) &#x4E0A;&#x53D6;&#x503C;&#xFF0C;&#x901A;&#x5E38;&#x9009;&#x7528; \(sigmoid(\cdot) \) &#x51FD;&#x6570;&#x3002;</p>
<p>&#x6B64;&#x65F6;&#x6211;&#x4EEC;&#x7684;&#x7B80;&#x5355;&#x7F51;&#x7EDC;&#x5C31;&#x53D8;&#x6210;&#x4E86;&#xFF1A;$$\begin{align} c_t &amp;= c_{t-1} + g_{in}( \hat c_t) \\ \hat c_{t} &amp;= f(x_t * W + \hat y_{t-1} * V) \\ \hat y_{t} &amp;= f(c_{t}) \end{align}$$</p>
<p>&#x73B0;&#x5728;&#x8F93;&#x5165;&#x95E8;&#x4F1A;&#x5B66;&#x4E60;&#x8BE5;&#x5728;&#x4EC0;&#x4E48;&#x65F6;&#x5019;&#x5F00;&#x542F;&#x4EE5;&#x8BFB;&#x5165;&#x4FE1;&#x606F;&#x5E76;&#x5B58;&#x5165;&#x8BB0;&#x5FC6;&#x3002;</p>
<h3 id>&#x4FE1;&#x606F;&#x91CF;&#x5DE8;&#x5927;&#x65F6;&#x4F1A;&#x53D1;&#x751F;&#x4EC0;&#x4E48;&#xFF1F;</h3>
<p>&#x5982;&#x679C;&#x4EC5;&#x4EC5;&#x505C;&#x7559;&#x5728;&#x5F53;&#x524D;&#x8FD9;&#x79CD;&#x67B6;&#x6784;&#xFF0C;&#x4E00;&#x5B9A;&#x4F1A;&#x53D1;&#x751F;&#x67D0;&#x4E9B;&#x95EE;&#x9898;&#xFF0C;&#x6BD4;&#x5982;&#xFF0C;&#x5F53;&#x4F60;&#x7684;&#x7F51;&#x7EDC;&#x8BFB;&#x5230;&#x4E00;&#x6BB5;&#x4FE1;&#x606F;&#x91CF;&#x5DE8;&#x5927;&#x7684;&#x6587;&#x672C;&#x65F6;&#xFF0C;<strong>&#x8F93;&#x5165;&#x95E8;&#x5927;&#x5F00;&#xFF0C;&#x8BD5;&#x56FE;&#x8BB0;&#x5F55;&#x6240;&#x6709;&#x7684;&#x4FE1;&#x606F;</strong>&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;\(\hat c\) &#x4F1A;&#x53D8;&#x5F97;&#x975E;&#x5E38;&#x5927;&#x3002;</p>
<p>&#x90A3;&#x4E48;&#x95EE;&#x9898;&#x6765;&#x4E86;&#xFF0C;&#x8F93;&#x5165;&#x95E8;&#x6211;&#x4EEC;&#x9009;&#x62E9;&#x7684;&#x662F; \(sigmoid(\cdot)\)&#xFF0C;&#x5F88;&#x663E;&#x7136;&#x5F53;&#x81EA;&#x53D8;&#x91CF;&#x8FC7;&#x5927;&#x65F6;&#xFF0C;&#x8BE5;&#x51FD;&#x6570;&#x51E0;&#x4E4E;&#x5B8C;&#x5168;&#x9971;&#x548C;&#x4E86;&#xFF08;&#x8D8B;&#x8FD1;&#x4E8E;1&#xFF09;&#xFF0C;&#x6839;&#x672C;&#x8BB0;&#x4E0D;&#x4F4F;&#x90A3;&#x4E48;&#x591A;&#x4E1C;&#x897F;&#x4E86;&#x3002;</p>
<p><s>&#xFF08;&#x6B63;&#x5411;&#x65E0;&#x9971;&#x548C;&#x7684;&#x6FC0;&#x6D3B;&#x51FD;&#x6570;&#x5982; ReLU &#x53EF;&#x4EE5;&#x89E3;&#x51B3;&#x8FD9;&#x4E2A;&#x95EE;&#x9898;&#xFF0C;&#x4F46;&#x662F;&#x4F1A;&#x5BFC;&#x81F4;&#x66F4;&#x591A;&#x7684;&#x95EE;&#x9898;&#xFF09;</s></p>
<p>&#x5BFB;&#x627E;&#x89E3;&#x51B3;&#x65B9;&#x6CD5;&#x65F6;&#xFF0C;&#x4F9D;&#x7136;&#x5F80;&#x4EBA;&#x7C7B;&#x8EAB;&#x4E0A;&#x60F3;&#x3002;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x8BB0;&#x5F97;&#x4E00;&#x5E74;&#x524D;&#x4E00;&#x573A;&#x9EBB;&#x5C06;&#x8F93;&#x4E86;&#x4E00;&#x5343;&#x5757;&#xFF08;&#x62D2;&#x7EDD;&#x8D4C;&#x535A;&#xFF09;&#xFF0C;&#x4E5F;&#x8BB0;&#x5F97;&#x4E00;&#x5929;&#x524D;&#x7684;&#x9EBB;&#x5C06;&#x8D62;&#x4E86;20&#x5757;&#xFF0C;&#x5927;&#x8111;&#x5E76;&#x6CA1;&#x6709;&#x4E00;&#x76F4;&#x53EA;&#x662F;&#x5728;&#x8BB0;&#x4E1C;&#x897F;&#x2014;&#x2014;&#x6211;&#x4EEC;&#x5E76;&#x6CA1;&#x6709;&#x987A;&#x5E26;&#x7740;&#x8BB0;&#x4F4F;&#x8FD9;&#x4E4B;&#x95F4;&#x7684;&#x5176;&#x4ED6;&#x6240;&#x6709;&#x4E8B;&#x60C5;&#xFF0C;&#x6211;&#x4EEC;&#x8FD8;&#x5FD8;&#x8BB0;&#x4E86;&#x4E00;&#x4E9B;&#x5176;&#x4ED6;&#x7684;&#x4E8B;&#x60C5;&#xFF08;&#x6BD4;&#x5982;&#x51E0;&#x4E2A;&#x6708;&#x524D;&#x7684;&#x665A;&#x4E0A;&#x548C;&#x820D;&#x53CB;&#x6597;&#x5730;&#x4E3B;&#x8F93;&#x4E86;&#x4E00;&#x5305;&#x8FA3;&#x6761;&#xFF09;&#x3002;<strong>&#x4EBA;&#x7684;&#x5927;&#x8111;&#x662F;&#x4F1A;&#x5FD8;&#x4E8B;&#x7684;</strong>&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x518D;&#x7528;&#x4E00;&#x4E2A;&#x63A7;&#x5236;&#x95E8;&#x5427;&#xFF0C;&#x7528;&#x4E00;&#x4E2A;&#x201C;<strong>&#x9057;&#x5FD8;&#x95E8;</strong>&#x201D;&#x6765;&#x51B3;&#x5B9A;<strong>&#x8981;&#x4E0D;&#x8981;&#x5FD8;&#x8BB0;&#x4E4B;&#x524D;&#x7684;&#x4E00;&#x4E9B;&#x4E0D;&#x592A;&#x91CD;&#x8981;&#x7684;&#x8BB0;&#x5FC6;&#xFF0C;&#x4EE5;&#x8BB0;&#x4F4F;&#x65B0;&#x4FE1;&#x606F;</strong>&#x3002;</p>
<p>&#x4E0E;&#x8F93;&#x5165;&#x95E8;&#x7684;&#x8BBE;&#x8BA1;&#x601D;&#x8DEF;&#x76F8;&#x4F3C;&#xFF0C;&#x6211;&#x4EEC;&#x7ED9;&#x4E0A;&#x4E00;&#x65F6;&#x523B;&#x7684;&#x4FE1;&#x606F;&#x6DFB;&#x52A0;&#x4E00;&#x4E2A;&#x63A7;&#x5236;&#x9057;&#x5FD8;&#x7A0B;&#x5EA6;&#x7684;&#x95E8; \(g_{forget}\)&#xFF0C;&#x5373;&#xFF1A;$$c_t = g_{forget}(c_{t-1}) + g_{in}(\hat c_{t})$$</p>
<p>&#x90A3;&#x4E48;&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x7684;&#x7F51;&#x7EDC;&#x5C31;&#x80FD;&#x89E3;&#x51B3;<strong>&#x65B0;&#x65E7;&#x4FE1;&#x606F;&#x7684;&#x5408;&#x7406;&#x8BB0;&#x5FC6;&#x4E0E;&#x9057;&#x5FD8;&#x95EE;&#x9898;</strong>&#x4E86;&#xFF0C;&#x8FD9;&#x4E00;&#x70B9;&#x4E0A;&#x5DF2;&#x7ECF;&#x4E0E;&#x4EBA;&#x7C7B;&#x76F8;&#x4F3C;&#x3002;</p>
<h3 id>&#x8F93;&#x51FA;&#x4F3C;&#x4E4E;&#x8FD8;&#x8981;&#x518D;&#x7B5B;&#x9009;&#x4E00;&#x4E0B;</h3>
<p>&#x75AF;&#x72C2;&#x4E3E;&#x4F8B;ing&#xFF1A;&#x4F60;&#x5728;&#x6253;&#x724C;&#x65F6;&#xFF0C;&#x5E76;&#x4E0D;&#x4F1A;&#x53C2;&#x8003;&#x4E0A;&#x5468;&#x516D;&#x665A;&#x5403;&#x70E7;&#x70E4;&#x644A;&#x65F6;&#x62C9;&#x4E86;&#x809A;&#x5B50;&#x8FD9;&#x4EF6;&#x4E8B;&#x3002;&#x4EBA;&#x8111;&#x5728;&#x5904;&#x7406;&#x773C;&#x524D;&#x4E8B;&#x7269;&#x65F6;&#xFF0C;&#x5E76;&#x4E0D;&#x4F1A;&#x5C06;&#x6240;&#x6709;&#x8111;&#x7EC6;&#x80DE;&#x7684;&#x8BB0;&#x5FC6;&#x90FD;&#x62FF;&#x51FA;&#x6765;&#x56DE;&#x5FC6;&#x4E00;&#x904D;&#xFF0C;&#x6211;&#x4EEC;&#x53EA;&#x4F1A;&#x9009;&#x62E9;<strong>&#x8DDF;&#x5F53;&#x524D;&#x4E8B;&#x7269;&#x76F8;&#x5173;&#x7684;&#x90E8;&#x5206;&#x8FDB;&#x884C;&#x8F93;&#x51FA;</strong>&#xFF0C;&#x7ED9;&#x957F;&#x65F6;&#x8BB0;&#x5FC6;&#x5355;&#x5143;&#x52A0;&#x4E00;&#x4E2A;&#x201C;<strong>&#x8F93;&#x51FA;&#x95E8;</strong>&#x201D;&#xFF1A;$$\hat y_{t}=g_{out}(f(c_t))$$</p>
<h3 id>&#x8C01;&#x6765;&#x63A7;&#x5236;&#x63A7;&#x5236;&#x95E8;&#xFF1F;</h3>
<p>&#x4ECE;&#x5F53;&#x524D;&#x8BBE;&#x8BA1;&#x6765;&#x770B;&#xFF0C;&#x63A7;&#x5236;&#x95E8;&#x63A7;&#x5236;&#x4E86;&#x8BB0;&#x5FC6;&#x548C;&#x51B3;&#x7B56;&#xFF0C;&#x4F46;&#x662F;&#x63A7;&#x5236;&#x95E8;&#x4E5F;&#x5E94;&#x6536;&#x5230;&#x5176;&#x4ED6;&#x56E0;&#x7D20;&#x7684;&#x63A7;&#x5236;&#x3002;&#x63A8;&#x5BFC;&#xFF1A;</p>
<p><img src="https://oidiotlin.com/content/images/2017/11/lstm.png" alt="LSTM - &#x4F60;&#x8FD8;&#x8BB0;&#x5F97;&#x5417;&#xFF1F;&#x8BE5;&#x5FD8;&#x7684;&#x5C31;&#x5FD8;&#x4E86;&#x5427;&#x3002;" loading="lazy"></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Dropout - 解决神经网络模型过拟合问题的大杀器]]></title><description><![CDATA[之前训练了一些深度神经网络模型，几乎都会遇到过拟合的问题，调整过学习率也调整过隐层的层级和数量，但效果依然不尽人意。直到魔改别人代码的时候才发现有个 Dropout，今天来做个小总结。]]></description><link>https://oidiotlin.com/dropout/</link><guid isPermaLink="false">63847a40ff82689f3f5c0611</guid><category><![CDATA[Tech]]></category><dc:creator><![CDATA[OIdiot]]></dc:creator><pubDate>Mon, 02 Oct 2017 07:59:00 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2017/10/bg.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x5BFC;&#x8A00;</h2>
<img src="https://oidiotlin.com/content/images/2017/10/bg.jpg" alt="Dropout - &#x89E3;&#x51B3;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x6A21;&#x578B;&#x8FC7;&#x62DF;&#x5408;&#x95EE;&#x9898;&#x7684;&#x5927;&#x6740;&#x5668;"><p>&#x4E4B;&#x524D;&#x8BAD;&#x7EC3;&#x4E86;&#x4E00;&#x4E9B;&#x6DF1;&#x5EA6;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x6A21;&#x578B;&#xFF0C;&#x51E0;&#x4E4E;&#x90FD;&#x4F1A;&#x9047;&#x5230;&#x8FC7;&#x62DF;&#x5408;&#x7684;&#x95EE;&#x9898;&#xFF0C;&#x8C03;&#x6574;&#x8FC7;&#x5B66;&#x4E60;&#x7387;&#x4E5F;&#x8C03;&#x6574;&#x8FC7;&#x9690;&#x5C42;&#x7684;&#x5C42;&#x7EA7;&#x548C;&#x6570;&#x91CF;&#xFF0C;&#x4F46;&#x6548;&#x679C;&#x4F9D;&#x7136;&#x4E0D;&#x5C3D;&#x4EBA;&#x610F;&#x3002;&#x76F4;&#x5230;&#x9B54;&#x6539;&#x522B;&#x4EBA;&#x4EE3;&#x7801;&#x7684;&#x65F6;&#x5019;&#x624D;&#x53D1;&#x73B0;&#x6709;&#x4E2A; Dropout&#xFF0C;&#x4ECE;&#x6D4B;&#x8BD5;&#x7ED3;&#x679C;&#x6765;&#x770B;&#xFF0C;&#x5B83;&#x7684;&#x786E;&#x4E0D;&#x5931;&#x4E3A;&#x4E00;&#x79CD;&#x6709;&#x6548;&#x4E14;&#x7B80;&#x5355;&#x7684;&#x529E;&#x6CD5;&#x3002;&#x4ECA;&#x5929;&#x6765;&#x505A;&#x4E2A;&#x5C0F;&#x603B;&#x7ED3;&#x3002;</p>
<h2 id="dropout">Dropout &#x662F;&#x600E;&#x6837;&#x5DE5;&#x4F5C;&#x7684;&#xFF1F;</h2>
<p><img src="https://oidiotlin.com/content/images/2017/10/dropout.jpeg" alt="Dropout - &#x89E3;&#x51B3;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x6A21;&#x578B;&#x8FC7;&#x62DF;&#x5408;&#x95EE;&#x9898;&#x7684;&#x5927;&#x6740;&#x5668;" loading="lazy"><br>
&#x5148;&#x6765;&#x770B;&#x5F20;&#x56FE;&#xFF0C;&#x56FE;(a)&#x662F;&#x6807;&#x51C6;&#x7684;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#xFF0C;&#x6240;&#x6709;&#x7684;&#x795E;&#x7ECF;&#x5143;&#x90FD;&#x4F1A;&#x5BF9;&#x6700;&#x7EC8;&#x7684;&#x8F93;&#x51FA;&#x4F5C;&#x51FA;&#x8D21;&#x732E;&#x3002;&#x800C;&#x56FE;(b)&#x4E2D;&#x90E8;&#x5206;&#x795E;&#x7ECF;&#x5143;&#x88AB;&#x6253;&#x4E0A;&#x4E86;&#xD7;&#xFF0C;&#x6211;&#x4EEC;&#x79F0;&#x5B83;&#x88AB; <strong>&#x820D;&#x5F03;(dropout)</strong> &#x4E86;&#x3002;&#x6211;&#x4EEC;&#x8BBE;&#x7F6E; Dropout &#x7387;&#x4E3A; \(p\)&#xFF0C;&#x5F53;&#x4E00;&#x4E2A;&#x795E;&#x7ECF;&#x5143;&#x4EE5;&#x6982;&#x7387; \(p\) &#x88AB;&#x820D;&#x5F03;&#x540E;&#xFF0C;&#x5B83;&#x7684;&#x8F93;&#x51FA;&#x4E3A; 0&#x3002;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#x5728;&#x8BAD;&#x7EC3;&#x8FC7;&#x7A0B;&#x4E2D;&#xFF0C;&#x8BE5;&#x795E;&#x7ECF;&#x5143;&#x4E0D;&#x4F1A;&#x5BF9; forward &#x548C; backward &#x4F5C;&#x51FA;&#x4EFB;&#x4F55;&#x8D21;&#x732E;&#x3002;</p>
<p>&#x5BF9;&#x4E8E;&#x67D0;&#x4E2A;&#x9690;&#x5C42;&#x795E;&#x7ECF;&#x5143;&#xFF0C;&#x6211;&#x4EEC;&#x628A;&#x5B83;&#x7684;&#x6FC0;&#x6D3B;&#x51FD;&#x6570;&#x7531; \(f(h)\) &#x53D8;&#x6210; \(g(h) = f(h)\odot D\)&#xFF0C;&#x5176;&#x4E2D; \(D\) &#x662F;&#x4E00;&#x4E2A;&#x4E0E; \(f(h)\) &#x7B49;&#x7EF4;&#x7684; Bernoulli &#x5411;&#x91CF;&#xFF08;&#x53C2;&#x6570;&#x4E3A; \(p\)&#xFF09;&#x3002;</p>
<h3 id>&#x5DE5;&#x4F5C;&#x6D41;&#x7A0B;</h3>
<ol>
<li>&#x5728;<strong>&#x9690;&#x5C42;&#x795E;&#x7ECF;&#x5143;</strong>&#x4E2D;&#x4EE5;&#x6982;&#x7387; \(p\) &#x968F;&#x673A;&#x9009;&#x62E9;&#x82E5;&#x5E72;&#x4E2A;&#x795E;&#x7ECF;&#x5143;&#x8FDB;&#x884C;&#x820D;&#x5F03;&#xFF0C;<strong>&#x8F93;&#x5165;&#x8F93;&#x51FA;&#x795E;&#x7ECF;&#x5143;&#x4E0D;&#x80FD;&#x820D;&#x5F03;</strong>&#x3002;</li>
<li>&#x5C06;&#x4E00;&#x7EC4; batch &#x7684;&#x8F93;&#x5165; \(\boldsymbol{x}\) &#x901A;&#x8FC7;&#x5269;&#x4F59;&#x7F51;&#x7EDC;&#x8FDB;&#x884C; BP &#x8BAD;&#x7EC3;&#xFF0C;&#x66F4;&#x65B0;&#x5269;&#x4F59;&#x7F51;&#x7EDC;&#x7684;&#x53C2;&#x6570;&#x3002;</li>
<li>&#x91CD;&#x590D;&#x4E0A;&#x8FF0;&#x6D41;&#x7A0B;&#x3002;</li>
</ol>
<h2 id="dropout">&#x4E3A;&#x4EC0;&#x4E48; Dropout &#x80FD;&#x8FD9;&#x6837;&#x5DE5;&#x4F5C;&#xFF1F;</h2>
<p>&#x4ECE;&#x6D41;&#x7A0B;&#x6765;&#x770B;&#xFF0C;&#x5E94;&#x7528;&#x4E86; Dropout &#x7684;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x597D;&#x50CF;&#x8FDB;&#x884C;&#x4E86;&#x5F88;&#x7384;&#x5B66;&#x7684;&#x8BAD;&#x7EC3;&#x65B9;&#x5F0F;&#xFF0C;&#x4E3A;&#x4EC0;&#x4E48;&#x8FD9;&#x6837;&#x5C31;&#x80FD;&#x89E3;&#x51B3;&#x8FC7;&#x62DF;&#x5408;&#x5462;&#xFF1F;</p>
<p>&#x6211;&#x8FD9;&#x91CC;&#x4E0D;&#x505A;&#x62BD;&#x8C61;&#x7684;&#x6570;&#x5B66;&#x7406;&#x8BBA;&#x5206;&#x6790;&#xFF0C;&#x76F4;&#x89C2;&#x4E0A;&#x6765;&#x770B;&#x6709;&#x4EE5;&#x4E0B;&#x51E0;&#x4E2A;&#x65B9;&#x9762;&#x4FC3;&#x6210;&#x4E86;&#x5B83;&#x7684;&#x529F;&#x80FD;&#xFF1A;</p>
<ul>
<li><strong>&#x53D6;&#x5E73;&#x5747;</strong>&#xFF1A;&#x7531;&#x4E8E;&#x9690;&#x5C42;&#x795E;&#x7ECF;&#x5143;&#x7684;&#x968F;&#x673A;&#x62BD;&#x53D6;&#xFF0C;&#x6BCF;&#x6B21;&#x8BAD;&#x7EC3;&#x7684;&#x7F51;&#x7EDC;&#x7ED3;&#x6784;&#x90FD;&#x4E0D;&#x540C;&#xFF0C;&#x4F46;&#x8FD9;&#x4E9B;&#x4E0D;&#x540C;&#x7684;&#x7F51;&#x7EDC;&#x53C8;&#x5171;&#x4EAB;&#x7740;&#x90E8;&#x5206;&#x9690;&#x5C42;&#x795E;&#x7ECF;&#x5143;&#x7684;&#x6743;&#x91CD;&#xFF0C;&#x8FD9;&#x4E9B;&#x7F51;&#x7EDC;&#x53EF;&#x80FD;&#x4F1A;&#x4EA7;&#x751F;&#x4E0D;&#x540C;&#x7A0B;&#x5EA6;&#x7684;&#x8FC7;&#x62DF;&#x5408;&#xFF0C;&#x4F46;&#x662F;&#x5C06;&#x5B83;&#x4EEC;&#x53D6;&#x5E73;&#x5747;&#x4E4B;&#x540E;&#xFF0C;&#x4E00;&#x4E9B;&#x8FC7;&#x62DF;&#x5408;&#x4F1A;&#x62B5;&#x6D88;&#xFF0C;&#x8FD9;&#x4FBF;&#x8FBE;&#x6210;&#x4E86;&#x6574;&#x4F53;&#x4E0A;&#x7F51;&#x7EDC;&#x7684;&#x8FC7;&#x62DF;&#x5408;&#x7A0B;&#x5EA6;&#x7684;&#x51CF;&#x5C11;&#x3002;</li>
<li><strong>&#x51CF;&#x5C11;&#x5171;&#x9002;&#x5E94;&#x6027;</strong>&#xFF1A;&#x6211;&#x4EEC;&#x5E0C;&#x671B;&#x7F51;&#x7EDC;&#x5728;&#x505A;&#x9884;&#x6D4B;&#x7684;&#x65F6;&#x5019;&#x4E0D;&#x5E94;&#x8BE5;&#x5BF9;&#x4E00;&#x4E9B;&#x7279;&#x5F81;&#x7247;&#x6BB5;&#x592A;&#x8FC7;&#x654F;&#x611F;&#xFF0C;&#x5C31;&#x7B97;&#x662F;&#x7F3A;&#x5C11;&#x67D0;&#x4E9B;&#x7279;&#x5F81;&#xFF0C;&#x8FD9;&#x4E2A;&#x7F51;&#x7EDC;&#x4E5F;&#x5E94;&#x8BE5;&#x4ECE;&#x5176;&#x4ED6;&#x7684;&#x7279;&#x5F81;&#x4E2D;&#x5B66;&#x4E60;&#x51FA;&#x4E00;&#x4E9B;&#x6709;&#x7528;&#x7684;&#x4FE1;&#x606F;&#x3002;&#x9690;&#x5C42;&#x795E;&#x7ECF;&#x5143;&#x968F;&#x673A;&#x62BD;&#x53D6;&#x540E;&#xFF0C;&#x7531;&#x4E8E;&#x7ED3;&#x6784;&#x6BCF;&#x6B21;&#x90FD;&#x4E0D;&#x540C;&#xFF0C;&#x67D0;&#x4E9B;&#x672C;&#x6765;&#x662F;&#x6709;&#x56FA;&#x5B9A;&#x5173;&#x7CFB;&#x7684;&#x9690;&#x8282;&#x70B9;&#x4E4B;&#x95F4;&#x7684;&#x5173;&#x7CFB;&#x88AB;&#x62C6;&#x6563;&#xFF0C;&#x8FD9;&#x6837;&#x4E00;&#x6765;&#xFF0C;&#x53C2;&#x6570;&#x7684;&#x66F4;&#x65B0;&#x5C31;&#x4E0D;&#x4F1A;&#x4F9D;&#x8D56;&#x8FD9;&#x4E9B;&#x56FA;&#x5B9A;&#x5173;&#x7CFB;&#xFF0C;&#x8FD9;&#x5C31;&#x907F;&#x514D;&#x4E86;&#x67D0;&#x4E9B;&#x7279;&#x5F81;&#x53EA;&#x5728;&#x5176;&#x4ED6;&#x4E00;&#x4E9B;&#x7279;&#x5F81;&#x4E0B;&#x624D;&#x6709;&#x6548;&#x7684;&#x60C5;&#x51B5;&#x3002;</li>
</ul>
<h2 id>&#x53C2;&#x8003;&#x6587;&#x732E;</h2>
<ul>
<li><a href="https://arxiv.org/pdf/1207.0580v1.pdf">Improving neural networks by preventing co-adaptation of feature detectors, G. E. Hinton, et. al.</a></li>
<li><a href="https://pgaleone.eu/deep-learning/regularization/2017/01/10/anaysis-of-dropout/">Analysis of Dropout, P. Galeone&apos;s Blog</a></li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[LSTM 在 Target Dependent Sentiment Analysis 任务中的应用]]></title><description><![CDATA[简述了LSTM在情感倾向分析中的一些应用。]]></description><link>https://oidiotlin.com/target-dependent-lstm/</link><guid isPermaLink="false">63847a40ff82689f3f5c0610</guid><category><![CDATA[Tech]]></category><dc:creator><![CDATA[OIdiot]]></dc:creator><pubDate>Tue, 26 Sep 2017 04:20:14 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2017/09/low_poly_planet_by_sicaida-d5m36pv.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="sentimentanalysis">&#x4EC0;&#x4E48;&#x662F; Sentiment Analysis</h2>
<img src="https://oidiotlin.com/content/images/2017/09/low_poly_planet_by_sicaida-d5m36pv.png" alt="LSTM &#x5728; Target Dependent Sentiment Analysis &#x4EFB;&#x52A1;&#x4E2D;&#x7684;&#x5E94;&#x7528;"><p>&#x5BF9;&#x4E8E;&#x4E00;&#x6BB5;&#x6587;&#x672C;&#xFF0C;&#x6211;&#x4EEC;&#x5E0C;&#x671B;&#x5F97;&#x5230;&#x8FD9;&#x6BB5;&#x6587;&#x672C;&#x4F53;&#x73B0;&#x7684;&#x60C5;&#x611F;&#x503E;&#x5411;&#x2014;&#x2014;&#x5B83;&#x662F;&#x79EF;&#x6781;&#x7684;&#xFF08;positive&#xFF09;&#x3001;&#x6D88;&#x6781;&#x7684;&#xFF08;negative&#xFF09;&#x8FD8;&#x662F;&#x4E2D;&#x6027;&#x7684;&#xFF08;neutral&#xFF09;&#x3002;&#x5F97;&#x51FA;&#x60C5;&#x611F;&#x503E;&#x5411;&#x7684;&#x8FC7;&#x7A0B;&#xFF0C;&#x6211;&#x4EEC;&#x79F0;&#x4E4B;&#x4E3A; Sentiment Analysis&#xFF0C;&#x6709;&#x65F6;&#x4E5F;&#x88AB;&#x79F0;&#x4E3A;&#x6001;&#x5EA6;&#x6316;&#x6398;&#xFF08;opinion mining&#xFF09;&#x3002;&#x8FD9;&#x9879;&#x6280;&#x672F;&#x6700;&#x4E3A;&#x666E;&#x904D;&#x7684;&#x5E94;&#x7528;&#x5C31;&#x662F;&#x5206;&#x6790;&#x8BC4;&#x8BBA;&#x8005;&#x5BF9;&#x67D0;&#x4E2A;&#x4E3B;&#x9898;&#x7684;&#x6001;&#x5EA6;&#xFF08;&#x6BD4;&#x5982;&#x4E70;&#x5BB6;&#x8BC4;&#x4EF7;&#x3001;&#x5F71;&#x8BC4;&#x7B49;&#x7B49;&#xFF09;&#x3002;</p>
<h2 id="targetdependent">&#x4EC0;&#x4E48;&#x662F; Target Dependent</h2>
<p>&#x5728;&#x4E00;&#x4E2A;&#x60C5;&#x611F;&#x5206;&#x7C7B;&#x4EFB;&#x52A1;&#x4E2D;&#xFF0C;&#x5982;&#x679C;&#x8BA8;&#x8BBA;&#x7684;&#x5BF9;&#x8C61;&#x662F;&#x4E2A;&#x5728;&#x6587;&#x672C;&#x4E2D;&#x660E;&#x786E;&#x51FA;&#x73B0;&#x8FC7;&#x7684;&#x8BCD;&#xFF0C;&#x90A3;&#x4E48;&#x6211;&#x4EEC;&#x79F0;&#x5176;&#x4E3A; target&#x3002;&#x4E3E;&#x4E2A;&#x4F8B;&#x5B50;&#xFF1A;</p>
<blockquote>
<p>&#x8FD9;&#x4EF6;&#x8863;&#x670D;&#x6B3E;&#x5F0F;&#x633A;&#x6F02;&#x4EAE;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x5C3A;&#x7801;&#x4E5F;&#x592A;&#x5C0F;&#x4E86;&#x5427;&#xFF01;</p>
</blockquote>
<p>&#x5BF9;&#x4E8E;&#x201C;&#x6B3E;&#x5F0F;&#x201D;&#x8FD9;&#x4E2A; target&#xFF0C;&#x5176;&#x60C5;&#x611F;&#x503E;&#x5411;&#x4E3A; positive&#xFF0C;&#x800C;&#x5BF9;&#x4E8E;&#x201C;&#x5C3A;&#x7801;&#x201D;&#x8FD9;&#x4E2A; target&#xFF0C;&#x5176;&#x60C5;&#x611F;&#x503E;&#x5411;&#x4E3A; negative&#x3002;<br>
&#x9700;&#x8981;&#x6CE8;&#x610F;&#x7684;&#x662F;&#xFF0C;target &#x4E0E; aspect &#x4E0D;&#x540C;&#xFF0C;aspect &#x53EF;&#x80FD;&#x6CA1;&#x6709;&#x51FA;&#x73B0;&#x5728;&#x6587;&#x672C;&#x4E4B;&#x4E2D;&#x3002;&#x4E3E;&#x4E2A;&#x4F8B;&#x5B50;&#xFF1A;</p>
<blockquote>
<p>&#x4ED6;&#x5F88;&#x806A;&#x660E;&#xFF0C;&#x5C31;&#x662F;&#x6709;&#x4E9B;&#x4E0D;&#x61C2;&#x793C;&#x8C8C;&#x3002;</p>
</blockquote>
<p>&#x8FD9;&#x91CC;&#x8BBE;&#x8BA1;&#x5230;&#x4E24;&#x4E2A; aspect&#xFF0C;&#x4E00;&#x4E2A;&#x662F;&#x201C;&#x667A;&#x5546;&#x201D;&#xFF0C;&#x53E6;&#x4E00;&#x4E2A;&#x662F;&#x201C;&#x54C1;&#x5FB7;&#x201D;&#xFF0C;&#x800C;&#x8FD9;&#x4E24;&#x4E2A;&#x8BCD;&#x5728;&#x539F;&#x53E5;&#x4E2D;&#x90FD;&#x6CA1;&#x6709;&#x51FA;&#x73B0;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x7B80;&#x5355;&#x5730;&#x8BA4;&#x4E3A;&#xFF0C;Target-Dependent &#x662F; Aspect-Level &#x7684;&#x4E00;&#x4E2A;&#x5B50;&#x96C6;&#x3002;</p>
<h2 id="lstm">&#x4E00;&#x4E9B;&#x5E94;&#x7528;&#x5230;&#x4E86; LSTM &#x7684;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x6A21;&#x578B;</h2>
<p>&#x7531;&#x4E8E;&#x662F;&#x6587;&#x672C;&#x5E8F;&#x5217;&#x7684;&#x5904;&#x7406;&#x95EE;&#x9898;&#xFF0C;&#x5F53;&#x7136;&#x662F;&#x5C11;&#x4E0D;&#x4E86; RNN&#x3002;&#x8FD9;&#x91CC;&#x5217;&#x51FA;&#x4E86;&#x90E8;&#x5206;&#x57FA;&#x4E8E; LSTM &#x7684;&#x6A21;&#x578B;&#xFF0C;&#x8BBA;&#x6587;&#x539F;&#x4F5C;&#x8005;&#x5728; LSTM &#x7684;&#x57FA;&#x7840;&#x4E0A;&#x53C8;&#x63D0;&#x51FA;&#x4E86; Target-Dependent LSTM &#x548C; Target-Connection LSTM&#x3002;</p>
<h3 id="basiclstm">Basic LSTM</h3>
<p><img src="http://owlbtycr6.bkt.clouddn.com/Effective-LSTMs-for-Target-Dependent-Sentiment-Classification-fig-01.png" alt="LSTM &#x5728; Target Dependent Sentiment Analysis &#x4EFB;&#x52A1;&#x4E2D;&#x7684;&#x5E94;&#x7528;" loading="lazy"></p>
<ul>
<li>&#x5BF9;&#x4E8E;&#x6BCF;&#x4E00;&#x4E2A;&#x65F6;&#x523B;&#xFF0C;&#x8F93;&#x5165;&#x662F; word embeddings&#x3002;</li>
<li>&#x91C7;&#x7528;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x65F6;&#x523B;&#x7684; LSTM &#x7684;&#x8F93;&#x51FA;&#x4F5C;&#x4E3A;&#x6700;&#x7EC8;&#x8BED;&#x4E49;&#x3002;</li>
</ul>
<h3 id="basicbidirectionallstm">Basic Bidirectional LSTM</h3>
<p>&#x8FD9;&#x79CD;&#x6A21;&#x578B;&#x548C; Basic LSTM &#x6CA1;&#x6709;&#x592A;&#x5927;&#x7684;&#x5DEE;&#x522B;&#xFF0C;&#x53EA;&#x662F;&#x5C06; word embeddings &#x9006;&#x5E8F;&#x8F93;&#x5165;&#x7ED9;&#x6BCF;&#x4E2A;&#x65F6;&#x523B;&#x7684; LSTM&#x3002;&#x8FD9;&#x79CD;&#x65B9;&#x5F0F;&#x53EF;&#x4EE5;&#x5F88;&#x597D;&#x5730;&#x89E3;&#x51B3;&#x91CD;&#x5FC3;&#x5728;&#x6587;&#x672C;&#x7ED3;&#x5C3E;&#x6216;&#x8005;&#x6587;&#x672C;&#x5F00;&#x5934;&#x65F6;&#x5BF9;&#x60C5;&#x611F;&#x5206;&#x6790;&#x7684;&#x5F71;&#x54CD;&#x3002;&#x4E3E;&#x4E2A;&#x4F8B;&#x5B50;&#xFF1A;</p>
<blockquote>
<p>&#x53E5;&#x5C3E;&#xFF1A;&#x4ECA;&#x5929;&#x4E2D;&#x5348;&#x5403;&#x4E86;&#x5317;&#x4E8C;&#x98DF;&#x5802;&#x7684;&#x996D;&#x83DC;&#xFF0C;&#x771F;&#x662F;<strong>&#x592A;&#x597D;&#x5403;</strong>&#x4E86;&#xFF01;</p>
</blockquote>
<p>&#x5728;&#x7B2C;&#x8FD9;&#x53E5;&#x8BDD;&#x4E2D;&#xFF0C;&#x201C;&#x592A;&#x597D;&#x5403;&#x201D;&#x8FD9;&#x4E2A;&#x60C5;&#x611F;&#x5F3A;&#x70C8;&#x7684;&#x8BCD;&#x5728;&#x6574;&#x53E5;&#x8BDD;&#x7684;&#x672B;&#x5C3E;&#x3002;</p>
<blockquote>
<p>&#x53E5;&#x9996;&#xFF1A;<strong>&#x771F;&#x68D2;</strong>&#xFF01;&#x53EF;&#x4EE5;&#x53BB;&#x5317;&#x4E8C;&#x98DF;&#x5802;&#x5403;&#x665A;&#x996D;&#x4E86;&#x3002;</p>
</blockquote>
<p>&#x5728;&#x8FD9;&#x53E5;&#x8BDD;&#x4E2D;&#xFF0C;&#x201C;&#x771F;&#x68D2;&#x201D;&#x8FD9;&#x4E2A;&#x60C5;&#x611F;&#x5F3A;&#x70C8;&#x7684;&#x8BCD;&#x5728;&#x6574;&#x53E5;&#x8BDD;&#x7684;&#x5F00;&#x5934;&#x3002;</p>
<p>&#x60C5;&#x611F;&#x91CD;&#x5FC3;&#x65E0;&#x8BBA;&#x662F;&#x5728;&#x53E5;&#x9996;&#x8FD8;&#x662F;&#x53E5;&#x5C3E;&#xFF0C;&#x901A;&#x8FC7;&#x53CC;&#x5411;&#x8F93;&#x5165;&#x7684;&#x65B9;&#x5F0F;&#xFF0C;&#x5C31;&#x80FD;&#x5F97;&#x5230;&#x8F83;&#x597D;&#x7684;&#x89E3;&#x51B3;&#x3002;</p>
<h3 id="targetdependentlstmtdlstm">Target-Dependent LSTM (TD-LSTM)</h3>
<p><img src="http://owlbtycr6.bkt.clouddn.com/Effective-LSTMs-for-Target-Dependent-Sentiment-Classification-fig-02.png" alt="LSTM &#x5728; Target Dependent Sentiment Analysis &#x4EFB;&#x52A1;&#x4E2D;&#x7684;&#x5E94;&#x7528;" loading="lazy"></p>
<ul>
<li>\(\text{LSTM}_L,\text{LSTM}_R\) &#x7684;&#x8F93;&#x51FA;&#x5408;&#x5E76;&#x8D77;&#x6765;&#x4F5C;&#x4E3A;&#x6700;&#x7EC8;&#x8BED;&#x4E49;&#x3002;</li>
</ul>
<p>&#x4E0D;&#x96BE;&#x53D1;&#x73B0;&#xFF0C;&#x5728; Basic LSTM &#x7684;&#x57FA;&#x7840;&#x4E0A;&#x591A;&#x52A0;&#x4E86;&#x4E00;&#x4E2A; LSTM&#xFF0C;TD-LSTM &#x62E5;&#x6709;&#x4E24;&#x4E2A; LSTM &#x2014;&#x2014; \(\text{LSTM}_L,\text{LSTM}_R\)</p>
<p>$$ input_{L} = {w_1, w_2, \cdots, w_{r-1}}\\<br>
input_{R} = {w_n, w_{n-1}, \cdots, w_{l+1}}$$</p>
<p>&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C; \({\text{LSTM}_L}\) &#x7684;&#x8F93;&#x5165;&#x5C31;&#x662F;&#x4ECE;&#x7B2C;&#x4E00;&#x4E2A;&#x5355;&#x8BCD;&#x5230;&#x6700;&#x540E;&#x4E00;&#x4E2A; target &#x4E4B;&#x95F4;&#x7684;&#x6240;&#x6709;&#x8BCD;&#xFF0C;&#x800C; \({\text{LSTM}_R}\) &#x7684;&#x8F93;&#x5165;&#x5C31;&#x662F;&#x4ECE;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x5355;&#x8BCD;&#x5230;&#x7B2C;&#x4E00;&#x4E2A; target &#x4E4B;&#x95F4;&#x7684;&#x6240;&#x6709;&#x8BCD;&#x3002;&#x4E3E;&#x4E2A;&#x4F8B;&#x5B50;&#xFF1A;</p>
<blockquote>
<p>&#x6211;&#x642C;&#x8FDB;&#x4E86;C10&#x516C;&#x5BD3;&#x697C;&#xFF0C;<strong>&#x73AF;&#x5883;</strong>&#x633A;&#x597D;&#x7684;&#xFF0C;&#x5C31;&#x662F;<strong>&#x6C34;&#x7535;&#x4F9B;&#x5E94;</strong>&#x6709;&#x4E9B;&#x8BA8;&#x538C;&#x3002;</p>
</blockquote>
<p>&#x8FD9;&#x53E5;&#x8BDD;&#x5305;&#x542B;&#x4E24;&#x4E2A; target&#xFF0C;&#x4E00;&#x4E2A;&#x662F;&#x201C;&#x73AF;&#x5883;&#x201D;&#xFF0C;&#x4E00;&#x4E2A;&#x662F;&#x201C;&#x6C34;&#x7535;&#x4F9B;&#x5E94;&#x201D;&#x3002;&#x6309;&#x7167;&#x4E4B;&#x524D;&#x63D0;&#x5230;&#x7684;&#x5F0F;&#x5B50;&#xFF0C;\({\text{LSTM}_L}\) &#x7684;&#x8F93;&#x5165;&#x5C31;&#x5E94;&#x5F53;&#x662F;&#x4ECE;&#x201C;&#x6211;&#x201D;&#x5230;&#x201C;&#x6C34;&#x7535;&#x4F9B;&#x5E94;&#x201D;&#x4E4B;&#x95F4;&#x7684;&#x6240;&#x6709;&#x8BCD;&#xFF0C;&#x800C; \({\text{LSTM}_R}\) &#x7684;&#x8F93;&#x5165;&#x5C31;&#x5E94;&#x5F53;&#x662F;&#x4ECE;&#x201C;&#x8BA8;&#x538C;&#x201D;&#x5230;&#x201C;&#x73AF;&#x5883;&#x201D;&#x4E4B;&#x95F4;&#x7684;&#x6240;&#x6709;&#x8BCD;&#x3002;</p>
<p>&#x8BBA;&#x6587;&#x4F5C;&#x8005;&#x5728;&#x6587;&#x4E2D;&#x63D0;&#x5230;&#x5C06; target &#x8BBE;&#x4E3A; LSTM &#x7684;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x65F6;&#x523B;&#x7684;&#x8F93;&#x5165;&#xFF0C;&#x80FD;&#x66F4;&#x5145;&#x5206;&#x5730;&#x5229;&#x7528; target &#x7684;&#x8BED;&#x4E49;&#x4FE1;&#x606F;&#x3002;</p>
<blockquote>
<p>We favor this strategy as we believe that regarding target string as the last unit could better utilize the semantics of target string when using the composed representation for sentiment classification.</p>
</blockquote>
<h3 id="targetconnectionlstmtclstm">Target-Connection LSTM (TC-LSTM)</h3>
<p><img src="http://owlbtycr6.bkt.clouddn.com/Effective-LSTMs-for-Target-Dependent-Sentiment-Classification-fig-03.png" alt="LSTM &#x5728; Target Dependent Sentiment Analysis &#x4EFB;&#x52A1;&#x4E2D;&#x7684;&#x5E94;&#x7528;" loading="lazy"></p>
<ul>
<li>\(v_{target}=\overline w_{target}\)</li>
<li>&#x5728; TD-LSTM &#x7684;&#x57FA;&#x7840;&#x4E0A;&#xFF0C;&#x6211;&#x4EEC;&#x5C06; \(v_{target}\) &#x4E0E;&#x8F93;&#x5165;&#x7AEF;&#x7684; word embeddings &#x8FDE;&#x63A5;&#x8D77;&#x6765;&#xFF0C;&#x8FD9;&#x4F7F;&#x5F97;&#x6BCF;&#x4E2A;&#x8BCD;&#x90FD;&#x4E0E; target word &#x6709;&#x4E86;&#x66F4;&#x4E3A;&#x7D27;&#x5BC6;&#x7684;&#x8054;&#x7CFB;&#x3002;</li>
</ul>
<h2 id>&#x5B9E;&#x9A8C;&#x7ED3;&#x679C;&#x5BF9;&#x6BD4;</h2>
<p>&#x6570;&#x636E;&#x6E90;&#x81EA;&#x539F;&#x8BBA;&#x6587;&#x3002;</p>
<table>
<thead>
<tr>
<th>Model</th>
<th>Accuracy</th>
<th>Macro-F1</th>
</tr>
</thead>
<tbody>
<tr>
<td>LSTM</td>
<td>0.665</td>
<td>0.647</td>
</tr>
<tr>
<td>TD-LSTM</td>
<td>0.708</td>
<td>0.690</td>
</tr>
<tr>
<td>TC-LSTM</td>
<td><strong>0.715</strong></td>
<td><strong>0.695</strong></td>
</tr>
</tbody>
</table>
<h2 id>&#x53C2;&#x8003;&#x6587;&#x732E;</h2>
<ul>
<li><a href="https://arxiv.org/pdf/1512.01100v2.pdf">Effective LSTMs for Target-Dependent Sentiment Classification[Tang. et al.]</a></li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[华南理工大学南校区校园网开网教程 for Win]]></title><description><![CDATA[华南理工大学大学城校区互联网办理及安装教程。有什么技术问题请联系软件学院电脑诊所（报单群QQ号：615576434），竭诚为您服务。]]></description><link>https://oidiotlin.com/scut-network-tutorial/</link><guid isPermaLink="false">63847a40ff82689f3f5c060f</guid><category><![CDATA[Tech]]></category><dc:creator><![CDATA[Huidong Lin]]></dc:creator><pubDate>Mon, 25 Sep 2017 12:31:13 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2017/09/bg.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x5BFC;&#x8A00;</h2>
<img src="https://oidiotlin.com/content/images/2017/09/bg.jpg" alt="&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x5357;&#x6821;&#x533A;&#x6821;&#x56ED;&#x7F51;&#x5F00;&#x7F51;&#x6559;&#x7A0B; for Win"><p>&#x5176;&#x5B9E;&#x8FD9;&#x7BC7;&#x6559;&#x7A0B;&#x662F; 2016 &#x5E74;&#x5165;&#x5B66;&#x7684;&#x65F6;&#x5019;&#x5199;&#x7684;&#xFF0C;&#x4ECA;&#x5E74;&#x8FCE;&#x65B0;&#x53C8;&#x4E00;&#x6B21;&#x62FF;&#x4E86;&#x51FA;&#x6765;&#xFF0C;&#x5E0C;&#x671B;&#x80FD;&#x5E2E;&#x5230;&#x90E8;&#x5206;<del>&#x5B66;&#x5F1F;</del>&#x5B66;&#x59B9;&#x5427;&#x3002;Windows &#x7528;&#x6237;&#x591A;&#xFF0C;&#x90A3;&#x4E48;&#x6211;&#x53EA;&#x5199; Windows &#x5C31;&#x597D;&#x4E86;&#xFF08;&#x9003;</p>
<h2 id>&#x6821;&#x56ED;&#x7F51;&#x8D26;&#x6237;&#x5F00;&#x901A;&#x53CA;&#x7F34;&#x8D39;</h2>
<p>&#x9996;&#x5148;&#x8981;&#x51C6;&#x5907;&#x597D;&#x5F00;&#x7F51;&#x6240;&#x9700;&#x7684;&#x5404;&#x79CD;&#x4FE1;&#x606F;&#x3002;</p>
<h3 id="mac">&#x67E5;&#x770B;&#x6709;&#x7EBF;&#x7F51;&#x5361;&#x7684;MAC&#x5730;&#x5740;</h3>
<p>&#x5728;win&#x4EFB;&#x52A1;&#x680F;&#x53F3;&#x51FB;&#x7F51;&#x7EDC;&#x8FDE;&#x63A5;&#x7684;&#x56FE;&#x6807;&#xFF0C;&#x9009;&#x62E9;&#x3010;&#x6253;&#x5F00;&#x7F51;&#x7EDC;&#x548C;&#x5171;&#x4EAB;&#x4E2D;&#x5FC3;&#x3011;&#xFF0C;&#x70B9;&#x51FB;&#x5DE6;&#x4E0A;&#x65B9;&#x7684;&#x3010;&#x66F4;&#x6539;&#x9002;&#x914D;&#x5668;&#x8BBE;&#x7F6E;&#x3011;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/image/scut-campus-network-00.jpg" alt="&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x5357;&#x6821;&#x533A;&#x6821;&#x56ED;&#x7F51;&#x5F00;&#x7F51;&#x6559;&#x7A0B; for Win" loading="lazy"></p>
<p>&#x627E;&#x5230;&#x7F51;&#x7EDC;&#x8FDE;&#x63A5;&#x76EE;&#x5F55;&#x91CC;&#x7684;&#x3010;&#x672C;&#x5730;&#x8FDE;&#x63A5;&#x3011;&#x6216;&#x3010;&#x4EE5;&#x592A;&#x7F51;&#x3011;&#xFF0C;&#x53CC;&#x51FB;&#x67E5;&#x770B;&#x72B6;&#x6001;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/image/scut-campus-network-01.jpg" alt="&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x5357;&#x6821;&#x533A;&#x6821;&#x56ED;&#x7F51;&#x5F00;&#x7F51;&#x6559;&#x7A0B; for Win" loading="lazy"></p>
<p>&#x5355;&#x51FB;&#x3010;&#x8BE6;&#x7EC6;&#x4FE1;&#x606F;&#x3011;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/image/scut-campus-network-03.jpg" alt="&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x5357;&#x6821;&#x533A;&#x6821;&#x56ED;&#x7F51;&#x5F00;&#x7F51;&#x6559;&#x7A0B; for Win" loading="lazy"></p>
<p>&#x8BB0;&#x4E0B;&#x4FE1;&#x606F;&#x4E2D;&#x7684;&#x3010;&#x7269;&#x7406;&#x5730;&#x5740;&#x3011;&#xFF0C;&#x4EE5;&#x53CA;&#x4E0A;&#x65B9;&#x7684;&#x7F51;&#x5361;&#x3010;&#x63CF;&#x8FF0;&#x3011;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/image/scut-campus-network-04.jpg" alt="&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x5357;&#x6821;&#x533A;&#x6821;&#x56ED;&#x7F51;&#x5F00;&#x7F51;&#x6559;&#x7A0B; for Win" loading="lazy"></p>
<h3 id>&#x67E5;&#x770B;&#x5BBF;&#x820D;&#x5185;&#x7F51;&#x7EDC;&#x7AEF;&#x53E3;&#x7684;&#x7F16;&#x53F7;</h3>
<p>&#x5728;&#x5BDD;&#x5BA4;&#x4E66;&#x684C;&#x4E0A;&#x65B9;&#x6709;&#x4E2A;&#x7AEF;&#x53E3;&#xFF0C;&#x7531;&#x4E8E;&#x5047;&#x671F;&#x5899;&#x9762;&#x88C5;&#x4FEE;&#xFF0C;&#x7AEF;&#x53E3;&#x7F16;&#x7801;&#x53EF;&#x80FD;&#x770B;&#x4E0D;&#x592A;&#x6E05;&#x3002;&#x7528;&#x5DE5;&#x5177;&#x628A;&#x5899;&#x7070;&#x522E;&#x4E0B;&#x6765;&#x6216;&#x8005;&#x770B;&#x770B;&#x820D;&#x53CB;&#x6216;&#x8005;&#x90BB;&#x5C45;&#x518D;&#x63A8;&#x6D4B;&#x4E00;&#x4E0B;&#x7F16;&#x53F7;&#x5427;&#x3002;&#x6CE8;&#x610F;&#x7AEF;&#x53E3;&#x7F16;&#x53F7;&#x4E2D;&#x53EF;&#x80FD;&#x4F1A;&#x51FA;&#x73B0;&#x5927;&#x5199;&#x82F1;&#x6587;&#x5B57;&#x6BCD;&#xFF08;&#x4E00;&#x5B9A;&#x8981;&#x586B;&#x5BF9;&#x7AEF;&#x53E3;&#x53F7;&#xFF0C;&#x4E0D;&#x7136;&#x4FEE;&#x6539;&#x7684;&#x65F6;&#x5019;&#x5F88;&#x9EBB;&#x70E6;&#xFF01;&#x4E00;&#x5B9A;&#x8981;&#x586B;&#x5BF9;&#x7AEF;&#x53E3;&#x53F7;&#xFF0C;&#x4E0D;&#x7136;&#x4FEE;&#x6539;&#x7684;&#x65F6;&#x5019;&#x5F88;&#x9EBB;&#x70E6;&#xFF01;&#x4E00;&#x5B9A;&#x8981;&#x586B;&#x5BF9;&#x7AEF;&#x53E3;&#x53F7;&#xFF0C;&#x4E0D;&#x7136;&#x4FEE;&#x6539;&#x7684;&#x65F6;&#x5019;&#x5F88;&#x9EBB;&#x70E6;&#xFF01;&#xFF09;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/image/scut-campus-network-02.jpg" alt="&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x5357;&#x6821;&#x533A;&#x6821;&#x56ED;&#x7F51;&#x5F00;&#x7F51;&#x6559;&#x7A0B; for Win" loading="lazy"></p>
<h3 id>&#x5165;&#x7F51;&#x7533;&#x8BF7;</h3>
<p>&#x8BBF;&#x95EE;<a href="http://net.scut.edu.cn:8091/">&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x7F51;&#x4E0A;&#x8425;&#x4E1A;&#x5385;</a> &#xFF0C;&#x9009;&#x62E9;&#x3010;&#x4E1A;&#x52A1;&#x529E;&#x7406;&#x3011;&#xFF0C;&#x7528;&#x7EDF;&#x4E00;&#x8BA4;&#x8BC1;&#x8D26;&#x53F7;&#x767B;&#x9646;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/image/scut-campus-network-05.jpg" alt="&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x5357;&#x6821;&#x533A;&#x6821;&#x56ED;&#x7F51;&#x5F00;&#x7F51;&#x6559;&#x7A0B; for Win" loading="lazy"></p>
<p>&#x5F55;&#x5165;&#x4FE1;&#x606F;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/image/scut-campus-network-06.png" alt="&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x5357;&#x6821;&#x533A;&#x6821;&#x56ED;&#x7F51;&#x5F00;&#x7F51;&#x6559;&#x7A0B; for Win" loading="lazy"></p>
<p>&#x63D0;&#x4EA4;&#x4EE5;&#x540E;&#x5904;&#x4E8E;&#x5F85;&#x5BA1;&#x6838;&#x72B6;&#x6001;&#xFF0C;&#x4E00;&#x822C;&#x51E0;&#x5206;&#x949F;&#x540E;&#x5982;&#x679C;&#x6CA1;&#x6709;&#x95EE;&#x9898;&#x5C31;&#x80FD;&#x901A;&#x8FC7;&#x5BA1;&#x6838;&#x3002;&#x5BA1;&#x6838;&#x901A;&#x8FC7;&#x540E;&#x7CFB;&#x7EDF;&#x8FD8;&#x8981;&#x518D;&#x5206;&#x914D; ip&#xFF0C;&#x7A0D;&#x7B49;&#xFF08;&#x8FD9;&#x65F6;&#x4F60;&#x53EF;&#x4EE5;&#x9009;&#x62E9;&#x53BB;&#x5708;&#x5B58;&#x673A;&#x7F34;&#x8D39;&#x529E;&#x5957;&#x9910;&#xFF0C;&#x987A;&#x4FBF;&#x8FD8;&#x80FD;&#x628A;&#x7F51;&#x7EBF;&#x4E70;&#x4E86;&#xFF09;&#x3002;</p>
<h3 id>&#x529E;&#x7406;&#x5957;&#x9910;&amp;&#x7F34;&#x8D39;</h3>
<p>&#x7EFF;&#x5361;&#xFF1A;&#x5708;&#x5B58;&#x673A;&#xFF08;&#x996D;&#x5802;&#xFF0C;&#x6559;&#x5B66;&#x697C;&#xFF0C;&#x6559;&#x5E08;&#x516C;&#x5BD3;&#xFF09;-&#x3010;&#x81EA;&#x52A9;&#x7F34;&#x8D39;&#x3011;-&#x3010;&#x5B66;&#x751F;&#x7F51;&#x7EDC;&#x7F34;&#x8D39;&#x3011;&#x3002;</p>
<p>&#x5957;&#x9910;&#x6709;3&#x7C7B;&#xFF1A;&#x5305;&#x6708;/&#x5305;&#x5B66;&#x671F;/&#x5305;&#x5E74;&#x3002;&#x4EF7;&#x683C;&#x4F18;&#x60E0;&#x4E0D;&#x4E00;&#xFF0C;&#x8BF7;&#x5404;&#x4F4D;&#x914C;&#x60C5;&#x9009;&#x62E9;&#x3002;&#x5728;&#x6B64;&#x4E0D;&#x8BE6;&#x8FF0;&#x3002;</p>
<h2 id>&#x4E0A;&#x7F51;&#x4FE1;&#x606F;&#x914D;&#x7F6E;&#x53CA;&#x767B;&#x9646;</h2>
<h3 id="ip">&#x586B;&#x5199;ip&#x4FE1;&#x606F;</h3>
<p>&#x56DE;&#x5230;&#x5BDD;&#x5BA4;&#xFF0C;&#x9700;&#x8981;&#x5728;PC&#x4E0A;&#x586B;&#x5199;ip&#x4FE1;&#x606F;&#xFF0C;&#x624D;&#x80FD;&#x6B63;&#x786E;&#x8FDE;&#x63A5;&#x7F51;&#x7EDC;&#xFF08;&#x4E4B;&#x524D;&#x8981;&#x4E70;&#x597D;&#x7F51;&#x7EBF;&#x554A;&#xFF01;&#xFF01;&#xFF01;&#x996D;&#x5802;&#x548C;&#x8D85;&#x5E02;&#x90FD;&#x6709;&#x7684;&#xFF01;&#xFF01;&#xFF09;</p>
<p>&#x5728;&#x3010;&#x5165;&#x7F51;&#x7533;&#x8BF7;&#x3011;&#x6B65;&#x9AA4;&#x4E2D;&#x7684;&#x7F51;&#x9875;&#x4E0A;&#x67E5;&#x8BE2;&#x4E2A;&#x4EBA;&#x4FE1;&#x606F;&#xFF0C;&#x8FD9;&#x65F6;&#x7CFB;&#x7EDF;&#x5E94;&#x8BE5;&#x5DF2;&#x7ECF;&#x7ED9;&#x4F60;&#x5206;&#x914D;&#x597D;ip&#x5730;&#x5740;&#x4E86;&#xFF08;&#x6CA1;&#x6709;&#x5C31;&#x5148;&#x53BB;&#x641E;&#x5B66;&#x4E60;&#xFF09;&#xFF0C;&#x7136;&#x540E;&#x63D2;&#x5165;&#x7F51;&#x7EBF;&#xFF0C;&#x6309;&#x7B2C;&#x4E00;&#x6B65;&#x7684;&#x65B9;&#x6CD5;&#x627E;&#x5230;&#x3010;&#x672C;&#x5730;&#x8FDE;&#x63A5;&#x3011;&#x6216;&#x3010;&#x4EE5;&#x592A;&#x7F51;&#x3011;&#xFF0C;&#x53F3;&#x51FB;&#x6253;&#x5F00;&#x3010;&#x5C5E;&#x6027;&#x3011;&#xFF0C;&#x53CC;&#x51FB;&#x3010;TCP/IPv4&#x3011;&#xFF0C;&#x9009;&#x62E9;&#x3010;&#x4F7F;&#x7528;&#x4E0B;&#x9762;&#x7684;ip&#x5730;&#x5740;&#x3011;&#x548C;&#x3010;&#x4F7F;&#x7528;&#x4E0B;&#x9762;&#x7684;DNS&#x670D;&#x52A1;&#x5668;&#x3011;&#xFF0C;&#x586B;&#x5165;&#x5728;&#x3010;&#x4E2A;&#x4EBA;&#x4FE1;&#x606F;&#x3011;&#x4E2D;&#x67E5;&#x8BE2;&#x5230;&#x7684; ip &#x5730;&#x5740;&#x3001;&#x5B50;&#x7F51;&#x63A9;&#x7801;&#x3001;&#x9ED8;&#x8BA4;&#x7F51;&#x5173;&#xFF0C;DNS &#x7684;&#x5730;&#x5740;&#x5C31;&#x6309;&#x4E0B;&#x56FE;&#x7684;&#x586B;&#xFF08;&#x6216;&#x8005;&#x7528;&#x4E00;&#x4E9B;&#x516C;&#x5171; DNS &#x4E5F;&#x884C;&#xFF09;&#xFF0C;&#x786E;&#x5B9A;&#x3002;</p>
<h3 id>&#x5B89;&#x88C5;&#x5165;&#x7F51;&#x5BA2;&#x6237;&#x7AEF;</h3>
<p>&#x8FD9;&#x65F6;&#x5E94;&#x8BE5;&#x5DF2;&#x7ECF;&#x6B63;&#x5E38;&#x63A5;&#x5165;&#x6821;&#x56ED;&#x5185;&#x7F51;&#x4E86;&#xFF0C;&#x4F46;&#x662F;&#x6211;&#x4EEC;&#x8981;&#x8BBF;&#x95EE;&#x4E92;&#x8054;&#x7F51;&#x8FD8;&#x9700;&#x8981;&#x4E00;&#x4E2A;&#x767B;&#x9646;&#x5BA2;&#x6237;&#x7AEF;&#x3002;</p>
<p>&#x8BBF;&#x95EE; <a href="http://202.38.193.65/">http://202.38.193.65/</a> &#x4E0B;&#x8F7D;&#x5E76;&#x5B89;&#x88C5;&#x3010;&#x65B0;&#x7248;&#x8BA4;&#x8BC1;&#x5BA2;&#x6237;&#x7AEF; for Windows&#x3011;&#x5B89;&#x88C5;&#x5B8C;&#x6210;&#x540E;&#xFF0C;&#x8FD0;&#x884C;&#x8BE5;&#x5BA2;&#x6237;&#x7AEF;&#x3002;&#x767B;&#x9646;&#x8D26;&#x53F7;&#x662F;&#x5B66;&#x53F7;&#xFF0C;&#x5BC6;&#x7801;&#x662F;&#x8EAB;&#x4EFD;&#x8BC1;&#x540E;8&#x4F4D;&#xFF08;&#x5927;&#x5199;X&#x6362;&#x6210;&#x5C0F;&#x5199;x&#xFF09;&#x3002;&#xFF08;&#x7CFB;&#x7EDF;&#x540C;&#x6B65;&#x4FE1;&#x606F;&#x5927;&#x6982;&#x8981;&#x4E24;&#x4E09;&#x4E2A;&#x5C0F;&#x65F6;&#xFF0C;&#x5982;&#x679C;&#x51FA;&#x73B0;&#x65E0;&#x6B64;&#x8D26;&#x53F7;&#x4FE1;&#x606F;&#xFF0C;&#x8BF7;&#x8FC7;&#x51E0;&#x4E2A;&#x5C0F;&#x65F6;&#x518D;&#x6765;&#x767B;&#x9646;&#xFF09;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/image/scut-campus-network-08.jpg" alt="&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x5357;&#x6821;&#x533A;&#x6821;&#x56ED;&#x7F51;&#x5F00;&#x7F51;&#x6559;&#x7A0B; for Win" loading="lazy"></p>
<p>&#xFF08;&#x51E0;&#x5C0F;&#x65F6;&#x540E;&#xFF09;&#x767B;&#x9646;&#x6210;&#x529F;&#xFF01;&#x606D;&#x559C;&#x60A8;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x6821;&#x56ED;&#x7F51;&#x4E86;&#xFF01;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/image/scut-campus-network-09.jpg" alt="&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x5357;&#x6821;&#x533A;&#x6821;&#x56ED;&#x7F51;&#x5F00;&#x7F51;&#x6559;&#x7A0B; for Win" loading="lazy"></p>
<h2 id>&#x6821;&#x56ED;&#x7F51;&#x4F7F;&#x7528;&#x6CE8;&#x610F;&#x4E8B;&#x9879;</h2>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/image/scut-campus-network-10.png" alt="&#x534E;&#x5357;&#x7406;&#x5DE5;&#x5927;&#x5B66;&#x5357;&#x6821;&#x533A;&#x6821;&#x56ED;&#x7F51;&#x5F00;&#x7F51;&#x6559;&#x7A0B; for Win" loading="lazy"></p>
<h4 id="ps">p.s.</h4>
<p>&#x6709;&#x4EC0;&#x4E48;&#x6280;&#x672F;&#x95EE;&#x9898;&#x8BF7;&#x8054;&#x7CFB;&#x8F6F;&#x4EF6;&#x5B66;&#x9662;&#x7535;&#x8111;&#x8BCA;&#x6240;&#xFF08;&#x62A5;&#x5355;&#x7FA4;QQ&#x53F7;&#xFF1A;615576434&#xFF09;&#xFF0C;&#x7AED;&#x8BDA;&#x4E3A;&#x60A8;&#x670D;&#x52A1;&#x3002;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Word Embedding]]></title><description><![CDATA[在做NLP的时候，我们处理的features一般都是字词（words），如何表述这些字词便成为了一个非常基础且十分重要的问题。接下来要介绍的是在搭建NLP模型过程中如何用PyTorch这个工具对words进行预处理。]]></description><link>https://oidiotlin.com/word-embedding/</link><guid isPermaLink="false">63847a40ff82689f3f5c060e</guid><category><![CDATA[Tech]]></category><dc:creator><![CDATA[OIdiot]]></dc:creator><pubDate>Sun, 24 Sep 2017 07:19:12 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2017/09/word-embedding.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x5BFC;&#x8A00;</h2>
<img src="https://oidiotlin.com/content/images/2017/09/word-embedding.jpg" alt="Word Embedding"><p>&#x5728;&#x505A; NLP &#x7684;&#x65F6;&#x5019;&#xFF0C;&#x6211;&#x4EEC;&#x5904;&#x7406;&#x7684; features &#x4E00;&#x822C;&#x90FD;&#x662F;&#x5B57;&#x8BCD;&#xFF08;words&#xFF09;&#xFF0C;&#x5982;&#x4F55;&#x8868;&#x8FF0;&#x8FD9;&#x4E9B;&#x5B57;&#x8BCD;&#x4FBF;&#x6210;&#x4E3A;&#x4E86;&#x4E00;&#x4E2A;&#x975E;&#x5E38;&#x57FA;&#x7840;&#x4E14;&#x5341;&#x5206;&#x91CD;&#x8981;&#x7684;&#x95EE;&#x9898;&#x3002;&#x63A5;&#x4E0B;&#x6765;&#x8981;&#x4ECB;&#x7ECD;&#x7684;&#x662F;&#x5728;&#x642D;&#x5EFA;NLP&#x6A21;&#x578B;&#x8FC7;&#x7A0B;&#x4E2D;&#x5982;&#x4F55;&#x7528; PyTorch &#x8FD9;&#x4E2A;&#x5DE5;&#x5177;&#x5BF9; words &#x8FDB;&#x884C;&#x9884;&#x5904;&#x7406;&#x3002;</p>
<h2 id="onehot">One-Hot&#x6709;&#x7528;&#x5417;&#xFF1F;</h2>
<p>&#x5047;&#x8BBE;&#x6211;&#x4EEC;&#x6709;&#x4E00;&#x7EC4;&#x8BCD;&#x6C47;\(V\)&#xFF0C;&#x5176;&#x5927;&#x5C0F;&#x4E3A;\(|V|\)&#x3002;&#x91C7;&#x7528;&#x72EC;&#x70ED;&#x7F16;&#x7801;&#xFF08;one-hot&#xFF09;&#x7684;&#x65B9;&#x5F0F;&#xFF0C;&#x5BF9;&#x4E8E;&#x5355;&#x8BCD;\( w=V_{i} \)&#xFF0C;&#x5219;</p>
<p>$$ w=\underbrace{[0,0,\cdots,1,\cdots,0,0]}_{|V|}$$</p>
<p>&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;&#x5728;&#x8BCD;&#x6C47;&#x8868; \(V\) &#x4E2D;&#xFF0C;&#x4EC5;&#x6709;&#x4E00;&#x4E2A;&#x7EF4;&#x5EA6;&#x7684;&#x503C;&#x4E3A;1&#xFF0C;&#x5176;&#x4F59;&#x90FD;&#x662F;0&#x3002;&#x8FD9;&#x79CD;&#x8868;&#x73B0;&#x65B9;&#x5F0F;&#x6709;&#x4E0D;&#x5C11;&#x95EE;&#x9898;&#xFF1A;</p>
<ul>
<li>&#x6BCF;&#x4E00;&#x4E2A;&#x5355;&#x8BCD;&#x7684;&#x7EF4;&#x5EA6;&#x5DE8;&#x5927;&#x3002;One-Hot &#x7F16;&#x7801;&#x5C06;&#x6BCF;&#x4E00;&#x4E2A;&#x5355;&#x8BCD;&#x89C6;&#x4E3A;&#x8BCD;&#x6C47;&#x96C6;&#x7684;&#x4E0D;&#x540C;&#x65B9;&#x5411;&#xFF0C;&#x90A3;&#x4E48;&#x6BCF;&#x4E2A;&#x5355;&#x8BCD;&#x7684;&#x5411;&#x91CF;&#x957F;&#x5EA6;&#x5C31;&#x53D6;&#x51B3;&#x4E8E;&#x8BCD;&#x6C47;&#x96C6; \(V\) &#x7684;&#x5927;&#x5C0F;&#xFF0C;&#x5728;NLP&#x4EFB;&#x52A1;&#x4E2D;&#xFF0C;&#x8FD9;&#x5C06;&#x4F1A;&#x662F;&#x5DE8;&#x5927;&#x7684;&#x3002;</li>
<li>&#x5404;&#x4E2A;&#x5355;&#x8BCD;&#x4E4B;&#x95F4;&#x6CA1;&#x6709;&#x8054;&#x7CFB;&#x3002;&#x7531;&#x4E8E; One-Hot &#x5C06;&#x4E0D;&#x540C;&#x7684;&#x5355;&#x8BCD;&#x76F4;&#x63A5;&#x6307;&#x5B9A;&#x5230;&#x4E0D;&#x540C;&#x7684;&#x65B9;&#x5411;&#xFF0C;&#x800C;&#x4E14;&#x5404;&#x5355;&#x8BCD;&#x4E4B;&#x95F4;&#x662F;&#x72EC;&#x7ACB;&#x5B58;&#x5728;&#x7684;&#xFF0C;&#x8FD9;&#x5C31;&#x4F1A;&#x5BFC;&#x81F4;&#x5355;&#x8BCD;&#x5728;&#x53E5;&#x7FA4;&#x4E2D;&#x7684;&#x8BED;&#x4E49;&#x4E22;&#x5931;&#x3002;</li>
</ul>
<p>&#x5BF9;&#x4E8E;&#x8BED;&#x4E49;&#x8054;&#x7CFB;&#x4E22;&#x5931;&#xFF0C;&#x6211;&#x4EEC;&#x4E3E;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x4F8B;&#x5B50;&#xFF0C;&#x5047;&#x8BBE;&#x5728;&#x8BAD;&#x7EC3;&#x6587;&#x672C;&#x4E2D;&#xFF0C;&#x51FA;&#x73B0;&#x4E86;&#x4EE5;&#x4E0B;&#x7684;&#x53E5;&#x5B50;&#xFF1A;</p>
<ul>
<li>&#x7A0B;&#x5E8F;&#x5458;&#x5728;&#x52A0;&#x73ED;&#x3002;</li>
<li>&#x4EA7;&#x54C1;&#x7ECF;&#x7406;&#x5728;&#x52A0;&#x73ED;&#x3002;</li>
<li>&#x7A0B;&#x5E8F;&#x5458;&#x89E3;&#x51B3;&#x4E86;&#x5BA2;&#x6237;&#x63D0;&#x51FA;&#x7684;&#x4E00;&#x4E2A;&#x95EE;&#x9898;&#x3002;</li>
</ul>
<p>&#x800C;&#x5728;&#x6D4B;&#x8BD5;&#x6587;&#x672C;&#x4E2D;&#xFF0C;&#x51FA;&#x73B0;&#x4E86;&#x4E00;&#x4E2A;&#x8BAD;&#x7EC3;&#x6587;&#x672C;&#x4E2D;&#x6CA1;&#x6709;&#x51FA;&#x73B0;&#x8FC7;&#x7684;&#x53E5;&#x5B50;&#xFF1A;</p>
<ul>
<li>&#x4EA7;&#x54C1;&#x7ECF;&#x7406;&#x89E3;&#x51B3;&#x4E86;&#x5BA2;&#x6237;&#x63D0;&#x51FA;&#x7684;&#x4E00;&#x4E2A;&#x95EE;&#x9898;&#x3002;</li>
</ul>
<p>&#x6B63;&#x5E38;&#x7684;&#x601D;&#x7EF4;&#x5E94;&#x5F53;&#x662F;&#x201C;&#x7A0B;&#x5E8F;&#x5458;&#x201D;&#x548C;&#x201C;&#x4EA7;&#x54C1;&#x7ECF;&#x7406;&#x201D;&#x6709;&#x7740;&#x76F8;&#x4F3C;&#x6027;&#xFF0C;&#x6211;&#x4EEC;&#x5E0C;&#x671B;&#x6A21;&#x578B;&#x4E5F;&#x80FD;&#x5206;&#x6790;&#x51FA;&#x8FD9;&#x6837;&#x7684;&#x76F8;&#x4F3C;&#x6027;&#xFF0C;&#x7136;&#x800C;&#x5982;&#x679C;&#x7528; One-Hot &#x7F16;&#x7801;&#x7684;&#x65B9;&#x6CD5;&#x4F3C;&#x4E4E;&#x65E0;&#x6CD5;&#x7406;&#x89E3;&#x201C;&#x7A0B;&#x5E8F;&#x5458;&#x201D;&#x548C;&#x201C;&#x4EA7;&#x54C1;&#x7ECF;&#x7406;&#x201D;&#x6709;&#x54EA;&#x4E9B;&#x76F8;&#x4F3C;&#x4E4B;&#x5904;&#xFF08;&#x6211;&#x4EEC;&#x8BF4;&#x7684;&#x76F8;&#x4F3C;&#x662F;&#x8BED;&#x4E49;&#x76F8;&#x4F3C;&#xFF0C;&#x800C;&#x4E0D;&#x4EC5;&#x4EC5;&#x662F;&#x62E5;&#x6709;&#x7B80;&#x5355;&#x7684;&#x6B63;&#x4EA4;&#x8868;&#x793A;&#xFF09;&#x3002;</p>
<h2 id="wordembedding">&#x7A20;&#x5BC6;&#x7684; Word Embedding</h2>
<p>&#x6211;&#x4EEC;&#x600E;&#x4E48;&#x624D;&#x80FD;&#x628A;&#x8BED;&#x4E49;&#x76F8;&#x4F3C;&#x6027;&#x5D4C;&#x5165;&#x5230;&#x8BCD;&#x5411;&#x91CF;&#x4E2D;&#x53BB;&#x5462;&#xFF1F;&#x6211;&#x4EEC;&#x5E0C;&#x671B;&#x80FD;&#x5728;&#x8BED;&#x4E49;&#x5C42;&#x9762;&#x4E0A;&#x5BF9;&#x8BCD;&#x5411;&#x91CF;&#x505A;&#x5206;&#x89E3;&#xFF0C;&#x9996;&#x5148;&#x80AF;&#x5B9A;&#x662F;&#x6452;&#x5F03;&#x6389; One-Hot &#x8FD9;&#x79CD;&#x4E22;&#x5931;&#x76F8;&#x5173;&#x6027;&#x7684;&#x7F16;&#x7801;&#x65B9;&#x5F0F;&#x4E86;&#x3002;&#x4F9D;&#x7136;&#x4F7F;&#x7528;&#x4E4B;&#x524D;&#x7684;&#x4F8B;&#x5B50;&#xFF0C;&#x6211;&#x4EEC;&#x5BF9;&#x201C;&#x7A0B;&#x5E8F;&#x5458;&#x201D;&#x548C;&#x201C;&#x4EA7;&#x54C1;&#x7ECF;&#x7406;&#x201D;&#x505A;&#x8BED;&#x4E49;&#x5C42;&#x9762;&#x7684;&#x5206;&#x89E3;&#xFF0C;&#x4F8B;&#x5982;&#x201C;&#x7A0B;&#x5E8F;&#x5458;&#x201D;&#x548C;&#x201C;&#x4EA7;&#x54C1;&#x7ECF;&#x7406;&#x201D;&#x90FD;&#x662F;&#x201C;IT&#x76F8;&#x5173;&#x4EBA;&#x5458;&#x201D;&#xFF0C;&#x90FD;&#x4F1A;&#x201C;&#x52A0;&#x73ED;&#x201D;&#xFF0C;&#x90A3;&#x4E48;&#x5B83;&#x4EEC;&#x5728;&#x201C;IT&#x76F8;&#x5173;&#x4EBA;&#x5458;&#x201D;&#x548C;&#x201C;&#x52A0;&#x73ED;&#x201D;&#x8BED;&#x4E49;&#x7EF4;&#x5EA6;&#x4E0A;&#x7684;&#x53D6;&#x503C;&#x5C31;&#x66F4;&#x5927;&#xFF0C;&#x800C;&#x201C;&#x4EA7;&#x54C1;&#x7ECF;&#x7406;&#x201D;&#x5728;&#x201C;&#x7F16;&#x5199;&#x4EE3;&#x7801;&#x201D;&#x8FD9;&#x4E2A;&#x8BED;&#x4E49;&#x7EF4;&#x5EA6;&#x4E0A;&#x7684;&#x53D6;&#x503C;&#x5C31;&#x6BD4;&#x201C;&#x7A0B;&#x5E8F;&#x5458;&#x201D;&#x8981;&#x5C0F;&#x5F97;&#x591A;&#x3002;</p>
<p>&#x53EA;&#x8981;&#x6211;&#x4EEC;&#x627E;&#x5230;&#x4E00;&#x4E9B;&#x8BED;&#x4E49;&#x7EF4;&#x5EA6;&#xFF0C;&#x90A3;&#x4E48;&#x6BCF;&#x4E2A;&#x5355;&#x8BCD;&#x5C31;&#x53EF;&#x4EE5;&#x5728;&#x8FD9;&#x4E9B;&#x7EF4;&#x5EA6;&#x4E0A;&#x5206;&#x89E3;&#xFF0C;&#x5F62;&#x6210;&#x4E00;&#x4E2A;&#x8BCD;&#x5411;&#x91CF;&#xFF0C;&#x6BD4;&#x5982;&#xFF1A;</p>
<p>$$w_{Programmer}=[4.3_{(\text{IT})},4.2_{(\text{Overtime})},4.6_{(\text{Coding})}]\\ w_{Product Manager}=[3.9_{(\text{IT})},3.6_{(\text{Overtime})},-2.3_{(\text{Coding})}]$$</p>
<p>&#x901A;&#x8FC7;&#x8FD9;&#x6837;&#x7684;&#x5206;&#x89E3;&#x65B9;&#x5F0F;&#xFF0C;&#x6211;&#x4EEC;&#x5C31;&#x80FD;&#x591F;&#x8861;&#x91CF;&#x51FA;&#x5404;&#x4E2A;&#x8BCD;&#x5411;&#x91CF;&#x4E4B;&#x95F4;&#x7684;&#x76F8;&#x4F3C;&#x7A0B;&#x5EA6;&#xFF0C;&#x6BD4;&#x5982;&#xFF1A;</p>
<p>$$Similarity(\text{Programmer}, \text{Product Manager})=w_{Programmer}\cdot w_{Product Manager}$$</p>
<p>&#x518D;&#x5C06;&#x5176;&#x6807;&#x51C6;&#x5316;&#xFF1A;</p>
<p>$$Similarity(\text{Programmer}, \text{Product Manager})=\frac{w_{Programmer}\cdot w_{Product Manager}}{||w_{Programmer}||\cdot||w_{Product Manager}||}=\cos(\phi)$$</p>
<p>&#x4E0A;&#x5F0F;&#x4E2D;&#x7684; \(\phi\) &#x5373;&#x4E24;&#x4E2A;&#x8BCD;&#x5411;&#x91CF;&#x7684;&#x5939;&#x89D2;&#xFF0C;&#x663E;&#x7136;&#xFF0C;&#x4E24;&#x4E2A;&#x6781;&#x76F8;&#x4F3C;&#x7684;&#x8BCD;&#x7684; \(Similarity\) &#x5E94;&#x5F53;&#x8D8B;&#x8FD1;&#x4E8E;1&#xFF0C;&#x800C;&#x4E24;&#x4E2A;&#x5B8C;&#x5168;&#x76F8;&#x53CD;&#x7684;&#x8BCD;&#x7684; \(Similarity\) &#x5E94;&#x5F53;&#x8D8B;&#x8FD1;&#x4E8E;-1&#x3002;</p>
<p>&#x901A;&#x8FC7;&#x8FD9;&#x79CD;&#x5728;&#x8BB8;&#x591A;&#x8BED;&#x4E49;&#x7EF4;&#x5EA6;&#x4E0A;&#x8FDB;&#x884C;&#x5206;&#x89E3;&#x7684;&#x65B9;&#x5F0F;&#xFF0C;&#x5BF9;&#x4E8E;&#x6BCF;&#x4E2A;&#x5355;&#x8BCD;&#xFF0C;&#x6211;&#x4EEC;&#x5F97;&#x5230;&#x7684;&#x662F;&#x4E00;&#x4E2A;&#x7A20;&#x5BC6;&#x7684;&#x5411;&#x91CF;&#xFF08;&#x5B8C;&#x5168;&#x4E0D;&#x540C;&#x4E8E; One-Hot &#x5F97;&#x5230;&#x7684;&#x7A00;&#x758F;&#x5411;&#x91CF;&#xFF09;</p>
<h2 id>&#x8BED;&#x4E49;&#x7EF4;&#x5EA6;&#x7684;&#x9009;&#x62E9;&#x4E0E;&#x53D6;&#x503C;</h2>
<p>&#x4ECE;&#x4E0A;&#x9762;&#x7684;&#x5206;&#x6790;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x770B;&#x51FA;&#x6309;&#x8BED;&#x4E49;&#x5206;&#x89E3;&#x7684;&#x4F18;&#x52BF;&#x6240;&#x5728;&#xFF0C;&#x4F46;&#x662F;&#x968F;&#x4E4B;&#x800C;&#x6765;&#x7684;&#x662F;&#x4E00;&#x4E2A;&#x66F4;&#x96BE;&#x53D7;&#x7684;&#x95EE;&#x9898;&#xFF1A;&#x5982;&#x4F55;&#x786E;&#x5B9A;&#x5728;&#x54EA;&#x4E9B;&#x8BED;&#x4E49;&#x7EF4;&#x5EA6;&#x4E0A;&#x5BF9;&#x67D0;&#x4E2A;&#x5355;&#x8BCD;&#x8FDB;&#x884C;&#x5206;&#x89E3;&#xFF1F;</p>
<p>&#x5982;&#x679C;&#x6446;&#x5728;&#x773C;&#x524D;&#x7684;&#x662F;&#x4E00;&#x4E2A;&#x8BCD;&#x6C47;&#x91CF;&#x5DE8;&#x5927;&#x7684;&#x6587;&#x672C;&#xFF0C;&#x91CC;&#x9762;&#x7684;&#x5355;&#x8BCD;&#x53EF;&#x80FD;&#x5305;&#x542B;&#x65B9;&#x65B9;&#x9762;&#x9762;&#xFF08;&#x6BD4;&#x4E00;&#x4E24;&#x4E2A;&#x7A0B;&#x5E8F;&#x5458;&#x548C;&#x4EA7;&#x54C1;&#x7ECF;&#x7406;&#x4E0D;&#x77E5;&#x9053;&#x9AD8;&#x660E;&#x5230;&#x54EA;&#x91CC;&#x53BB;&#x4E86;&#xFF09;&#xFF0C;&#x6211;&#x4EEC;&#x5B8C;&#x5168;&#x53EF;&#x4EE5;&#x8BBE;&#x5B9A;&#x51FA;&#x6210;&#x5343;&#x4E0A;&#x4E07;&#x4E2A;&#x8BED;&#x4E49;&#x7EF4;&#x5EA6;&#xFF0C;&#x800C;&#x5404;&#x4E2A;&#x5355;&#x8BCD;&#x5728;&#x8FD9;&#x4E9B;&#x7EF4;&#x5EA6;&#x4E0A;&#x7684;&#x53D6;&#x503C;&#x8303;&#x56F4;&#x66F4;&#x662F;&#x96BE;&#x4EE5;&#x8C03;&#x914D;&#x3002;</p>
<p>&#x8FD9;&#x65F6;&#xFF0C;&#x6DF1;&#x5EA6;&#x5B66;&#x4E60;&#x5C31;&#x53EF;&#x4EE5;&#x6D3E;&#x4E0A;&#x7528;&#x573A;&#x4E86;&#xFF0C;&#x8BA9;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x6A21;&#x578B;&#x53BB;&#x5B66;&#x4E60;&#x8FD9;&#x4E9B;&#x5206;&#x7C7B;&#x3002;&#x5F53;&#x7136;&#x54AF;&#xFF0C;&#x5982;&#x679C;&#x8BA9;&#x795E;&#x7ECF;&#x7F51;&#x7EDC;&#x6A21;&#x578B;&#x53BB;&#x5B66;&#x4E60;&#x8FD9;&#x4E9B;&#x6F5C;&#x5728;&#x7684;&#x8BED;&#x4E49;&#x7EF4;&#x5EA6;&#x7684;&#x8BDD;&#xFF0C;&#x5B83;&#x7684;&#x5206;&#x7C7B;&#x6807;&#x51C6;&#x5C31;&#x4E0D;&#x4F1A;&#x50CF;&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x624B;&#x5199;&#x7684;&#x4F8B;&#x5B50;&#x90A3;&#x6837;&#x6E05;&#x6670;&#x660E;&#x4E86;&#xFF08;&#x81F3;&#x5C11;&#x4F60;&#x8FD8;&#x77E5;&#x9053;&#x201C;&#x7A0B;&#x5E8F;&#x5458;&#x201D;&#x548C;&#x201C;&#x4EA7;&#x54C1;&#x7ECF;&#x7406;&#x201D;&#x4E4B;&#x95F4;&#x8FD8;&#x6709; IT&#x3001;Coding &#x8FD9;&#x4E9B;&#x8BED;&#x4E49;&#x7EF4;&#x5EA6;&#xFF09;&#xFF0C;&#x4F60;&#x6839;&#x672C;&#x4E0D;&#x77E5;&#x9053;&#x5B83;&#x4F1A;&#x6309;&#x7167;&#x600E;&#x6837;&#x7684;&#x7EF4;&#x5EA6;&#x53BB;&#x5B66;&#x4E60;&#xFF0C;&#x6BD5;&#x7ADF;&#x673A;&#x5668;&#x8FD8;&#x662F;&#x4E0D;&#x77E5;&#x9053;&#x67D0;&#x4E2A;&#x7EF4;&#x5EA6;&#x7A76;&#x7ADF;&#x4EE3;&#x8868;&#x7740;&#x4EC0;&#x4E48;&#x610F;&#x601D;&#xFF0C;&#x53CD;&#x6B63;&#x80FD;&#x5206;&#x89E3;&#x5C31;&#x662F;&#x4E86;&#xFF08;&#x7384;&#x5B66;++&#xFF09;&#x3002;</p>
<h2 id="pytorchwordembedding">&#x5728; PyTorch &#x4E2D;&#x4F7F;&#x7528; word embedding</h2>
<p>&#x7531;&#x4E8E;&#x6700;&#x8FD1;&#x5B9E;&#x9A8C;&#x5BA4;&#x91C7;&#x7528;&#x7684;&#x4E5F;&#x662F; PyTorch &#x8FD9;&#x4E2A;&#x6A21;&#x5757;&#xFF0C;&#x90A3;&#x4E48;&#x6211;&#x5C31;&#x7528;&#x8FD9;&#x4E2A;&#x6765;&#x8BB2;&#x597D;&#x4E86;&#x3002;</p>
<p>&#x9996;&#x5148;&#x8981;&#x7528;&#x4E00;&#x4E2A;&#x4EE5; word &#x4E3A; key&#xFF0C;id &#x4E3A; value &#x7684; lookup &#x987A;&#x5E8F;&#x8868;&#xFF0C;&#x5EFA;&#x7ACB; word &#x4E0E; index &#x4E4B;&#x95F4;&#x7684;&#x6620;&#x5C04;&#x5173;&#x7CFB;&#xFF0C;&#x7528;&#x4E8E;&#x67E5;&#x627E;&#x5404;&#x4E2A;&#x5355;&#x8BCD;&#x7684; id&#x3002;</p>
<pre><code class="language-python">import torch
from torch.autograd import Variable
import torch.nn as nn

word2index = {
    &quot;programmer&quot;: 0, 
    &quot;product manager&quot;: 1
}
</code></pre>
<p>&#x63A5;&#x4E0B;&#x6765;&#x6211;&#x4EEC;&#x7528;&#x4E00;&#x4E2A;&#x6A21;&#x578B;&#x6765;&#x8DD1;&#x51FA; &quot;programmer&quot; &#x7684;&#x521D;&#x59CB;&#x8BCD;&#x5411;&#x91CF;&#xFF0C;&#x5047;&#x8BBE;&#x6211;&#x4EEC;&#x7684;&#x8BED;&#x4E49;&#x7EF4;&#x5EA6;&#x4E3A; 8&#x3002;</p>
<pre><code class="language-python">embedding = nn.Embedding(len(word2index), 8)
index_variable = Variable(torch.LongTensor([word2index[&apos;programmer&apos;]]))
embedded = embedding(index_variable)
</code></pre>
<p><code>embedded</code> &#x5373;&#x901A;&#x8FC7; <code>nn.Embedding</code> &#x521D;&#x59CB;&#x51FA;&#x7684;&#x8BCD;&#x5411;&#x91CF;&#xFF1A;</p>
<pre><code class="language-text">Variable containing:
-0.0148 -0.7849  1.2612  0.0015  0.9238 -1.2201  1.5755 -0.8467
[torch.FloatTensor of size 1x8]
</code></pre>
<p>&#x4E00;&#x5B9A;&#x8981;&#x6CE8;&#x610F;&#x7684;&#x662F;&#xFF0C;&#x8FD9;&#x91CC;&#x7684;&#x8BCD;&#x5411;&#x91CF;&#x662F;&#x521D;&#x59CB;&#x5316;&#x51FA;&#x6765;&#x7684;&#xFF0C;&#x5E76;&#x6CA1;&#x6709;&#x7ECF;&#x8FC7;&#x7F51;&#x7EDC;&#x8BAD;&#x7EC3;&#x4F18;&#x5316;&#xFF0C;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x6CA1;&#x6709;&#x6307;&#x5B9A;&#x4F18;&#x5316;&#x65B9;&#x6CD5;&#xFF0C;&#x5728; embedding &#x4E4B;&#x540E;&#xFF0C;&#x6211;&#x4EEC;&#x8FD8;&#x8981;&#x8FDB;&#x884C;&#x5176;&#x4ED6;&#x7684;&#x7F51;&#x7EDC;&#x8BAD;&#x7EC3;&#xFF08;&#x6BD4;&#x5982; N-Gram &#x6A21;&#x578B;&#x8FDB;&#x884C;&#x6587;&#x672C;&#x9884;&#x6D4B;&#xFF09;&#xFF0C;&#x624D;&#x80FD;&#x7ED9;&#x8FD9;&#x4E9B; enbedded word &#x8D4B;&#x4E88;&#x7279;&#x6B8A;&#x7684;&#x8BED;&#x4E49;&#x3002;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[2016电诊出诊 —— 五山便民一条街]]></title><description><![CDATA[2016年11月18日上午9时许，“公益进五山，便民一条街”志愿活动在五山花园社区正式启动。电脑诊所和计算机系携手摊位“电脑义诊”，作为先头部队开始架设摊位。]]></description><link>https://oidiotlin.com/computer-clinic-volunteering-2016/</link><guid isPermaLink="false">63847a40ff82689f3f5c060d</guid><category><![CDATA[Life]]></category><dc:creator><![CDATA[Huidong Lin]]></dc:creator><pubDate>Wed, 20 Sep 2017 19:26:01 GMT</pubDate><media:content url="https://oidiotlin.com/content/images/2017/09/sky-01.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h3 id>&#x6B63;&#x4E8B;</h3>
<img src="https://oidiotlin.com/content/images/2017/09/sky-01.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;"><p>2016&#x5E74;11&#x6708;18&#x65E5;&#x4E0A;&#x5348;9&#x65F6;&#x8BB8;&#xFF0C;&#x201C;&#x516C;&#x76CA;&#x8FDB;&#x4E94;&#x5C71;&#xFF0C;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;&#x201D;&#x5FD7;&#x613F;&#x6D3B;&#x52A8;&#x5728;&#x4E94;&#x5C71;&#x82B1;&#x56ED;&#x793E;&#x533A;&#x6B63;&#x5F0F;&#x542F;&#x52A8;&#x3002;&#x7535;&#x8111;&#x8BCA;&#x6240;&#x548C;&#x8BA1;&#x7B97;&#x673A;&#x7CFB;&#x643A;&#x624B;&#x644A;&#x4F4D;&#x201C;&#x7535;&#x8111;&#x4E49;&#x8BCA;&#x201D;&#xFF0C;&#x4F5C;&#x4E3A;&#x5148;&#x5934;&#x90E8;&#x961F;&#x5F00;&#x59CB;&#x67B6;&#x8BBE;&#x644A;&#x4F4D;&#x3002;&#x8FD9;&#x662F;&#x8FDB;&#x5165;&#x5927;&#x5B66;&#x4EE5;&#x540E;&#x7B2C;&#x4E00;&#x6B21;&#x53C2;&#x4E0E;&#x6BD4;&#x8F83;&#x5927;&#x578B;&#x7684;&#x5FD7;&#x613F;&#x6D3B;&#x52A8;&#xFF0C;&#x51FA;&#x53D1;&#x7684;&#x65F6;&#x5019;&#x8FD8;&#x662F;&#x5F88;&#x5174;&#x594B;&#x7684;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/c+c%20%282%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p>&#x4E0A;&#x5348;&#x4EBA;&#x4E0D;&#x7B97;&#x591A;&#xFF0C;&#x7535;&#x8BCA;&#x644A;&#x4F4D;&#x7A7A;&#x95F2;&#x7684;&#x65F6;&#x5019;&#x6211;&#x53BB;&#x5176;&#x4ED6;&#x644A;&#x4F4D;&#x770B;&#x4E86;&#x770B;&#xFF1A;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/others%20%282%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/others%20%281%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/others%20%283%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/others%20%284%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/others%20%285%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/others%20%287%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/c+c%20%284%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<h3 id>&#x7EF4;&#x4FEE;</h3>
<p>&#x6CA1;&#x6709;&#x60F3;&#x5230;&#x7684;&#x662F;&#xFF0C;&#x5148;&#x6765;&#x62A5;&#x5355;&#x7684;&#x5C45;&#x7136;&#x662F;&#x624B;&#x673A;&#x6545;&#x969C;&#x3002;&#x591A;&#x6570;&#x662F;&#x4E9B;&#x57FA;&#x7840;&#x529F;&#x80FD;&#x7684;&#x4F7F;&#x7528;&#x95EE;&#x9898;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/c+c%20%283%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p>&#x5728;&#x62A5;&#x540D;&#x5FD7;&#x613F;&#x6D3B;&#x52A8;&#x4E4B;&#x524D;&#xFF0C;&#x5B66;&#x957F;&#x8BF4;&#x4E3B;&#x8981;&#x662F;&#x53BB;&#x9274;&#x8D4F;&#x53E4;&#x8463;&#x7684;&#x3002;&#x793E;&#x533A;&#x91CC;&#x591A;&#x6570;&#x90FD;&#x662F;&#x8001;&#x5E74;&#x4EBA;&#xFF0C;&#x751A;&#x81F3;&#x673A;&#x578B;&#x8FD8;&#x505C;&#x7559;&#x5728;10&#x5E74;&#x4EE5;&#x524D;&#xFF0C;&#x6BD4;&#x5982;&#x4E0B;&#x9762;&#x8FD9;&#x4E24;&#x53F0;&#x673A;&#x5668;&#x2014;&#x2014;&#x5176;&#x4E2D;&#x8054;&#x60F3;-&#x662D;&#x9633;E360&#x5C31;&#x662F;03&#x5E74;&#x7684;&#x673A;&#x578B;&#xFF0C;&#x4ECE;&#x5E03;&#x6EE1;&#x9508;&#x8FF9;&#x7684;&#x9762;&#x677F;&#x548C;&#x6C27;&#x5316;&#x4E86;&#x7684;&#x5C4F;&#x5E55;&#x53EF;&#x89C1;&#x4E00;&#x6591;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/c+c%20%285%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/c+c%20%286%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p><del>&#x867D;&#x7136;</del>&#x6B63;&#x56E0;&#x4E3A;&#x662F;&#x8001;&#x53E4;&#x8463;&#xFF0C;&#x6211;&#x4EEC;<del>&#x8FD8;&#x662F;</del>&#x624D;&#x5927;&#x80C6;&#x62C6;&#x5F00;&#x4E86;&#xFF1A;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/c+c%20%2810%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p>&#x7531;&#x4E8E;&#x786C;&#x4EF6;&#x8001;&#x5316;&#x5F97;&#x5B9E;&#x5728;&#x4E25;&#x91CD;&#xFF0C;&#x7F3A;&#x5C11;&#x786C;&#x4EF6;&#x6750;&#x6599;&#x652F;&#x6301;&#x7684;&#x6211;&#x4EEC;&#x4E5F;&#x65E0;&#x80FD;&#x4E3A;&#x529B;&#x3002;&#x4E0D;&#x8FC7;&#x5012;&#x662F;&#x6DA8;&#x4E86;&#x4E0D;&#x5C11;&#x59FF;&#x52BF;&#x3002;&#x8FD9;&#x4E24;&#x53F0;&#x673A;&#x5668;&#x7684;&#x4E3B;&#x4EBA;&#x662F;&#x4E2A;&#x548C;&#x853C;&#x7684;&#x5927;&#x53D4;&#xFF0C;&#x5E26;&#x7740;&#x513F;&#x5B50;&#x5728;&#x5176;&#x4ED6;&#x644A;&#x4F4D;&#x73A9;&#xFF0C;&#x81F3;&#x4E8E;&#x53E4;&#x8463;&#x7535;&#x8111;&#x80FD;&#x4E0D;&#x80FD;&#x4FEE;&#x597D;&#xFF0C;&#x4ED6;&#x4E5F;&#x4E0D;&#x62B1;&#x4EC0;&#x4E48;&#x5E0C;&#x671B;&#xFF0C;&#x53EA;&#x662F;&#x6765;&#x78B0;&#x78B0;&#x8FD0;&#x6C14;&#xFF0C;&#x6743;&#x5F53;&#x7ED9;&#x6211;&#x4EEC;&#x6DA8;&#x59FF;&#x52BF;&#x4E86;&#x3002;</p>
<p>&#x9664;&#x4E86;&#x8001;&#x65E7;&#x53E4;&#x8463;&#xFF0C;&#x5176;&#x5B9E;&#x8FD8;&#x662F;&#x6709;&#x5F88;&#x6B63;&#x5E38;&#x7684;&#x9664;&#x5C18;&#x5DE5;&#x4F5C;&#x7684;&#xFF0C;&#x4E0B;&#x56FE;&#x4E2D;&#x7684;&#x673A;&#x5668;&#x5F00;&#x673A;&#x51E0;&#x5206;&#x949F;&#x5C31;&#x53D1;&#x70EB;&#xFF0C;&#x6211;&#x4EEC;&#x62C6;&#x673A;&#x540E;&#x53D1;&#x73B0;&#x51FA;&#x98CE;&#x53E3;&#x5DF2;&#x7ECF;&#x88AB;&#x7070;&#x5C18;&#x5B8C;&#x5168;&#x5835;&#x6B7B;&#xFF0C;&#x7535;&#x8DEF;&#x677F;&#x4E0A;&#x4E5F;&#x5168;&#x662F;&#x7070;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/c+c%20%2813%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p>&#x7531;&#x4E8E;&#x573A;&#x5730;&#x7535;&#x6E90;&#x9650;&#x5236;&#xFF0C;&#x6211;&#x4EEC;&#x6CA1;&#x6709;&#x5E26;&#x5927;&#x529F;&#x7387;&#x7684;&#x9F13;&#x98CE;&#x673A;&#x6765;&#xFF0C;&#x53EA;&#x597D;&#x5411;&#x9694;&#x58C1;&#x644A;&#x4F4D;&#x501F;&#x6765;&#x6253;&#x6C14;&#x7B52;&#xFF0C;&#x6548;&#x679C;&#x4E5F;&#x8FD8;&#x4E0D;&#x9519;&#x5566;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/c+c%20%2812%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<p>&#x5C34;&#x5C2C;&#x7684;&#x662F;&#x5DE5;&#x5177;&#x7BB1;&#x91CC;&#x7684;&#x7845;&#x8102;&#x7528;&#x5B8C;&#x4E86;&#xFF0C;&#x6211;&#x8DD1;&#x904D;&#x4E86;&#x793E;&#x533A;&#x9644;&#x8FD1;&#x7684;&#x6240;&#x6709;&#x4E94;&#x91D1;&#x5E97;&#x5374;&#x6BEB;&#x65E0;&#x6536;&#x83B7;&#x3002;&#x8D70;&#x6295;&#x65E0;&#x8DEF;&#x7684;&#x6211;&#x4EEC;&#x628A;&#x65E7;&#x7684;&#x7845;&#x8102;&#x62C6;&#x5F00;&#xFF0C;&#x4ECE;&#x7F1D;&#x9699;&#x4E2D;&#x5F3A;&#x884C;&#x6324;&#x51FA;&#x4E00;&#x4E01;&#x70B9;&#x513F;&#x6765;&#x52C9;&#x5F3A;&#x6D82;&#x4E86;&#x4E0A;&#x53BB;&#x3002;</p>
<p>&#x4E0B;&#x5348;&#x6536;&#x644A;&#x524D;&#x8FD8;&#x662F;&#x63A5;&#x4E86;&#x4E00;&#x5355;&#x4E0A;&#x95E8;&#x7EF4;&#x4FEE;&#xFF0C;&#x4F9D;&#x7136;&#x662F;&#x8001;&#x65E7;&#x7684;&#x53F0;&#x5F0F;&#x673A;&#x3002;</p>
<p><img src="http://obj5zpyjm.bkt.clouddn.com/volunteer-2016/c+c%20%281%29.jpg" alt="2016&#x7535;&#x8BCA;&#x51FA;&#x8BCA; &#x2014;&#x2014; &#x4E94;&#x5C71;&#x4FBF;&#x6C11;&#x4E00;&#x6761;&#x8857;" loading="lazy"></p>
<h3 id>&#x756A;&#x5916;</h3>
<p>&#x5176;&#x5B9E;&#x4ECA;&#x5929;&#x7684;&#x7EF4;&#x4FEE;&#x5DE5;&#x4F5C;&#x5E76;&#x6CA1;&#x6709;&#x5F88;&#x591A;&#xFF0C;&#x5927;&#x591A;&#x6570;&#x65F6;&#x5019;&#x6211;&#x4EEC;&#x90FD;&#x662F;&#x5728;&#x548C;&#x793E;&#x533A;&#x91CC;&#x7684;&#x8001;&#x5E74;&#x4EBA;&#x804A;&#x5929;&#x626F;&#x8C08;&#x3002;&#x6709;&#x4E00;&#x4F4D;&#x5A2D;&#x6BD1;&#xFF0C;&#x62FF;&#x7740;&#x5973;&#x513F;&#x9001;&#x5979;&#x7684;&#x65B0;&#x624B;&#x673A;&#xFF0C;&#x95EE;&#x6211;&#x4EEC;&#x600E;&#x4E48;&#x7528;&#xFF1B;&#x751A;&#x81F3;&#x6709;&#x4F4D;&#x55F2;&#x55F2;&#x4E0D;&#x662F;&#x6765;&#x505A;&#x7EF4;&#x4FEE;&#xFF0C;&#x800C;&#x662F;&#x4E13;&#x7A0B;&#x627E;&#x4EBA;&#x804A;&#x5929;&#x7684;&#x3002;&#x6211;&#x4E0D;&#x80FD;&#x5426;&#x8BA4;&#x90A3;&#x4F4D;&#x5973;&#x513F;&#x7684;&#x5B5D;&#x5FC3;&#xFF0C;&#x4F46;&#x662F;&#x4E8B;&#x5B9E;&#x786E;&#x5B9E;&#x662F;&#x6CA1;&#x6709;&#x5728;&#x8001;&#x4EBA;&#x8EAB;&#x4E0A;&#x770B;&#x5230;&#x5E94;&#x6709;&#x7684;&#x6548;&#x679C;&#xFF0C;&#x6211;&#x4EEC;&#x5E0C;&#x671B;&#x624B;&#x673A;&#x3001;&#x7535;&#x8111;&#x80FD;&#x8BA9;&#x5BB6;&#x91CC;&#x7684;&#x8001;&#x4EBA;&#x5728;&#x6211;&#x4EEC;&#x4E0A;&#x73ED;&#x517B;&#x5BB6;&#x7684;&#x65F6;&#x5019;&#x80FD;&#x627E;&#x70B9;&#x4E50;&#x5B50;&#xFF0C;&#x5374;&#x5FD8;&#x4E86;&#x4EC0;&#x4E48;&#x624D;&#x662F;&#x771F;&#x6B63;&#x9002;&#x5408;&#x8001;&#x4EBA;&#x5BB6;&#x7684;&#xFF0C;&#x5FD8;&#x4E86;&#x4EC0;&#x4E48;&#x624D;&#x662F;&#x771F;&#x6B63;&#x7684;&#x201C;&#x517B;&#x201D;&#x5BB6;&#x3002;&#x9762;&#x5BF9;&#x90A3;&#x4E9B;&#x8001;&#x4EBA;&#x4EEC;&#x5E26;&#x6765;&#x7684;&#x6BEB;&#x65E0;&#x6280;&#x672F;&#x96BE;&#x5EA6;&#x6216;&#x8005;&#x662F;&#x6280;&#x672F;&#x96BE;&#x5EA6;&#x7A81;&#x7834;&#x5929;&#x9645;&#x7684;&#x95EE;&#x9898;&#xFF0C;&#x6211;&#x4EEC;&#x5728;&#x6D3B;&#x52A8;&#x540E;&#x8C03;&#x4F83;&#xFF0C;&#x6211;&#x4EEC;&#x4E0D;&#x662F;&#x6765;&#x4FEE;&#x7535;&#x8111;&#x7684;&#xFF0C;&#x6211;&#x4EEC;&#x662F;&#x6765;&#x505A;&#x5FC3;&#x7406;&#x758F;&#x5BFC;&#x7684;&#xFF0C;&#x5374;&#x4E0D;&#x7531;&#x5F97;&#x53CD;&#x601D;&#xFF0C;&#x7A76;&#x7ADF;&#x662F;&#x54EA;&#x4E00;&#x4EE3;&#x9700;&#x8981;&#x5FC3;&#x7406;&#x758F;&#x5BFC;&#xFF1F;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>