@@ -190,6 +190,60 @@ <h2 id="ResBlock" class="doc_header"><code>class</code> <code>ResBlock</code><a
190
190
< div class ="cell border-box-sizing code_cell rendered ">
191
191
< div class ="input ">
192
192
193
+ < div class ="inner_cell ">
194
+ < div class ="input_area ">
195
+ < div class =" highlight hl-ipython3 "> < pre > < span > </ span > < span class ="n "> ResBlock</ span > < span class ="p "> (</ span > < span class ="mi "> 4</ span > < span class ="p "> ,</ span > < span class ="mi "> 64</ span > < span class ="p "> ,</ span > < span class ="mi "> 64</ span > < span class ="p "> ,</ span > < span class ="n "> sa</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> ,</ span > < span class ="n "> groups</ span > < span class ="o "> =</ span > < span class ="mi "> 4</ span > < span class ="p "> )</ span >
196
+ </ pre > </ div >
197
+
198
+ </ div >
199
+ </ div >
200
+ </ div >
201
+
202
+ < div class ="output_wrapper ">
203
+ < div class ="output ">
204
+
205
+ < div class ="output_area ">
206
+
207
+
208
+
209
+ < div class ="output_text output_subarea output_execute_result ">
210
+ < pre > ResBlock(
211
+ (convs): Sequential(
212
+ (conv_0): ConvLayer(
213
+ (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
214
+ (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
215
+ (act_fn): ReLU(inplace=True)
216
+ )
217
+ (conv_1): ConvLayer(
218
+ (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=4, bias=False)
219
+ (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
220
+ (act_fn): ReLU(inplace=True)
221
+ )
222
+ (conv_2): ConvLayer(
223
+ (conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
224
+ (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
225
+ )
226
+ (sa): SimpleSelfAttention(
227
+ (conv): Conv1d(256, 256, kernel_size=(1,), stride=(1,), bias=False)
228
+ )
229
+ )
230
+ (act_fn): ReLU(inplace=True)
231
+ )</ pre >
232
+ </ div >
233
+
234
+ </ div >
235
+
236
+ </ div >
237
+ </ div >
238
+
239
+ </ div >
240
+ {% endraw %}
241
+
242
+ {% raw %}
243
+
244
+ < div class ="cell border-box-sizing code_cell rendered ">
245
+ < div class ="input ">
246
+
193
247
< div class ="inner_cell ">
194
248
< div class ="input_area ">
195
249
< div class =" highlight hl-ipython3 "> < pre > < span > </ span > < span class ="n "> ResBlock</ span > < span class ="p "> (</ span > < span class ="mi "> 2</ span > < span class ="p "> ,</ span > < span class ="mi "> 64</ span > < span class ="p "> ,</ span > < span class ="mi "> 64</ span > < span class ="p "> ,</ span > < span class ="n "> act_fn</ span > < span class ="o "> =</ span > < span class ="n "> nn</ span > < span class ="o "> .</ span > < span class ="n "> LeakyReLU</ span > < span class ="p "> (),</ span > < span class ="n "> bn_1st</ span > < span class ="o "> =</ span > < span class ="kc "> False</ span > < span class ="p "> )</ span >
@@ -260,7 +314,7 @@ <h1 id="NewResBlock">NewResBlock<a class="anchor-link" href="#NewResBlock"> </a>
260
314
261
315
262
316
< div class ="output_markdown rendered_html output_subarea ">
263
- < h2 id ="NewResBlock " class ="doc_header "> < code > class</ code > < code > NewResBlock</ code > < a href ="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/net.py#L46 " class ="source_link " style ="float:right "> [source]</ a > </ h2 > < blockquote > < p > < code > NewResBlock</ code > (< strong > < code > expansion</ code > </ strong > , < strong > < code > ni</ code > </ strong > , < strong > < code > nh</ code > </ strong > , < strong > < code > stride</ code > </ strong > =< em > < code > 1</ code > </ em > , < strong > < code > conv_layer</ code > </ strong > =< em > < code > 'ConvLayer'</ code > </ em > , < strong > < code > act_fn</ code > </ strong > =< em > < code > ReLU(inplace=True)</ code > </ em > , < strong > < code > zero_bn</ code > </ strong > =< em > < code > True</ code > </ em > , < strong > < code > bn_1st</ code > </ strong > =< em > < code > True</ code > </ em > , < strong > < code > pool</ code > </ strong > =< em > < code > AvgPool2d(kernel_size=2, stride=2, padding=0)</ code > </ em > , < strong > < code > sa</ code > </ strong > =< em > < code > False</ code > </ em > , < strong > < code > sym</ code > </ strong > =< em > < code > False</ code > </ em > ) :: < code > Module</ code > </ p >
317
+ < h2 id ="NewResBlock " class ="doc_header "> < code > class</ code > < code > NewResBlock</ code > < a href ="https://github.com/ayasyrev/model_constructor/tree/master/model_constructor/net.py#L46 " class ="source_link " style ="float:right "> [source]</ a > </ h2 > < blockquote > < p > < code > NewResBlock</ code > (< strong > < code > expansion</ code > </ strong > , < strong > < code > ni</ code > </ strong > , < strong > < code > nh</ code > </ strong > , < strong > < code > stride</ code > </ strong > =< em > < code > 1</ code > </ em > , < strong > < code > conv_layer</ code > </ strong > =< em > < code > 'ConvLayer'</ code > </ em > , < strong > < code > act_fn</ code > </ strong > =< em > < code > ReLU(inplace=True)</ code > </ em > , < strong > < code > zero_bn</ code > </ strong > =< em > < code > True</ code > </ em > , < strong > < code > bn_1st</ code > </ strong > =< em > < code > True</ code > </ em > , < strong > < code > pool</ code > </ strong > =< em > < code > AvgPool2d(kernel_size=2, stride=2, padding=0)</ code > </ em > , < strong > < code > sa</ code > </ strong > =< em > < code > False</ code > </ em > , < strong > < code > sym</ code > </ strong > =< em > < code > False</ code > </ em > , < strong > < code > groups</ code > </ strong > =< em > < code > 1</ code > </ em > ) :: < code > Module</ code > </ p >
264
318
</ blockquote >
265
319
< p > Base class for all neural network modules.</ p >
266
320
< p > Your models should also subclass this class.</ p >
@@ -404,7 +458,10 @@ <h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="http
404
458
405
459
406
460
< div class ="output_text output_subarea output_execute_result ">
407
- < pre > constr Net</ pre >
461
+ < pre > constr Net
462
+ expansion: 1, sa: 0, groups: 1
463
+ stem sizes: [3, 32, 32, 64]
464
+ body sizes [64, 64, 128, 256, 512]</ pre >
408
465
</ div >
409
466
410
467
</ div >
@@ -461,7 +518,10 @@ <h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="http
461
518
</ div >
462
519
</ div >
463
520
</ div >
464
-
521
+ < details class ="description ">
522
+ < summary data-open ="Hide Output " data-close ="Show Output "> </ summary >
523
+ < summary > </ summary >
524
+
465
525
< div class ="output_wrapper ">
466
526
< div class ="output ">
467
527
@@ -473,18 +533,18 @@ <h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="http
473
533
< pre > Sequential(
474
534
(conv_0): ConvLayer(
475
535
(conv): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
536
+ (act_fn): LeakyReLU(negative_slope=0.01, inplace=True)
476
537
(bn): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
477
- (act_fn): ReLU(inplace=True)
478
538
)
479
539
(conv_1): ConvLayer(
480
540
(conv): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
541
+ (act_fn): LeakyReLU(negative_slope=0.01, inplace=True)
481
542
(bn): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
482
- (act_fn): ReLU(inplace=True)
483
543
)
484
544
(conv_2): ConvLayer(
485
545
(conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
546
+ (act_fn): LeakyReLU(negative_slope=0.01, inplace=True)
486
547
(bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
487
- (act_fn): ReLU(inplace=True)
488
548
)
489
549
(stem_pool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
490
550
)</ pre >
@@ -495,6 +555,7 @@ <h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="http
495
555
</ div >
496
556
</ div >
497
557
558
+ </ details >
498
559
</ div >
499
560
{% endraw %}
500
561
@@ -562,7 +623,10 @@ <h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="http
562
623
</ div >
563
624
</ div >
564
625
</ div >
565
-
626
+ < details class ="description ">
627
+ < summary data-open ="Hide Output " data-close ="Show Output "> </ summary >
628
+ < summary > </ summary >
629
+
566
630
< div class ="output_wrapper ">
567
631
< div class ="output ">
568
632
@@ -613,6 +677,7 @@ <h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="http
613
677
</ div >
614
678
</ div >
615
679
680
+ </ details >
616
681
</ div >
617
682
{% endraw %}
618
683
@@ -647,73 +712,6 @@ <h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="http
647
712
</ div >
648
713
</ div >
649
714
650
- </ div >
651
- {% endraw %}
652
-
653
- {% raw %}
654
-
655
- < div class ="cell border-box-sizing code_cell rendered ">
656
- < div class ="input ">
657
-
658
- < div class ="inner_cell ">
659
- < div class ="input_area ">
660
- < div class =" highlight hl-ipython3 "> < pre > < span > </ span > < span class ="n "> model</ span > < span class ="o "> .</ span > < span class ="n "> stem_bn_end</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span >
661
- </ pre > </ div >
662
-
663
- </ div >
664
- </ div >
665
- </ div >
666
-
667
- </ div >
668
- {% endraw %}
669
-
670
- {% raw %}
671
-
672
- < div class ="cell border-box-sizing code_cell rendered ">
673
- < div class ="input ">
674
-
675
- < div class ="inner_cell ">
676
- < div class ="input_area ">
677
- < div class =" highlight hl-ipython3 "> < pre > < span > </ span > < span class ="n "> model</ span > < span class ="o "> .</ span > < span class ="n "> stem</ span >
678
- </ pre > </ div >
679
-
680
- </ div >
681
- </ div >
682
- </ div >
683
-
684
- < div class ="output_wrapper ">
685
- < div class ="output ">
686
-
687
- < div class ="output_area ">
688
-
689
-
690
-
691
- < div class ="output_text output_subarea output_execute_result ">
692
- < pre > Sequential(
693
- (conv_0): ConvLayer(
694
- (conv): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
695
- (act_fn): LeakyReLU(negative_slope=0.01, inplace=True)
696
- (bn): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
697
- )
698
- (conv_1): ConvLayer(
699
- (conv): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
700
- (act_fn): LeakyReLU(negative_slope=0.01, inplace=True)
701
- (bn): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
702
- )
703
- (conv_2): ConvLayer(
704
- (conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
705
- (act_fn): LeakyReLU(negative_slope=0.01, inplace=True)
706
- )
707
- (stem_pool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
708
- (norm): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
709
- )</ pre >
710
- </ div >
711
-
712
- </ div >
713
-
714
- </ div >
715
- </ div >
716
-
717
715
</ div >
718
716
{% endraw %}
719
717
@@ -804,9 +802,6 @@ <h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="http
804
802
(conv): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
805
803
(bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
806
804
)
807
- (sa): SimpleSelfAttention(
808
- (conv): Conv1d(256, 256, kernel_size=(1,), stride=(1,), bias=False)
809
- )
810
805
)
811
806
(merge): LeakyReLU(negative_slope=0.01, inplace=True)
812
807
)
@@ -955,23 +950,6 @@ <h2 id="Net" class="doc_header"><code>class</code> <code>Net</code><a href="http
955
950
</ div >
956
951
957
952
</ details >
958
- </ div >
959
- {% endraw %}
960
-
961
- {% raw %}
962
-
963
- < div class ="cell border-box-sizing code_cell rendered ">
964
- < div class ="input ">
965
-
966
- < div class ="inner_cell ">
967
- < div class ="input_area ">
968
- < div class =" highlight hl-ipython3 "> < pre > < span > </ span > < span class ="n "> model</ span > < span class ="o "> .</ span > < span class ="n "> stem_sizes</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="mi "> 3</ span > < span class ="p "> ,</ span > < span class ="mi "> 32</ span > < span class ="p "> ,</ span > < span class ="mi "> 32</ span > < span class ="p "> ,</ span > < span class ="mi "> 64</ span > < span class ="p "> ,</ span > < span class ="mi "> 64</ span > < span class ="p "> ]</ span >
969
- </ pre > </ div >
970
-
971
- </ div >
972
- </ div >
973
- </ div >
974
-
975
953
</ div >
976
954
{% endraw %}
977
955
@@ -1027,7 +1005,11 @@ <h2 id="xresnet-constructor">xresnet constructor<a class="anchor-link" href="#xr
1027
1005
1028
1006
1029
1007
< div class ="output_text output_subarea output_execute_result ">
1030
- < pre > ( constr xresnet50, 10)</ pre >
1008
+ < pre > ( constr xresnet50
1009
+ expansion: 4, sa: 0, groups: 1
1010
+ stem sizes: [3, 32, 32, 64]
1011
+ body sizes [16, 64, 128, 256, 512],
1012
+ 10)</ pre >
1031
1013
</ div >
1032
1014
1033
1015
</ div >
0 commit comments