Skip to content

Commit abbe4bb

Browse files
author
Travis CI
committed
Commit from Travis CI for build 26 .
1 parent f2076e8 commit abbe4bb

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

feed.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.0.1">Jekyll</generator><link href="https://tatsy.github.io/programming-for-beginners/feed.xml" rel="self" type="application/atom+xml" /><link href="https://tatsy.github.io/programming-for-beginners/" rel="alternate" type="text/html" /><updated>2020-05-14T03:46:23+00:00</updated><id>https://tatsy.github.io/programming-for-beginners/feed.xml</id><title type="html">cpp-python-beginners</title><subtitle>初心者向けC++/Pythonプログラミング</subtitle><author><name>Tatsuya Yatagawa</name><email>[email protected]</email></author></feed>
1+
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.0.1">Jekyll</generator><link href="https://tatsy.github.io/programming-for-beginners/feed.xml" rel="self" type="application/atom+xml" /><link href="https://tatsy.github.io/programming-for-beginners/" rel="alternate" type="text/html" /><updated>2020-05-17T16:10:01+00:00</updated><id>https://tatsy.github.io/programming-for-beginners/feed.xml</id><title type="html">cpp-python-beginners</title><subtitle>初心者向けC++/Pythonプログラミング</subtitle><author><name>Tatsuya Yatagawa</name><email>[email protected]</email></author></feed>

python/convolutional-network/index.html

+8-4
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,9 @@ <h2 id="データセットクラスの用意">データセット・クラスの
207207

208208
<span class="n">n_labels</span> <span class="o">=</span> <span class="n">struct</span><span class="p">.</span><span class="n">unpack</span><span class="p">(</span><span class="s">'&gt;i'</span><span class="p">,</span> <span class="n">fp</span><span class="p">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">))[</span><span class="mi">0</span><span class="p">]</span>
209209
<span class="n">labels</span> <span class="o">=</span> <span class="n">struct</span><span class="p">.</span><span class="n">unpack</span><span class="p">(</span><span class="s">'&gt;'</span> <span class="o">+</span> <span class="s">'B'</span> <span class="o">*</span> <span class="n">n_labels</span><span class="p">,</span> <span class="n">fp</span><span class="p">.</span><span class="n">read</span><span class="p">(</span><span class="n">n_labels</span><span class="p">))</span>
210-
<span class="n">labels</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">labels</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s">'uint8'</span><span class="p">)</span>
210+
211+
<span class="c1"># 誤差関数用にlongで表しておく
212+
</span> <span class="n">labels</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">labels</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s">'int64'</span><span class="p">)</span>
211213

212214
<span class="k">return</span> <span class="n">labels</span>
213215
</code></pre></div></div>
@@ -236,7 +238,7 @@ <h2 id="モジュールクラスの用意">モジュール・クラスの用意<
236238
<span class="nb">super</span><span class="p">(</span><span class="n">Net</span><span class="p">,</span> <span class="bp">self</span><span class="p">).</span><span class="n">__init__</span><span class="p">()</span>
237239

238240
<span class="bp">self</span><span class="p">.</span><span class="n">net</span> <span class="o">=</span> <span class="n">nn</span><span class="p">.</span><span class="n">Sequential</span><span class="p">(</span>
239-
<span class="n">nn</span><span class="p">.</span><span class="n">Conv2d</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="n">kernel_size</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">stride</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">padding</span><span class="o">=</span><span class="mi">2</span><span class="p">),</span>
241+
<span class="n">nn</span><span class="p">.</span><span class="n">Conv2d</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="n">kernel_size</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">stride</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">padding</span><span class="o">=</span><span class="mi">0</span><span class="p">),</span>
240242
<span class="n">nn</span><span class="p">.</span><span class="n">MaxPool2d</span><span class="p">(</span><span class="n">kernel_size</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">stride</span><span class="o">=</span><span class="mi">2</span><span class="p">),</span>
241243
<span class="n">nn</span><span class="p">.</span><span class="n">Sigmoid</span><span class="p">(),</span>
242244
<span class="n">nn</span><span class="p">.</span><span class="n">Conv2d</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="n">kernel_size</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">stride</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">padding</span><span class="o">=</span><span class="mi">0</span><span class="p">),</span>
@@ -301,6 +303,9 @@ <h2 id="学習ループ">学習ループ</h2>
301303
</span><span class="n">images</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'images'</span><span class="p">]</span>
302304
<span class="n">labels</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'labels'</span><span class="p">]</span>
303305

306+
<span class="c1"># トレーニングモードに変更
307+
</span><span class="n">net</span><span class="p">.</span><span class="n">train</span><span class="p">()</span>
308+
304309
<span class="c1"># 勾配の初期化
305310
</span><span class="n">net</span><span class="p">.</span><span class="n">zero_grad</span><span class="p">()</span>
306311

@@ -317,7 +322,7 @@ <h2 id="学習ループ">学習ループ</h2>
317322
</span><span class="n">optim</span><span class="p">.</span><span class="n">step</span><span class="p">()</span>
318323
</code></pre></div></div>
319324

320-
<p>より複雑なネットワークになればネットワークへのデータ転送や誤差の評価は複雑にはなるが、基本的な流れはほとんど変わらない。なお上記のコードに現れる <code class="highlighter-rouge">criterion</code> は誤差を評価する損失関数で対数softmax関数を最終出力に用いた場合には <code class="highlighter-rouge">nn.NNLLoss</code> (非負対数尤度, Non-Negative Likelihood)を用いる。</p>
325+
<p>より複雑なネットワークになればネットワークへのデータ転送や誤差の評価は複雑にはなるが、基本的な流れはほとんど変わらない。なお上記のコードに現れる <code class="highlighter-rouge">criterion</code> は誤差を評価する損失関数で、ネットワークの最終出力に<code class="highlighter-rouge">log_softmax</code>用いた場合には <code class="highlighter-rouge">nn.NLLLoss</code> (非負対数尤度, Non-Negative Likelihood)を用いる。 (効率は落ちるが通常の<code class="highlighter-rouge">softmax</code>を使った場合には <code class="highlighter-rouge">nn.CrossEntropyLoss</code> を使う)</p>
321326

322327
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">criterion</span> <span class="o">=</span> <span class="n">nn</span><span class="p">.</span><span class="n">NLLLoss</span><span class="p">()</span>
323328
</code></pre></div></div>
@@ -330,7 +335,6 @@ <h2 id="学習の結果とネットワークの改良">学習の結果とネッ
330335

331336
<p>これ以外にも、様々な学習のテクニックがあるが、それらについては、ネット上にも多くの記事や実装があるので、各自調べてみてほしい。</p>
332337

333-
334338
</div>
335339

336340

0 commit comments

Comments
 (0)