Skip to content

Commit 37468ed

Browse files
author
ayasyrev
committed
fix bn error
1 parent 5c5ef00 commit 37468ed

File tree

7 files changed

+490
-85
lines changed

7 files changed

+490
-85
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#################################################
44
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
55
#################################################
6-
# file to edit: index.ipynb
6+
# file to edit: nbs/index.ipynb
77
# command to build the docs after a change: nbdev_build_docs
88
99
-->

docs/constructor.html

Lines changed: 67 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#################################################
1313
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
1414
#################################################
15-
# file to edit: 00_constructor.ipynb
15+
# file to edit: nbs/00_constructor.ipynb
1616
# command to build the docs after a change: nbdev_build_docs
1717
1818
-->
@@ -80,8 +80,8 @@ <h2 id="Stem" class="doc_header"><code>class</code> <code>Stem</code><a href="ht
8080
sizes: [3, 64]
8181
(conv0): ConvLayer(
8282
(conv): Conv2d(3, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
83-
(bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
8483
(act_fn): ReLU(inplace=True)
84+
(bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
8585
)
8686
(pool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
8787
)</pre>
@@ -279,6 +279,49 @@ <h2 id="Stem" class="doc_header"><code>class</code> <code>Stem</code><a href="ht
279279
</div>
280280
</div>
281281

282+
</div>
283+
<div class="cell border-box-sizing code_cell rendered">
284+
<div class="input">
285+
286+
<div class="inner_cell">
287+
<div class="input_area">
288+
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">stem</span> <span class="o">=</span> <span class="n">Stem</span><span class="p">(</span><span class="n">use_bn</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">stem_sizes</span><span class="o">=</span><span class="p">[</span><span class="mi">32</span><span class="p">],</span> <span class="n">stride_on</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">bn_1st</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
289+
<span class="n">stem</span>
290+
</pre></div>
291+
292+
</div>
293+
</div>
294+
</div>
295+
296+
<div class="output_wrapper">
297+
<div class="output">
298+
299+
<div class="output_area">
300+
301+
302+
303+
<div class="output_text output_subarea output_execute_result">
304+
<pre>Stem(
305+
sizes: [3, 32, 64]
306+
(conv0): ConvLayer(
307+
(conv): Conv2d(3, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
308+
(bn): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
309+
(act_fn): ReLU(inplace=True)
310+
)
311+
(conv1): ConvLayer(
312+
(conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
313+
(act_fn): ReLU(inplace=True)
314+
)
315+
(pool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
316+
(bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
317+
)</pre>
318+
</div>
319+
320+
</div>
321+
322+
</div>
323+
</div>
324+
282325
</div>
283326
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
284327
<div class="text_cell_render border-box-sizing rendered_html">
@@ -304,7 +347,7 @@ <h2 id="BasicBlock">BasicBlock<a class="anchor-link" href="#BasicBlock">&#182;</
304347

305348

306349
<div class="output_markdown rendered_html output_subarea ">
307-
<h2 id="BasicBlock" class="doc_header"><code>class</code> <code>BasicBlock</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L30" class="source_link" style="float:right">[source]</a></h2><blockquote><p><code>BasicBlock</code>(<strong><code>ni</code></strong>, <strong><code>nf</code></strong>, <strong><code>expansion</code></strong>=<em><code>1</code></em>, <strong><code>stride</code></strong>=<em><code>1</code></em>, <strong><code>bn_1st</code></strong>=<em><code>False</code></em>, <strong><code>zero_bn</code></strong>=<em><code>False</code></em>, <strong><code>conv_layer</code></strong>=<em><code>'ConvLayer'</code></em>, <strong>**<code>kwargs</code></strong>) :: <code>Module</code></p>
350+
<h2 id="BasicBlock" class="doc_header"><code>class</code> <code>BasicBlock</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L31" class="source_link" style="float:right">[source]</a></h2><blockquote><p><code>BasicBlock</code>(<strong><code>ni</code></strong>, <strong><code>nf</code></strong>, <strong><code>expansion</code></strong>=<em><code>1</code></em>, <strong><code>stride</code></strong>=<em><code>1</code></em>, <strong><code>bn_1st</code></strong>=<em><code>False</code></em>, <strong><code>zero_bn</code></strong>=<em><code>False</code></em>, <strong><code>conv_layer</code></strong>=<em><code>'ConvLayer'</code></em>, <strong>**<code>kwargs</code></strong>) :: <code>Module</code></p>
308351
</blockquote>
309352
<p>Basic block (simplified) as in pytorch resnet</p>
310353

@@ -526,34 +569,6 @@ <h2 id="BasicBlock" class="doc_header"><code>class</code> <code>BasicBlock</code
526569
<h2 id="Body-constructor">Body constructor<a class="anchor-link" href="#Body-constructor">&#182;</a></h2>
527570
</div>
528571
</div>
529-
</div>
530-
<div class="cell border-box-sizing code_cell rendered">
531-
<div class="input">
532-
533-
<div class="inner_cell">
534-
<div class="input_area">
535-
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># class Body(nn.Sequential): </span>
536-
<span class="c1"># &#39;&#39;&#39;Constructor for body&#39;&#39;&#39;</span>
537-
<span class="c1"># def __init__(self, block, </span>
538-
<span class="c1"># body_in=64, body_out=512, </span>
539-
<span class="c1"># layer_szs=[64,128,256,], blocks=[2,2,2,2],</span>
540-
<span class="c1"># expansion=1, **kwargs): </span>
541-
<span class="c1"># layer_szs = [body_in//expansion] + layer_szs + [body_out]</span>
542-
<span class="c1"># num_layers = len(layer_szs)-1</span>
543-
<span class="c1"># layers = [(f&quot;layer_{i}&quot;, self._make_layer(block, layer_szs[i], layer_szs[i+1], blocks[i], 1 if i==0 else 2, **kwargs))</span>
544-
<span class="c1"># for i in range(num_layers)]</span>
545-
<span class="c1"># super().__init__(OrderedDict(layers))</span>
546-
<span class="c1"># def _make_layer(self, block, ni, nf, blocks, stride, **kwargs):</span>
547-
<span class="c1"># return nn.Sequential(OrderedDict(</span>
548-
<span class="c1"># [(f&#39;block_{i}&#39;, block(ni if i==0 else nf, nf, stride if i==0 else 1, **kwargs))</span>
549-
<span class="c1"># for i in range(blocks)]))</span>
550-
551-
</pre></div>
552-
553-
</div>
554-
</div>
555-
</div>
556-
557572
</div>
558573
<div class="cell border-box-sizing code_cell rendered">
559574

@@ -567,7 +582,7 @@ <h2 id="Body-constructor">Body constructor<a class="anchor-link" href="#Body-con
567582

568583

569584
<div class="output_markdown rendered_html output_subarea ">
570-
<h2 id="BasicLayer" class="doc_header"><code>class</code> <code>BasicLayer</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L54" class="source_link" style="float:right">[source]</a></h2><blockquote><p><code>BasicLayer</code>(<strong><code>block</code></strong>, <strong><code>blocks</code></strong>, <strong><code>ni</code></strong>, <strong><code>nf</code></strong>, <strong><code>expansion</code></strong>, <strong><code>stride</code></strong>, <strong>**<code>kwargs</code></strong>) :: <code>Sequential</code></p>
585+
<h2 id="BasicLayer" class="doc_header"><code>class</code> <code>BasicLayer</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L55" class="source_link" style="float:right">[source]</a></h2><blockquote><p><code>BasicLayer</code>(<strong><code>block</code></strong>, <strong><code>blocks</code></strong>, <strong><code>ni</code></strong>, <strong><code>nf</code></strong>, <strong><code>expansion</code></strong>, <strong><code>stride</code></strong>, <strong>**<code>kwargs</code></strong>) :: <code>Sequential</code></p>
571586
</blockquote>
572587
<p>Layer from blocks</p>
573588

@@ -588,7 +603,7 @@ <h2 id="BasicLayer" class="doc_header"><code>class</code> <code>BasicLayer</code
588603

589604

590605
<div class="output_markdown rendered_html output_subarea ">
591-
<h2 id="Body" class="doc_header"><code>class</code> <code>Body</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L68" class="source_link" style="float:right">[source]</a></h2><blockquote><p><code>Body</code>(<strong><code>block</code></strong>, <strong><code>body_in</code></strong>=<em><code>64</code></em>, <strong><code>body_out</code></strong>=<em><code>512</code></em>, <strong><code>bodylayer</code></strong>=<em><code>'BasicLayer'</code></em>, <strong><code>expansion</code></strong>=<em><code>1</code></em>, <strong><code>layer_szs</code></strong>=<em><code>[64, 128, 256]</code></em>, <strong><code>blocks</code></strong>=<em><code>[2, 2, 2, 2]</code></em>, <strong>**<code>kwargs</code></strong>) :: <code>Sequential</code></p>
606+
<h2 id="Body" class="doc_header"><code>class</code> <code>Body</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L69" class="source_link" style="float:right">[source]</a></h2><blockquote><p><code>Body</code>(<strong><code>block</code></strong>, <strong><code>body_in</code></strong>=<em><code>64</code></em>, <strong><code>body_out</code></strong>=<em><code>512</code></em>, <strong><code>bodylayer</code></strong>=<em><code>'BasicLayer'</code></em>, <strong><code>expansion</code></strong>=<em><code>1</code></em>, <strong><code>layer_szs</code></strong>=<em><code>[64, 128, 256]</code></em>, <strong><code>blocks</code></strong>=<em><code>[2, 2, 2, 2]</code></em>, <strong>**<code>kwargs</code></strong>) :: <code>Sequential</code></p>
592607
</blockquote>
593608
<p>Constructor for body</p>
594609

@@ -846,7 +861,7 @@ <h1 id="Head">Head<a class="anchor-link" href="#Head">&#182;</a></h1>
846861

847862

848863
<div class="output_markdown rendered_html output_subarea ">
849-
<h2 id="Head" class="doc_header"><code>class</code> <code>Head</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L85" class="source_link" style="float:right">[source]</a></h2><blockquote><p><code>Head</code>(<strong><code>ni</code></strong>, <strong><code>nf</code></strong>, <strong>**<code>kwargs</code></strong>) :: <code>Sequential</code></p>
864+
<h2 id="Head" class="doc_header"><code>class</code> <code>Head</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L86" class="source_link" style="float:right">[source]</a></h2><blockquote><p><code>Head</code>(<strong><code>ni</code></strong>, <strong><code>nf</code></strong>, <strong>**<code>kwargs</code></strong>) :: <code>Sequential</code></p>
850865
</blockquote>
851866
<p>base head</p>
852867

@@ -920,7 +935,7 @@ <h1 id="class-Net">class Net<a class="anchor-link" href="#class-Net">&#182;</a><
920935

921936

922937
<div class="output_markdown rendered_html output_subarea ">
923-
<h4 id="init_model" class="doc_header"><code>init_model</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L95" class="source_link" style="float:right">[source]</a></h4><blockquote><p><code>init_model</code>(<strong><code>model</code></strong>, <strong><code>zero_bn</code></strong>=<em><code>False</code></em>)</p>
938+
<h4 id="init_model" class="doc_header"><code>init_model</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L96" class="source_link" style="float:right">[source]</a></h4><blockquote><p><code>init_model</code>(<strong><code>model</code></strong>, <strong><code>zero_bn</code></strong>=<em><code>False</code></em>)</p>
924939
</blockquote>
925940
<p>Init model</p>
926941

@@ -944,7 +959,7 @@ <h4 id="init_model" class="doc_header"><code>init_model</code><a href="https://g
944959

945960

946961
<div class="output_markdown rendered_html output_subarea ">
947-
<h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L102" class="source_link" style="float:right">[source]</a></h2><blockquote><p><code>Net</code>(<strong><code>stem</code></strong>=<em><code>'Stem'</code></em>, <strong><code>body</code></strong>=<em><code>'Body'</code></em>, <strong><code>block</code></strong>=<em><code>'BasicBlock'</code></em>, <strong><code>layer_szs</code></strong>=<em><code>[64, 128, 256]</code></em>, <strong><code>blocks</code></strong>=<em><code>[2, 2, 2, 2]</code></em>, <strong><code>head</code></strong>=<em><code>'Head'</code></em>, <strong><code>c_in</code></strong>=<em><code>3</code></em>, <strong><code>num_classes</code></strong>=<em><code>1000</code></em>, <strong><code>body_in</code></strong>=<em><code>64</code></em>, <strong><code>body_out</code></strong>=<em><code>512</code></em>, <strong><code>expansion</code></strong>=<em><code>1</code></em>, <strong><code>bn_1st</code></strong>=<em><code>False</code></em>, <strong><code>init_type</code></strong>=<em><code>'normal'</code></em>, <strong>**<code>kwargs</code></strong>) :: <code>Sequential</code></p>
962+
<h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/constructor.py#L103" class="source_link" style="float:right">[source]</a></h2><blockquote><p><code>Net</code>(<strong><code>stem</code></strong>=<em><code>'Stem'</code></em>, <strong><code>body</code></strong>=<em><code>'Body'</code></em>, <strong><code>block</code></strong>=<em><code>'BasicBlock'</code></em>, <strong><code>layer_szs</code></strong>=<em><code>[64, 128, 256]</code></em>, <strong><code>blocks</code></strong>=<em><code>[2, 2, 2, 2]</code></em>, <strong><code>head</code></strong>=<em><code>'Head'</code></em>, <strong><code>c_in</code></strong>=<em><code>3</code></em>, <strong><code>num_classes</code></strong>=<em><code>1000</code></em>, <strong><code>body_in</code></strong>=<em><code>64</code></em>, <strong><code>body_out</code></strong>=<em><code>512</code></em>, <strong><code>expansion</code></strong>=<em><code>1</code></em>, <strong><code>bn_1st</code></strong>=<em><code>False</code></em>, <strong><code>init_type</code></strong>=<em><code>'normal'</code></em>, <strong>**<code>kwargs</code></strong>) :: <code>Sequential</code></p>
948963
</blockquote>
949964
<p>Constructor for model</p>
950965

@@ -1182,6 +1197,22 @@ <h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="http
11821197
</div>
11831198
</div>
11841199

1200+
</div>
1201+
<div class="cell border-box-sizing code_cell rendered">
1202+
<div class="input">
1203+
1204+
<div class="inner_cell">
1205+
<div class="input_area">
1206+
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">bs_test</span> <span class="o">=</span> <span class="mi">16</span>
1207+
<span class="n">xb</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="n">bs_test</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">128</span><span class="p">,</span> <span class="mi">128</span><span class="p">)</span>
1208+
<span class="n">y</span> <span class="o">=</span> <span class="n">model</span><span class="p">(</span><span class="n">xb</span><span class="p">)</span>
1209+
<span class="n">y</span><span class="o">.</span><span class="n">shape</span>
1210+
</pre></div>
1211+
1212+
</div>
1213+
</div>
1214+
</div>
1215+
11851216
<div class="output_wrapper">
11861217
<div class="output">
11871218

docs/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#################################################
1313
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
1414
#################################################
15-
# file to edit: index.ipynb
15+
# file to edit: nbs/index.ipynb
1616
# command to build the docs after a change: nbdev_build_docs
1717
1818
-->

docs/layers.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#################################################
1313
### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
1414
#################################################
15-
# file to edit: 01_layers.ipynb
15+
# file to edit: nbs/01_layers.ipynb
1616
# command to build the docs after a change: nbdev_build_docs
1717
1818
-->

model_constructor/constructor.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ def __init__(self, c_in=3, stem_sizes=[], stem_out=64,
1818
num_layers = len(self.sizes)-1
1919
stem = [(f"conv{i}", conv_layer(self.sizes[i], self.sizes[i+1],
2020
stride=2 if i==stride_on else 1, act=True,
21-
bn_layer=not use_bn if i==num_layers-1 else True, **kwargs
22-
)) for i in range(num_layers)]
21+
bn_layer=not use_bn if i==num_layers-1 else True,
22+
bn_1st=bn_1st, **kwargs))
23+
for i in range(num_layers)]
2324
if pool: stem += [('pool', nn.MaxPool2d(kernel_size=3, stride=2, padding=1))]
2425
if use_bn: stem.append(('bn', nn.BatchNorm2d(stem_out)))
2526
super().__init__(OrderedDict(stem))
@@ -109,8 +110,6 @@ def __init__(self, stem=Stem,
109110
body_in=64, body_out=512, expansion=1,
110111
bn_1st=False,
111112
init_type='normal', **kwargs):
112-
# c_in = 3
113-
# block_szs = [64,128,128,256,256,512]
114113
super().__init__(OrderedDict([
115114
('stem', stem(c_in=c_in,stem_out=body_in, **kwargs)),
116115
('body', body(block, body_in, body_out,

0 commit comments

Comments
 (0)