<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Deeplearning on Yaohong</title><link>https://yh.timefriend.vip/tags/deeplearning/</link><description>Recent content in Deeplearning on Yaohong</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 17 Nov 2021 20:27:20 +0800</lastBuildDate><atom:link href="https://yh.timefriend.vip/tags/deeplearning/index.xml" rel="self" type="application/rss+xml"/><item><title>How backward and step are associated with model paramters update?</title><link>https://yh.timefriend.vip/post/machinelearning/base/lossbackwardandopitimizerstep/</link><pubDate>Wed, 17 Nov 2021 20:27:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/base/lossbackwardandopitimizerstep/</guid><description>&lt;h1 id="how-are-backward-and-step-associated-with-model-paramters-update"&gt;How are backward and step associated with model paramters update?&lt;/h1&gt;&#10;&lt;p&gt;optimizer accept the paramters of the model, it can update the parameters, but how is loss function associated with paramters?&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;loss.backward()&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;optimizer.step()&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;REFERENCE:&lt;/p&gt;&#10;&lt;p&gt;1.&lt;a href="https://stackoverflow.com/questions/53975717/pytorch-connection-between-loss-backward-and-optimizer-step"&gt;pytorch - connection between loss.backward() and optimizer.step()&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;2.https://pytorch.org/tutorials/beginner/former_torchies/nnft_tutorial.html#forward-and-backward-function-hooks&lt;/p&gt;</description></item><item><title>nn_Module</title><link>https://yh.timefriend.vip/post/machinelearning/base/nn_module/</link><pubDate>Tue, 16 Nov 2021 20:27:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/base/nn_module/</guid><description>&lt;h1 id="nn_module"&gt;nn_Module&lt;/h1&gt;&#10;&lt;h2 id="1where-are-module-parameters-configured"&gt;1.Where are module parameters configured?&lt;/h2&gt;&#10;&lt;p&gt;The parameters are stored in the network node which is one of points of a network layer.&#10;Neural network layer is defined in &lt;code&gt;init&lt;/code&gt; method of module and need to be defined as class variable;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; torch.nn &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; nn&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; numpy &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; np&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;TorchDNN&lt;/span&gt;(nn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Module):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, &lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;, hidden, output):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;super&lt;/span&gt;(TorchDNN, &lt;span style="font-style:italic"&gt;self&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;&lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; layer_hidden &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; nn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Linear(&lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;, hidden, bias &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;forward&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, input_data):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;pass&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array([&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;torch_model &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; TorchDNN(&lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(x), &lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(torch_model&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;state_dict())&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# OUTPUT:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# OrderedDict()&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Network layer should be defined as a variable of &lt;code&gt;Module&lt;/code&gt; class;&lt;/p&gt;</description></item><item><title>Understanding arange, unsqueeze, repeat, stack methods in Pytorch</title><link>https://yh.timefriend.vip/post/machinelearning/base/understandingunsqueezerepeatstackmethodsinpytorch/</link><pubDate>Fri, 30 Jul 2021 20:26:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/base/understandingunsqueezerepeatstackmethodsinpytorch/</guid><description>&lt;h1 id="understanding-arange-unsqueeze-repeat-stack-methods-in-pytorch"&gt;Understanding arange, unsqueeze, repeat, stack methods in Pytorch&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;torch.arange(start=0, end, step=1)&lt;/code&gt; return 1-D tensor of size &lt;code&gt;(end-start)/step&lt;/code&gt; which value begin from start and each value take with common differences &lt;code&gt;step&lt;/code&gt;.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;torch.unsqueeze(input, dim)&lt;/code&gt; return a new tensor with a dimension of size one insterted at specified position; A dim value within the range &lt;code&gt;[-input.dim() - 1, input.dim() + 1)&lt;/code&gt; can be used.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;tensor.repeat(size*)&lt;/code&gt; return a tensor; the new shape of tensor is that original shape multiplied by &lt;code&gt;arguments&lt;/code&gt; correspondingly, if the number of paramter don&amp;rsquo;t match the original shape, then &lt;code&gt;last dimension of new shape = the last dimension of original shape * last paramter&lt;/code&gt;;&lt;/p&gt;</description></item><item><title>L1 L2 Regularization - Optimizer</title><link>https://yh.timefriend.vip/post/machinelearning/base/optimizer_l1l2regularization/</link><pubDate>Mon, 12 Jul 2021 20:26:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/base/optimizer_l1l2regularization/</guid><description>&lt;h1 id="optimizer-l1-l2-regularization"&gt;Optimizer: L1 L2 Regularization&lt;/h1&gt;&#10;&lt;p&gt;L1,L2 Loss function mean different type of loss function.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-language" data-lang="language"&gt;L1: sum(Y-f(x)) lasso&#10;L2: sum(Y-f(x))^2 Ridge&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;L1, L2 regularization :&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;Y_predict = E(w_i(x_i)+b_i)&#10;&#10;MES = E(Y-Y_predict)^2&#10;&#10;L1: loss = MSE + 入E|w_i|&#10;L2: loss = MES + 入E(w_i)^2&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="what-does-penalize-the-weights"&gt;What does penalize the weights?&lt;/h2&gt;&#10;&lt;p&gt;It means add another parameters to the loss function, so that the greater the weight, the higher the loss function value. That makes the weight parameters to be less or smaller.&lt;/p&gt;</description></item><item><title>How to Label Voice with Praat for Machine Learning</title><link>https://yh.timefriend.vip/post/machinelearning/other/howtolabelvoicefordeeplearning/</link><pubDate>Sat, 10 Jul 2021 11:34:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/other/howtolabelvoicefordeeplearning/</guid><description>&lt;h1 id="how-to-label-voice-with-praat-for-machine-learning"&gt;How to Label Voice with Praat for Machine Learning&lt;/h1&gt;&#10;&lt;h2 id="1install"&gt;1.Install&lt;/h2&gt;&#10;&lt;h3 id="11-download-praat"&gt;1.1 Download praat&lt;/h3&gt;&#10;&lt;p&gt;1.Open &lt;a href="https://www.fon.hum.uva.nl/praat/"&gt;Praat: doing Phonetics by Computer&lt;/a&gt; website;&lt;/p&gt;&#10;&lt;p&gt;2.Choose your OS system on download area in the upper left conner of website;&lt;/p&gt;&#10;&lt;p&gt;3.Then click the &lt;code&gt;praat6150_mac.dmg&lt;/code&gt; or &lt;code&gt;praat6150_win64.zip&lt;/code&gt; to download file;&lt;/p&gt;&#10;&lt;p&gt;For example, my os is MacOS, in my case I should download &lt;code&gt;praat6150_mac.dmg&lt;/code&gt; and install it.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Option: You can also download the file from github, referce to &lt;a href="https://github.com/praat/praat/releases"&gt;Praat in github&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="12-install-phonetic-symbols"&gt;1.2 Install Phonetic symbols&lt;/h3&gt;&#10;&lt;p&gt;If you want to see good-quality phonetic characters on your screen and in your clipboard, you have to install the Charis SIL and/or the Doulos SIL font.&lt;/p&gt;</description></item><item><title>The Simple Implement of BatchNorm2D</title><link>https://yh.timefriend.vip/post/machinelearning/base/implementbatchnorm2d/</link><pubDate>Thu, 27 May 2021 12:30:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/base/implementbatchnorm2d/</guid><description>&lt;h1 id="the-simple-implement-of-batchnorm2d"&gt;The Simple Implement of BatchNorm2D&lt;/h1&gt;&#10;&lt;p&gt;The first is that instead of whiteningthe features in layer inputs and outputs jointly, we will normalize each scalar feature independently, by making ithave the mean of zero and the variance of 1. For a layer with d-dimensional inputx = (x(1). . . x(d)), we will nor-malize each dimension&lt;/p&gt;&#10;&lt;h2 id="1mybatchnorm2d"&gt;1.MyBatchNorm2D&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; numpy &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; np;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;MyBatchNorm2D&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;pass&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;forward&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, x):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array(x);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mean &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;mean(x);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; standard_deviation &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sqrt(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;var(x) &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1e-05&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; x_norm &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; (x &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; mean) &lt;span style="color:#ff79c6"&gt;/&lt;/span&gt; standard_deviation;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; x_norm;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; [[[[ &lt;span style="color:#bd93f9"&gt;1.1713&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;10.7508&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2.0155&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.5290&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.2751&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1.0233&lt;/span&gt;]],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1.4446&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.8337&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1.0429&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.8856&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#bd93f9"&gt;5.3324&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;7.6233&lt;/span&gt;]]],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[[ &lt;span style="color:#bd93f9"&gt;2.1079&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1.6039&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.8938&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1.1655&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#bd93f9"&gt;8.0355&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.4911&lt;/span&gt;]],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[ &lt;span style="color:#bd93f9"&gt;3.6337&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;10.3400&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1.5365&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.7931&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#bd93f9"&gt;0.8472&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1.1318&lt;/span&gt;]]]];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array(&lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bn &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; MyBatchNorm2D();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x_norm &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; bn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;forward(&lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;x_norm:&amp;#34;&lt;/span&gt;, x_norm);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;np.mean: &amp;#34;&lt;/span&gt;, np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;mean(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array(&lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;)));&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;np.var: &amp;#34;&lt;/span&gt; , np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;var(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array(&lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;)));&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;MyBatchNorm2D np.mean: &amp;#34;&lt;/span&gt;, np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;mean(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array(x_norm)));&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;MyBatchNorm2D np.var: &amp;#34;&lt;/span&gt; , np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;var(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array(x_norm)));&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# OUTPUT:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x_norm: [[[[ 0.0414345 -2.92181622]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.75064805 -0.38117689]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.31806977 0.00464894]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[-0.60875025 -0.4569104 ]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.50890728 -0.4698102 ]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 1.07568036 1.64508601]]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[[ 0.27422743 0.14895769]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.47184832 0.0399929 ]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 1.74753876 -0.3717568 ]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[ 0.65346666 2.3203247 ]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.63159209 -0.05256752]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.0391209 0.03161673]]]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# np.mean: 1.0045958333333334&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# np.var: 16.18707780123264&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# MyBatchNorm2D np.mean: 0.0&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# MyBatchNorm2D np.var: 0.9999993822236513&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2using-batchnorm2d-in-torch"&gt;2.Using BatchNorm2d in torch&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; [[[[ &lt;span style="color:#bd93f9"&gt;1.1713&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;10.7508&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2.0155&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.5290&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.2751&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1.0233&lt;/span&gt;]],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1.4446&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.8337&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1.0429&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.8856&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#bd93f9"&gt;5.3324&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;7.6233&lt;/span&gt;]]],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[[ &lt;span style="color:#bd93f9"&gt;2.1079&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1.6039&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.8938&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1.1655&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#bd93f9"&gt;8.0355&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.4911&lt;/span&gt;]],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[ &lt;span style="color:#bd93f9"&gt;3.6337&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;10.3400&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1.5365&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.7931&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#bd93f9"&gt;0.8472&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1.1318&lt;/span&gt;]]]];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; torch&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; torch.nn &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; nn&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; torch&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;tensor(&lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bn &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; nn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;BatchNorm2d(&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;, momentum&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;, affine&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;, track_running_stats&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;None&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x_norm &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; bn(&lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;BatchNorm2d new_x:&amp;#34;&lt;/span&gt;, x_norm);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; numpy &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; np;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;BatchNorm2d np.mean: &amp;#34;&lt;/span&gt; , np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;mean(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array(x_norm)));&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;BatchNorm2d np.var: &amp;#34;&lt;/span&gt; , np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;var(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array(x_norm)));&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# OUTPUT:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# BatchNorm2d new_x: tensor([[[[ 0.2864, -2.6606],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.5013, -0.1339],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.0711, 0.2498]],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[-0.9184, -0.7553],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.8112, -0.7692],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.8903, 1.5017]]],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[[ 0.5179, 0.3933],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.2241, 0.2850],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 1.9831, -0.1245]],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[ 0.4369, 2.2267],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.9429, -0.3212],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.3067, -0.2308]]]])&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# BatchNorm2d np.mean: -9.934108e-09&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# BatchNorm2d np.var: 0.99999934&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="reference"&gt;REFERENCE:&lt;/h1&gt;&#10;&lt;p&gt;1.&lt;a href="https://pytorch.org/docs/stable/generated/torch.nn.BatchNorm2d.html"&gt;Torch nn.BatchNorm2d&lt;/a&gt;&lt;/p&gt;</description></item><item><title>model(x) vs model.forward(x)</title><link>https://yh.timefriend.vip/post/machinelearning/base/modelxvsforwardx/</link><pubDate>Mon, 24 May 2021 11:00:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/base/modelxvsforwardx/</guid><description>&lt;h1 id="modelx-vs-modelforwardx"&gt;model(x) vs model.forward(x)&lt;/h1&gt;&#10;&lt;p&gt;&lt;code&gt;__call__&lt;/code&gt; magic method in &lt;a href="https://stackoverflow.com/questions/54989230/calling-forward-function-without-forward/54989851#54989851"&gt;nn.Module&lt;/a&gt; will invoke &lt;code&gt;forward()&lt;/code&gt; method and take care of hooks and states that python allows, so we should use &lt;code&gt;model(x)&lt;/code&gt; rather than call &lt;code&gt;model.forward(x)&lt;/code&gt; directly.&lt;/p&gt;&#10;&lt;p&gt;REFERENCE:&lt;/p&gt;&#10;&lt;p&gt;1.&lt;a href="https://stackoverflow.com/questions/55338756/why-there-are-different-output-between-model-forwardinput-and-modelinput"&gt;Why there are different output between model.forward(input) and model(input)&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;2.&lt;a href="https://stackoverflow.com/questions/54989230/calling-forward-function-without-forward/54989851#54989851"&gt;Calling forward function without .forward()&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;3.&lt;a href="https://pytorch.org/docs/stable/_modules/torch/nn/modules/module.html#Module"&gt;torch.nn.module codes&lt;/a&gt;&lt;/p&gt;</description></item><item><title>DNN RNN CNN codes</title><link>https://yh.timefriend.vip/post/machinelearning/base/dnncnnrnn/</link><pubDate>Tue, 04 May 2021 08:27:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/base/dnncnnrnn/</guid><description>&lt;h1 id="simple-dnn-rnn-cnn-example-codes"&gt;Simple DNN RNN CNN example codes&lt;/h1&gt;&#10;&lt;h2 id="1dnn-deep-neural-network"&gt;1.DNN-Deep neural network&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; numpy &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; np;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;myDNN&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# 3 * 5 * 2&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, &lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;, hidden, output):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# hidden random weight &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# Note: hidden_weight can be the shape of (input,hidden); correspondingly, `self.hidden_out` should equal `np.dot(input_data, self.hidden_weight)` to accord with hidden_weight shape.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_weight &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;random&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;rand(hidden, &lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;); &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_bias &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;random&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;rand(hidden);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# hidden random weight &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;output_weight &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;random&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;rand(output,hidden);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;output_bias &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;random&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;rand(output);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;forward&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, input_data):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_out &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;dot(input_data, &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_weight&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;T) &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_bias;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;output_out &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;dot(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_out, &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;output_weight&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;T) &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;output_bias;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Usage:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dnn &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; myDNN(&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;hidden_weight&amp;#34;&lt;/span&gt;,dnn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_weight)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;hidden_bias:&amp;#34;&lt;/span&gt;,dnn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_bias)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;output_weight&amp;#34;&lt;/span&gt;,dnn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;output_weight)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;output_bias&amp;#34;&lt;/span&gt;,dnn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;output_bias)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array([&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;]) &lt;span style="color:#6272a4"&gt;#inut&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dnn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;forward(x);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;output_out&amp;#34;&lt;/span&gt;,dnn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;output_out)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# hidden_weight [[0.99663996 0.39342568 0.5312192 ]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [0.0798744 0.50312289 0.86241405]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [0.17138496 0.6761287 0.70645906]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [0.61662379 0.69389404 0.16623206]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [0.71213402 0.30800932 0.64149244]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# hidden_bias: [0.81517457 0.56115705 0.3089624 0.84450962 0.93530796]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output_weight [[0.34466034 0.31119367 0.12883636 0.34135026 0.43802589]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [0.31553914 0.16063241 0.8179255 0.52314575 0.79439618]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [0.86730239 0.25280671 0.20375421 0.78095429 0.67368635]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output_bias [0.5588883 0.98722366 0.21507382]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output_out [ 6.8078659 11.30086755 11.16252686]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="11-use-dnn-in-torch"&gt;1.1 Use DNN in torch&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; torch.nn &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; nn&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;TorchDNN&lt;/span&gt;(nn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Module):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, &lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;, hidden, output):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;super&lt;/span&gt;(TorchDNN, &lt;span style="font-style:italic"&gt;self&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;&lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;layer_hidden &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; nn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Linear(&lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;, hidden, bias &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;layer_output &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; nn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Linear(hidden, output, bias &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;forward&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, input_data):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_out &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;layer_hidden(input_data);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;output_out &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;layer_output(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_out);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array([&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;torch_model &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; TorchDNN(&lt;span style="color:#8be9fd;font-style:italic"&gt;len&lt;/span&gt;(x), &lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(torch_model&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;state_dict())&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# OrderedDict([(&amp;#39;layer_hidden.weight&amp;#39;, &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# tensor([[-0.5216, -0.5690, 0.4181],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.3142, 0.1489, 0.5071],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.0295, 0.3381, 0.4401],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.4697, 0.0732, -0.0328],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.5250, 0.1540, 0.2086]])), &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# (&amp;#39;layer_hidden.bias&amp;#39;, tensor([-0.5134, 0.2645, -0.3366, -0.0597, 0.0159])), &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# (&amp;#39;layer_output.weight&amp;#39;, &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# tensor([[ 0.2770, -0.3408, -0.3145, -0.3686, 0.1060],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.1268, 0.0729, -0.3838, 0.2850, 0.1438],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.1645, -0.0497, 0.1029, 0.1088, -0.0536]])), &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# (&amp;#39;layer_output.bias&amp;#39;, tensor([ 0.0908, -0.1240, 0.2800]))])&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2rnn-recurrent-neural-network"&gt;2.RNN-Recurrent neural network&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; numpy &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; np;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;myRNN&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, &lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;, hidden ):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# random weight&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;input_hidden_weight &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;random&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;randint(&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;,(hidden, &lt;span style="color:#8be9fd;font-style:italic"&gt;input&lt;/span&gt;))&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_hidden_weight &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;random&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;randint(&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;,(hidden))&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# random bias&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;input_hidden_bias &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;random&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;randint(&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;,(hidden))&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_hidden_bias &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;random&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;randint(&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;,(hidden))&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# self.input_hidden_bias = np.zeros(hidden);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# self.hidden_hidden_bias = np.zeros(hidden);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_size &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; hidden&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;forward&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, input_data):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;last_hidden_output &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;zeros([&lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_size]);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; output &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; item &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; input_data:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# ht​=tanh(W_ih​ * x_t​ + b_ih ​ + W_hh​*h_(t−1)​+b_hh​)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hidden_cur &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;dot(item, &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;input_hidden_weight&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;T) &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;input_hidden_bias;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hidden_pre &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;dot(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;last_hidden_output, &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_hidden_weight&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;T) &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;hidden_hidden_bias;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hidden_output &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;tanh( hidden_cur &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; hidden_pre )&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; output&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(hidden_output)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;last_hidden_output &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; hidden_output;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array(output), hidden_output;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# diy_model = myRNN(w_ih, w_hh, hidden_size)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array([[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;], [&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;], [&lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;6&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;7&lt;/span&gt;]]) &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;input_size &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hidden_size &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;diy_model &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; myRNN(input_size,hidden_size)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;output, hidden_output &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; diy_model&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;forward(x)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;myRNN process output: &amp;#34;&lt;/span&gt;, output)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;myRNN hidden_output:&amp;#34;&lt;/span&gt;, hidden_output)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# myRNN process output: [[-0.62745049 -0.99314575 -0.96754221 -0.9965258 ]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.99542912 -0.99962783 -0.99965698 -0.99998354]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.99983032 -0.99992543 -0.9999868 -0.99999971]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# myRNN hidden_output: [-0.99983032 -0.99992543 -0.9999868 -0.99999971]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="21-use-rnn-in-torch"&gt;2.1 Use RNN in torch&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; torch.nn &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; nn;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; torch;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; numpy &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; np;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;TorchRNN&lt;/span&gt;(nn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Module):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, input_size, hidden):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;super&lt;/span&gt;(TorchRNN,&lt;span style="font-style:italic"&gt;self&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;&lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;layer &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; nn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;RNN(input_size, hidden, batch_first&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;True&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;forward&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, x):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;layer(x)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;torch_model &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; TorchRNN(&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(torch_model&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;state_dict())&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array([[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;], [&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;], [&lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;6&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;7&lt;/span&gt;]]) &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;torch_x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; torch&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;FloatTensor([x])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;output, h &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; torch_model&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;forward(torch_x)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;output:&amp;#34;&lt;/span&gt;, output&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detach()&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;numpy())&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;h:&amp;#34;&lt;/span&gt;,h&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;detach()&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;numpy())&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output: &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# OrderedDict([(&amp;#39;layer.weight_ih_l0&amp;#39;, tensor([[ 0.0922, 0.2786, -0.4514],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.3809, 0.2628, -0.4460],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.4951, -0.3599, -0.4961],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.3794, 0.3397, 0.3185]])), (&amp;#39;layer.weight_hh_l0&amp;#39;, tensor([[-0.1330, -0.1843, -0.2618, 0.4246],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.4154, -0.3578, -0.4181, -0.4291],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.3608, -0.2349, 0.4631, 0.4873],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.4886, 0.0285, -0.0490, 0.2928]])), (&amp;#39;layer.bias_ih_l0&amp;#39;, tensor([-0.1421, -0.3572, -0.2087, -0.0319])), (&amp;#39;layer.bias_hh_l0&amp;#39;, tensor([-0.3799, 0.1126, -0.1766, 0.2630]))])&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output: [[[-0.8416229 -0.589054 -0.99585485 0.9778193 ]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.45533973 -0.3993926 -0.9999862 0.99957436]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.6221984 0.05736368 -0.99999994 0.9999955 ]]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# h: [[[-0.6221984 0.05736368 -0.99999994 0.9999955 ]]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3cnn-convolutional-neural-network"&gt;3.CNN-Convolutional neural network&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; numpy &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; np;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;MyCNN&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# I don&amp;#39;t know how do filters work.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, in_channel, out_channel, kernel_size):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# random weight&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# (out_channel, in_channel, kernel_size, kernel_size)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# self.kernel_weight = np.random.randint(-10000,10000,(out_channel, in_channel, kernel_size, kernel_size))/10000;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;kernel_weight &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array([[[[ &lt;span style="color:#bd93f9"&gt;0.0106&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.1561&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.0984&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#bd93f9"&gt;0.1468&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.1580&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.1404&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#bd93f9"&gt;0.0856&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.0780&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.0636&lt;/span&gt;]],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.1620&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.2318&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.0486&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.2214&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.2046&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.1070&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#bd93f9"&gt;0.1609&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.0160&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.0374&lt;/span&gt;]]],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[[ &lt;span style="color:#bd93f9"&gt;0.1876&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.2056&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.1858&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.1288&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.0065&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.0145&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.1080&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.1519&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.0581&lt;/span&gt;]],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.0749&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.2289&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.0890&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#bd93f9"&gt;0.0611&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.0398&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.1293&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#bd93f9"&gt;0.0911&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.0264&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.2104&lt;/span&gt;]]]]);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;in_channel &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; in_channel;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;out_channel &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; out_channel;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;kernel_size &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; kernel_size;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# c*h*w&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;forward&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, input_data):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; output &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; [];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; input_shape &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; input_data&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; idx_start &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;int(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;floor( (&lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;kernel_size)&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;)) ;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; width &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; input_shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; height &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; input_shape[&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; in_channel &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; input_shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; o_c &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;out_channel):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; piece_of_out_channel &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;zeros(( width&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;(idx_start&lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;), height&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;(idx_start&lt;span style="color:#ff79c6"&gt;*&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;) ));&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# print(&amp;#34;piece_of_out_channel:&amp;#34;, piece_of_out_channel.shape)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# width&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; idx_height &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(idx_start, height &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; idx_start): &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# height&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; idx_width &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;range&lt;/span&gt;(idx_start, width &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; idx_start ):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# kernel_shape_input&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; kernel_shape_input &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; input_data[:, idx_height&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;idx_start: idx_height&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;idx_start&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, idx_width&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;idx_start :idx_width&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;idx_start&lt;span style="color:#ff79c6"&gt;+&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt; ];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; out &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;kernel_weight[o_c] &lt;span style="color:#ff79c6"&gt;*&lt;/span&gt; kernel_shape_input;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; out &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;sum(out)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# assign value&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; idx_h &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; idx_height &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; idx_start;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; idx_w &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; idx_width &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt; idx_start&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; piece_of_out_channel[idx_h][idx_w] &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; out;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; output&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;append(piece_of_out_channel);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; output;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x = np.random.randint(0,10000,(2, 6, 6))/100;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x = random.astype(int)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array([[[&lt;span style="color:#bd93f9"&gt;61&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;93&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;18&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;31&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;49&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ,[&lt;span style="color:#bd93f9"&gt;12&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;62&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;32&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;60&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;58&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;30&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ,[&lt;span style="color:#bd93f9"&gt;49&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;64&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;38&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;74&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;59&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;29&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ,[&lt;span style="color:#bd93f9"&gt;71&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;34&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;29&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;88&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;59&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;41&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ,[&lt;span style="color:#bd93f9"&gt;91&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;72&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;36&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;94&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;79&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;29&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ,[&lt;span style="color:#bd93f9"&gt;17&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;15&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;86&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;29&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;84&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;53&lt;/span&gt;]]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ,[[&lt;span style="color:#bd93f9"&gt;31&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;25&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;15&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;16&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;35&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;20&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ,[&lt;span style="color:#bd93f9"&gt;76&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;45&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;82&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;88&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;49&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;99&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ,[&lt;span style="color:#bd93f9"&gt;56&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;46&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;82&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;72&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;26&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;55&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ,[&lt;span style="color:#bd93f9"&gt;7&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;86&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;32&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;29&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;82&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;91&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ,[&lt;span style="color:#bd93f9"&gt;76&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;68&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;17&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;50&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;19&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;53&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ,[&lt;span style="color:#bd93f9"&gt;87&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;21&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;58&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;35&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;81&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;46&lt;/span&gt;]]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# print(x);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;x.shape:&amp;#34;&lt;/span&gt;,x&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;myCNN &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; MyCNN(x&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;], &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(myCNN&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;kernel_weight)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;output &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; myCNN&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;forward(x)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;myCNN output:&amp;#34;&lt;/span&gt;,output)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x.shape: (2, 6, 6)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# myCNN output: [array([[-2.5093, 9.0098, -0.2033, 28.9 ],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 6.5155, 27.3464, 0.7038, 14.5031],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [24.2218, 16.1092, 23.2223, 16.9067],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [29.6749, 2.0986, 16.8128, 45.025 ]]), &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# array([[-14.77 , -4.3335, 5.0665, 3.2378],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-28.2207, 18.1968, 11.889 , -27.3557],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ -2.748 , 22.5508, 10.6013, -19.0372],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 22.0148, 9.1788, -22.0313, 9.5176]])]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="31-use-cnn-in-torch"&gt;3.1 Use CNN in torch&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; torch;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; torch.nn &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; nn;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;class&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;TorchCNN&lt;/span&gt;(nn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Module):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, in_channel, out_channel, kernel_size ):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;super&lt;/span&gt;()&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;&lt;span style="color:#50fa7b"&gt;__init__&lt;/span&gt;();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;conv2d &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; nn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;Conv2d(in_channel, out_channel, kernel_size, bias&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;False&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;def&lt;/span&gt; &lt;span style="color:#50fa7b"&gt;forward&lt;/span&gt;(&lt;span style="font-style:italic"&gt;self&lt;/span&gt;, input_data):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;return&lt;/span&gt; &lt;span style="font-style:italic"&gt;self&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;conv2d(input_data);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;in_channel &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; x&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;];&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;torchcnn &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; TorchCNN(in_channel, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;torchcnn weight:&amp;#34;&lt;/span&gt;, torchcnn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;state_dict())&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;torchcnn weight shape:&amp;#34;&lt;/span&gt;, torchcnn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;state_dict()[&lt;span style="color:#f1fa8c"&gt;&amp;#39;conv2d.weight&amp;#39;&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;numpy()&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# torchcnn weight shape: (2, 2, 3, 3) =&amp;gt; (out_channel, in_channel, kernel_size, kernel_size)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;torch_x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; torch&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;FloatTensor([x])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;out &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; torchcnn&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;forward(torch_x);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;TorchCNN out: &amp;#34;&lt;/span&gt;, out)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# torchcnn weight: OrderedDict([(&amp;#39;conv2d.weight&amp;#39;, tensor(&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[[[ 0.0106, -0.1561, 0.0984],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.1468, 0.1580, -0.1404],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.0856, 0.0780, 0.0636]],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[-0.1620, 0.2318, 0.0486],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.2214, -0.2046, 0.1070],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.1609, 0.0160, -0.0374]]],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[[ 0.1876, -0.2056, 0.1858],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.1288, 0.0065, -0.0145],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-0.1080, 0.1519, 0.0581]],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[-0.0749, 0.2289, -0.0890],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.0611, 0.0398, -0.1293],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 0.0911, -0.0264, -0.2104]]]]))])&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# TorchCNN out: tensor([[[[ -2.5066, 9.0144, -0.1983, 28.9003],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 6.5160, 27.3456, 0.7094, 14.5056],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 24.2262, 16.1086, 23.2279, 16.9102],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 29.6763, 2.1047, 16.8210, 45.0250]],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[-14.7564, -4.3273, 5.0752, 3.2491],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [-28.2115, 18.1981, 11.8975, -27.3447],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ -2.7442, 22.5540, 10.6096, -19.0247],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [ 22.0166, 9.1837, -22.0241, 9.5211]]]],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# grad_fn=&amp;lt;MkldnnConvolutionBackward&amp;gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Averaging histograms</title><link>https://yh.timefriend.vip/post/machinelearning/averaginghistogram/</link><pubDate>Tue, 29 Dec 2020 00:49:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/averaginghistogram/</guid><description>&lt;h1 id="averaging-histograms"&gt;Averaging histograms&lt;/h1&gt;&#10;&lt;p&gt;An image histogram is the number of each pixel value, which is displayed in the graph.&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;x&lt;/code&gt; axis of the graph is pixel value, range from 0 to 255;&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;y&lt;/code&gt; axis of the graph is the number of this pixel value;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://yh.timefriend.vip/img/diagram/deeplearning/standardImageHistograms.jpg" alt="An example of an standard image together with its luminance and RGB histograms"&gt;&lt;/p&gt;&#10;&lt;h2 id="1how-to-averaging-histograms"&gt;1.How to averaging histograms?&lt;/h2&gt;&#10;&lt;p&gt;Our goal is to generate a new image with a more even histogram distribution.&lt;/p&gt;</description></item><item><title>Some notes on Convolution Course</title><link>https://yh.timefriend.vip/post/machinelearning/convolutionalneuralnetwork/</link><pubDate>Thu, 21 May 2020 15:18:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/convolutionalneuralnetwork/</guid><description>&lt;h1 id="some-notes-on-convolution-course"&gt;Some notes on Convolution course&lt;/h1&gt;&#10;&lt;h2 id="what-is-padding"&gt;What is padding?&lt;/h2&gt;&#10;&lt;p&gt;Padding is to add some pixels to the border of the original image, such as a &lt;code&gt;6*6&lt;/code&gt; image will become a &lt;code&gt;8*8&lt;/code&gt; image if we add a pixel to its border.&lt;/p&gt;&#10;&lt;h2 id="valid-convolution-vs-same-convolution"&gt;valid convolution vs same convolution.&lt;/h2&gt;&#10;&lt;p&gt;Valid convolution is on padding that means the actual pixels of the output image after we convole original image with filter.&lt;/p&gt;&#10;&lt;p&gt;Same convolution means adding padding so that the output image has the same size as its input image.&lt;/p&gt;</description></item><item><title>深度学习-第一个数字识别项目</title><link>https://yh.timefriend.vip/post/machinelearning/mynumberidentify/</link><pubDate>Sun, 03 May 2020 09:15:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/mynumberidentify/</guid><description>&lt;h1 id="深度学习-第一个数字识别项目"&gt;深度学习-第一个数字识别项目&lt;/h1&gt;&#10;&lt;p&gt;今天按Google官方推荐流程，整理了开发模板，不是所有深度学习都严格按这个模板来实现，不同项目步骤有所删减，但大体框架是差不多的，主要为以下过程:&lt;/p&gt;</description></item><item><title>Terms in machine learning</title><link>https://yh.timefriend.vip/post/machinelearning/base/termsinmachinelearning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/base/termsinmachinelearning/</guid><description>&lt;h1 id="terms-in-machine-learning"&gt;Terms in machine learning&lt;/h1&gt;&#10;&lt;h3 id="flops"&gt;FLOPS&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;FLOPS=&lt;em&gt;Fl&lt;/em&gt;oating point &lt;em&gt;op&lt;/em&gt;eration per &lt;em&gt;s&lt;/em&gt;econds&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;FLOPs=&lt;em&gt;Fl&lt;/em&gt;oating point &lt;em&gt;o&lt;/em&gt;peration&lt;em&gt;s&lt;/em&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;REFERNECD: &lt;a href="https://stackoverflow.com/questions/58498651/what-is-flops-in-field-of-deep-learning"&gt;what-is-flops-in-field-of-deep-learning&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>