moujar commited on
Commit
732926d
·
verified ·
1 Parent(s): 908fb93

Upload folder using huggingface_hub

Browse files
saved_models/APSNet_V2_architecture.txt ADDED
@@ -0,0 +1,166 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Model: APSNet_V2
2
+ Parameters (trainable): 22,600,136
3
+
4
+ APSNetV2(
5
+ (features): Sequential(
6
+ (0): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
7
+ (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
8
+ (2): ReLU(inplace=True)
9
+ (3): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
10
+ (4): Sequential(
11
+ (0): BasicBlock(
12
+ (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
13
+ (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
14
+ (relu): ReLU(inplace=True)
15
+ (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
16
+ (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
17
+ )
18
+ (1): BasicBlock(
19
+ (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
20
+ (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
21
+ (relu): ReLU(inplace=True)
22
+ (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
23
+ (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
24
+ )
25
+ (2): BasicBlock(
26
+ (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
27
+ (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
28
+ (relu): ReLU(inplace=True)
29
+ (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
30
+ (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
31
+ )
32
+ )
33
+ (5): Sequential(
34
+ (0): BasicBlock(
35
+ (conv1): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
36
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
37
+ (relu): ReLU(inplace=True)
38
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
39
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
40
+ (downsample): Sequential(
41
+ (0): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)
42
+ (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
43
+ )
44
+ )
45
+ (1): BasicBlock(
46
+ (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
47
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
48
+ (relu): ReLU(inplace=True)
49
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
50
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
51
+ )
52
+ (2): BasicBlock(
53
+ (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
54
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
55
+ (relu): ReLU(inplace=True)
56
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
57
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
58
+ )
59
+ (3): BasicBlock(
60
+ (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
61
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
62
+ (relu): ReLU(inplace=True)
63
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
64
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
65
+ )
66
+ )
67
+ (6): Sequential(
68
+ (0): BasicBlock(
69
+ (conv1): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
70
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
71
+ (relu): ReLU(inplace=True)
72
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
73
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
74
+ (downsample): Sequential(
75
+ (0): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)
76
+ (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
77
+ )
78
+ )
79
+ (1): BasicBlock(
80
+ (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
81
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
82
+ (relu): ReLU(inplace=True)
83
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
84
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
85
+ )
86
+ (2): BasicBlock(
87
+ (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
88
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
89
+ (relu): ReLU(inplace=True)
90
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
91
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
92
+ )
93
+ (3): BasicBlock(
94
+ (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
95
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
96
+ (relu): ReLU(inplace=True)
97
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
98
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
99
+ )
100
+ (4): BasicBlock(
101
+ (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
102
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
103
+ (relu): ReLU(inplace=True)
104
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
105
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
106
+ )
107
+ (5): BasicBlock(
108
+ (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
109
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
110
+ (relu): ReLU(inplace=True)
111
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
112
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
113
+ )
114
+ )
115
+ (7): Sequential(
116
+ (0): BasicBlock(
117
+ (conv1): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
118
+ (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
119
+ (relu): ReLU(inplace=True)
120
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
121
+ (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
122
+ (downsample): Sequential(
123
+ (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
124
+ (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
125
+ )
126
+ )
127
+ (1): BasicBlock(
128
+ (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
129
+ (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
130
+ (relu): ReLU(inplace=True)
131
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
132
+ (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
133
+ )
134
+ (2): BasicBlock(
135
+ (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
136
+ (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
137
+ (relu): ReLU(inplace=True)
138
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
139
+ (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
140
+ )
141
+ )
142
+ )
143
+ (psa): PyramidSqueezeAttention(
144
+ (pools): ModuleList(
145
+ (0): AdaptiveAvgPool2d(output_size=1)
146
+ (1): AdaptiveAvgPool2d(output_size=2)
147
+ (2): AdaptiveAvgPool2d(output_size=4)
148
+ )
149
+ (convs): ModuleList(
150
+ (0-2): 3 x Sequential(
151
+ (0): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1))
152
+ (1): ReLU(inplace=True)
153
+ (2): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1))
154
+ (3): Sigmoid()
155
+ )
156
+ )
157
+ (fuse): Conv2d(1536, 512, kernel_size=(1, 1), stride=(1, 1))
158
+ )
159
+ (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))
160
+ (fc): Sequential(
161
+ (0): Linear(in_features=512, out_features=256, bias=True)
162
+ (1): ReLU()
163
+ (2): Dropout(p=0.3, inplace=False)
164
+ (3): Linear(in_features=256, out_features=8, bias=True)
165
+ )
166
+ )
saved_models/APSNet_V2_best.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a05a31a976cab56cd0753c42d58031c394d27faa01a0fe161bb9cb9da2cd9462
3
+ size 90549947
saved_models/APSNet_V2_best_.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7ca56890b35e95ac400cbe3fe3f4aa5176dea6e3985c54619cee10268d7af7d3
3
+ size 90546683
saved_models/ConvNeXt_architecture.txt ADDED
@@ -0,0 +1,253 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Model: ConvNeXt
2
+ Parameters (trainable): 27,826,280
3
+
4
+ ConvNeXt(
5
+ (features): Sequential(
6
+ (0): Conv2dNormActivation(
7
+ (0): Conv2d(3, 96, kernel_size=(4, 4), stride=(4, 4))
8
+ (1): LayerNorm2d((96,), eps=1e-06, elementwise_affine=True)
9
+ )
10
+ (1): Sequential(
11
+ (0): CNBlock(
12
+ (block): Sequential(
13
+ (0): Conv2d(96, 96, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=96)
14
+ (1): Permute()
15
+ (2): LayerNorm((96,), eps=1e-06, elementwise_affine=True)
16
+ (3): Linear(in_features=96, out_features=384, bias=True)
17
+ (4): GELU(approximate='none')
18
+ (5): Linear(in_features=384, out_features=96, bias=True)
19
+ (6): Permute()
20
+ )
21
+ (stochastic_depth): StochasticDepth(p=0.0, mode=row)
22
+ )
23
+ (1): CNBlock(
24
+ (block): Sequential(
25
+ (0): Conv2d(96, 96, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=96)
26
+ (1): Permute()
27
+ (2): LayerNorm((96,), eps=1e-06, elementwise_affine=True)
28
+ (3): Linear(in_features=96, out_features=384, bias=True)
29
+ (4): GELU(approximate='none')
30
+ (5): Linear(in_features=384, out_features=96, bias=True)
31
+ (6): Permute()
32
+ )
33
+ (stochastic_depth): StochasticDepth(p=0.0058823529411764705, mode=row)
34
+ )
35
+ (2): CNBlock(
36
+ (block): Sequential(
37
+ (0): Conv2d(96, 96, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=96)
38
+ (1): Permute()
39
+ (2): LayerNorm((96,), eps=1e-06, elementwise_affine=True)
40
+ (3): Linear(in_features=96, out_features=384, bias=True)
41
+ (4): GELU(approximate='none')
42
+ (5): Linear(in_features=384, out_features=96, bias=True)
43
+ (6): Permute()
44
+ )
45
+ (stochastic_depth): StochasticDepth(p=0.011764705882352941, mode=row)
46
+ )
47
+ )
48
+ (2): Sequential(
49
+ (0): LayerNorm2d((96,), eps=1e-06, elementwise_affine=True)
50
+ (1): Conv2d(96, 192, kernel_size=(2, 2), stride=(2, 2))
51
+ )
52
+ (3): Sequential(
53
+ (0): CNBlock(
54
+ (block): Sequential(
55
+ (0): Conv2d(192, 192, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=192)
56
+ (1): Permute()
57
+ (2): LayerNorm((192,), eps=1e-06, elementwise_affine=True)
58
+ (3): Linear(in_features=192, out_features=768, bias=True)
59
+ (4): GELU(approximate='none')
60
+ (5): Linear(in_features=768, out_features=192, bias=True)
61
+ (6): Permute()
62
+ )
63
+ (stochastic_depth): StochasticDepth(p=0.017647058823529415, mode=row)
64
+ )
65
+ (1): CNBlock(
66
+ (block): Sequential(
67
+ (0): Conv2d(192, 192, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=192)
68
+ (1): Permute()
69
+ (2): LayerNorm((192,), eps=1e-06, elementwise_affine=True)
70
+ (3): Linear(in_features=192, out_features=768, bias=True)
71
+ (4): GELU(approximate='none')
72
+ (5): Linear(in_features=768, out_features=192, bias=True)
73
+ (6): Permute()
74
+ )
75
+ (stochastic_depth): StochasticDepth(p=0.023529411764705882, mode=row)
76
+ )
77
+ (2): CNBlock(
78
+ (block): Sequential(
79
+ (0): Conv2d(192, 192, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=192)
80
+ (1): Permute()
81
+ (2): LayerNorm((192,), eps=1e-06, elementwise_affine=True)
82
+ (3): Linear(in_features=192, out_features=768, bias=True)
83
+ (4): GELU(approximate='none')
84
+ (5): Linear(in_features=768, out_features=192, bias=True)
85
+ (6): Permute()
86
+ )
87
+ (stochastic_depth): StochasticDepth(p=0.029411764705882353, mode=row)
88
+ )
89
+ )
90
+ (4): Sequential(
91
+ (0): LayerNorm2d((192,), eps=1e-06, elementwise_affine=True)
92
+ (1): Conv2d(192, 384, kernel_size=(2, 2), stride=(2, 2))
93
+ )
94
+ (5): Sequential(
95
+ (0): CNBlock(
96
+ (block): Sequential(
97
+ (0): Conv2d(384, 384, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=384)
98
+ (1): Permute()
99
+ (2): LayerNorm((384,), eps=1e-06, elementwise_affine=True)
100
+ (3): Linear(in_features=384, out_features=1536, bias=True)
101
+ (4): GELU(approximate='none')
102
+ (5): Linear(in_features=1536, out_features=384, bias=True)
103
+ (6): Permute()
104
+ )
105
+ (stochastic_depth): StochasticDepth(p=0.03529411764705883, mode=row)
106
+ )
107
+ (1): CNBlock(
108
+ (block): Sequential(
109
+ (0): Conv2d(384, 384, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=384)
110
+ (1): Permute()
111
+ (2): LayerNorm((384,), eps=1e-06, elementwise_affine=True)
112
+ (3): Linear(in_features=384, out_features=1536, bias=True)
113
+ (4): GELU(approximate='none')
114
+ (5): Linear(in_features=1536, out_features=384, bias=True)
115
+ (6): Permute()
116
+ )
117
+ (stochastic_depth): StochasticDepth(p=0.0411764705882353, mode=row)
118
+ )
119
+ (2): CNBlock(
120
+ (block): Sequential(
121
+ (0): Conv2d(384, 384, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=384)
122
+ (1): Permute()
123
+ (2): LayerNorm((384,), eps=1e-06, elementwise_affine=True)
124
+ (3): Linear(in_features=384, out_features=1536, bias=True)
125
+ (4): GELU(approximate='none')
126
+ (5): Linear(in_features=1536, out_features=384, bias=True)
127
+ (6): Permute()
128
+ )
129
+ (stochastic_depth): StochasticDepth(p=0.047058823529411764, mode=row)
130
+ )
131
+ (3): CNBlock(
132
+ (block): Sequential(
133
+ (0): Conv2d(384, 384, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=384)
134
+ (1): Permute()
135
+ (2): LayerNorm((384,), eps=1e-06, elementwise_affine=True)
136
+ (3): Linear(in_features=384, out_features=1536, bias=True)
137
+ (4): GELU(approximate='none')
138
+ (5): Linear(in_features=1536, out_features=384, bias=True)
139
+ (6): Permute()
140
+ )
141
+ (stochastic_depth): StochasticDepth(p=0.052941176470588235, mode=row)
142
+ )
143
+ (4): CNBlock(
144
+ (block): Sequential(
145
+ (0): Conv2d(384, 384, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=384)
146
+ (1): Permute()
147
+ (2): LayerNorm((384,), eps=1e-06, elementwise_affine=True)
148
+ (3): Linear(in_features=384, out_features=1536, bias=True)
149
+ (4): GELU(approximate='none')
150
+ (5): Linear(in_features=1536, out_features=384, bias=True)
151
+ (6): Permute()
152
+ )
153
+ (stochastic_depth): StochasticDepth(p=0.058823529411764705, mode=row)
154
+ )
155
+ (5): CNBlock(
156
+ (block): Sequential(
157
+ (0): Conv2d(384, 384, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=384)
158
+ (1): Permute()
159
+ (2): LayerNorm((384,), eps=1e-06, elementwise_affine=True)
160
+ (3): Linear(in_features=384, out_features=1536, bias=True)
161
+ (4): GELU(approximate='none')
162
+ (5): Linear(in_features=1536, out_features=384, bias=True)
163
+ (6): Permute()
164
+ )
165
+ (stochastic_depth): StochasticDepth(p=0.06470588235294118, mode=row)
166
+ )
167
+ (6): CNBlock(
168
+ (block): Sequential(
169
+ (0): Conv2d(384, 384, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=384)
170
+ (1): Permute()
171
+ (2): LayerNorm((384,), eps=1e-06, elementwise_affine=True)
172
+ (3): Linear(in_features=384, out_features=1536, bias=True)
173
+ (4): GELU(approximate='none')
174
+ (5): Linear(in_features=1536, out_features=384, bias=True)
175
+ (6): Permute()
176
+ )
177
+ (stochastic_depth): StochasticDepth(p=0.07058823529411766, mode=row)
178
+ )
179
+ (7): CNBlock(
180
+ (block): Sequential(
181
+ (0): Conv2d(384, 384, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=384)
182
+ (1): Permute()
183
+ (2): LayerNorm((384,), eps=1e-06, elementwise_affine=True)
184
+ (3): Linear(in_features=384, out_features=1536, bias=True)
185
+ (4): GELU(approximate='none')
186
+ (5): Linear(in_features=1536, out_features=384, bias=True)
187
+ (6): Permute()
188
+ )
189
+ (stochastic_depth): StochasticDepth(p=0.07647058823529412, mode=row)
190
+ )
191
+ (8): CNBlock(
192
+ (block): Sequential(
193
+ (0): Conv2d(384, 384, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=384)
194
+ (1): Permute()
195
+ (2): LayerNorm((384,), eps=1e-06, elementwise_affine=True)
196
+ (3): Linear(in_features=384, out_features=1536, bias=True)
197
+ (4): GELU(approximate='none')
198
+ (5): Linear(in_features=1536, out_features=384, bias=True)
199
+ (6): Permute()
200
+ )
201
+ (stochastic_depth): StochasticDepth(p=0.0823529411764706, mode=row)
202
+ )
203
+ )
204
+ (6): Sequential(
205
+ (0): LayerNorm2d((384,), eps=1e-06, elementwise_affine=True)
206
+ (1): Conv2d(384, 768, kernel_size=(2, 2), stride=(2, 2))
207
+ )
208
+ (7): Sequential(
209
+ (0): CNBlock(
210
+ (block): Sequential(
211
+ (0): Conv2d(768, 768, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=768)
212
+ (1): Permute()
213
+ (2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
214
+ (3): Linear(in_features=768, out_features=3072, bias=True)
215
+ (4): GELU(approximate='none')
216
+ (5): Linear(in_features=3072, out_features=768, bias=True)
217
+ (6): Permute()
218
+ )
219
+ (stochastic_depth): StochasticDepth(p=0.08823529411764706, mode=row)
220
+ )
221
+ (1): CNBlock(
222
+ (block): Sequential(
223
+ (0): Conv2d(768, 768, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=768)
224
+ (1): Permute()
225
+ (2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
226
+ (3): Linear(in_features=768, out_features=3072, bias=True)
227
+ (4): GELU(approximate='none')
228
+ (5): Linear(in_features=3072, out_features=768, bias=True)
229
+ (6): Permute()
230
+ )
231
+ (stochastic_depth): StochasticDepth(p=0.09411764705882353, mode=row)
232
+ )
233
+ (2): CNBlock(
234
+ (block): Sequential(
235
+ (0): Conv2d(768, 768, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), groups=768)
236
+ (1): Permute()
237
+ (2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
238
+ (3): Linear(in_features=768, out_features=3072, bias=True)
239
+ (4): GELU(approximate='none')
240
+ (5): Linear(in_features=3072, out_features=768, bias=True)
241
+ (6): Permute()
242
+ )
243
+ (stochastic_depth): StochasticDepth(p=0.1, mode=row)
244
+ )
245
+ )
246
+ )
247
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
248
+ (classifier): Sequential(
249
+ (0): LayerNorm2d((768,), eps=1e-06, elementwise_affine=True)
250
+ (1): Flatten(start_dim=1, end_dim=-1)
251
+ (2): Linear(in_features=768, out_features=8, bias=True)
252
+ )
253
+ )
saved_models/ConvNeXt_best.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:46883a844677aa3b86037fdf2237d168abd790b5835b1709a70913e83b40059f
3
+ size 111372923
saved_models/ConvNeXt_best_.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cc7e9ef8ddc4bd300ecb8153181e26d04e5b7611b3cbb482f7b07686b6612f49
3
+ size 111370363
saved_models/EfficientNetV2_architecture.txt ADDED
@@ -0,0 +1,946 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Model: EfficientNetV2
2
+ Parameters (trainable): 20,187,736
3
+
4
+ EfficientNet(
5
+ (features): Sequential(
6
+ (0): Conv2dNormActivation(
7
+ (0): Conv2d(3, 24, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
8
+ (1): BatchNorm2d(24, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
9
+ (2): SiLU(inplace=True)
10
+ )
11
+ (1): Sequential(
12
+ (0): FusedMBConv(
13
+ (block): Sequential(
14
+ (0): Conv2dNormActivation(
15
+ (0): Conv2d(24, 24, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
16
+ (1): BatchNorm2d(24, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
17
+ (2): SiLU(inplace=True)
18
+ )
19
+ )
20
+ (stochastic_depth): StochasticDepth(p=0.0, mode=row)
21
+ )
22
+ (1): FusedMBConv(
23
+ (block): Sequential(
24
+ (0): Conv2dNormActivation(
25
+ (0): Conv2d(24, 24, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
26
+ (1): BatchNorm2d(24, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
27
+ (2): SiLU(inplace=True)
28
+ )
29
+ )
30
+ (stochastic_depth): StochasticDepth(p=0.005, mode=row)
31
+ )
32
+ )
33
+ (2): Sequential(
34
+ (0): FusedMBConv(
35
+ (block): Sequential(
36
+ (0): Conv2dNormActivation(
37
+ (0): Conv2d(24, 96, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
38
+ (1): BatchNorm2d(96, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
39
+ (2): SiLU(inplace=True)
40
+ )
41
+ (1): Conv2dNormActivation(
42
+ (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
43
+ (1): BatchNorm2d(48, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
44
+ )
45
+ )
46
+ (stochastic_depth): StochasticDepth(p=0.01, mode=row)
47
+ )
48
+ (1): FusedMBConv(
49
+ (block): Sequential(
50
+ (0): Conv2dNormActivation(
51
+ (0): Conv2d(48, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
52
+ (1): BatchNorm2d(192, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
53
+ (2): SiLU(inplace=True)
54
+ )
55
+ (1): Conv2dNormActivation(
56
+ (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
57
+ (1): BatchNorm2d(48, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
58
+ )
59
+ )
60
+ (stochastic_depth): StochasticDepth(p=0.015000000000000003, mode=row)
61
+ )
62
+ (2): FusedMBConv(
63
+ (block): Sequential(
64
+ (0): Conv2dNormActivation(
65
+ (0): Conv2d(48, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
66
+ (1): BatchNorm2d(192, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
67
+ (2): SiLU(inplace=True)
68
+ )
69
+ (1): Conv2dNormActivation(
70
+ (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
71
+ (1): BatchNorm2d(48, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
72
+ )
73
+ )
74
+ (stochastic_depth): StochasticDepth(p=0.02, mode=row)
75
+ )
76
+ (3): FusedMBConv(
77
+ (block): Sequential(
78
+ (0): Conv2dNormActivation(
79
+ (0): Conv2d(48, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
80
+ (1): BatchNorm2d(192, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
81
+ (2): SiLU(inplace=True)
82
+ )
83
+ (1): Conv2dNormActivation(
84
+ (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
85
+ (1): BatchNorm2d(48, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
86
+ )
87
+ )
88
+ (stochastic_depth): StochasticDepth(p=0.025, mode=row)
89
+ )
90
+ )
91
+ (3): Sequential(
92
+ (0): FusedMBConv(
93
+ (block): Sequential(
94
+ (0): Conv2dNormActivation(
95
+ (0): Conv2d(48, 192, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
96
+ (1): BatchNorm2d(192, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
97
+ (2): SiLU(inplace=True)
98
+ )
99
+ (1): Conv2dNormActivation(
100
+ (0): Conv2d(192, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
101
+ (1): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
102
+ )
103
+ )
104
+ (stochastic_depth): StochasticDepth(p=0.030000000000000006, mode=row)
105
+ )
106
+ (1): FusedMBConv(
107
+ (block): Sequential(
108
+ (0): Conv2dNormActivation(
109
+ (0): Conv2d(64, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
110
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
111
+ (2): SiLU(inplace=True)
112
+ )
113
+ (1): Conv2dNormActivation(
114
+ (0): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
115
+ (1): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
116
+ )
117
+ )
118
+ (stochastic_depth): StochasticDepth(p=0.035, mode=row)
119
+ )
120
+ (2): FusedMBConv(
121
+ (block): Sequential(
122
+ (0): Conv2dNormActivation(
123
+ (0): Conv2d(64, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
124
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
125
+ (2): SiLU(inplace=True)
126
+ )
127
+ (1): Conv2dNormActivation(
128
+ (0): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
129
+ (1): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
130
+ )
131
+ )
132
+ (stochastic_depth): StochasticDepth(p=0.04, mode=row)
133
+ )
134
+ (3): FusedMBConv(
135
+ (block): Sequential(
136
+ (0): Conv2dNormActivation(
137
+ (0): Conv2d(64, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
138
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
139
+ (2): SiLU(inplace=True)
140
+ )
141
+ (1): Conv2dNormActivation(
142
+ (0): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
143
+ (1): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
144
+ )
145
+ )
146
+ (stochastic_depth): StochasticDepth(p=0.045, mode=row)
147
+ )
148
+ )
149
+ (4): Sequential(
150
+ (0): MBConv(
151
+ (block): Sequential(
152
+ (0): Conv2dNormActivation(
153
+ (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
154
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
155
+ (2): SiLU(inplace=True)
156
+ )
157
+ (1): Conv2dNormActivation(
158
+ (0): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=256, bias=False)
159
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
160
+ (2): SiLU(inplace=True)
161
+ )
162
+ (2): SqueezeExcitation(
163
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
164
+ (fc1): Conv2d(256, 16, kernel_size=(1, 1), stride=(1, 1))
165
+ (fc2): Conv2d(16, 256, kernel_size=(1, 1), stride=(1, 1))
166
+ (activation): SiLU(inplace=True)
167
+ (scale_activation): Sigmoid()
168
+ )
169
+ (3): Conv2dNormActivation(
170
+ (0): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
171
+ (1): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
172
+ )
173
+ )
174
+ (stochastic_depth): StochasticDepth(p=0.05, mode=row)
175
+ )
176
+ (1): MBConv(
177
+ (block): Sequential(
178
+ (0): Conv2dNormActivation(
179
+ (0): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
180
+ (1): BatchNorm2d(512, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
181
+ (2): SiLU(inplace=True)
182
+ )
183
+ (1): Conv2dNormActivation(
184
+ (0): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=512, bias=False)
185
+ (1): BatchNorm2d(512, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
186
+ (2): SiLU(inplace=True)
187
+ )
188
+ (2): SqueezeExcitation(
189
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
190
+ (fc1): Conv2d(512, 32, kernel_size=(1, 1), stride=(1, 1))
191
+ (fc2): Conv2d(32, 512, kernel_size=(1, 1), stride=(1, 1))
192
+ (activation): SiLU(inplace=True)
193
+ (scale_activation): Sigmoid()
194
+ )
195
+ (3): Conv2dNormActivation(
196
+ (0): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
197
+ (1): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
198
+ )
199
+ )
200
+ (stochastic_depth): StochasticDepth(p=0.05500000000000001, mode=row)
201
+ )
202
+ (2): MBConv(
203
+ (block): Sequential(
204
+ (0): Conv2dNormActivation(
205
+ (0): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
206
+ (1): BatchNorm2d(512, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
207
+ (2): SiLU(inplace=True)
208
+ )
209
+ (1): Conv2dNormActivation(
210
+ (0): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=512, bias=False)
211
+ (1): BatchNorm2d(512, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
212
+ (2): SiLU(inplace=True)
213
+ )
214
+ (2): SqueezeExcitation(
215
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
216
+ (fc1): Conv2d(512, 32, kernel_size=(1, 1), stride=(1, 1))
217
+ (fc2): Conv2d(32, 512, kernel_size=(1, 1), stride=(1, 1))
218
+ (activation): SiLU(inplace=True)
219
+ (scale_activation): Sigmoid()
220
+ )
221
+ (3): Conv2dNormActivation(
222
+ (0): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
223
+ (1): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
224
+ )
225
+ )
226
+ (stochastic_depth): StochasticDepth(p=0.06000000000000001, mode=row)
227
+ )
228
+ (3): MBConv(
229
+ (block): Sequential(
230
+ (0): Conv2dNormActivation(
231
+ (0): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
232
+ (1): BatchNorm2d(512, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
233
+ (2): SiLU(inplace=True)
234
+ )
235
+ (1): Conv2dNormActivation(
236
+ (0): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=512, bias=False)
237
+ (1): BatchNorm2d(512, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
238
+ (2): SiLU(inplace=True)
239
+ )
240
+ (2): SqueezeExcitation(
241
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
242
+ (fc1): Conv2d(512, 32, kernel_size=(1, 1), stride=(1, 1))
243
+ (fc2): Conv2d(32, 512, kernel_size=(1, 1), stride=(1, 1))
244
+ (activation): SiLU(inplace=True)
245
+ (scale_activation): Sigmoid()
246
+ )
247
+ (3): Conv2dNormActivation(
248
+ (0): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
249
+ (1): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
250
+ )
251
+ )
252
+ (stochastic_depth): StochasticDepth(p=0.065, mode=row)
253
+ )
254
+ (4): MBConv(
255
+ (block): Sequential(
256
+ (0): Conv2dNormActivation(
257
+ (0): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
258
+ (1): BatchNorm2d(512, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
259
+ (2): SiLU(inplace=True)
260
+ )
261
+ (1): Conv2dNormActivation(
262
+ (0): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=512, bias=False)
263
+ (1): BatchNorm2d(512, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
264
+ (2): SiLU(inplace=True)
265
+ )
266
+ (2): SqueezeExcitation(
267
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
268
+ (fc1): Conv2d(512, 32, kernel_size=(1, 1), stride=(1, 1))
269
+ (fc2): Conv2d(32, 512, kernel_size=(1, 1), stride=(1, 1))
270
+ (activation): SiLU(inplace=True)
271
+ (scale_activation): Sigmoid()
272
+ )
273
+ (3): Conv2dNormActivation(
274
+ (0): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
275
+ (1): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
276
+ )
277
+ )
278
+ (stochastic_depth): StochasticDepth(p=0.07, mode=row)
279
+ )
280
+ (5): MBConv(
281
+ (block): Sequential(
282
+ (0): Conv2dNormActivation(
283
+ (0): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
284
+ (1): BatchNorm2d(512, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
285
+ (2): SiLU(inplace=True)
286
+ )
287
+ (1): Conv2dNormActivation(
288
+ (0): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=512, bias=False)
289
+ (1): BatchNorm2d(512, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
290
+ (2): SiLU(inplace=True)
291
+ )
292
+ (2): SqueezeExcitation(
293
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
294
+ (fc1): Conv2d(512, 32, kernel_size=(1, 1), stride=(1, 1))
295
+ (fc2): Conv2d(32, 512, kernel_size=(1, 1), stride=(1, 1))
296
+ (activation): SiLU(inplace=True)
297
+ (scale_activation): Sigmoid()
298
+ )
299
+ (3): Conv2dNormActivation(
300
+ (0): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
301
+ (1): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
302
+ )
303
+ )
304
+ (stochastic_depth): StochasticDepth(p=0.075, mode=row)
305
+ )
306
+ )
307
+ (5): Sequential(
308
+ (0): MBConv(
309
+ (block): Sequential(
310
+ (0): Conv2dNormActivation(
311
+ (0): Conv2d(128, 768, kernel_size=(1, 1), stride=(1, 1), bias=False)
312
+ (1): BatchNorm2d(768, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
313
+ (2): SiLU(inplace=True)
314
+ )
315
+ (1): Conv2dNormActivation(
316
+ (0): Conv2d(768, 768, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=768, bias=False)
317
+ (1): BatchNorm2d(768, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
318
+ (2): SiLU(inplace=True)
319
+ )
320
+ (2): SqueezeExcitation(
321
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
322
+ (fc1): Conv2d(768, 32, kernel_size=(1, 1), stride=(1, 1))
323
+ (fc2): Conv2d(32, 768, kernel_size=(1, 1), stride=(1, 1))
324
+ (activation): SiLU(inplace=True)
325
+ (scale_activation): Sigmoid()
326
+ )
327
+ (3): Conv2dNormActivation(
328
+ (0): Conv2d(768, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
329
+ (1): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
330
+ )
331
+ )
332
+ (stochastic_depth): StochasticDepth(p=0.08, mode=row)
333
+ )
334
+ (1): MBConv(
335
+ (block): Sequential(
336
+ (0): Conv2dNormActivation(
337
+ (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
338
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
339
+ (2): SiLU(inplace=True)
340
+ )
341
+ (1): Conv2dNormActivation(
342
+ (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
343
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
344
+ (2): SiLU(inplace=True)
345
+ )
346
+ (2): SqueezeExcitation(
347
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
348
+ (fc1): Conv2d(960, 40, kernel_size=(1, 1), stride=(1, 1))
349
+ (fc2): Conv2d(40, 960, kernel_size=(1, 1), stride=(1, 1))
350
+ (activation): SiLU(inplace=True)
351
+ (scale_activation): Sigmoid()
352
+ )
353
+ (3): Conv2dNormActivation(
354
+ (0): Conv2d(960, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
355
+ (1): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
356
+ )
357
+ )
358
+ (stochastic_depth): StochasticDepth(p=0.085, mode=row)
359
+ )
360
+ (2): MBConv(
361
+ (block): Sequential(
362
+ (0): Conv2dNormActivation(
363
+ (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
364
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
365
+ (2): SiLU(inplace=True)
366
+ )
367
+ (1): Conv2dNormActivation(
368
+ (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
369
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
370
+ (2): SiLU(inplace=True)
371
+ )
372
+ (2): SqueezeExcitation(
373
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
374
+ (fc1): Conv2d(960, 40, kernel_size=(1, 1), stride=(1, 1))
375
+ (fc2): Conv2d(40, 960, kernel_size=(1, 1), stride=(1, 1))
376
+ (activation): SiLU(inplace=True)
377
+ (scale_activation): Sigmoid()
378
+ )
379
+ (3): Conv2dNormActivation(
380
+ (0): Conv2d(960, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
381
+ (1): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
382
+ )
383
+ )
384
+ (stochastic_depth): StochasticDepth(p=0.09, mode=row)
385
+ )
386
+ (3): MBConv(
387
+ (block): Sequential(
388
+ (0): Conv2dNormActivation(
389
+ (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
390
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
391
+ (2): SiLU(inplace=True)
392
+ )
393
+ (1): Conv2dNormActivation(
394
+ (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
395
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
396
+ (2): SiLU(inplace=True)
397
+ )
398
+ (2): SqueezeExcitation(
399
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
400
+ (fc1): Conv2d(960, 40, kernel_size=(1, 1), stride=(1, 1))
401
+ (fc2): Conv2d(40, 960, kernel_size=(1, 1), stride=(1, 1))
402
+ (activation): SiLU(inplace=True)
403
+ (scale_activation): Sigmoid()
404
+ )
405
+ (3): Conv2dNormActivation(
406
+ (0): Conv2d(960, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
407
+ (1): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
408
+ )
409
+ )
410
+ (stochastic_depth): StochasticDepth(p=0.095, mode=row)
411
+ )
412
+ (4): MBConv(
413
+ (block): Sequential(
414
+ (0): Conv2dNormActivation(
415
+ (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
416
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
417
+ (2): SiLU(inplace=True)
418
+ )
419
+ (1): Conv2dNormActivation(
420
+ (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
421
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
422
+ (2): SiLU(inplace=True)
423
+ )
424
+ (2): SqueezeExcitation(
425
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
426
+ (fc1): Conv2d(960, 40, kernel_size=(1, 1), stride=(1, 1))
427
+ (fc2): Conv2d(40, 960, kernel_size=(1, 1), stride=(1, 1))
428
+ (activation): SiLU(inplace=True)
429
+ (scale_activation): Sigmoid()
430
+ )
431
+ (3): Conv2dNormActivation(
432
+ (0): Conv2d(960, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
433
+ (1): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
434
+ )
435
+ )
436
+ (stochastic_depth): StochasticDepth(p=0.1, mode=row)
437
+ )
438
+ (5): MBConv(
439
+ (block): Sequential(
440
+ (0): Conv2dNormActivation(
441
+ (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
442
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
443
+ (2): SiLU(inplace=True)
444
+ )
445
+ (1): Conv2dNormActivation(
446
+ (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
447
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
448
+ (2): SiLU(inplace=True)
449
+ )
450
+ (2): SqueezeExcitation(
451
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
452
+ (fc1): Conv2d(960, 40, kernel_size=(1, 1), stride=(1, 1))
453
+ (fc2): Conv2d(40, 960, kernel_size=(1, 1), stride=(1, 1))
454
+ (activation): SiLU(inplace=True)
455
+ (scale_activation): Sigmoid()
456
+ )
457
+ (3): Conv2dNormActivation(
458
+ (0): Conv2d(960, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
459
+ (1): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
460
+ )
461
+ )
462
+ (stochastic_depth): StochasticDepth(p=0.10500000000000001, mode=row)
463
+ )
464
+ (6): MBConv(
465
+ (block): Sequential(
466
+ (0): Conv2dNormActivation(
467
+ (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
468
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
469
+ (2): SiLU(inplace=True)
470
+ )
471
+ (1): Conv2dNormActivation(
472
+ (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
473
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
474
+ (2): SiLU(inplace=True)
475
+ )
476
+ (2): SqueezeExcitation(
477
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
478
+ (fc1): Conv2d(960, 40, kernel_size=(1, 1), stride=(1, 1))
479
+ (fc2): Conv2d(40, 960, kernel_size=(1, 1), stride=(1, 1))
480
+ (activation): SiLU(inplace=True)
481
+ (scale_activation): Sigmoid()
482
+ )
483
+ (3): Conv2dNormActivation(
484
+ (0): Conv2d(960, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
485
+ (1): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
486
+ )
487
+ )
488
+ (stochastic_depth): StochasticDepth(p=0.11000000000000001, mode=row)
489
+ )
490
+ (7): MBConv(
491
+ (block): Sequential(
492
+ (0): Conv2dNormActivation(
493
+ (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
494
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
495
+ (2): SiLU(inplace=True)
496
+ )
497
+ (1): Conv2dNormActivation(
498
+ (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
499
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
500
+ (2): SiLU(inplace=True)
501
+ )
502
+ (2): SqueezeExcitation(
503
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
504
+ (fc1): Conv2d(960, 40, kernel_size=(1, 1), stride=(1, 1))
505
+ (fc2): Conv2d(40, 960, kernel_size=(1, 1), stride=(1, 1))
506
+ (activation): SiLU(inplace=True)
507
+ (scale_activation): Sigmoid()
508
+ )
509
+ (3): Conv2dNormActivation(
510
+ (0): Conv2d(960, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
511
+ (1): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
512
+ )
513
+ )
514
+ (stochastic_depth): StochasticDepth(p=0.11500000000000002, mode=row)
515
+ )
516
+ (8): MBConv(
517
+ (block): Sequential(
518
+ (0): Conv2dNormActivation(
519
+ (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
520
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
521
+ (2): SiLU(inplace=True)
522
+ )
523
+ (1): Conv2dNormActivation(
524
+ (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
525
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
526
+ (2): SiLU(inplace=True)
527
+ )
528
+ (2): SqueezeExcitation(
529
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
530
+ (fc1): Conv2d(960, 40, kernel_size=(1, 1), stride=(1, 1))
531
+ (fc2): Conv2d(40, 960, kernel_size=(1, 1), stride=(1, 1))
532
+ (activation): SiLU(inplace=True)
533
+ (scale_activation): Sigmoid()
534
+ )
535
+ (3): Conv2dNormActivation(
536
+ (0): Conv2d(960, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
537
+ (1): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
538
+ )
539
+ )
540
+ (stochastic_depth): StochasticDepth(p=0.12000000000000002, mode=row)
541
+ )
542
+ )
543
+ (6): Sequential(
544
+ (0): MBConv(
545
+ (block): Sequential(
546
+ (0): Conv2dNormActivation(
547
+ (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
548
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
549
+ (2): SiLU(inplace=True)
550
+ )
551
+ (1): Conv2dNormActivation(
552
+ (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=960, bias=False)
553
+ (1): BatchNorm2d(960, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
554
+ (2): SiLU(inplace=True)
555
+ )
556
+ (2): SqueezeExcitation(
557
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
558
+ (fc1): Conv2d(960, 40, kernel_size=(1, 1), stride=(1, 1))
559
+ (fc2): Conv2d(40, 960, kernel_size=(1, 1), stride=(1, 1))
560
+ (activation): SiLU(inplace=True)
561
+ (scale_activation): Sigmoid()
562
+ )
563
+ (3): Conv2dNormActivation(
564
+ (0): Conv2d(960, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
565
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
566
+ )
567
+ )
568
+ (stochastic_depth): StochasticDepth(p=0.125, mode=row)
569
+ )
570
+ (1): MBConv(
571
+ (block): Sequential(
572
+ (0): Conv2dNormActivation(
573
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
574
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
575
+ (2): SiLU(inplace=True)
576
+ )
577
+ (1): Conv2dNormActivation(
578
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
579
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
580
+ (2): SiLU(inplace=True)
581
+ )
582
+ (2): SqueezeExcitation(
583
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
584
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
585
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
586
+ (activation): SiLU(inplace=True)
587
+ (scale_activation): Sigmoid()
588
+ )
589
+ (3): Conv2dNormActivation(
590
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
591
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
592
+ )
593
+ )
594
+ (stochastic_depth): StochasticDepth(p=0.13, mode=row)
595
+ )
596
+ (2): MBConv(
597
+ (block): Sequential(
598
+ (0): Conv2dNormActivation(
599
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
600
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
601
+ (2): SiLU(inplace=True)
602
+ )
603
+ (1): Conv2dNormActivation(
604
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
605
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
606
+ (2): SiLU(inplace=True)
607
+ )
608
+ (2): SqueezeExcitation(
609
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
610
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
611
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
612
+ (activation): SiLU(inplace=True)
613
+ (scale_activation): Sigmoid()
614
+ )
615
+ (3): Conv2dNormActivation(
616
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
617
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
618
+ )
619
+ )
620
+ (stochastic_depth): StochasticDepth(p=0.135, mode=row)
621
+ )
622
+ (3): MBConv(
623
+ (block): Sequential(
624
+ (0): Conv2dNormActivation(
625
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
626
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
627
+ (2): SiLU(inplace=True)
628
+ )
629
+ (1): Conv2dNormActivation(
630
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
631
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
632
+ (2): SiLU(inplace=True)
633
+ )
634
+ (2): SqueezeExcitation(
635
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
636
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
637
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
638
+ (activation): SiLU(inplace=True)
639
+ (scale_activation): Sigmoid()
640
+ )
641
+ (3): Conv2dNormActivation(
642
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
643
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
644
+ )
645
+ )
646
+ (stochastic_depth): StochasticDepth(p=0.14, mode=row)
647
+ )
648
+ (4): MBConv(
649
+ (block): Sequential(
650
+ (0): Conv2dNormActivation(
651
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
652
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
653
+ (2): SiLU(inplace=True)
654
+ )
655
+ (1): Conv2dNormActivation(
656
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
657
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
658
+ (2): SiLU(inplace=True)
659
+ )
660
+ (2): SqueezeExcitation(
661
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
662
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
663
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
664
+ (activation): SiLU(inplace=True)
665
+ (scale_activation): Sigmoid()
666
+ )
667
+ (3): Conv2dNormActivation(
668
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
669
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
670
+ )
671
+ )
672
+ (stochastic_depth): StochasticDepth(p=0.14500000000000002, mode=row)
673
+ )
674
+ (5): MBConv(
675
+ (block): Sequential(
676
+ (0): Conv2dNormActivation(
677
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
678
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
679
+ (2): SiLU(inplace=True)
680
+ )
681
+ (1): Conv2dNormActivation(
682
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
683
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
684
+ (2): SiLU(inplace=True)
685
+ )
686
+ (2): SqueezeExcitation(
687
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
688
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
689
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
690
+ (activation): SiLU(inplace=True)
691
+ (scale_activation): Sigmoid()
692
+ )
693
+ (3): Conv2dNormActivation(
694
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
695
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
696
+ )
697
+ )
698
+ (stochastic_depth): StochasticDepth(p=0.15, mode=row)
699
+ )
700
+ (6): MBConv(
701
+ (block): Sequential(
702
+ (0): Conv2dNormActivation(
703
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
704
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
705
+ (2): SiLU(inplace=True)
706
+ )
707
+ (1): Conv2dNormActivation(
708
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
709
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
710
+ (2): SiLU(inplace=True)
711
+ )
712
+ (2): SqueezeExcitation(
713
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
714
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
715
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
716
+ (activation): SiLU(inplace=True)
717
+ (scale_activation): Sigmoid()
718
+ )
719
+ (3): Conv2dNormActivation(
720
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
721
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
722
+ )
723
+ )
724
+ (stochastic_depth): StochasticDepth(p=0.155, mode=row)
725
+ )
726
+ (7): MBConv(
727
+ (block): Sequential(
728
+ (0): Conv2dNormActivation(
729
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
730
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
731
+ (2): SiLU(inplace=True)
732
+ )
733
+ (1): Conv2dNormActivation(
734
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
735
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
736
+ (2): SiLU(inplace=True)
737
+ )
738
+ (2): SqueezeExcitation(
739
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
740
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
741
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
742
+ (activation): SiLU(inplace=True)
743
+ (scale_activation): Sigmoid()
744
+ )
745
+ (3): Conv2dNormActivation(
746
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
747
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
748
+ )
749
+ )
750
+ (stochastic_depth): StochasticDepth(p=0.16, mode=row)
751
+ )
752
+ (8): MBConv(
753
+ (block): Sequential(
754
+ (0): Conv2dNormActivation(
755
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
756
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
757
+ (2): SiLU(inplace=True)
758
+ )
759
+ (1): Conv2dNormActivation(
760
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
761
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
762
+ (2): SiLU(inplace=True)
763
+ )
764
+ (2): SqueezeExcitation(
765
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
766
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
767
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
768
+ (activation): SiLU(inplace=True)
769
+ (scale_activation): Sigmoid()
770
+ )
771
+ (3): Conv2dNormActivation(
772
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
773
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
774
+ )
775
+ )
776
+ (stochastic_depth): StochasticDepth(p=0.165, mode=row)
777
+ )
778
+ (9): MBConv(
779
+ (block): Sequential(
780
+ (0): Conv2dNormActivation(
781
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
782
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
783
+ (2): SiLU(inplace=True)
784
+ )
785
+ (1): Conv2dNormActivation(
786
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
787
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
788
+ (2): SiLU(inplace=True)
789
+ )
790
+ (2): SqueezeExcitation(
791
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
792
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
793
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
794
+ (activation): SiLU(inplace=True)
795
+ (scale_activation): Sigmoid()
796
+ )
797
+ (3): Conv2dNormActivation(
798
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
799
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
800
+ )
801
+ )
802
+ (stochastic_depth): StochasticDepth(p=0.17, mode=row)
803
+ )
804
+ (10): MBConv(
805
+ (block): Sequential(
806
+ (0): Conv2dNormActivation(
807
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
808
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
809
+ (2): SiLU(inplace=True)
810
+ )
811
+ (1): Conv2dNormActivation(
812
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
813
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
814
+ (2): SiLU(inplace=True)
815
+ )
816
+ (2): SqueezeExcitation(
817
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
818
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
819
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
820
+ (activation): SiLU(inplace=True)
821
+ (scale_activation): Sigmoid()
822
+ )
823
+ (3): Conv2dNormActivation(
824
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
825
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
826
+ )
827
+ )
828
+ (stochastic_depth): StochasticDepth(p=0.175, mode=row)
829
+ )
830
+ (11): MBConv(
831
+ (block): Sequential(
832
+ (0): Conv2dNormActivation(
833
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
834
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
835
+ (2): SiLU(inplace=True)
836
+ )
837
+ (1): Conv2dNormActivation(
838
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
839
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
840
+ (2): SiLU(inplace=True)
841
+ )
842
+ (2): SqueezeExcitation(
843
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
844
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
845
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
846
+ (activation): SiLU(inplace=True)
847
+ (scale_activation): Sigmoid()
848
+ )
849
+ (3): Conv2dNormActivation(
850
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
851
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
852
+ )
853
+ )
854
+ (stochastic_depth): StochasticDepth(p=0.18, mode=row)
855
+ )
856
+ (12): MBConv(
857
+ (block): Sequential(
858
+ (0): Conv2dNormActivation(
859
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
860
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
861
+ (2): SiLU(inplace=True)
862
+ )
863
+ (1): Conv2dNormActivation(
864
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
865
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
866
+ (2): SiLU(inplace=True)
867
+ )
868
+ (2): SqueezeExcitation(
869
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
870
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
871
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
872
+ (activation): SiLU(inplace=True)
873
+ (scale_activation): Sigmoid()
874
+ )
875
+ (3): Conv2dNormActivation(
876
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
877
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
878
+ )
879
+ )
880
+ (stochastic_depth): StochasticDepth(p=0.185, mode=row)
881
+ )
882
+ (13): MBConv(
883
+ (block): Sequential(
884
+ (0): Conv2dNormActivation(
885
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
886
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
887
+ (2): SiLU(inplace=True)
888
+ )
889
+ (1): Conv2dNormActivation(
890
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
891
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
892
+ (2): SiLU(inplace=True)
893
+ )
894
+ (2): SqueezeExcitation(
895
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
896
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
897
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
898
+ (activation): SiLU(inplace=True)
899
+ (scale_activation): Sigmoid()
900
+ )
901
+ (3): Conv2dNormActivation(
902
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
903
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
904
+ )
905
+ )
906
+ (stochastic_depth): StochasticDepth(p=0.19, mode=row)
907
+ )
908
+ (14): MBConv(
909
+ (block): Sequential(
910
+ (0): Conv2dNormActivation(
911
+ (0): Conv2d(256, 1536, kernel_size=(1, 1), stride=(1, 1), bias=False)
912
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
913
+ (2): SiLU(inplace=True)
914
+ )
915
+ (1): Conv2dNormActivation(
916
+ (0): Conv2d(1536, 1536, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=1536, bias=False)
917
+ (1): BatchNorm2d(1536, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
918
+ (2): SiLU(inplace=True)
919
+ )
920
+ (2): SqueezeExcitation(
921
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
922
+ (fc1): Conv2d(1536, 64, kernel_size=(1, 1), stride=(1, 1))
923
+ (fc2): Conv2d(64, 1536, kernel_size=(1, 1), stride=(1, 1))
924
+ (activation): SiLU(inplace=True)
925
+ (scale_activation): Sigmoid()
926
+ )
927
+ (3): Conv2dNormActivation(
928
+ (0): Conv2d(1536, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
929
+ (1): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
930
+ )
931
+ )
932
+ (stochastic_depth): StochasticDepth(p=0.195, mode=row)
933
+ )
934
+ )
935
+ (7): Conv2dNormActivation(
936
+ (0): Conv2d(256, 1280, kernel_size=(1, 1), stride=(1, 1), bias=False)
937
+ (1): BatchNorm2d(1280, eps=0.001, momentum=0.1, affine=True, track_running_stats=True)
938
+ (2): SiLU(inplace=True)
939
+ )
940
+ )
941
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
942
+ (classifier): Sequential(
943
+ (0): Dropout(p=0.2, inplace=True)
944
+ (1): Linear(in_features=1280, out_features=8, bias=True)
945
+ )
946
+ )
saved_models/EfficientNetV2_best.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:db799c1546dd81611c542714ee2e01695ac2ec353da39b729428563ec2caf894
3
+ size 81659795
saved_models/EfficientNetV2_best_.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6bed3e7cf591f4767aea10865ecb201fa2bf11e0cb727551d0881efc594fc165
3
+ size 81648851
saved_models/ResNet_Spectral_architecture.txt ADDED
@@ -0,0 +1,371 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Model: ResNet_Spectral
2
+ Parameters (trainable): 27,134,512
3
+
4
+ ResNetSpectral(
5
+ (backbone): ResNet(
6
+ (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
7
+ (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
8
+ (relu): ReLU(inplace=True)
9
+ (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
10
+ (layer1): Sequential(
11
+ (0): Bottleneck(
12
+ (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
13
+ (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
14
+ (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
15
+ (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
16
+ (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
17
+ (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
18
+ (relu): ReLU(inplace=True)
19
+ (downsample): Sequential(
20
+ (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
21
+ (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
22
+ )
23
+ )
24
+ (1): Bottleneck(
25
+ (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
26
+ (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
27
+ (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
28
+ (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
29
+ (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
30
+ (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
31
+ (relu): ReLU(inplace=True)
32
+ )
33
+ (2): Bottleneck(
34
+ (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
35
+ (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
36
+ (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
37
+ (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
38
+ (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
39
+ (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
40
+ (relu): ReLU(inplace=True)
41
+ )
42
+ )
43
+ (layer2): Sequential(
44
+ (0): Bottleneck(
45
+ (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
46
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
47
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
48
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
49
+ (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
50
+ (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
51
+ (relu): ReLU(inplace=True)
52
+ (downsample): Sequential(
53
+ (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
54
+ (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
55
+ )
56
+ )
57
+ (1): Bottleneck(
58
+ (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
59
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
60
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
61
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
62
+ (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
63
+ (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
64
+ (relu): ReLU(inplace=True)
65
+ )
66
+ (2): Bottleneck(
67
+ (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
68
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
69
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
70
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
71
+ (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
72
+ (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
73
+ (relu): ReLU(inplace=True)
74
+ )
75
+ (3): Bottleneck(
76
+ (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
77
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
78
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
79
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
80
+ (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
81
+ (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
82
+ (relu): ReLU(inplace=True)
83
+ )
84
+ )
85
+ (layer3): Sequential(
86
+ (0): Bottleneck(
87
+ (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
88
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
89
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
90
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
91
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
92
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
93
+ (relu): ReLU(inplace=True)
94
+ (downsample): Sequential(
95
+ (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)
96
+ (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
97
+ )
98
+ )
99
+ (1): Bottleneck(
100
+ (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
101
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
102
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
103
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
104
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
105
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
106
+ (relu): ReLU(inplace=True)
107
+ )
108
+ (2): Bottleneck(
109
+ (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
110
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
111
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
112
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
113
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
114
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
115
+ (relu): ReLU(inplace=True)
116
+ )
117
+ (3): Bottleneck(
118
+ (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
119
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
120
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
121
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
122
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
123
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
124
+ (relu): ReLU(inplace=True)
125
+ )
126
+ (4): Bottleneck(
127
+ (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
128
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
129
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
130
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
131
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
132
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
133
+ (relu): ReLU(inplace=True)
134
+ )
135
+ (5): Bottleneck(
136
+ (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
137
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
138
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
139
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
140
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
141
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
142
+ (relu): ReLU(inplace=True)
143
+ )
144
+ )
145
+ (layer4): Sequential(
146
+ (0): Bottleneck(
147
+ (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
148
+ (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
149
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
150
+ (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
151
+ (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
152
+ (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
153
+ (relu): ReLU(inplace=True)
154
+ (downsample): Sequential(
155
+ (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)
156
+ (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
157
+ )
158
+ )
159
+ (1): Bottleneck(
160
+ (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
161
+ (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
162
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
163
+ (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
164
+ (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
165
+ (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
166
+ (relu): ReLU(inplace=True)
167
+ )
168
+ (2): Bottleneck(
169
+ (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
170
+ (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
171
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
172
+ (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
173
+ (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
174
+ (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
175
+ (relu): ReLU(inplace=True)
176
+ )
177
+ )
178
+ (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))
179
+ (fc): Linear(in_features=2048, out_features=1000, bias=True)
180
+ )
181
+ (features): Sequential(
182
+ (0): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
183
+ (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
184
+ (2): ReLU(inplace=True)
185
+ (3): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
186
+ (4): Sequential(
187
+ (0): Bottleneck(
188
+ (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
189
+ (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
190
+ (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
191
+ (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
192
+ (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
193
+ (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
194
+ (relu): ReLU(inplace=True)
195
+ (downsample): Sequential(
196
+ (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
197
+ (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
198
+ )
199
+ )
200
+ (1): Bottleneck(
201
+ (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
202
+ (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
203
+ (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
204
+ (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
205
+ (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
206
+ (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
207
+ (relu): ReLU(inplace=True)
208
+ )
209
+ (2): Bottleneck(
210
+ (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
211
+ (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
212
+ (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
213
+ (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
214
+ (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
215
+ (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
216
+ (relu): ReLU(inplace=True)
217
+ )
218
+ )
219
+ (5): Sequential(
220
+ (0): Bottleneck(
221
+ (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
222
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
223
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
224
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
225
+ (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
226
+ (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
227
+ (relu): ReLU(inplace=True)
228
+ (downsample): Sequential(
229
+ (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
230
+ (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
231
+ )
232
+ )
233
+ (1): Bottleneck(
234
+ (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
235
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
236
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
237
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
238
+ (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
239
+ (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
240
+ (relu): ReLU(inplace=True)
241
+ )
242
+ (2): Bottleneck(
243
+ (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
244
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
245
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
246
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
247
+ (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
248
+ (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
249
+ (relu): ReLU(inplace=True)
250
+ )
251
+ (3): Bottleneck(
252
+ (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
253
+ (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
254
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
255
+ (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
256
+ (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
257
+ (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
258
+ (relu): ReLU(inplace=True)
259
+ )
260
+ )
261
+ (6): Sequential(
262
+ (0): Bottleneck(
263
+ (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
264
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
265
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
266
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
267
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
268
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
269
+ (relu): ReLU(inplace=True)
270
+ (downsample): Sequential(
271
+ (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)
272
+ (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
273
+ )
274
+ )
275
+ (1): Bottleneck(
276
+ (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
277
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
278
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
279
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
280
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
281
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
282
+ (relu): ReLU(inplace=True)
283
+ )
284
+ (2): Bottleneck(
285
+ (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
286
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
287
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
288
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
289
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
290
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
291
+ (relu): ReLU(inplace=True)
292
+ )
293
+ (3): Bottleneck(
294
+ (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
295
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
296
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
297
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
298
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
299
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
300
+ (relu): ReLU(inplace=True)
301
+ )
302
+ (4): Bottleneck(
303
+ (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
304
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
305
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
306
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
307
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
308
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
309
+ (relu): ReLU(inplace=True)
310
+ )
311
+ (5): Bottleneck(
312
+ (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
313
+ (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
314
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
315
+ (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
316
+ (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
317
+ (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
318
+ (relu): ReLU(inplace=True)
319
+ )
320
+ )
321
+ (7): Sequential(
322
+ (0): Bottleneck(
323
+ (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
324
+ (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
325
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
326
+ (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
327
+ (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
328
+ (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
329
+ (relu): ReLU(inplace=True)
330
+ (downsample): Sequential(
331
+ (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)
332
+ (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
333
+ )
334
+ )
335
+ (1): Bottleneck(
336
+ (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
337
+ (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
338
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
339
+ (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
340
+ (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
341
+ (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
342
+ (relu): ReLU(inplace=True)
343
+ )
344
+ (2): Bottleneck(
345
+ (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
346
+ (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
347
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
348
+ (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
349
+ (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
350
+ (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
351
+ (relu): ReLU(inplace=True)
352
+ )
353
+ )
354
+ )
355
+ (attn): SpectralAttentionBlock(
356
+ (avg_pool): AdaptiveAvgPool2d(output_size=1)
357
+ (fc): Sequential(
358
+ (0): Linear(in_features=2048, out_features=128, bias=False)
359
+ (1): ReLU(inplace=True)
360
+ (2): Linear(in_features=128, out_features=2048, bias=False)
361
+ (3): Sigmoid()
362
+ )
363
+ )
364
+ (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))
365
+ (fc): Sequential(
366
+ (0): Linear(in_features=2048, out_features=512, bias=True)
367
+ (1): ReLU()
368
+ (2): Dropout(p=0.3, inplace=False)
369
+ (3): Linear(in_features=512, out_features=8, bias=True)
370
+ )
371
+ )
saved_models/ResNet_Spectral_best.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d27450a6a4ad023f844603e6e49f34a53476dc59f5a7a3c3158dd277f714bd9f
3
+ size 108901007
saved_models/Swin_Transformer_architecture.txt ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Model: Swin_Transformer
2
+ Parameters (trainable): 27,525,506
3
+
4
+ SwinTransformer(
5
+ (features): Sequential(
6
+ (0): Sequential(
7
+ (0): Conv2d(3, 96, kernel_size=(4, 4), stride=(4, 4))
8
+ (1): Permute()
9
+ (2): LayerNorm((96,), eps=1e-05, elementwise_affine=True)
10
+ )
11
+ (1): Sequential(
12
+ (0): SwinTransformerBlock(
13
+ (norm1): LayerNorm((96,), eps=1e-05, elementwise_affine=True)
14
+ (attn): ShiftedWindowAttention(
15
+ (qkv): Linear(in_features=96, out_features=288, bias=True)
16
+ (proj): Linear(in_features=96, out_features=96, bias=True)
17
+ )
18
+ (stochastic_depth): StochasticDepth(p=0.0, mode=row)
19
+ (norm2): LayerNorm((96,), eps=1e-05, elementwise_affine=True)
20
+ (mlp): MLP(
21
+ (0): Linear(in_features=96, out_features=384, bias=True)
22
+ (1): GELU(approximate='none')
23
+ (2): Dropout(p=0.0, inplace=False)
24
+ (3): Linear(in_features=384, out_features=96, bias=True)
25
+ (4): Dropout(p=0.0, inplace=False)
26
+ )
27
+ )
28
+ (1): SwinTransformerBlock(
29
+ (norm1): LayerNorm((96,), eps=1e-05, elementwise_affine=True)
30
+ (attn): ShiftedWindowAttention(
31
+ (qkv): Linear(in_features=96, out_features=288, bias=True)
32
+ (proj): Linear(in_features=96, out_features=96, bias=True)
33
+ )
34
+ (stochastic_depth): StochasticDepth(p=0.018181818181818184, mode=row)
35
+ (norm2): LayerNorm((96,), eps=1e-05, elementwise_affine=True)
36
+ (mlp): MLP(
37
+ (0): Linear(in_features=96, out_features=384, bias=True)
38
+ (1): GELU(approximate='none')
39
+ (2): Dropout(p=0.0, inplace=False)
40
+ (3): Linear(in_features=384, out_features=96, bias=True)
41
+ (4): Dropout(p=0.0, inplace=False)
42
+ )
43
+ )
44
+ )
45
+ (2): PatchMerging(
46
+ (reduction): Linear(in_features=384, out_features=192, bias=False)
47
+ (norm): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
48
+ )
49
+ (3): Sequential(
50
+ (0): SwinTransformerBlock(
51
+ (norm1): LayerNorm((192,), eps=1e-05, elementwise_affine=True)
52
+ (attn): ShiftedWindowAttention(
53
+ (qkv): Linear(in_features=192, out_features=576, bias=True)
54
+ (proj): Linear(in_features=192, out_features=192, bias=True)
55
+ )
56
+ (stochastic_depth): StochasticDepth(p=0.03636363636363637, mode=row)
57
+ (norm2): LayerNorm((192,), eps=1e-05, elementwise_affine=True)
58
+ (mlp): MLP(
59
+ (0): Linear(in_features=192, out_features=768, bias=True)
60
+ (1): GELU(approximate='none')
61
+ (2): Dropout(p=0.0, inplace=False)
62
+ (3): Linear(in_features=768, out_features=192, bias=True)
63
+ (4): Dropout(p=0.0, inplace=False)
64
+ )
65
+ )
66
+ (1): SwinTransformerBlock(
67
+ (norm1): LayerNorm((192,), eps=1e-05, elementwise_affine=True)
68
+ (attn): ShiftedWindowAttention(
69
+ (qkv): Linear(in_features=192, out_features=576, bias=True)
70
+ (proj): Linear(in_features=192, out_features=192, bias=True)
71
+ )
72
+ (stochastic_depth): StochasticDepth(p=0.05454545454545456, mode=row)
73
+ (norm2): LayerNorm((192,), eps=1e-05, elementwise_affine=True)
74
+ (mlp): MLP(
75
+ (0): Linear(in_features=192, out_features=768, bias=True)
76
+ (1): GELU(approximate='none')
77
+ (2): Dropout(p=0.0, inplace=False)
78
+ (3): Linear(in_features=768, out_features=192, bias=True)
79
+ (4): Dropout(p=0.0, inplace=False)
80
+ )
81
+ )
82
+ )
83
+ (4): PatchMerging(
84
+ (reduction): Linear(in_features=768, out_features=384, bias=False)
85
+ (norm): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
86
+ )
87
+ (5): Sequential(
88
+ (0): SwinTransformerBlock(
89
+ (norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
90
+ (attn): ShiftedWindowAttention(
91
+ (qkv): Linear(in_features=384, out_features=1152, bias=True)
92
+ (proj): Linear(in_features=384, out_features=384, bias=True)
93
+ )
94
+ (stochastic_depth): StochasticDepth(p=0.07272727272727274, mode=row)
95
+ (norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
96
+ (mlp): MLP(
97
+ (0): Linear(in_features=384, out_features=1536, bias=True)
98
+ (1): GELU(approximate='none')
99
+ (2): Dropout(p=0.0, inplace=False)
100
+ (3): Linear(in_features=1536, out_features=384, bias=True)
101
+ (4): Dropout(p=0.0, inplace=False)
102
+ )
103
+ )
104
+ (1): SwinTransformerBlock(
105
+ (norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
106
+ (attn): ShiftedWindowAttention(
107
+ (qkv): Linear(in_features=384, out_features=1152, bias=True)
108
+ (proj): Linear(in_features=384, out_features=384, bias=True)
109
+ )
110
+ (stochastic_depth): StochasticDepth(p=0.09090909090909091, mode=row)
111
+ (norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
112
+ (mlp): MLP(
113
+ (0): Linear(in_features=384, out_features=1536, bias=True)
114
+ (1): GELU(approximate='none')
115
+ (2): Dropout(p=0.0, inplace=False)
116
+ (3): Linear(in_features=1536, out_features=384, bias=True)
117
+ (4): Dropout(p=0.0, inplace=False)
118
+ )
119
+ )
120
+ (2): SwinTransformerBlock(
121
+ (norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
122
+ (attn): ShiftedWindowAttention(
123
+ (qkv): Linear(in_features=384, out_features=1152, bias=True)
124
+ (proj): Linear(in_features=384, out_features=384, bias=True)
125
+ )
126
+ (stochastic_depth): StochasticDepth(p=0.10909090909090911, mode=row)
127
+ (norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
128
+ (mlp): MLP(
129
+ (0): Linear(in_features=384, out_features=1536, bias=True)
130
+ (1): GELU(approximate='none')
131
+ (2): Dropout(p=0.0, inplace=False)
132
+ (3): Linear(in_features=1536, out_features=384, bias=True)
133
+ (4): Dropout(p=0.0, inplace=False)
134
+ )
135
+ )
136
+ (3): SwinTransformerBlock(
137
+ (norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
138
+ (attn): ShiftedWindowAttention(
139
+ (qkv): Linear(in_features=384, out_features=1152, bias=True)
140
+ (proj): Linear(in_features=384, out_features=384, bias=True)
141
+ )
142
+ (stochastic_depth): StochasticDepth(p=0.1272727272727273, mode=row)
143
+ (norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
144
+ (mlp): MLP(
145
+ (0): Linear(in_features=384, out_features=1536, bias=True)
146
+ (1): GELU(approximate='none')
147
+ (2): Dropout(p=0.0, inplace=False)
148
+ (3): Linear(in_features=1536, out_features=384, bias=True)
149
+ (4): Dropout(p=0.0, inplace=False)
150
+ )
151
+ )
152
+ (4): SwinTransformerBlock(
153
+ (norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
154
+ (attn): ShiftedWindowAttention(
155
+ (qkv): Linear(in_features=384, out_features=1152, bias=True)
156
+ (proj): Linear(in_features=384, out_features=384, bias=True)
157
+ )
158
+ (stochastic_depth): StochasticDepth(p=0.14545454545454548, mode=row)
159
+ (norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
160
+ (mlp): MLP(
161
+ (0): Linear(in_features=384, out_features=1536, bias=True)
162
+ (1): GELU(approximate='none')
163
+ (2): Dropout(p=0.0, inplace=False)
164
+ (3): Linear(in_features=1536, out_features=384, bias=True)
165
+ (4): Dropout(p=0.0, inplace=False)
166
+ )
167
+ )
168
+ (5): SwinTransformerBlock(
169
+ (norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
170
+ (attn): ShiftedWindowAttention(
171
+ (qkv): Linear(in_features=384, out_features=1152, bias=True)
172
+ (proj): Linear(in_features=384, out_features=384, bias=True)
173
+ )
174
+ (stochastic_depth): StochasticDepth(p=0.16363636363636364, mode=row)
175
+ (norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
176
+ (mlp): MLP(
177
+ (0): Linear(in_features=384, out_features=1536, bias=True)
178
+ (1): GELU(approximate='none')
179
+ (2): Dropout(p=0.0, inplace=False)
180
+ (3): Linear(in_features=1536, out_features=384, bias=True)
181
+ (4): Dropout(p=0.0, inplace=False)
182
+ )
183
+ )
184
+ )
185
+ (6): PatchMerging(
186
+ (reduction): Linear(in_features=1536, out_features=768, bias=False)
187
+ (norm): LayerNorm((1536,), eps=1e-05, elementwise_affine=True)
188
+ )
189
+ (7): Sequential(
190
+ (0): SwinTransformerBlock(
191
+ (norm1): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
192
+ (attn): ShiftedWindowAttention(
193
+ (qkv): Linear(in_features=768, out_features=2304, bias=True)
194
+ (proj): Linear(in_features=768, out_features=768, bias=True)
195
+ )
196
+ (stochastic_depth): StochasticDepth(p=0.18181818181818182, mode=row)
197
+ (norm2): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
198
+ (mlp): MLP(
199
+ (0): Linear(in_features=768, out_features=3072, bias=True)
200
+ (1): GELU(approximate='none')
201
+ (2): Dropout(p=0.0, inplace=False)
202
+ (3): Linear(in_features=3072, out_features=768, bias=True)
203
+ (4): Dropout(p=0.0, inplace=False)
204
+ )
205
+ )
206
+ (1): SwinTransformerBlock(
207
+ (norm1): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
208
+ (attn): ShiftedWindowAttention(
209
+ (qkv): Linear(in_features=768, out_features=2304, bias=True)
210
+ (proj): Linear(in_features=768, out_features=768, bias=True)
211
+ )
212
+ (stochastic_depth): StochasticDepth(p=0.2, mode=row)
213
+ (norm2): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
214
+ (mlp): MLP(
215
+ (0): Linear(in_features=768, out_features=3072, bias=True)
216
+ (1): GELU(approximate='none')
217
+ (2): Dropout(p=0.0, inplace=False)
218
+ (3): Linear(in_features=3072, out_features=768, bias=True)
219
+ (4): Dropout(p=0.0, inplace=False)
220
+ )
221
+ )
222
+ )
223
+ )
224
+ (norm): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
225
+ (permute): Permute()
226
+ (avgpool): AdaptiveAvgPool2d(output_size=1)
227
+ (flatten): Flatten(start_dim=1, end_dim=-1)
228
+ (head): Linear(in_features=768, out_features=8, bias=True)
229
+ )
saved_models/Swin_Transformer_best.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:99dab242760f6770fb2e8f156544910165f6d7113f476cc0af33e62cbe256084
3
+ size 110398591
saved_models/ViT_RGB_architecture.txt ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Model: ViT_RGB
2
+ Parameters (trainable): 85,804,808
3
+
4
+ VisionTransformer(
5
+ (conv_proj): Conv2d(3, 768, kernel_size=(16, 16), stride=(16, 16))
6
+ (encoder): Encoder(
7
+ (dropout): Dropout(p=0.0, inplace=False)
8
+ (layers): Sequential(
9
+ (encoder_layer_0): EncoderBlock(
10
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
11
+ (self_attention): MultiheadAttention(
12
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
13
+ )
14
+ (dropout): Dropout(p=0.0, inplace=False)
15
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
16
+ (mlp): MLPBlock(
17
+ (0): Linear(in_features=768, out_features=3072, bias=True)
18
+ (1): GELU(approximate='none')
19
+ (2): Dropout(p=0.0, inplace=False)
20
+ (3): Linear(in_features=3072, out_features=768, bias=True)
21
+ (4): Dropout(p=0.0, inplace=False)
22
+ )
23
+ )
24
+ (encoder_layer_1): EncoderBlock(
25
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
26
+ (self_attention): MultiheadAttention(
27
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
28
+ )
29
+ (dropout): Dropout(p=0.0, inplace=False)
30
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
31
+ (mlp): MLPBlock(
32
+ (0): Linear(in_features=768, out_features=3072, bias=True)
33
+ (1): GELU(approximate='none')
34
+ (2): Dropout(p=0.0, inplace=False)
35
+ (3): Linear(in_features=3072, out_features=768, bias=True)
36
+ (4): Dropout(p=0.0, inplace=False)
37
+ )
38
+ )
39
+ (encoder_layer_2): EncoderBlock(
40
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
41
+ (self_attention): MultiheadAttention(
42
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
43
+ )
44
+ (dropout): Dropout(p=0.0, inplace=False)
45
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
46
+ (mlp): MLPBlock(
47
+ (0): Linear(in_features=768, out_features=3072, bias=True)
48
+ (1): GELU(approximate='none')
49
+ (2): Dropout(p=0.0, inplace=False)
50
+ (3): Linear(in_features=3072, out_features=768, bias=True)
51
+ (4): Dropout(p=0.0, inplace=False)
52
+ )
53
+ )
54
+ (encoder_layer_3): EncoderBlock(
55
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
56
+ (self_attention): MultiheadAttention(
57
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
58
+ )
59
+ (dropout): Dropout(p=0.0, inplace=False)
60
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
61
+ (mlp): MLPBlock(
62
+ (0): Linear(in_features=768, out_features=3072, bias=True)
63
+ (1): GELU(approximate='none')
64
+ (2): Dropout(p=0.0, inplace=False)
65
+ (3): Linear(in_features=3072, out_features=768, bias=True)
66
+ (4): Dropout(p=0.0, inplace=False)
67
+ )
68
+ )
69
+ (encoder_layer_4): EncoderBlock(
70
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
71
+ (self_attention): MultiheadAttention(
72
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
73
+ )
74
+ (dropout): Dropout(p=0.0, inplace=False)
75
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
76
+ (mlp): MLPBlock(
77
+ (0): Linear(in_features=768, out_features=3072, bias=True)
78
+ (1): GELU(approximate='none')
79
+ (2): Dropout(p=0.0, inplace=False)
80
+ (3): Linear(in_features=3072, out_features=768, bias=True)
81
+ (4): Dropout(p=0.0, inplace=False)
82
+ )
83
+ )
84
+ (encoder_layer_5): EncoderBlock(
85
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
86
+ (self_attention): MultiheadAttention(
87
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
88
+ )
89
+ (dropout): Dropout(p=0.0, inplace=False)
90
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
91
+ (mlp): MLPBlock(
92
+ (0): Linear(in_features=768, out_features=3072, bias=True)
93
+ (1): GELU(approximate='none')
94
+ (2): Dropout(p=0.0, inplace=False)
95
+ (3): Linear(in_features=3072, out_features=768, bias=True)
96
+ (4): Dropout(p=0.0, inplace=False)
97
+ )
98
+ )
99
+ (encoder_layer_6): EncoderBlock(
100
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
101
+ (self_attention): MultiheadAttention(
102
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
103
+ )
104
+ (dropout): Dropout(p=0.0, inplace=False)
105
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
106
+ (mlp): MLPBlock(
107
+ (0): Linear(in_features=768, out_features=3072, bias=True)
108
+ (1): GELU(approximate='none')
109
+ (2): Dropout(p=0.0, inplace=False)
110
+ (3): Linear(in_features=3072, out_features=768, bias=True)
111
+ (4): Dropout(p=0.0, inplace=False)
112
+ )
113
+ )
114
+ (encoder_layer_7): EncoderBlock(
115
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
116
+ (self_attention): MultiheadAttention(
117
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
118
+ )
119
+ (dropout): Dropout(p=0.0, inplace=False)
120
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
121
+ (mlp): MLPBlock(
122
+ (0): Linear(in_features=768, out_features=3072, bias=True)
123
+ (1): GELU(approximate='none')
124
+ (2): Dropout(p=0.0, inplace=False)
125
+ (3): Linear(in_features=3072, out_features=768, bias=True)
126
+ (4): Dropout(p=0.0, inplace=False)
127
+ )
128
+ )
129
+ (encoder_layer_8): EncoderBlock(
130
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
131
+ (self_attention): MultiheadAttention(
132
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
133
+ )
134
+ (dropout): Dropout(p=0.0, inplace=False)
135
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
136
+ (mlp): MLPBlock(
137
+ (0): Linear(in_features=768, out_features=3072, bias=True)
138
+ (1): GELU(approximate='none')
139
+ (2): Dropout(p=0.0, inplace=False)
140
+ (3): Linear(in_features=3072, out_features=768, bias=True)
141
+ (4): Dropout(p=0.0, inplace=False)
142
+ )
143
+ )
144
+ (encoder_layer_9): EncoderBlock(
145
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
146
+ (self_attention): MultiheadAttention(
147
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
148
+ )
149
+ (dropout): Dropout(p=0.0, inplace=False)
150
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
151
+ (mlp): MLPBlock(
152
+ (0): Linear(in_features=768, out_features=3072, bias=True)
153
+ (1): GELU(approximate='none')
154
+ (2): Dropout(p=0.0, inplace=False)
155
+ (3): Linear(in_features=3072, out_features=768, bias=True)
156
+ (4): Dropout(p=0.0, inplace=False)
157
+ )
158
+ )
159
+ (encoder_layer_10): EncoderBlock(
160
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
161
+ (self_attention): MultiheadAttention(
162
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
163
+ )
164
+ (dropout): Dropout(p=0.0, inplace=False)
165
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
166
+ (mlp): MLPBlock(
167
+ (0): Linear(in_features=768, out_features=3072, bias=True)
168
+ (1): GELU(approximate='none')
169
+ (2): Dropout(p=0.0, inplace=False)
170
+ (3): Linear(in_features=3072, out_features=768, bias=True)
171
+ (4): Dropout(p=0.0, inplace=False)
172
+ )
173
+ )
174
+ (encoder_layer_11): EncoderBlock(
175
+ (ln_1): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
176
+ (self_attention): MultiheadAttention(
177
+ (out_proj): NonDynamicallyQuantizableLinear(in_features=768, out_features=768, bias=True)
178
+ )
179
+ (dropout): Dropout(p=0.0, inplace=False)
180
+ (ln_2): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
181
+ (mlp): MLPBlock(
182
+ (0): Linear(in_features=768, out_features=3072, bias=True)
183
+ (1): GELU(approximate='none')
184
+ (2): Dropout(p=0.0, inplace=False)
185
+ (3): Linear(in_features=3072, out_features=768, bias=True)
186
+ (4): Dropout(p=0.0, inplace=False)
187
+ )
188
+ )
189
+ )
190
+ (ln): LayerNorm((768,), eps=1e-06, elementwise_affine=True)
191
+ )
192
+ (heads): Sequential(
193
+ (head): Linear(in_features=768, out_features=8, bias=True)
194
+ )
195
+ )
saved_models/ViT_RGB_best.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3a8aeb02e2084639d9db03063c3624d8cd7ee1448f1e13416439686ec51c4096
3
+ size 343278629
saved_models/benchmark_summary.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "ResNet_Spectral": {
3
+ "best_val_f1": 0.8527417775702426,
4
+ "best_val_acc": 0.8586118251928021,
5
+ "best_val_ece": 0.019904159009456635,
6
+ "last_epoch_f1": 0.8527417775702426,
7
+ "last_epoch_ece": 0.04522501677274704
8
+ },
9
+ "ViT_RGB": {
10
+ "best_val_f1": 0.8676401839098214,
11
+ "best_val_acc": 0.8721997796547926,
12
+ "best_val_ece": 0.01150172296911478,
13
+ "last_epoch_f1": 0.8676401839098214,
14
+ "last_epoch_ece": 0.06561045348644257
15
+ },
16
+ "EfficientNetV2": {
17
+ "best_val_f1": 0.8679869729796613,
18
+ "best_val_acc": 0.8733015056922512,
19
+ "best_val_ece": 0.013381004333496094,
20
+ "last_epoch_f1": 0.8679869729796613,
21
+ "last_epoch_ece": 0.037545911967754364
22
+ },
23
+ "ConvNeXt": {
24
+ "best_val_f1": 0.8842447172605825,
25
+ "best_val_acc": 0.8887256702166728,
26
+ "best_val_ece": 0.013129305094480515,
27
+ "last_epoch_f1": 0.8842447172605825,
28
+ "last_epoch_ece": 0.047111134976148605
29
+ },
30
+ "Swin_Transformer": {
31
+ "best_val_f1": 0.8665534933096852,
32
+ "best_val_acc": 0.87146529562982,
33
+ "best_val_ece": 0.01238478347659111,
34
+ "last_epoch_f1": 0.8664164643244248,
35
+ "last_epoch_ece": 0.05167390778660774
36
+ },
37
+ "APSNet_V2": {
38
+ "best_val_f1": 0.8487423771371205,
39
+ "best_val_acc": 0.8542049210429673,
40
+ "best_val_ece": 0.02143457904458046,
41
+ "last_epoch_f1": 0.846543290330557,
42
+ "last_epoch_ece": 0.05186990648508072
43
+ }
44
+ }