@@ -49,6 +49,9 @@ Check all parameters with `pprint` method:
49
49
``` python
50
50
mc.pprint()
51
51
```
52
+ <details open >
53
+ <summary >Output</summary >
54
+
52
55
name: MC
53
56
in_chans: 3
54
57
num_classes: 1000
@@ -76,6 +79,7 @@ mc.pprint()
76
79
make_body: <function make_body at 0x7f064c7cd750>
77
80
make_head: <function make_head at 0x7f064c7cd7e0>
78
81
82
+ </details >
79
83
80
84
81
85
Now we have model constructor, default setting as xresnet18. And we can get model after call it.
@@ -86,6 +90,9 @@ Now we have model constructor, default setting as xresnet18. And we can get mode
86
90
model = mc()
87
91
model
88
92
```
93
+ <details >
94
+ <summary >Output</summary >
95
+
89
96
Sequential(
90
97
MC
91
98
(stem): Sequential(
@@ -255,7 +262,7 @@ model
255
262
(fc): Linear(in_features=512, out_features=1000, bias=True)
256
263
)
257
264
)
258
-
265
+ </ details >
259
266
260
267
261
268
If you want to change model, just change constructor parameters.
@@ -274,6 +281,9 @@ Now we can look at model parts - stem, body, head.
274
281
275
282
mc.body
276
283
```
284
+ <details >
285
+ <summary >Output</summary >
286
+
277
287
Sequential(
278
288
(l_0): Sequential(
279
289
(bl_0): ResBlock(
@@ -615,7 +625,7 @@ mc.body
615
625
)
616
626
)
617
627
)
618
-
628
+ </ details >
619
629
620
630
621
631
## Create constructor from config.
@@ -632,7 +642,11 @@ from model_constructor import ModelCfg
632
642
cfg = ModelCfg()
633
643
print (cfg)
634
644
```
645
+ <details open >
646
+ <summary >Output</summary >
647
+
635
648
name='MC' in_chans=3 num_classes=1000 block=<class 'model_constructor.model_constructor.ResBlock'> conv_layer=<class 'model_constructor.layers.ConvBnAct'> block_sizes=[64, 128, 256, 512] layers=[2, 2, 2, 2] norm=<class 'torch.nn.modules.batchnorm.BatchNorm2d'> act_fn=ReLU(inplace=True) pool=AvgPool2d(kernel_size=2, stride=2, padding=0) expansion=1 groups=1 dw=False div_groups=None sa=False se=False se_module=None se_reduction=None bn_1st=True zero_bn=True stem_stride_on=0 stem_sizes=[32, 32, 64] stem_pool=MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False) stem_bn_end=False init_cnn=None make_stem=None make_layer=None make_body=None make_head=None
649
+ </details >
636
650
637
651
638
652
Now we can create constructor from config:
@@ -711,6 +725,9 @@ Here is model:
711
725
712
726
mc()
713
727
```
728
+ <details >
729
+ <summary >Output</summary >
730
+
714
731
Sequential(
715
732
MxResNet
716
733
(stem): Sequential(
880
897
(fc): Linear(in_features=512, out_features=1000, bias=True)
881
898
)
882
899
)
883
-
900
+ </ details >
884
901
885
902
886
903
## MXResNet50
917
934
918
935
mc.stem.conv_1
919
936
```
920
- ConvBnAct(
921
- (conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
922
- (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
923
- (act_fn): Mish()
924
- )
925
937
938
+ <details open >
939
+ <summary >Output</summary >
940
+
941
+ ConvBnAct(
942
+ (conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1),
943
+ bias=False)
944
+ (bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
945
+ (act_fn): Mish()
946
+ )
947
+ </details >
926
948
927
949
928
950
929
951
``` python
930
952
931
953
mc.body.l_0.bl_0
932
954
```
955
+ <details >
956
+ <summary >Output</summary >
957
+
933
958
ResBlock(
934
959
(convs): Sequential(
935
960
(conv_0): ConvBnAct(
@@ -955,6 +980,7 @@ mc.body.l_0.bl_0
955
980
)
956
981
(act_fn): Mish()
957
982
)
983
+ </details >
958
984
959
985
960
986
@@ -998,6 +1024,8 @@ That all. Now we have YaResNet constructor
998
1024
mc.name = ' YaResNet'
999
1025
mc.pprint()
1000
1026
```
1027
+ <details open >
1028
+ <summary >Output</summary >
1001
1029
1002
1030
name: YaResNet
1003
1031
in_chans: 3
@@ -1026,6 +1054,7 @@ mc.pprint()
1026
1054
make_body: <function make_body at 0x7f064c7cd750>
1027
1055
make_head: <function make_head at 0x7f064c7cd7e0>
1028
1056
1057
+ </details >
1029
1058
1030
1059
1031
1060
Let see what we have.
@@ -1035,6 +1064,9 @@ Let see what we have.
1035
1064
1036
1065
mc.body.l_1.bl_0
1037
1066
```
1067
+ <details >
1068
+ <summary >Output</summary >
1069
+
1038
1070
YaResBlock(
1039
1071
(reduce): AvgPool2d(kernel_size=2, stride=2, padding=0)
1040
1072
(convs): Sequential(
@@ -1059,5 +1091,5 @@ mc.body.l_1.bl_0
1059
1091
)
1060
1092
(merge): Mish()
1061
1093
)
1062
-
1094
+ </ details >
1063
1095
0 commit comments