BootsofLagrangian commited on
Commit
77cd05d
·
verified ·
1 Parent(s): 54373fb

Upload OrthoViTForImageClassification

Browse files
Files changed (6) hide show
  1. README.md +199 -0
  2. config.json +2038 -0
  3. configuration_ortho_vit.py +92 -0
  4. model.safetensors +3 -0
  5. modeling_ortho_vit.py +455 -0
  6. residual.py +60 -0
README.md ADDED
@@ -0,0 +1,199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ tags: []
4
+ ---
5
+
6
+ # Model Card for Model ID
7
+
8
+ <!-- Provide a quick summary of what the model is/does. -->
9
+
10
+
11
+
12
+ ## Model Details
13
+
14
+ ### Model Description
15
+
16
+ <!-- Provide a longer summary of what this model is. -->
17
+
18
+ This is the model card of a 🤗 transformers model that has been pushed on the Hub. This model card has been automatically generated.
19
+
20
+ - **Developed by:** [More Information Needed]
21
+ - **Funded by [optional]:** [More Information Needed]
22
+ - **Shared by [optional]:** [More Information Needed]
23
+ - **Model type:** [More Information Needed]
24
+ - **Language(s) (NLP):** [More Information Needed]
25
+ - **License:** [More Information Needed]
26
+ - **Finetuned from model [optional]:** [More Information Needed]
27
+
28
+ ### Model Sources [optional]
29
+
30
+ <!-- Provide the basic links for the model. -->
31
+
32
+ - **Repository:** [More Information Needed]
33
+ - **Paper [optional]:** [More Information Needed]
34
+ - **Demo [optional]:** [More Information Needed]
35
+
36
+ ## Uses
37
+
38
+ <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
39
+
40
+ ### Direct Use
41
+
42
+ <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
43
+
44
+ [More Information Needed]
45
+
46
+ ### Downstream Use [optional]
47
+
48
+ <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
49
+
50
+ [More Information Needed]
51
+
52
+ ### Out-of-Scope Use
53
+
54
+ <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
55
+
56
+ [More Information Needed]
57
+
58
+ ## Bias, Risks, and Limitations
59
+
60
+ <!-- This section is meant to convey both technical and sociotechnical limitations. -->
61
+
62
+ [More Information Needed]
63
+
64
+ ### Recommendations
65
+
66
+ <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
67
+
68
+ Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
69
+
70
+ ## How to Get Started with the Model
71
+
72
+ Use the code below to get started with the model.
73
+
74
+ [More Information Needed]
75
+
76
+ ## Training Details
77
+
78
+ ### Training Data
79
+
80
+ <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
81
+
82
+ [More Information Needed]
83
+
84
+ ### Training Procedure
85
+
86
+ <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
87
+
88
+ #### Preprocessing [optional]
89
+
90
+ [More Information Needed]
91
+
92
+
93
+ #### Training Hyperparameters
94
+
95
+ - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
96
+
97
+ #### Speeds, Sizes, Times [optional]
98
+
99
+ <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
100
+
101
+ [More Information Needed]
102
+
103
+ ## Evaluation
104
+
105
+ <!-- This section describes the evaluation protocols and provides the results. -->
106
+
107
+ ### Testing Data, Factors & Metrics
108
+
109
+ #### Testing Data
110
+
111
+ <!-- This should link to a Dataset Card if possible. -->
112
+
113
+ [More Information Needed]
114
+
115
+ #### Factors
116
+
117
+ <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
118
+
119
+ [More Information Needed]
120
+
121
+ #### Metrics
122
+
123
+ <!-- These are the evaluation metrics being used, ideally with a description of why. -->
124
+
125
+ [More Information Needed]
126
+
127
+ ### Results
128
+
129
+ [More Information Needed]
130
+
131
+ #### Summary
132
+
133
+
134
+
135
+ ## Model Examination [optional]
136
+
137
+ <!-- Relevant interpretability work for the model goes here -->
138
+
139
+ [More Information Needed]
140
+
141
+ ## Environmental Impact
142
+
143
+ <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
144
+
145
+ Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
146
+
147
+ - **Hardware Type:** [More Information Needed]
148
+ - **Hours used:** [More Information Needed]
149
+ - **Cloud Provider:** [More Information Needed]
150
+ - **Compute Region:** [More Information Needed]
151
+ - **Carbon Emitted:** [More Information Needed]
152
+
153
+ ## Technical Specifications [optional]
154
+
155
+ ### Model Architecture and Objective
156
+
157
+ [More Information Needed]
158
+
159
+ ### Compute Infrastructure
160
+
161
+ [More Information Needed]
162
+
163
+ #### Hardware
164
+
165
+ [More Information Needed]
166
+
167
+ #### Software
168
+
169
+ [More Information Needed]
170
+
171
+ ## Citation [optional]
172
+
173
+ <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
174
+
175
+ **BibTeX:**
176
+
177
+ [More Information Needed]
178
+
179
+ **APA:**
180
+
181
+ [More Information Needed]
182
+
183
+ ## Glossary [optional]
184
+
185
+ <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
186
+
187
+ [More Information Needed]
188
+
189
+ ## More Information [optional]
190
+
191
+ [More Information Needed]
192
+
193
+ ## Model Card Authors [optional]
194
+
195
+ [More Information Needed]
196
+
197
+ ## Model Card Contact
198
+
199
+ [More Information Needed]
config.json ADDED
@@ -0,0 +1,2038 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "OrthoViTForImageClassification"
4
+ ],
5
+ "attention_probs_dropout_prob": 0.0,
6
+ "auto_map": {
7
+ "AutoConfig": "configuration_ortho_vit.OrthoViTConfig",
8
+ "AutoModelForImageClassification": "modeling_ortho_vit.OrthoViTForImageClassification"
9
+ },
10
+ "elementwise_affine_ln": false,
11
+ "encoder_stride": 16,
12
+ "hidden_act": "gelu_fast",
13
+ "hidden_dropout_prob": 0.0,
14
+ "hidden_size": 768,
15
+ "id2label": {
16
+ "0": "LABEL_0",
17
+ "1": "LABEL_1",
18
+ "2": "LABEL_2",
19
+ "3": "LABEL_3",
20
+ "4": "LABEL_4",
21
+ "5": "LABEL_5",
22
+ "6": "LABEL_6",
23
+ "7": "LABEL_7",
24
+ "8": "LABEL_8",
25
+ "9": "LABEL_9",
26
+ "10": "LABEL_10",
27
+ "11": "LABEL_11",
28
+ "12": "LABEL_12",
29
+ "13": "LABEL_13",
30
+ "14": "LABEL_14",
31
+ "15": "LABEL_15",
32
+ "16": "LABEL_16",
33
+ "17": "LABEL_17",
34
+ "18": "LABEL_18",
35
+ "19": "LABEL_19",
36
+ "20": "LABEL_20",
37
+ "21": "LABEL_21",
38
+ "22": "LABEL_22",
39
+ "23": "LABEL_23",
40
+ "24": "LABEL_24",
41
+ "25": "LABEL_25",
42
+ "26": "LABEL_26",
43
+ "27": "LABEL_27",
44
+ "28": "LABEL_28",
45
+ "29": "LABEL_29",
46
+ "30": "LABEL_30",
47
+ "31": "LABEL_31",
48
+ "32": "LABEL_32",
49
+ "33": "LABEL_33",
50
+ "34": "LABEL_34",
51
+ "35": "LABEL_35",
52
+ "36": "LABEL_36",
53
+ "37": "LABEL_37",
54
+ "38": "LABEL_38",
55
+ "39": "LABEL_39",
56
+ "40": "LABEL_40",
57
+ "41": "LABEL_41",
58
+ "42": "LABEL_42",
59
+ "43": "LABEL_43",
60
+ "44": "LABEL_44",
61
+ "45": "LABEL_45",
62
+ "46": "LABEL_46",
63
+ "47": "LABEL_47",
64
+ "48": "LABEL_48",
65
+ "49": "LABEL_49",
66
+ "50": "LABEL_50",
67
+ "51": "LABEL_51",
68
+ "52": "LABEL_52",
69
+ "53": "LABEL_53",
70
+ "54": "LABEL_54",
71
+ "55": "LABEL_55",
72
+ "56": "LABEL_56",
73
+ "57": "LABEL_57",
74
+ "58": "LABEL_58",
75
+ "59": "LABEL_59",
76
+ "60": "LABEL_60",
77
+ "61": "LABEL_61",
78
+ "62": "LABEL_62",
79
+ "63": "LABEL_63",
80
+ "64": "LABEL_64",
81
+ "65": "LABEL_65",
82
+ "66": "LABEL_66",
83
+ "67": "LABEL_67",
84
+ "68": "LABEL_68",
85
+ "69": "LABEL_69",
86
+ "70": "LABEL_70",
87
+ "71": "LABEL_71",
88
+ "72": "LABEL_72",
89
+ "73": "LABEL_73",
90
+ "74": "LABEL_74",
91
+ "75": "LABEL_75",
92
+ "76": "LABEL_76",
93
+ "77": "LABEL_77",
94
+ "78": "LABEL_78",
95
+ "79": "LABEL_79",
96
+ "80": "LABEL_80",
97
+ "81": "LABEL_81",
98
+ "82": "LABEL_82",
99
+ "83": "LABEL_83",
100
+ "84": "LABEL_84",
101
+ "85": "LABEL_85",
102
+ "86": "LABEL_86",
103
+ "87": "LABEL_87",
104
+ "88": "LABEL_88",
105
+ "89": "LABEL_89",
106
+ "90": "LABEL_90",
107
+ "91": "LABEL_91",
108
+ "92": "LABEL_92",
109
+ "93": "LABEL_93",
110
+ "94": "LABEL_94",
111
+ "95": "LABEL_95",
112
+ "96": "LABEL_96",
113
+ "97": "LABEL_97",
114
+ "98": "LABEL_98",
115
+ "99": "LABEL_99",
116
+ "100": "LABEL_100",
117
+ "101": "LABEL_101",
118
+ "102": "LABEL_102",
119
+ "103": "LABEL_103",
120
+ "104": "LABEL_104",
121
+ "105": "LABEL_105",
122
+ "106": "LABEL_106",
123
+ "107": "LABEL_107",
124
+ "108": "LABEL_108",
125
+ "109": "LABEL_109",
126
+ "110": "LABEL_110",
127
+ "111": "LABEL_111",
128
+ "112": "LABEL_112",
129
+ "113": "LABEL_113",
130
+ "114": "LABEL_114",
131
+ "115": "LABEL_115",
132
+ "116": "LABEL_116",
133
+ "117": "LABEL_117",
134
+ "118": "LABEL_118",
135
+ "119": "LABEL_119",
136
+ "120": "LABEL_120",
137
+ "121": "LABEL_121",
138
+ "122": "LABEL_122",
139
+ "123": "LABEL_123",
140
+ "124": "LABEL_124",
141
+ "125": "LABEL_125",
142
+ "126": "LABEL_126",
143
+ "127": "LABEL_127",
144
+ "128": "LABEL_128",
145
+ "129": "LABEL_129",
146
+ "130": "LABEL_130",
147
+ "131": "LABEL_131",
148
+ "132": "LABEL_132",
149
+ "133": "LABEL_133",
150
+ "134": "LABEL_134",
151
+ "135": "LABEL_135",
152
+ "136": "LABEL_136",
153
+ "137": "LABEL_137",
154
+ "138": "LABEL_138",
155
+ "139": "LABEL_139",
156
+ "140": "LABEL_140",
157
+ "141": "LABEL_141",
158
+ "142": "LABEL_142",
159
+ "143": "LABEL_143",
160
+ "144": "LABEL_144",
161
+ "145": "LABEL_145",
162
+ "146": "LABEL_146",
163
+ "147": "LABEL_147",
164
+ "148": "LABEL_148",
165
+ "149": "LABEL_149",
166
+ "150": "LABEL_150",
167
+ "151": "LABEL_151",
168
+ "152": "LABEL_152",
169
+ "153": "LABEL_153",
170
+ "154": "LABEL_154",
171
+ "155": "LABEL_155",
172
+ "156": "LABEL_156",
173
+ "157": "LABEL_157",
174
+ "158": "LABEL_158",
175
+ "159": "LABEL_159",
176
+ "160": "LABEL_160",
177
+ "161": "LABEL_161",
178
+ "162": "LABEL_162",
179
+ "163": "LABEL_163",
180
+ "164": "LABEL_164",
181
+ "165": "LABEL_165",
182
+ "166": "LABEL_166",
183
+ "167": "LABEL_167",
184
+ "168": "LABEL_168",
185
+ "169": "LABEL_169",
186
+ "170": "LABEL_170",
187
+ "171": "LABEL_171",
188
+ "172": "LABEL_172",
189
+ "173": "LABEL_173",
190
+ "174": "LABEL_174",
191
+ "175": "LABEL_175",
192
+ "176": "LABEL_176",
193
+ "177": "LABEL_177",
194
+ "178": "LABEL_178",
195
+ "179": "LABEL_179",
196
+ "180": "LABEL_180",
197
+ "181": "LABEL_181",
198
+ "182": "LABEL_182",
199
+ "183": "LABEL_183",
200
+ "184": "LABEL_184",
201
+ "185": "LABEL_185",
202
+ "186": "LABEL_186",
203
+ "187": "LABEL_187",
204
+ "188": "LABEL_188",
205
+ "189": "LABEL_189",
206
+ "190": "LABEL_190",
207
+ "191": "LABEL_191",
208
+ "192": "LABEL_192",
209
+ "193": "LABEL_193",
210
+ "194": "LABEL_194",
211
+ "195": "LABEL_195",
212
+ "196": "LABEL_196",
213
+ "197": "LABEL_197",
214
+ "198": "LABEL_198",
215
+ "199": "LABEL_199",
216
+ "200": "LABEL_200",
217
+ "201": "LABEL_201",
218
+ "202": "LABEL_202",
219
+ "203": "LABEL_203",
220
+ "204": "LABEL_204",
221
+ "205": "LABEL_205",
222
+ "206": "LABEL_206",
223
+ "207": "LABEL_207",
224
+ "208": "LABEL_208",
225
+ "209": "LABEL_209",
226
+ "210": "LABEL_210",
227
+ "211": "LABEL_211",
228
+ "212": "LABEL_212",
229
+ "213": "LABEL_213",
230
+ "214": "LABEL_214",
231
+ "215": "LABEL_215",
232
+ "216": "LABEL_216",
233
+ "217": "LABEL_217",
234
+ "218": "LABEL_218",
235
+ "219": "LABEL_219",
236
+ "220": "LABEL_220",
237
+ "221": "LABEL_221",
238
+ "222": "LABEL_222",
239
+ "223": "LABEL_223",
240
+ "224": "LABEL_224",
241
+ "225": "LABEL_225",
242
+ "226": "LABEL_226",
243
+ "227": "LABEL_227",
244
+ "228": "LABEL_228",
245
+ "229": "LABEL_229",
246
+ "230": "LABEL_230",
247
+ "231": "LABEL_231",
248
+ "232": "LABEL_232",
249
+ "233": "LABEL_233",
250
+ "234": "LABEL_234",
251
+ "235": "LABEL_235",
252
+ "236": "LABEL_236",
253
+ "237": "LABEL_237",
254
+ "238": "LABEL_238",
255
+ "239": "LABEL_239",
256
+ "240": "LABEL_240",
257
+ "241": "LABEL_241",
258
+ "242": "LABEL_242",
259
+ "243": "LABEL_243",
260
+ "244": "LABEL_244",
261
+ "245": "LABEL_245",
262
+ "246": "LABEL_246",
263
+ "247": "LABEL_247",
264
+ "248": "LABEL_248",
265
+ "249": "LABEL_249",
266
+ "250": "LABEL_250",
267
+ "251": "LABEL_251",
268
+ "252": "LABEL_252",
269
+ "253": "LABEL_253",
270
+ "254": "LABEL_254",
271
+ "255": "LABEL_255",
272
+ "256": "LABEL_256",
273
+ "257": "LABEL_257",
274
+ "258": "LABEL_258",
275
+ "259": "LABEL_259",
276
+ "260": "LABEL_260",
277
+ "261": "LABEL_261",
278
+ "262": "LABEL_262",
279
+ "263": "LABEL_263",
280
+ "264": "LABEL_264",
281
+ "265": "LABEL_265",
282
+ "266": "LABEL_266",
283
+ "267": "LABEL_267",
284
+ "268": "LABEL_268",
285
+ "269": "LABEL_269",
286
+ "270": "LABEL_270",
287
+ "271": "LABEL_271",
288
+ "272": "LABEL_272",
289
+ "273": "LABEL_273",
290
+ "274": "LABEL_274",
291
+ "275": "LABEL_275",
292
+ "276": "LABEL_276",
293
+ "277": "LABEL_277",
294
+ "278": "LABEL_278",
295
+ "279": "LABEL_279",
296
+ "280": "LABEL_280",
297
+ "281": "LABEL_281",
298
+ "282": "LABEL_282",
299
+ "283": "LABEL_283",
300
+ "284": "LABEL_284",
301
+ "285": "LABEL_285",
302
+ "286": "LABEL_286",
303
+ "287": "LABEL_287",
304
+ "288": "LABEL_288",
305
+ "289": "LABEL_289",
306
+ "290": "LABEL_290",
307
+ "291": "LABEL_291",
308
+ "292": "LABEL_292",
309
+ "293": "LABEL_293",
310
+ "294": "LABEL_294",
311
+ "295": "LABEL_295",
312
+ "296": "LABEL_296",
313
+ "297": "LABEL_297",
314
+ "298": "LABEL_298",
315
+ "299": "LABEL_299",
316
+ "300": "LABEL_300",
317
+ "301": "LABEL_301",
318
+ "302": "LABEL_302",
319
+ "303": "LABEL_303",
320
+ "304": "LABEL_304",
321
+ "305": "LABEL_305",
322
+ "306": "LABEL_306",
323
+ "307": "LABEL_307",
324
+ "308": "LABEL_308",
325
+ "309": "LABEL_309",
326
+ "310": "LABEL_310",
327
+ "311": "LABEL_311",
328
+ "312": "LABEL_312",
329
+ "313": "LABEL_313",
330
+ "314": "LABEL_314",
331
+ "315": "LABEL_315",
332
+ "316": "LABEL_316",
333
+ "317": "LABEL_317",
334
+ "318": "LABEL_318",
335
+ "319": "LABEL_319",
336
+ "320": "LABEL_320",
337
+ "321": "LABEL_321",
338
+ "322": "LABEL_322",
339
+ "323": "LABEL_323",
340
+ "324": "LABEL_324",
341
+ "325": "LABEL_325",
342
+ "326": "LABEL_326",
343
+ "327": "LABEL_327",
344
+ "328": "LABEL_328",
345
+ "329": "LABEL_329",
346
+ "330": "LABEL_330",
347
+ "331": "LABEL_331",
348
+ "332": "LABEL_332",
349
+ "333": "LABEL_333",
350
+ "334": "LABEL_334",
351
+ "335": "LABEL_335",
352
+ "336": "LABEL_336",
353
+ "337": "LABEL_337",
354
+ "338": "LABEL_338",
355
+ "339": "LABEL_339",
356
+ "340": "LABEL_340",
357
+ "341": "LABEL_341",
358
+ "342": "LABEL_342",
359
+ "343": "LABEL_343",
360
+ "344": "LABEL_344",
361
+ "345": "LABEL_345",
362
+ "346": "LABEL_346",
363
+ "347": "LABEL_347",
364
+ "348": "LABEL_348",
365
+ "349": "LABEL_349",
366
+ "350": "LABEL_350",
367
+ "351": "LABEL_351",
368
+ "352": "LABEL_352",
369
+ "353": "LABEL_353",
370
+ "354": "LABEL_354",
371
+ "355": "LABEL_355",
372
+ "356": "LABEL_356",
373
+ "357": "LABEL_357",
374
+ "358": "LABEL_358",
375
+ "359": "LABEL_359",
376
+ "360": "LABEL_360",
377
+ "361": "LABEL_361",
378
+ "362": "LABEL_362",
379
+ "363": "LABEL_363",
380
+ "364": "LABEL_364",
381
+ "365": "LABEL_365",
382
+ "366": "LABEL_366",
383
+ "367": "LABEL_367",
384
+ "368": "LABEL_368",
385
+ "369": "LABEL_369",
386
+ "370": "LABEL_370",
387
+ "371": "LABEL_371",
388
+ "372": "LABEL_372",
389
+ "373": "LABEL_373",
390
+ "374": "LABEL_374",
391
+ "375": "LABEL_375",
392
+ "376": "LABEL_376",
393
+ "377": "LABEL_377",
394
+ "378": "LABEL_378",
395
+ "379": "LABEL_379",
396
+ "380": "LABEL_380",
397
+ "381": "LABEL_381",
398
+ "382": "LABEL_382",
399
+ "383": "LABEL_383",
400
+ "384": "LABEL_384",
401
+ "385": "LABEL_385",
402
+ "386": "LABEL_386",
403
+ "387": "LABEL_387",
404
+ "388": "LABEL_388",
405
+ "389": "LABEL_389",
406
+ "390": "LABEL_390",
407
+ "391": "LABEL_391",
408
+ "392": "LABEL_392",
409
+ "393": "LABEL_393",
410
+ "394": "LABEL_394",
411
+ "395": "LABEL_395",
412
+ "396": "LABEL_396",
413
+ "397": "LABEL_397",
414
+ "398": "LABEL_398",
415
+ "399": "LABEL_399",
416
+ "400": "LABEL_400",
417
+ "401": "LABEL_401",
418
+ "402": "LABEL_402",
419
+ "403": "LABEL_403",
420
+ "404": "LABEL_404",
421
+ "405": "LABEL_405",
422
+ "406": "LABEL_406",
423
+ "407": "LABEL_407",
424
+ "408": "LABEL_408",
425
+ "409": "LABEL_409",
426
+ "410": "LABEL_410",
427
+ "411": "LABEL_411",
428
+ "412": "LABEL_412",
429
+ "413": "LABEL_413",
430
+ "414": "LABEL_414",
431
+ "415": "LABEL_415",
432
+ "416": "LABEL_416",
433
+ "417": "LABEL_417",
434
+ "418": "LABEL_418",
435
+ "419": "LABEL_419",
436
+ "420": "LABEL_420",
437
+ "421": "LABEL_421",
438
+ "422": "LABEL_422",
439
+ "423": "LABEL_423",
440
+ "424": "LABEL_424",
441
+ "425": "LABEL_425",
442
+ "426": "LABEL_426",
443
+ "427": "LABEL_427",
444
+ "428": "LABEL_428",
445
+ "429": "LABEL_429",
446
+ "430": "LABEL_430",
447
+ "431": "LABEL_431",
448
+ "432": "LABEL_432",
449
+ "433": "LABEL_433",
450
+ "434": "LABEL_434",
451
+ "435": "LABEL_435",
452
+ "436": "LABEL_436",
453
+ "437": "LABEL_437",
454
+ "438": "LABEL_438",
455
+ "439": "LABEL_439",
456
+ "440": "LABEL_440",
457
+ "441": "LABEL_441",
458
+ "442": "LABEL_442",
459
+ "443": "LABEL_443",
460
+ "444": "LABEL_444",
461
+ "445": "LABEL_445",
462
+ "446": "LABEL_446",
463
+ "447": "LABEL_447",
464
+ "448": "LABEL_448",
465
+ "449": "LABEL_449",
466
+ "450": "LABEL_450",
467
+ "451": "LABEL_451",
468
+ "452": "LABEL_452",
469
+ "453": "LABEL_453",
470
+ "454": "LABEL_454",
471
+ "455": "LABEL_455",
472
+ "456": "LABEL_456",
473
+ "457": "LABEL_457",
474
+ "458": "LABEL_458",
475
+ "459": "LABEL_459",
476
+ "460": "LABEL_460",
477
+ "461": "LABEL_461",
478
+ "462": "LABEL_462",
479
+ "463": "LABEL_463",
480
+ "464": "LABEL_464",
481
+ "465": "LABEL_465",
482
+ "466": "LABEL_466",
483
+ "467": "LABEL_467",
484
+ "468": "LABEL_468",
485
+ "469": "LABEL_469",
486
+ "470": "LABEL_470",
487
+ "471": "LABEL_471",
488
+ "472": "LABEL_472",
489
+ "473": "LABEL_473",
490
+ "474": "LABEL_474",
491
+ "475": "LABEL_475",
492
+ "476": "LABEL_476",
493
+ "477": "LABEL_477",
494
+ "478": "LABEL_478",
495
+ "479": "LABEL_479",
496
+ "480": "LABEL_480",
497
+ "481": "LABEL_481",
498
+ "482": "LABEL_482",
499
+ "483": "LABEL_483",
500
+ "484": "LABEL_484",
501
+ "485": "LABEL_485",
502
+ "486": "LABEL_486",
503
+ "487": "LABEL_487",
504
+ "488": "LABEL_488",
505
+ "489": "LABEL_489",
506
+ "490": "LABEL_490",
507
+ "491": "LABEL_491",
508
+ "492": "LABEL_492",
509
+ "493": "LABEL_493",
510
+ "494": "LABEL_494",
511
+ "495": "LABEL_495",
512
+ "496": "LABEL_496",
513
+ "497": "LABEL_497",
514
+ "498": "LABEL_498",
515
+ "499": "LABEL_499",
516
+ "500": "LABEL_500",
517
+ "501": "LABEL_501",
518
+ "502": "LABEL_502",
519
+ "503": "LABEL_503",
520
+ "504": "LABEL_504",
521
+ "505": "LABEL_505",
522
+ "506": "LABEL_506",
523
+ "507": "LABEL_507",
524
+ "508": "LABEL_508",
525
+ "509": "LABEL_509",
526
+ "510": "LABEL_510",
527
+ "511": "LABEL_511",
528
+ "512": "LABEL_512",
529
+ "513": "LABEL_513",
530
+ "514": "LABEL_514",
531
+ "515": "LABEL_515",
532
+ "516": "LABEL_516",
533
+ "517": "LABEL_517",
534
+ "518": "LABEL_518",
535
+ "519": "LABEL_519",
536
+ "520": "LABEL_520",
537
+ "521": "LABEL_521",
538
+ "522": "LABEL_522",
539
+ "523": "LABEL_523",
540
+ "524": "LABEL_524",
541
+ "525": "LABEL_525",
542
+ "526": "LABEL_526",
543
+ "527": "LABEL_527",
544
+ "528": "LABEL_528",
545
+ "529": "LABEL_529",
546
+ "530": "LABEL_530",
547
+ "531": "LABEL_531",
548
+ "532": "LABEL_532",
549
+ "533": "LABEL_533",
550
+ "534": "LABEL_534",
551
+ "535": "LABEL_535",
552
+ "536": "LABEL_536",
553
+ "537": "LABEL_537",
554
+ "538": "LABEL_538",
555
+ "539": "LABEL_539",
556
+ "540": "LABEL_540",
557
+ "541": "LABEL_541",
558
+ "542": "LABEL_542",
559
+ "543": "LABEL_543",
560
+ "544": "LABEL_544",
561
+ "545": "LABEL_545",
562
+ "546": "LABEL_546",
563
+ "547": "LABEL_547",
564
+ "548": "LABEL_548",
565
+ "549": "LABEL_549",
566
+ "550": "LABEL_550",
567
+ "551": "LABEL_551",
568
+ "552": "LABEL_552",
569
+ "553": "LABEL_553",
570
+ "554": "LABEL_554",
571
+ "555": "LABEL_555",
572
+ "556": "LABEL_556",
573
+ "557": "LABEL_557",
574
+ "558": "LABEL_558",
575
+ "559": "LABEL_559",
576
+ "560": "LABEL_560",
577
+ "561": "LABEL_561",
578
+ "562": "LABEL_562",
579
+ "563": "LABEL_563",
580
+ "564": "LABEL_564",
581
+ "565": "LABEL_565",
582
+ "566": "LABEL_566",
583
+ "567": "LABEL_567",
584
+ "568": "LABEL_568",
585
+ "569": "LABEL_569",
586
+ "570": "LABEL_570",
587
+ "571": "LABEL_571",
588
+ "572": "LABEL_572",
589
+ "573": "LABEL_573",
590
+ "574": "LABEL_574",
591
+ "575": "LABEL_575",
592
+ "576": "LABEL_576",
593
+ "577": "LABEL_577",
594
+ "578": "LABEL_578",
595
+ "579": "LABEL_579",
596
+ "580": "LABEL_580",
597
+ "581": "LABEL_581",
598
+ "582": "LABEL_582",
599
+ "583": "LABEL_583",
600
+ "584": "LABEL_584",
601
+ "585": "LABEL_585",
602
+ "586": "LABEL_586",
603
+ "587": "LABEL_587",
604
+ "588": "LABEL_588",
605
+ "589": "LABEL_589",
606
+ "590": "LABEL_590",
607
+ "591": "LABEL_591",
608
+ "592": "LABEL_592",
609
+ "593": "LABEL_593",
610
+ "594": "LABEL_594",
611
+ "595": "LABEL_595",
612
+ "596": "LABEL_596",
613
+ "597": "LABEL_597",
614
+ "598": "LABEL_598",
615
+ "599": "LABEL_599",
616
+ "600": "LABEL_600",
617
+ "601": "LABEL_601",
618
+ "602": "LABEL_602",
619
+ "603": "LABEL_603",
620
+ "604": "LABEL_604",
621
+ "605": "LABEL_605",
622
+ "606": "LABEL_606",
623
+ "607": "LABEL_607",
624
+ "608": "LABEL_608",
625
+ "609": "LABEL_609",
626
+ "610": "LABEL_610",
627
+ "611": "LABEL_611",
628
+ "612": "LABEL_612",
629
+ "613": "LABEL_613",
630
+ "614": "LABEL_614",
631
+ "615": "LABEL_615",
632
+ "616": "LABEL_616",
633
+ "617": "LABEL_617",
634
+ "618": "LABEL_618",
635
+ "619": "LABEL_619",
636
+ "620": "LABEL_620",
637
+ "621": "LABEL_621",
638
+ "622": "LABEL_622",
639
+ "623": "LABEL_623",
640
+ "624": "LABEL_624",
641
+ "625": "LABEL_625",
642
+ "626": "LABEL_626",
643
+ "627": "LABEL_627",
644
+ "628": "LABEL_628",
645
+ "629": "LABEL_629",
646
+ "630": "LABEL_630",
647
+ "631": "LABEL_631",
648
+ "632": "LABEL_632",
649
+ "633": "LABEL_633",
650
+ "634": "LABEL_634",
651
+ "635": "LABEL_635",
652
+ "636": "LABEL_636",
653
+ "637": "LABEL_637",
654
+ "638": "LABEL_638",
655
+ "639": "LABEL_639",
656
+ "640": "LABEL_640",
657
+ "641": "LABEL_641",
658
+ "642": "LABEL_642",
659
+ "643": "LABEL_643",
660
+ "644": "LABEL_644",
661
+ "645": "LABEL_645",
662
+ "646": "LABEL_646",
663
+ "647": "LABEL_647",
664
+ "648": "LABEL_648",
665
+ "649": "LABEL_649",
666
+ "650": "LABEL_650",
667
+ "651": "LABEL_651",
668
+ "652": "LABEL_652",
669
+ "653": "LABEL_653",
670
+ "654": "LABEL_654",
671
+ "655": "LABEL_655",
672
+ "656": "LABEL_656",
673
+ "657": "LABEL_657",
674
+ "658": "LABEL_658",
675
+ "659": "LABEL_659",
676
+ "660": "LABEL_660",
677
+ "661": "LABEL_661",
678
+ "662": "LABEL_662",
679
+ "663": "LABEL_663",
680
+ "664": "LABEL_664",
681
+ "665": "LABEL_665",
682
+ "666": "LABEL_666",
683
+ "667": "LABEL_667",
684
+ "668": "LABEL_668",
685
+ "669": "LABEL_669",
686
+ "670": "LABEL_670",
687
+ "671": "LABEL_671",
688
+ "672": "LABEL_672",
689
+ "673": "LABEL_673",
690
+ "674": "LABEL_674",
691
+ "675": "LABEL_675",
692
+ "676": "LABEL_676",
693
+ "677": "LABEL_677",
694
+ "678": "LABEL_678",
695
+ "679": "LABEL_679",
696
+ "680": "LABEL_680",
697
+ "681": "LABEL_681",
698
+ "682": "LABEL_682",
699
+ "683": "LABEL_683",
700
+ "684": "LABEL_684",
701
+ "685": "LABEL_685",
702
+ "686": "LABEL_686",
703
+ "687": "LABEL_687",
704
+ "688": "LABEL_688",
705
+ "689": "LABEL_689",
706
+ "690": "LABEL_690",
707
+ "691": "LABEL_691",
708
+ "692": "LABEL_692",
709
+ "693": "LABEL_693",
710
+ "694": "LABEL_694",
711
+ "695": "LABEL_695",
712
+ "696": "LABEL_696",
713
+ "697": "LABEL_697",
714
+ "698": "LABEL_698",
715
+ "699": "LABEL_699",
716
+ "700": "LABEL_700",
717
+ "701": "LABEL_701",
718
+ "702": "LABEL_702",
719
+ "703": "LABEL_703",
720
+ "704": "LABEL_704",
721
+ "705": "LABEL_705",
722
+ "706": "LABEL_706",
723
+ "707": "LABEL_707",
724
+ "708": "LABEL_708",
725
+ "709": "LABEL_709",
726
+ "710": "LABEL_710",
727
+ "711": "LABEL_711",
728
+ "712": "LABEL_712",
729
+ "713": "LABEL_713",
730
+ "714": "LABEL_714",
731
+ "715": "LABEL_715",
732
+ "716": "LABEL_716",
733
+ "717": "LABEL_717",
734
+ "718": "LABEL_718",
735
+ "719": "LABEL_719",
736
+ "720": "LABEL_720",
737
+ "721": "LABEL_721",
738
+ "722": "LABEL_722",
739
+ "723": "LABEL_723",
740
+ "724": "LABEL_724",
741
+ "725": "LABEL_725",
742
+ "726": "LABEL_726",
743
+ "727": "LABEL_727",
744
+ "728": "LABEL_728",
745
+ "729": "LABEL_729",
746
+ "730": "LABEL_730",
747
+ "731": "LABEL_731",
748
+ "732": "LABEL_732",
749
+ "733": "LABEL_733",
750
+ "734": "LABEL_734",
751
+ "735": "LABEL_735",
752
+ "736": "LABEL_736",
753
+ "737": "LABEL_737",
754
+ "738": "LABEL_738",
755
+ "739": "LABEL_739",
756
+ "740": "LABEL_740",
757
+ "741": "LABEL_741",
758
+ "742": "LABEL_742",
759
+ "743": "LABEL_743",
760
+ "744": "LABEL_744",
761
+ "745": "LABEL_745",
762
+ "746": "LABEL_746",
763
+ "747": "LABEL_747",
764
+ "748": "LABEL_748",
765
+ "749": "LABEL_749",
766
+ "750": "LABEL_750",
767
+ "751": "LABEL_751",
768
+ "752": "LABEL_752",
769
+ "753": "LABEL_753",
770
+ "754": "LABEL_754",
771
+ "755": "LABEL_755",
772
+ "756": "LABEL_756",
773
+ "757": "LABEL_757",
774
+ "758": "LABEL_758",
775
+ "759": "LABEL_759",
776
+ "760": "LABEL_760",
777
+ "761": "LABEL_761",
778
+ "762": "LABEL_762",
779
+ "763": "LABEL_763",
780
+ "764": "LABEL_764",
781
+ "765": "LABEL_765",
782
+ "766": "LABEL_766",
783
+ "767": "LABEL_767",
784
+ "768": "LABEL_768",
785
+ "769": "LABEL_769",
786
+ "770": "LABEL_770",
787
+ "771": "LABEL_771",
788
+ "772": "LABEL_772",
789
+ "773": "LABEL_773",
790
+ "774": "LABEL_774",
791
+ "775": "LABEL_775",
792
+ "776": "LABEL_776",
793
+ "777": "LABEL_777",
794
+ "778": "LABEL_778",
795
+ "779": "LABEL_779",
796
+ "780": "LABEL_780",
797
+ "781": "LABEL_781",
798
+ "782": "LABEL_782",
799
+ "783": "LABEL_783",
800
+ "784": "LABEL_784",
801
+ "785": "LABEL_785",
802
+ "786": "LABEL_786",
803
+ "787": "LABEL_787",
804
+ "788": "LABEL_788",
805
+ "789": "LABEL_789",
806
+ "790": "LABEL_790",
807
+ "791": "LABEL_791",
808
+ "792": "LABEL_792",
809
+ "793": "LABEL_793",
810
+ "794": "LABEL_794",
811
+ "795": "LABEL_795",
812
+ "796": "LABEL_796",
813
+ "797": "LABEL_797",
814
+ "798": "LABEL_798",
815
+ "799": "LABEL_799",
816
+ "800": "LABEL_800",
817
+ "801": "LABEL_801",
818
+ "802": "LABEL_802",
819
+ "803": "LABEL_803",
820
+ "804": "LABEL_804",
821
+ "805": "LABEL_805",
822
+ "806": "LABEL_806",
823
+ "807": "LABEL_807",
824
+ "808": "LABEL_808",
825
+ "809": "LABEL_809",
826
+ "810": "LABEL_810",
827
+ "811": "LABEL_811",
828
+ "812": "LABEL_812",
829
+ "813": "LABEL_813",
830
+ "814": "LABEL_814",
831
+ "815": "LABEL_815",
832
+ "816": "LABEL_816",
833
+ "817": "LABEL_817",
834
+ "818": "LABEL_818",
835
+ "819": "LABEL_819",
836
+ "820": "LABEL_820",
837
+ "821": "LABEL_821",
838
+ "822": "LABEL_822",
839
+ "823": "LABEL_823",
840
+ "824": "LABEL_824",
841
+ "825": "LABEL_825",
842
+ "826": "LABEL_826",
843
+ "827": "LABEL_827",
844
+ "828": "LABEL_828",
845
+ "829": "LABEL_829",
846
+ "830": "LABEL_830",
847
+ "831": "LABEL_831",
848
+ "832": "LABEL_832",
849
+ "833": "LABEL_833",
850
+ "834": "LABEL_834",
851
+ "835": "LABEL_835",
852
+ "836": "LABEL_836",
853
+ "837": "LABEL_837",
854
+ "838": "LABEL_838",
855
+ "839": "LABEL_839",
856
+ "840": "LABEL_840",
857
+ "841": "LABEL_841",
858
+ "842": "LABEL_842",
859
+ "843": "LABEL_843",
860
+ "844": "LABEL_844",
861
+ "845": "LABEL_845",
862
+ "846": "LABEL_846",
863
+ "847": "LABEL_847",
864
+ "848": "LABEL_848",
865
+ "849": "LABEL_849",
866
+ "850": "LABEL_850",
867
+ "851": "LABEL_851",
868
+ "852": "LABEL_852",
869
+ "853": "LABEL_853",
870
+ "854": "LABEL_854",
871
+ "855": "LABEL_855",
872
+ "856": "LABEL_856",
873
+ "857": "LABEL_857",
874
+ "858": "LABEL_858",
875
+ "859": "LABEL_859",
876
+ "860": "LABEL_860",
877
+ "861": "LABEL_861",
878
+ "862": "LABEL_862",
879
+ "863": "LABEL_863",
880
+ "864": "LABEL_864",
881
+ "865": "LABEL_865",
882
+ "866": "LABEL_866",
883
+ "867": "LABEL_867",
884
+ "868": "LABEL_868",
885
+ "869": "LABEL_869",
886
+ "870": "LABEL_870",
887
+ "871": "LABEL_871",
888
+ "872": "LABEL_872",
889
+ "873": "LABEL_873",
890
+ "874": "LABEL_874",
891
+ "875": "LABEL_875",
892
+ "876": "LABEL_876",
893
+ "877": "LABEL_877",
894
+ "878": "LABEL_878",
895
+ "879": "LABEL_879",
896
+ "880": "LABEL_880",
897
+ "881": "LABEL_881",
898
+ "882": "LABEL_882",
899
+ "883": "LABEL_883",
900
+ "884": "LABEL_884",
901
+ "885": "LABEL_885",
902
+ "886": "LABEL_886",
903
+ "887": "LABEL_887",
904
+ "888": "LABEL_888",
905
+ "889": "LABEL_889",
906
+ "890": "LABEL_890",
907
+ "891": "LABEL_891",
908
+ "892": "LABEL_892",
909
+ "893": "LABEL_893",
910
+ "894": "LABEL_894",
911
+ "895": "LABEL_895",
912
+ "896": "LABEL_896",
913
+ "897": "LABEL_897",
914
+ "898": "LABEL_898",
915
+ "899": "LABEL_899",
916
+ "900": "LABEL_900",
917
+ "901": "LABEL_901",
918
+ "902": "LABEL_902",
919
+ "903": "LABEL_903",
920
+ "904": "LABEL_904",
921
+ "905": "LABEL_905",
922
+ "906": "LABEL_906",
923
+ "907": "LABEL_907",
924
+ "908": "LABEL_908",
925
+ "909": "LABEL_909",
926
+ "910": "LABEL_910",
927
+ "911": "LABEL_911",
928
+ "912": "LABEL_912",
929
+ "913": "LABEL_913",
930
+ "914": "LABEL_914",
931
+ "915": "LABEL_915",
932
+ "916": "LABEL_916",
933
+ "917": "LABEL_917",
934
+ "918": "LABEL_918",
935
+ "919": "LABEL_919",
936
+ "920": "LABEL_920",
937
+ "921": "LABEL_921",
938
+ "922": "LABEL_922",
939
+ "923": "LABEL_923",
940
+ "924": "LABEL_924",
941
+ "925": "LABEL_925",
942
+ "926": "LABEL_926",
943
+ "927": "LABEL_927",
944
+ "928": "LABEL_928",
945
+ "929": "LABEL_929",
946
+ "930": "LABEL_930",
947
+ "931": "LABEL_931",
948
+ "932": "LABEL_932",
949
+ "933": "LABEL_933",
950
+ "934": "LABEL_934",
951
+ "935": "LABEL_935",
952
+ "936": "LABEL_936",
953
+ "937": "LABEL_937",
954
+ "938": "LABEL_938",
955
+ "939": "LABEL_939",
956
+ "940": "LABEL_940",
957
+ "941": "LABEL_941",
958
+ "942": "LABEL_942",
959
+ "943": "LABEL_943",
960
+ "944": "LABEL_944",
961
+ "945": "LABEL_945",
962
+ "946": "LABEL_946",
963
+ "947": "LABEL_947",
964
+ "948": "LABEL_948",
965
+ "949": "LABEL_949",
966
+ "950": "LABEL_950",
967
+ "951": "LABEL_951",
968
+ "952": "LABEL_952",
969
+ "953": "LABEL_953",
970
+ "954": "LABEL_954",
971
+ "955": "LABEL_955",
972
+ "956": "LABEL_956",
973
+ "957": "LABEL_957",
974
+ "958": "LABEL_958",
975
+ "959": "LABEL_959",
976
+ "960": "LABEL_960",
977
+ "961": "LABEL_961",
978
+ "962": "LABEL_962",
979
+ "963": "LABEL_963",
980
+ "964": "LABEL_964",
981
+ "965": "LABEL_965",
982
+ "966": "LABEL_966",
983
+ "967": "LABEL_967",
984
+ "968": "LABEL_968",
985
+ "969": "LABEL_969",
986
+ "970": "LABEL_970",
987
+ "971": "LABEL_971",
988
+ "972": "LABEL_972",
989
+ "973": "LABEL_973",
990
+ "974": "LABEL_974",
991
+ "975": "LABEL_975",
992
+ "976": "LABEL_976",
993
+ "977": "LABEL_977",
994
+ "978": "LABEL_978",
995
+ "979": "LABEL_979",
996
+ "980": "LABEL_980",
997
+ "981": "LABEL_981",
998
+ "982": "LABEL_982",
999
+ "983": "LABEL_983",
1000
+ "984": "LABEL_984",
1001
+ "985": "LABEL_985",
1002
+ "986": "LABEL_986",
1003
+ "987": "LABEL_987",
1004
+ "988": "LABEL_988",
1005
+ "989": "LABEL_989",
1006
+ "990": "LABEL_990",
1007
+ "991": "LABEL_991",
1008
+ "992": "LABEL_992",
1009
+ "993": "LABEL_993",
1010
+ "994": "LABEL_994",
1011
+ "995": "LABEL_995",
1012
+ "996": "LABEL_996",
1013
+ "997": "LABEL_997",
1014
+ "998": "LABEL_998",
1015
+ "999": "LABEL_999"
1016
+ },
1017
+ "image_size": 224,
1018
+ "initializer_range": 0.02,
1019
+ "intermediate_size": 3072,
1020
+ "label2id": {
1021
+ "LABEL_0": 0,
1022
+ "LABEL_1": 1,
1023
+ "LABEL_10": 10,
1024
+ "LABEL_100": 100,
1025
+ "LABEL_101": 101,
1026
+ "LABEL_102": 102,
1027
+ "LABEL_103": 103,
1028
+ "LABEL_104": 104,
1029
+ "LABEL_105": 105,
1030
+ "LABEL_106": 106,
1031
+ "LABEL_107": 107,
1032
+ "LABEL_108": 108,
1033
+ "LABEL_109": 109,
1034
+ "LABEL_11": 11,
1035
+ "LABEL_110": 110,
1036
+ "LABEL_111": 111,
1037
+ "LABEL_112": 112,
1038
+ "LABEL_113": 113,
1039
+ "LABEL_114": 114,
1040
+ "LABEL_115": 115,
1041
+ "LABEL_116": 116,
1042
+ "LABEL_117": 117,
1043
+ "LABEL_118": 118,
1044
+ "LABEL_119": 119,
1045
+ "LABEL_12": 12,
1046
+ "LABEL_120": 120,
1047
+ "LABEL_121": 121,
1048
+ "LABEL_122": 122,
1049
+ "LABEL_123": 123,
1050
+ "LABEL_124": 124,
1051
+ "LABEL_125": 125,
1052
+ "LABEL_126": 126,
1053
+ "LABEL_127": 127,
1054
+ "LABEL_128": 128,
1055
+ "LABEL_129": 129,
1056
+ "LABEL_13": 13,
1057
+ "LABEL_130": 130,
1058
+ "LABEL_131": 131,
1059
+ "LABEL_132": 132,
1060
+ "LABEL_133": 133,
1061
+ "LABEL_134": 134,
1062
+ "LABEL_135": 135,
1063
+ "LABEL_136": 136,
1064
+ "LABEL_137": 137,
1065
+ "LABEL_138": 138,
1066
+ "LABEL_139": 139,
1067
+ "LABEL_14": 14,
1068
+ "LABEL_140": 140,
1069
+ "LABEL_141": 141,
1070
+ "LABEL_142": 142,
1071
+ "LABEL_143": 143,
1072
+ "LABEL_144": 144,
1073
+ "LABEL_145": 145,
1074
+ "LABEL_146": 146,
1075
+ "LABEL_147": 147,
1076
+ "LABEL_148": 148,
1077
+ "LABEL_149": 149,
1078
+ "LABEL_15": 15,
1079
+ "LABEL_150": 150,
1080
+ "LABEL_151": 151,
1081
+ "LABEL_152": 152,
1082
+ "LABEL_153": 153,
1083
+ "LABEL_154": 154,
1084
+ "LABEL_155": 155,
1085
+ "LABEL_156": 156,
1086
+ "LABEL_157": 157,
1087
+ "LABEL_158": 158,
1088
+ "LABEL_159": 159,
1089
+ "LABEL_16": 16,
1090
+ "LABEL_160": 160,
1091
+ "LABEL_161": 161,
1092
+ "LABEL_162": 162,
1093
+ "LABEL_163": 163,
1094
+ "LABEL_164": 164,
1095
+ "LABEL_165": 165,
1096
+ "LABEL_166": 166,
1097
+ "LABEL_167": 167,
1098
+ "LABEL_168": 168,
1099
+ "LABEL_169": 169,
1100
+ "LABEL_17": 17,
1101
+ "LABEL_170": 170,
1102
+ "LABEL_171": 171,
1103
+ "LABEL_172": 172,
1104
+ "LABEL_173": 173,
1105
+ "LABEL_174": 174,
1106
+ "LABEL_175": 175,
1107
+ "LABEL_176": 176,
1108
+ "LABEL_177": 177,
1109
+ "LABEL_178": 178,
1110
+ "LABEL_179": 179,
1111
+ "LABEL_18": 18,
1112
+ "LABEL_180": 180,
1113
+ "LABEL_181": 181,
1114
+ "LABEL_182": 182,
1115
+ "LABEL_183": 183,
1116
+ "LABEL_184": 184,
1117
+ "LABEL_185": 185,
1118
+ "LABEL_186": 186,
1119
+ "LABEL_187": 187,
1120
+ "LABEL_188": 188,
1121
+ "LABEL_189": 189,
1122
+ "LABEL_19": 19,
1123
+ "LABEL_190": 190,
1124
+ "LABEL_191": 191,
1125
+ "LABEL_192": 192,
1126
+ "LABEL_193": 193,
1127
+ "LABEL_194": 194,
1128
+ "LABEL_195": 195,
1129
+ "LABEL_196": 196,
1130
+ "LABEL_197": 197,
1131
+ "LABEL_198": 198,
1132
+ "LABEL_199": 199,
1133
+ "LABEL_2": 2,
1134
+ "LABEL_20": 20,
1135
+ "LABEL_200": 200,
1136
+ "LABEL_201": 201,
1137
+ "LABEL_202": 202,
1138
+ "LABEL_203": 203,
1139
+ "LABEL_204": 204,
1140
+ "LABEL_205": 205,
1141
+ "LABEL_206": 206,
1142
+ "LABEL_207": 207,
1143
+ "LABEL_208": 208,
1144
+ "LABEL_209": 209,
1145
+ "LABEL_21": 21,
1146
+ "LABEL_210": 210,
1147
+ "LABEL_211": 211,
1148
+ "LABEL_212": 212,
1149
+ "LABEL_213": 213,
1150
+ "LABEL_214": 214,
1151
+ "LABEL_215": 215,
1152
+ "LABEL_216": 216,
1153
+ "LABEL_217": 217,
1154
+ "LABEL_218": 218,
1155
+ "LABEL_219": 219,
1156
+ "LABEL_22": 22,
1157
+ "LABEL_220": 220,
1158
+ "LABEL_221": 221,
1159
+ "LABEL_222": 222,
1160
+ "LABEL_223": 223,
1161
+ "LABEL_224": 224,
1162
+ "LABEL_225": 225,
1163
+ "LABEL_226": 226,
1164
+ "LABEL_227": 227,
1165
+ "LABEL_228": 228,
1166
+ "LABEL_229": 229,
1167
+ "LABEL_23": 23,
1168
+ "LABEL_230": 230,
1169
+ "LABEL_231": 231,
1170
+ "LABEL_232": 232,
1171
+ "LABEL_233": 233,
1172
+ "LABEL_234": 234,
1173
+ "LABEL_235": 235,
1174
+ "LABEL_236": 236,
1175
+ "LABEL_237": 237,
1176
+ "LABEL_238": 238,
1177
+ "LABEL_239": 239,
1178
+ "LABEL_24": 24,
1179
+ "LABEL_240": 240,
1180
+ "LABEL_241": 241,
1181
+ "LABEL_242": 242,
1182
+ "LABEL_243": 243,
1183
+ "LABEL_244": 244,
1184
+ "LABEL_245": 245,
1185
+ "LABEL_246": 246,
1186
+ "LABEL_247": 247,
1187
+ "LABEL_248": 248,
1188
+ "LABEL_249": 249,
1189
+ "LABEL_25": 25,
1190
+ "LABEL_250": 250,
1191
+ "LABEL_251": 251,
1192
+ "LABEL_252": 252,
1193
+ "LABEL_253": 253,
1194
+ "LABEL_254": 254,
1195
+ "LABEL_255": 255,
1196
+ "LABEL_256": 256,
1197
+ "LABEL_257": 257,
1198
+ "LABEL_258": 258,
1199
+ "LABEL_259": 259,
1200
+ "LABEL_26": 26,
1201
+ "LABEL_260": 260,
1202
+ "LABEL_261": 261,
1203
+ "LABEL_262": 262,
1204
+ "LABEL_263": 263,
1205
+ "LABEL_264": 264,
1206
+ "LABEL_265": 265,
1207
+ "LABEL_266": 266,
1208
+ "LABEL_267": 267,
1209
+ "LABEL_268": 268,
1210
+ "LABEL_269": 269,
1211
+ "LABEL_27": 27,
1212
+ "LABEL_270": 270,
1213
+ "LABEL_271": 271,
1214
+ "LABEL_272": 272,
1215
+ "LABEL_273": 273,
1216
+ "LABEL_274": 274,
1217
+ "LABEL_275": 275,
1218
+ "LABEL_276": 276,
1219
+ "LABEL_277": 277,
1220
+ "LABEL_278": 278,
1221
+ "LABEL_279": 279,
1222
+ "LABEL_28": 28,
1223
+ "LABEL_280": 280,
1224
+ "LABEL_281": 281,
1225
+ "LABEL_282": 282,
1226
+ "LABEL_283": 283,
1227
+ "LABEL_284": 284,
1228
+ "LABEL_285": 285,
1229
+ "LABEL_286": 286,
1230
+ "LABEL_287": 287,
1231
+ "LABEL_288": 288,
1232
+ "LABEL_289": 289,
1233
+ "LABEL_29": 29,
1234
+ "LABEL_290": 290,
1235
+ "LABEL_291": 291,
1236
+ "LABEL_292": 292,
1237
+ "LABEL_293": 293,
1238
+ "LABEL_294": 294,
1239
+ "LABEL_295": 295,
1240
+ "LABEL_296": 296,
1241
+ "LABEL_297": 297,
1242
+ "LABEL_298": 298,
1243
+ "LABEL_299": 299,
1244
+ "LABEL_3": 3,
1245
+ "LABEL_30": 30,
1246
+ "LABEL_300": 300,
1247
+ "LABEL_301": 301,
1248
+ "LABEL_302": 302,
1249
+ "LABEL_303": 303,
1250
+ "LABEL_304": 304,
1251
+ "LABEL_305": 305,
1252
+ "LABEL_306": 306,
1253
+ "LABEL_307": 307,
1254
+ "LABEL_308": 308,
1255
+ "LABEL_309": 309,
1256
+ "LABEL_31": 31,
1257
+ "LABEL_310": 310,
1258
+ "LABEL_311": 311,
1259
+ "LABEL_312": 312,
1260
+ "LABEL_313": 313,
1261
+ "LABEL_314": 314,
1262
+ "LABEL_315": 315,
1263
+ "LABEL_316": 316,
1264
+ "LABEL_317": 317,
1265
+ "LABEL_318": 318,
1266
+ "LABEL_319": 319,
1267
+ "LABEL_32": 32,
1268
+ "LABEL_320": 320,
1269
+ "LABEL_321": 321,
1270
+ "LABEL_322": 322,
1271
+ "LABEL_323": 323,
1272
+ "LABEL_324": 324,
1273
+ "LABEL_325": 325,
1274
+ "LABEL_326": 326,
1275
+ "LABEL_327": 327,
1276
+ "LABEL_328": 328,
1277
+ "LABEL_329": 329,
1278
+ "LABEL_33": 33,
1279
+ "LABEL_330": 330,
1280
+ "LABEL_331": 331,
1281
+ "LABEL_332": 332,
1282
+ "LABEL_333": 333,
1283
+ "LABEL_334": 334,
1284
+ "LABEL_335": 335,
1285
+ "LABEL_336": 336,
1286
+ "LABEL_337": 337,
1287
+ "LABEL_338": 338,
1288
+ "LABEL_339": 339,
1289
+ "LABEL_34": 34,
1290
+ "LABEL_340": 340,
1291
+ "LABEL_341": 341,
1292
+ "LABEL_342": 342,
1293
+ "LABEL_343": 343,
1294
+ "LABEL_344": 344,
1295
+ "LABEL_345": 345,
1296
+ "LABEL_346": 346,
1297
+ "LABEL_347": 347,
1298
+ "LABEL_348": 348,
1299
+ "LABEL_349": 349,
1300
+ "LABEL_35": 35,
1301
+ "LABEL_350": 350,
1302
+ "LABEL_351": 351,
1303
+ "LABEL_352": 352,
1304
+ "LABEL_353": 353,
1305
+ "LABEL_354": 354,
1306
+ "LABEL_355": 355,
1307
+ "LABEL_356": 356,
1308
+ "LABEL_357": 357,
1309
+ "LABEL_358": 358,
1310
+ "LABEL_359": 359,
1311
+ "LABEL_36": 36,
1312
+ "LABEL_360": 360,
1313
+ "LABEL_361": 361,
1314
+ "LABEL_362": 362,
1315
+ "LABEL_363": 363,
1316
+ "LABEL_364": 364,
1317
+ "LABEL_365": 365,
1318
+ "LABEL_366": 366,
1319
+ "LABEL_367": 367,
1320
+ "LABEL_368": 368,
1321
+ "LABEL_369": 369,
1322
+ "LABEL_37": 37,
1323
+ "LABEL_370": 370,
1324
+ "LABEL_371": 371,
1325
+ "LABEL_372": 372,
1326
+ "LABEL_373": 373,
1327
+ "LABEL_374": 374,
1328
+ "LABEL_375": 375,
1329
+ "LABEL_376": 376,
1330
+ "LABEL_377": 377,
1331
+ "LABEL_378": 378,
1332
+ "LABEL_379": 379,
1333
+ "LABEL_38": 38,
1334
+ "LABEL_380": 380,
1335
+ "LABEL_381": 381,
1336
+ "LABEL_382": 382,
1337
+ "LABEL_383": 383,
1338
+ "LABEL_384": 384,
1339
+ "LABEL_385": 385,
1340
+ "LABEL_386": 386,
1341
+ "LABEL_387": 387,
1342
+ "LABEL_388": 388,
1343
+ "LABEL_389": 389,
1344
+ "LABEL_39": 39,
1345
+ "LABEL_390": 390,
1346
+ "LABEL_391": 391,
1347
+ "LABEL_392": 392,
1348
+ "LABEL_393": 393,
1349
+ "LABEL_394": 394,
1350
+ "LABEL_395": 395,
1351
+ "LABEL_396": 396,
1352
+ "LABEL_397": 397,
1353
+ "LABEL_398": 398,
1354
+ "LABEL_399": 399,
1355
+ "LABEL_4": 4,
1356
+ "LABEL_40": 40,
1357
+ "LABEL_400": 400,
1358
+ "LABEL_401": 401,
1359
+ "LABEL_402": 402,
1360
+ "LABEL_403": 403,
1361
+ "LABEL_404": 404,
1362
+ "LABEL_405": 405,
1363
+ "LABEL_406": 406,
1364
+ "LABEL_407": 407,
1365
+ "LABEL_408": 408,
1366
+ "LABEL_409": 409,
1367
+ "LABEL_41": 41,
1368
+ "LABEL_410": 410,
1369
+ "LABEL_411": 411,
1370
+ "LABEL_412": 412,
1371
+ "LABEL_413": 413,
1372
+ "LABEL_414": 414,
1373
+ "LABEL_415": 415,
1374
+ "LABEL_416": 416,
1375
+ "LABEL_417": 417,
1376
+ "LABEL_418": 418,
1377
+ "LABEL_419": 419,
1378
+ "LABEL_42": 42,
1379
+ "LABEL_420": 420,
1380
+ "LABEL_421": 421,
1381
+ "LABEL_422": 422,
1382
+ "LABEL_423": 423,
1383
+ "LABEL_424": 424,
1384
+ "LABEL_425": 425,
1385
+ "LABEL_426": 426,
1386
+ "LABEL_427": 427,
1387
+ "LABEL_428": 428,
1388
+ "LABEL_429": 429,
1389
+ "LABEL_43": 43,
1390
+ "LABEL_430": 430,
1391
+ "LABEL_431": 431,
1392
+ "LABEL_432": 432,
1393
+ "LABEL_433": 433,
1394
+ "LABEL_434": 434,
1395
+ "LABEL_435": 435,
1396
+ "LABEL_436": 436,
1397
+ "LABEL_437": 437,
1398
+ "LABEL_438": 438,
1399
+ "LABEL_439": 439,
1400
+ "LABEL_44": 44,
1401
+ "LABEL_440": 440,
1402
+ "LABEL_441": 441,
1403
+ "LABEL_442": 442,
1404
+ "LABEL_443": 443,
1405
+ "LABEL_444": 444,
1406
+ "LABEL_445": 445,
1407
+ "LABEL_446": 446,
1408
+ "LABEL_447": 447,
1409
+ "LABEL_448": 448,
1410
+ "LABEL_449": 449,
1411
+ "LABEL_45": 45,
1412
+ "LABEL_450": 450,
1413
+ "LABEL_451": 451,
1414
+ "LABEL_452": 452,
1415
+ "LABEL_453": 453,
1416
+ "LABEL_454": 454,
1417
+ "LABEL_455": 455,
1418
+ "LABEL_456": 456,
1419
+ "LABEL_457": 457,
1420
+ "LABEL_458": 458,
1421
+ "LABEL_459": 459,
1422
+ "LABEL_46": 46,
1423
+ "LABEL_460": 460,
1424
+ "LABEL_461": 461,
1425
+ "LABEL_462": 462,
1426
+ "LABEL_463": 463,
1427
+ "LABEL_464": 464,
1428
+ "LABEL_465": 465,
1429
+ "LABEL_466": 466,
1430
+ "LABEL_467": 467,
1431
+ "LABEL_468": 468,
1432
+ "LABEL_469": 469,
1433
+ "LABEL_47": 47,
1434
+ "LABEL_470": 470,
1435
+ "LABEL_471": 471,
1436
+ "LABEL_472": 472,
1437
+ "LABEL_473": 473,
1438
+ "LABEL_474": 474,
1439
+ "LABEL_475": 475,
1440
+ "LABEL_476": 476,
1441
+ "LABEL_477": 477,
1442
+ "LABEL_478": 478,
1443
+ "LABEL_479": 479,
1444
+ "LABEL_48": 48,
1445
+ "LABEL_480": 480,
1446
+ "LABEL_481": 481,
1447
+ "LABEL_482": 482,
1448
+ "LABEL_483": 483,
1449
+ "LABEL_484": 484,
1450
+ "LABEL_485": 485,
1451
+ "LABEL_486": 486,
1452
+ "LABEL_487": 487,
1453
+ "LABEL_488": 488,
1454
+ "LABEL_489": 489,
1455
+ "LABEL_49": 49,
1456
+ "LABEL_490": 490,
1457
+ "LABEL_491": 491,
1458
+ "LABEL_492": 492,
1459
+ "LABEL_493": 493,
1460
+ "LABEL_494": 494,
1461
+ "LABEL_495": 495,
1462
+ "LABEL_496": 496,
1463
+ "LABEL_497": 497,
1464
+ "LABEL_498": 498,
1465
+ "LABEL_499": 499,
1466
+ "LABEL_5": 5,
1467
+ "LABEL_50": 50,
1468
+ "LABEL_500": 500,
1469
+ "LABEL_501": 501,
1470
+ "LABEL_502": 502,
1471
+ "LABEL_503": 503,
1472
+ "LABEL_504": 504,
1473
+ "LABEL_505": 505,
1474
+ "LABEL_506": 506,
1475
+ "LABEL_507": 507,
1476
+ "LABEL_508": 508,
1477
+ "LABEL_509": 509,
1478
+ "LABEL_51": 51,
1479
+ "LABEL_510": 510,
1480
+ "LABEL_511": 511,
1481
+ "LABEL_512": 512,
1482
+ "LABEL_513": 513,
1483
+ "LABEL_514": 514,
1484
+ "LABEL_515": 515,
1485
+ "LABEL_516": 516,
1486
+ "LABEL_517": 517,
1487
+ "LABEL_518": 518,
1488
+ "LABEL_519": 519,
1489
+ "LABEL_52": 52,
1490
+ "LABEL_520": 520,
1491
+ "LABEL_521": 521,
1492
+ "LABEL_522": 522,
1493
+ "LABEL_523": 523,
1494
+ "LABEL_524": 524,
1495
+ "LABEL_525": 525,
1496
+ "LABEL_526": 526,
1497
+ "LABEL_527": 527,
1498
+ "LABEL_528": 528,
1499
+ "LABEL_529": 529,
1500
+ "LABEL_53": 53,
1501
+ "LABEL_530": 530,
1502
+ "LABEL_531": 531,
1503
+ "LABEL_532": 532,
1504
+ "LABEL_533": 533,
1505
+ "LABEL_534": 534,
1506
+ "LABEL_535": 535,
1507
+ "LABEL_536": 536,
1508
+ "LABEL_537": 537,
1509
+ "LABEL_538": 538,
1510
+ "LABEL_539": 539,
1511
+ "LABEL_54": 54,
1512
+ "LABEL_540": 540,
1513
+ "LABEL_541": 541,
1514
+ "LABEL_542": 542,
1515
+ "LABEL_543": 543,
1516
+ "LABEL_544": 544,
1517
+ "LABEL_545": 545,
1518
+ "LABEL_546": 546,
1519
+ "LABEL_547": 547,
1520
+ "LABEL_548": 548,
1521
+ "LABEL_549": 549,
1522
+ "LABEL_55": 55,
1523
+ "LABEL_550": 550,
1524
+ "LABEL_551": 551,
1525
+ "LABEL_552": 552,
1526
+ "LABEL_553": 553,
1527
+ "LABEL_554": 554,
1528
+ "LABEL_555": 555,
1529
+ "LABEL_556": 556,
1530
+ "LABEL_557": 557,
1531
+ "LABEL_558": 558,
1532
+ "LABEL_559": 559,
1533
+ "LABEL_56": 56,
1534
+ "LABEL_560": 560,
1535
+ "LABEL_561": 561,
1536
+ "LABEL_562": 562,
1537
+ "LABEL_563": 563,
1538
+ "LABEL_564": 564,
1539
+ "LABEL_565": 565,
1540
+ "LABEL_566": 566,
1541
+ "LABEL_567": 567,
1542
+ "LABEL_568": 568,
1543
+ "LABEL_569": 569,
1544
+ "LABEL_57": 57,
1545
+ "LABEL_570": 570,
1546
+ "LABEL_571": 571,
1547
+ "LABEL_572": 572,
1548
+ "LABEL_573": 573,
1549
+ "LABEL_574": 574,
1550
+ "LABEL_575": 575,
1551
+ "LABEL_576": 576,
1552
+ "LABEL_577": 577,
1553
+ "LABEL_578": 578,
1554
+ "LABEL_579": 579,
1555
+ "LABEL_58": 58,
1556
+ "LABEL_580": 580,
1557
+ "LABEL_581": 581,
1558
+ "LABEL_582": 582,
1559
+ "LABEL_583": 583,
1560
+ "LABEL_584": 584,
1561
+ "LABEL_585": 585,
1562
+ "LABEL_586": 586,
1563
+ "LABEL_587": 587,
1564
+ "LABEL_588": 588,
1565
+ "LABEL_589": 589,
1566
+ "LABEL_59": 59,
1567
+ "LABEL_590": 590,
1568
+ "LABEL_591": 591,
1569
+ "LABEL_592": 592,
1570
+ "LABEL_593": 593,
1571
+ "LABEL_594": 594,
1572
+ "LABEL_595": 595,
1573
+ "LABEL_596": 596,
1574
+ "LABEL_597": 597,
1575
+ "LABEL_598": 598,
1576
+ "LABEL_599": 599,
1577
+ "LABEL_6": 6,
1578
+ "LABEL_60": 60,
1579
+ "LABEL_600": 600,
1580
+ "LABEL_601": 601,
1581
+ "LABEL_602": 602,
1582
+ "LABEL_603": 603,
1583
+ "LABEL_604": 604,
1584
+ "LABEL_605": 605,
1585
+ "LABEL_606": 606,
1586
+ "LABEL_607": 607,
1587
+ "LABEL_608": 608,
1588
+ "LABEL_609": 609,
1589
+ "LABEL_61": 61,
1590
+ "LABEL_610": 610,
1591
+ "LABEL_611": 611,
1592
+ "LABEL_612": 612,
1593
+ "LABEL_613": 613,
1594
+ "LABEL_614": 614,
1595
+ "LABEL_615": 615,
1596
+ "LABEL_616": 616,
1597
+ "LABEL_617": 617,
1598
+ "LABEL_618": 618,
1599
+ "LABEL_619": 619,
1600
+ "LABEL_62": 62,
1601
+ "LABEL_620": 620,
1602
+ "LABEL_621": 621,
1603
+ "LABEL_622": 622,
1604
+ "LABEL_623": 623,
1605
+ "LABEL_624": 624,
1606
+ "LABEL_625": 625,
1607
+ "LABEL_626": 626,
1608
+ "LABEL_627": 627,
1609
+ "LABEL_628": 628,
1610
+ "LABEL_629": 629,
1611
+ "LABEL_63": 63,
1612
+ "LABEL_630": 630,
1613
+ "LABEL_631": 631,
1614
+ "LABEL_632": 632,
1615
+ "LABEL_633": 633,
1616
+ "LABEL_634": 634,
1617
+ "LABEL_635": 635,
1618
+ "LABEL_636": 636,
1619
+ "LABEL_637": 637,
1620
+ "LABEL_638": 638,
1621
+ "LABEL_639": 639,
1622
+ "LABEL_64": 64,
1623
+ "LABEL_640": 640,
1624
+ "LABEL_641": 641,
1625
+ "LABEL_642": 642,
1626
+ "LABEL_643": 643,
1627
+ "LABEL_644": 644,
1628
+ "LABEL_645": 645,
1629
+ "LABEL_646": 646,
1630
+ "LABEL_647": 647,
1631
+ "LABEL_648": 648,
1632
+ "LABEL_649": 649,
1633
+ "LABEL_65": 65,
1634
+ "LABEL_650": 650,
1635
+ "LABEL_651": 651,
1636
+ "LABEL_652": 652,
1637
+ "LABEL_653": 653,
1638
+ "LABEL_654": 654,
1639
+ "LABEL_655": 655,
1640
+ "LABEL_656": 656,
1641
+ "LABEL_657": 657,
1642
+ "LABEL_658": 658,
1643
+ "LABEL_659": 659,
1644
+ "LABEL_66": 66,
1645
+ "LABEL_660": 660,
1646
+ "LABEL_661": 661,
1647
+ "LABEL_662": 662,
1648
+ "LABEL_663": 663,
1649
+ "LABEL_664": 664,
1650
+ "LABEL_665": 665,
1651
+ "LABEL_666": 666,
1652
+ "LABEL_667": 667,
1653
+ "LABEL_668": 668,
1654
+ "LABEL_669": 669,
1655
+ "LABEL_67": 67,
1656
+ "LABEL_670": 670,
1657
+ "LABEL_671": 671,
1658
+ "LABEL_672": 672,
1659
+ "LABEL_673": 673,
1660
+ "LABEL_674": 674,
1661
+ "LABEL_675": 675,
1662
+ "LABEL_676": 676,
1663
+ "LABEL_677": 677,
1664
+ "LABEL_678": 678,
1665
+ "LABEL_679": 679,
1666
+ "LABEL_68": 68,
1667
+ "LABEL_680": 680,
1668
+ "LABEL_681": 681,
1669
+ "LABEL_682": 682,
1670
+ "LABEL_683": 683,
1671
+ "LABEL_684": 684,
1672
+ "LABEL_685": 685,
1673
+ "LABEL_686": 686,
1674
+ "LABEL_687": 687,
1675
+ "LABEL_688": 688,
1676
+ "LABEL_689": 689,
1677
+ "LABEL_69": 69,
1678
+ "LABEL_690": 690,
1679
+ "LABEL_691": 691,
1680
+ "LABEL_692": 692,
1681
+ "LABEL_693": 693,
1682
+ "LABEL_694": 694,
1683
+ "LABEL_695": 695,
1684
+ "LABEL_696": 696,
1685
+ "LABEL_697": 697,
1686
+ "LABEL_698": 698,
1687
+ "LABEL_699": 699,
1688
+ "LABEL_7": 7,
1689
+ "LABEL_70": 70,
1690
+ "LABEL_700": 700,
1691
+ "LABEL_701": 701,
1692
+ "LABEL_702": 702,
1693
+ "LABEL_703": 703,
1694
+ "LABEL_704": 704,
1695
+ "LABEL_705": 705,
1696
+ "LABEL_706": 706,
1697
+ "LABEL_707": 707,
1698
+ "LABEL_708": 708,
1699
+ "LABEL_709": 709,
1700
+ "LABEL_71": 71,
1701
+ "LABEL_710": 710,
1702
+ "LABEL_711": 711,
1703
+ "LABEL_712": 712,
1704
+ "LABEL_713": 713,
1705
+ "LABEL_714": 714,
1706
+ "LABEL_715": 715,
1707
+ "LABEL_716": 716,
1708
+ "LABEL_717": 717,
1709
+ "LABEL_718": 718,
1710
+ "LABEL_719": 719,
1711
+ "LABEL_72": 72,
1712
+ "LABEL_720": 720,
1713
+ "LABEL_721": 721,
1714
+ "LABEL_722": 722,
1715
+ "LABEL_723": 723,
1716
+ "LABEL_724": 724,
1717
+ "LABEL_725": 725,
1718
+ "LABEL_726": 726,
1719
+ "LABEL_727": 727,
1720
+ "LABEL_728": 728,
1721
+ "LABEL_729": 729,
1722
+ "LABEL_73": 73,
1723
+ "LABEL_730": 730,
1724
+ "LABEL_731": 731,
1725
+ "LABEL_732": 732,
1726
+ "LABEL_733": 733,
1727
+ "LABEL_734": 734,
1728
+ "LABEL_735": 735,
1729
+ "LABEL_736": 736,
1730
+ "LABEL_737": 737,
1731
+ "LABEL_738": 738,
1732
+ "LABEL_739": 739,
1733
+ "LABEL_74": 74,
1734
+ "LABEL_740": 740,
1735
+ "LABEL_741": 741,
1736
+ "LABEL_742": 742,
1737
+ "LABEL_743": 743,
1738
+ "LABEL_744": 744,
1739
+ "LABEL_745": 745,
1740
+ "LABEL_746": 746,
1741
+ "LABEL_747": 747,
1742
+ "LABEL_748": 748,
1743
+ "LABEL_749": 749,
1744
+ "LABEL_75": 75,
1745
+ "LABEL_750": 750,
1746
+ "LABEL_751": 751,
1747
+ "LABEL_752": 752,
1748
+ "LABEL_753": 753,
1749
+ "LABEL_754": 754,
1750
+ "LABEL_755": 755,
1751
+ "LABEL_756": 756,
1752
+ "LABEL_757": 757,
1753
+ "LABEL_758": 758,
1754
+ "LABEL_759": 759,
1755
+ "LABEL_76": 76,
1756
+ "LABEL_760": 760,
1757
+ "LABEL_761": 761,
1758
+ "LABEL_762": 762,
1759
+ "LABEL_763": 763,
1760
+ "LABEL_764": 764,
1761
+ "LABEL_765": 765,
1762
+ "LABEL_766": 766,
1763
+ "LABEL_767": 767,
1764
+ "LABEL_768": 768,
1765
+ "LABEL_769": 769,
1766
+ "LABEL_77": 77,
1767
+ "LABEL_770": 770,
1768
+ "LABEL_771": 771,
1769
+ "LABEL_772": 772,
1770
+ "LABEL_773": 773,
1771
+ "LABEL_774": 774,
1772
+ "LABEL_775": 775,
1773
+ "LABEL_776": 776,
1774
+ "LABEL_777": 777,
1775
+ "LABEL_778": 778,
1776
+ "LABEL_779": 779,
1777
+ "LABEL_78": 78,
1778
+ "LABEL_780": 780,
1779
+ "LABEL_781": 781,
1780
+ "LABEL_782": 782,
1781
+ "LABEL_783": 783,
1782
+ "LABEL_784": 784,
1783
+ "LABEL_785": 785,
1784
+ "LABEL_786": 786,
1785
+ "LABEL_787": 787,
1786
+ "LABEL_788": 788,
1787
+ "LABEL_789": 789,
1788
+ "LABEL_79": 79,
1789
+ "LABEL_790": 790,
1790
+ "LABEL_791": 791,
1791
+ "LABEL_792": 792,
1792
+ "LABEL_793": 793,
1793
+ "LABEL_794": 794,
1794
+ "LABEL_795": 795,
1795
+ "LABEL_796": 796,
1796
+ "LABEL_797": 797,
1797
+ "LABEL_798": 798,
1798
+ "LABEL_799": 799,
1799
+ "LABEL_8": 8,
1800
+ "LABEL_80": 80,
1801
+ "LABEL_800": 800,
1802
+ "LABEL_801": 801,
1803
+ "LABEL_802": 802,
1804
+ "LABEL_803": 803,
1805
+ "LABEL_804": 804,
1806
+ "LABEL_805": 805,
1807
+ "LABEL_806": 806,
1808
+ "LABEL_807": 807,
1809
+ "LABEL_808": 808,
1810
+ "LABEL_809": 809,
1811
+ "LABEL_81": 81,
1812
+ "LABEL_810": 810,
1813
+ "LABEL_811": 811,
1814
+ "LABEL_812": 812,
1815
+ "LABEL_813": 813,
1816
+ "LABEL_814": 814,
1817
+ "LABEL_815": 815,
1818
+ "LABEL_816": 816,
1819
+ "LABEL_817": 817,
1820
+ "LABEL_818": 818,
1821
+ "LABEL_819": 819,
1822
+ "LABEL_82": 82,
1823
+ "LABEL_820": 820,
1824
+ "LABEL_821": 821,
1825
+ "LABEL_822": 822,
1826
+ "LABEL_823": 823,
1827
+ "LABEL_824": 824,
1828
+ "LABEL_825": 825,
1829
+ "LABEL_826": 826,
1830
+ "LABEL_827": 827,
1831
+ "LABEL_828": 828,
1832
+ "LABEL_829": 829,
1833
+ "LABEL_83": 83,
1834
+ "LABEL_830": 830,
1835
+ "LABEL_831": 831,
1836
+ "LABEL_832": 832,
1837
+ "LABEL_833": 833,
1838
+ "LABEL_834": 834,
1839
+ "LABEL_835": 835,
1840
+ "LABEL_836": 836,
1841
+ "LABEL_837": 837,
1842
+ "LABEL_838": 838,
1843
+ "LABEL_839": 839,
1844
+ "LABEL_84": 84,
1845
+ "LABEL_840": 840,
1846
+ "LABEL_841": 841,
1847
+ "LABEL_842": 842,
1848
+ "LABEL_843": 843,
1849
+ "LABEL_844": 844,
1850
+ "LABEL_845": 845,
1851
+ "LABEL_846": 846,
1852
+ "LABEL_847": 847,
1853
+ "LABEL_848": 848,
1854
+ "LABEL_849": 849,
1855
+ "LABEL_85": 85,
1856
+ "LABEL_850": 850,
1857
+ "LABEL_851": 851,
1858
+ "LABEL_852": 852,
1859
+ "LABEL_853": 853,
1860
+ "LABEL_854": 854,
1861
+ "LABEL_855": 855,
1862
+ "LABEL_856": 856,
1863
+ "LABEL_857": 857,
1864
+ "LABEL_858": 858,
1865
+ "LABEL_859": 859,
1866
+ "LABEL_86": 86,
1867
+ "LABEL_860": 860,
1868
+ "LABEL_861": 861,
1869
+ "LABEL_862": 862,
1870
+ "LABEL_863": 863,
1871
+ "LABEL_864": 864,
1872
+ "LABEL_865": 865,
1873
+ "LABEL_866": 866,
1874
+ "LABEL_867": 867,
1875
+ "LABEL_868": 868,
1876
+ "LABEL_869": 869,
1877
+ "LABEL_87": 87,
1878
+ "LABEL_870": 870,
1879
+ "LABEL_871": 871,
1880
+ "LABEL_872": 872,
1881
+ "LABEL_873": 873,
1882
+ "LABEL_874": 874,
1883
+ "LABEL_875": 875,
1884
+ "LABEL_876": 876,
1885
+ "LABEL_877": 877,
1886
+ "LABEL_878": 878,
1887
+ "LABEL_879": 879,
1888
+ "LABEL_88": 88,
1889
+ "LABEL_880": 880,
1890
+ "LABEL_881": 881,
1891
+ "LABEL_882": 882,
1892
+ "LABEL_883": 883,
1893
+ "LABEL_884": 884,
1894
+ "LABEL_885": 885,
1895
+ "LABEL_886": 886,
1896
+ "LABEL_887": 887,
1897
+ "LABEL_888": 888,
1898
+ "LABEL_889": 889,
1899
+ "LABEL_89": 89,
1900
+ "LABEL_890": 890,
1901
+ "LABEL_891": 891,
1902
+ "LABEL_892": 892,
1903
+ "LABEL_893": 893,
1904
+ "LABEL_894": 894,
1905
+ "LABEL_895": 895,
1906
+ "LABEL_896": 896,
1907
+ "LABEL_897": 897,
1908
+ "LABEL_898": 898,
1909
+ "LABEL_899": 899,
1910
+ "LABEL_9": 9,
1911
+ "LABEL_90": 90,
1912
+ "LABEL_900": 900,
1913
+ "LABEL_901": 901,
1914
+ "LABEL_902": 902,
1915
+ "LABEL_903": 903,
1916
+ "LABEL_904": 904,
1917
+ "LABEL_905": 905,
1918
+ "LABEL_906": 906,
1919
+ "LABEL_907": 907,
1920
+ "LABEL_908": 908,
1921
+ "LABEL_909": 909,
1922
+ "LABEL_91": 91,
1923
+ "LABEL_910": 910,
1924
+ "LABEL_911": 911,
1925
+ "LABEL_912": 912,
1926
+ "LABEL_913": 913,
1927
+ "LABEL_914": 914,
1928
+ "LABEL_915": 915,
1929
+ "LABEL_916": 916,
1930
+ "LABEL_917": 917,
1931
+ "LABEL_918": 918,
1932
+ "LABEL_919": 919,
1933
+ "LABEL_92": 92,
1934
+ "LABEL_920": 920,
1935
+ "LABEL_921": 921,
1936
+ "LABEL_922": 922,
1937
+ "LABEL_923": 923,
1938
+ "LABEL_924": 924,
1939
+ "LABEL_925": 925,
1940
+ "LABEL_926": 926,
1941
+ "LABEL_927": 927,
1942
+ "LABEL_928": 928,
1943
+ "LABEL_929": 929,
1944
+ "LABEL_93": 93,
1945
+ "LABEL_930": 930,
1946
+ "LABEL_931": 931,
1947
+ "LABEL_932": 932,
1948
+ "LABEL_933": 933,
1949
+ "LABEL_934": 934,
1950
+ "LABEL_935": 935,
1951
+ "LABEL_936": 936,
1952
+ "LABEL_937": 937,
1953
+ "LABEL_938": 938,
1954
+ "LABEL_939": 939,
1955
+ "LABEL_94": 94,
1956
+ "LABEL_940": 940,
1957
+ "LABEL_941": 941,
1958
+ "LABEL_942": 942,
1959
+ "LABEL_943": 943,
1960
+ "LABEL_944": 944,
1961
+ "LABEL_945": 945,
1962
+ "LABEL_946": 946,
1963
+ "LABEL_947": 947,
1964
+ "LABEL_948": 948,
1965
+ "LABEL_949": 949,
1966
+ "LABEL_95": 95,
1967
+ "LABEL_950": 950,
1968
+ "LABEL_951": 951,
1969
+ "LABEL_952": 952,
1970
+ "LABEL_953": 953,
1971
+ "LABEL_954": 954,
1972
+ "LABEL_955": 955,
1973
+ "LABEL_956": 956,
1974
+ "LABEL_957": 957,
1975
+ "LABEL_958": 958,
1976
+ "LABEL_959": 959,
1977
+ "LABEL_96": 96,
1978
+ "LABEL_960": 960,
1979
+ "LABEL_961": 961,
1980
+ "LABEL_962": 962,
1981
+ "LABEL_963": 963,
1982
+ "LABEL_964": 964,
1983
+ "LABEL_965": 965,
1984
+ "LABEL_966": 966,
1985
+ "LABEL_967": 967,
1986
+ "LABEL_968": 968,
1987
+ "LABEL_969": 969,
1988
+ "LABEL_97": 97,
1989
+ "LABEL_970": 970,
1990
+ "LABEL_971": 971,
1991
+ "LABEL_972": 972,
1992
+ "LABEL_973": 973,
1993
+ "LABEL_974": 974,
1994
+ "LABEL_975": 975,
1995
+ "LABEL_976": 976,
1996
+ "LABEL_977": 977,
1997
+ "LABEL_978": 978,
1998
+ "LABEL_979": 979,
1999
+ "LABEL_98": 98,
2000
+ "LABEL_980": 980,
2001
+ "LABEL_981": 981,
2002
+ "LABEL_982": 982,
2003
+ "LABEL_983": 983,
2004
+ "LABEL_984": 984,
2005
+ "LABEL_985": 985,
2006
+ "LABEL_986": 986,
2007
+ "LABEL_987": 987,
2008
+ "LABEL_988": 988,
2009
+ "LABEL_989": 989,
2010
+ "LABEL_99": 99,
2011
+ "LABEL_990": 990,
2012
+ "LABEL_991": 991,
2013
+ "LABEL_992": 992,
2014
+ "LABEL_993": 993,
2015
+ "LABEL_994": 994,
2016
+ "LABEL_995": 995,
2017
+ "LABEL_996": 996,
2018
+ "LABEL_997": 997,
2019
+ "LABEL_998": 998,
2020
+ "LABEL_999": 999
2021
+ },
2022
+ "layer_norm_eps": 1e-06,
2023
+ "model_type": "ortho_vit",
2024
+ "num_attention_heads": 12,
2025
+ "num_channels": 3,
2026
+ "num_hidden_layers": 12,
2027
+ "orthogonal_method": "channel",
2028
+ "patch_size": 16,
2029
+ "pooler_act": "tanh",
2030
+ "pooler_output_size": 768,
2031
+ "qkv_bias": true,
2032
+ "residual_connection": "orthogonal",
2033
+ "residual_connection_dim": -1,
2034
+ "residual_eps": 1e-06,
2035
+ "residual_perturbation": null,
2036
+ "torch_dtype": "float32",
2037
+ "transformers_version": "4.52.3"
2038
+ }
configuration_ortho_vit.py ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2021 Google AI, Ross Wightman, The HuggingFace Inc. team. All rights reserved.
3
+ # Copyright 2025 The Authors of Revisiting Residual Connections. All rights reserved.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ """ OrthoViT model configuration"""
17
+
18
+ from transformers.models.vit.configuration_vit import ViTConfig
19
+ from transformers.utils import logging
20
+
21
+
22
+ logger = logging.get_logger(__name__)
23
+
24
+ class OrthoViTConfig(ViTConfig):
25
+ r"""
26
+ This is the configuration class to store the configuration of an [`OrthoViTModel`].
27
+ It is used to instantiate a ViT model with orthogonal residual connections
28
+ according to the specified arguments, defining the model architecture. Instantiating a
29
+ configuration with the defaults will yield a similar configuration to that of
30
+ the ViT-base model.
31
+
32
+ Configuration objects inherit from [`ViTConfig`] and can be used to control the model outputs.
33
+ Read the documentation from [`ViTConfig`] for more information.
34
+
35
+ Args:
36
+ residual_connection (`str`, *optional*, defaults to `"linear"`):
37
+ The type of residual connection to use. Can be "linear" or "orthogonal".
38
+ orthogonal_method (`str`, *optional*, defaults to `"channel"`):
39
+ The method for orthogonalization if `residual_connection` is "orthogonal".
40
+ Can be "channel" or "global". For ViT, "channel" is typically used for token embeddings.
41
+ residual_connection_dim (`int`, *optional*, defaults to -1):
42
+ The dimension along which to compute orthogonality. Defaults to -1 (last dimension).
43
+ residual_eps (`float`, *optional*, defaults to 1e-6):
44
+ Epsilon value for numerical stability in orthogonalization.
45
+ residual_perturbation (`float`, *optional*, defaults to `None`):
46
+ Magnitude of random perturbation to add to the module output before connection.
47
+
48
+ Example:
49
+
50
+ ```python
51
+ >>> from modeling_ortho_vit import OrthoViTModel
52
+ >>> from configuration_ortho_vit import OrthoViTConfig
53
+
54
+ >>> # Initializing a ViT-base style configuration with orthogonal connections
55
+ >>> configuration = OrthoViTConfig(residual_connection="orthogonal")
56
+
57
+ >>> # Initializing a model (with random weights) from the ViT-base style configuration
58
+ >>> model = OrthoViTModel(configuration)
59
+
60
+ >>> # Accessing the model configuration
61
+ >>> configuration = model.config
62
+ ```"""
63
+ model_type = "ortho_vit"
64
+
65
+ def __init__(
66
+ self,
67
+ residual_connection="linear",
68
+ orthogonal_method="channel", # For ViT, 'channel' typically means along the hidden_dim
69
+ residual_connection_dim=-1,
70
+ residual_eps=1e-6,
71
+ residual_perturbation=None,
72
+ elementwise_affine_ln=False, # To match user's OrthoBlock norm1/norm2
73
+ **kwargs,
74
+ ):
75
+ super().__init__(**kwargs)
76
+ self.residual_connection = residual_connection
77
+ self.orthogonal_method = orthogonal_method
78
+ self.residual_connection_dim = residual_connection_dim
79
+ self.residual_eps = residual_eps
80
+ self.residual_perturbation = residual_perturbation
81
+ self.elementwise_affine_ln = elementwise_affine_ln # For ViTLayer norms
82
+
83
+ @property
84
+ def residual_kwargs(self) -> dict:
85
+ # This property can be used by the model to easily access all residual connection parameters
86
+ return dict(
87
+ method=self.residual_connection,
88
+ orthogonal_method=self.orthogonal_method,
89
+ dim=self.residual_connection_dim,
90
+ perturbation=self.residual_perturbation,
91
+ # eps is handled via a registered buffer in the layer
92
+ )
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a0d99e8aebb9719333f101b00f1110d881d3e084c80afbf8ca96c45891449b0a
3
+ size 346141064
modeling_ortho_vit.py ADDED
@@ -0,0 +1,455 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2021 Google AI, Ross Wightman, The HuggingFace Inc. team. All rights reserved.
3
+ # Copyright 2025 The Authors of Revisiting Residual Connections. All rights reserved.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ """PyTorch OrthoViT model.
17
+ From Revisiting Residual Connections: Orthogonal Residual Connections for Vision Transformers.
18
+ preprint arXiv:2505.11881
19
+
20
+ Authors: Giyeong Oh, Woohyun Cho, Siyeol Kim, Suhwan Choi, Younjae Yu
21
+ """
22
+
23
+ import collections.abc
24
+ import math
25
+ from typing import Dict, List, Optional, Set, Tuple, Union
26
+
27
+ import torch
28
+ import torch.utils.checkpoint
29
+ from torch import nn
30
+ from torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss
31
+
32
+ from transformers.activations import ACT2FN
33
+ from transformers.modeling_outputs import (
34
+ BaseModelOutput,
35
+ BaseModelOutputWithPooling,
36
+ ImageClassifierOutput,
37
+ )
38
+ from transformers.modeling_utils import PreTrainedModel
39
+ from transformers.utils import logging, auto_docstring
40
+ from transformers.models.vit.modeling_vit import ViTEmbeddings, ViTPatchEmbeddings, ViTSelfAttention, ViTSelfOutput, ViTAttention, ViTIntermediate, ViTPooler # Use HF implementations for these
41
+
42
+ # Assuming connect.py is in the same directory
43
+ # from .connect import connect # For use as a package
44
+ # For standalone script, you might need to adjust import path or ensure connect.py is findable
45
+ logger = logging.get_logger(__name__)
46
+ try:
47
+ from .residual import connect
48
+ except ImportError:
49
+ logger.warning("residual.py not found, using fallback linear connect function.")
50
+ def connect(x, f_x, *args, **kwargs): # Linear connection fallback
51
+ """
52
+ Fallback connection function if connect.py is not available.
53
+ This will simply add the input x to the function output f_x.
54
+ This is a simple linear connection, not orthogonal.
55
+ """
56
+ return x + f_x
57
+
58
+ from .configuration_ortho_vit import OrthoViTConfig # Changed from ViTConfig
59
+
60
+
61
+ logger = logging.get_logger(__name__)
62
+
63
+ _CONFIG_FOR_DOC = "OrthoViTConfig"
64
+
65
+ # Copied from transformers.models.vit.modeling_vit.ViTOutput
66
+ # with the residual connection modified to use the `connect` function.
67
+ class OrthoViTOutput(nn.Module):
68
+ def __init__(self, config: OrthoViTConfig) -> None:
69
+ super().__init__()
70
+ self.dense = nn.Linear(config.intermediate_size, config.hidden_size)
71
+ self.dropout = nn.Dropout(config.hidden_dropout_prob)
72
+ # Orthogonal connection parameters are stored in config and passed to connect
73
+ self.config = config
74
+ # Register buffer for eps, ensuring it's on the correct device and non-persistent
75
+ self.register_buffer("residual_eps", torch.tensor([config.residual_eps], dtype=torch.float32), persistent=False)
76
+
77
+
78
+ def forward(self, hidden_states: torch.Tensor, input_tensor: torch.Tensor, residual_input: torch.Tensor) -> torch.Tensor:
79
+ hidden_states = self.dense(hidden_states)
80
+ hidden_states = self.dropout(hidden_states)
81
+
82
+ # Use the connect function for the residual connection
83
+ # The 'input_tensor' to ViTOutput is the output of the intermediate layer.
84
+ # The 'residual_input' is the output of the attention block (hidden_states before layernorm_after).
85
+ hidden_states = connect(
86
+ x=residual_input,
87
+ f_x=hidden_states,
88
+ eps=self.residual_eps,
89
+ **self.config.residual_kwargs
90
+ )
91
+ return hidden_states
92
+
93
+ class OrthoViTLayer(nn.Module):
94
+ """This corresponds to the Block class in the timm implementation."""
95
+
96
+ def __init__(self, config: OrthoViTConfig) -> None:
97
+ super().__init__()
98
+ self.chunk_size_feed_forward = config.chunk_size_feed_forward
99
+ self.seq_len_dim = 1
100
+ self.attention = ViTAttention(config) # Standard HF ViTAttention
101
+ self.intermediate = ViTIntermediate(config) # Standard HF ViTIntermediate
102
+ # self.output = ViTOutput(config) # Standard HF ViTOutput
103
+ self.output = OrthoViTOutput(config) # Use OrthoViTOutput for the second residual connection
104
+
105
+ self.layernorm_before = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps, elementwise_affine=config.elementwise_affine_ln)
106
+ self.layernorm_after = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps, elementwise_affine=config.elementwise_affine_ln)
107
+ self.config = config
108
+ # Register buffer for eps, ensuring it's on the correct device and non-persistent
109
+ self.register_buffer("residual_eps", torch.tensor([config.residual_eps], dtype=torch.float32), persistent=False)
110
+ self.residual_kwargs = self.config.residual_kwargs # Use the config's residual_kwargs
111
+
112
+
113
+ def forward(
114
+ self,
115
+ hidden_states: torch.Tensor,
116
+ head_mask: Optional[torch.Tensor] = None,
117
+ output_attentions: bool = False,
118
+ ) -> Union[Tuple[torch.Tensor, torch.Tensor], Tuple[torch.Tensor]]:
119
+
120
+ # Input to Attention block
121
+ normed_hidden_states = self.layernorm_before(hidden_states)
122
+ self_attention_outputs = self.attention(
123
+ normed_hidden_states,
124
+ head_mask,
125
+ output_attentions=output_attentions,
126
+ )
127
+ attention_output = self_attention_outputs[0] # Output of ViTAttention (includes SelfAttention + SelfOutput)
128
+ outputs = self_attention_outputs[1:] # add self attentions if we output attention weights
129
+
130
+ # First residual connection (after Attention)
131
+ # The `connect` function expects the module output (f_x) and the stream input (x)
132
+ # Here, hidden_states is x, and attention_output is f_x from the attention block
133
+ hidden_states = connect(
134
+ x=hidden_states,
135
+ f_x=attention_output,
136
+ eps=self.residual_eps, # Use the buffer
137
+ **self.residual_kwargs
138
+ )
139
+
140
+ # MLP block
141
+ # In ViT, layernorm is also applied after self-attention (and first residual)
142
+ # This `hidden_states` is now `x_{n+1}` from the attention block
143
+ mlp_input = self.layernorm_after(hidden_states)
144
+ intermediate_output = self.intermediate(mlp_input)
145
+
146
+ # Second residual connection (after MLP) is handled by OrthoViTOutput
147
+ # `hidden_states` is the residual stream input to the MLP's residual connection
148
+ # `intermediate_output` is the direct output of the MLP's main path (before adding to residual)
149
+ layer_output = self.output(intermediate_output, mlp_input, hidden_states) # mlp_input here is just for consistency with ViTOutput's original signature, OrthoViTOutput will use residual_input
150
+
151
+ outputs = (layer_output,) + outputs
152
+
153
+ return outputs
154
+
155
+
156
+ class OrthoViTEncoder(nn.Module):
157
+ def __init__(self, config: OrthoViTConfig) -> None:
158
+ super().__init__()
159
+ self.config = config
160
+ self.layer = nn.ModuleList([OrthoViTLayer(config) for _ in range(config.num_hidden_layers)]) # Use OrthoViTLayer
161
+ self.gradient_checkpointing = False
162
+
163
+ def forward(
164
+ self,
165
+ hidden_states: torch.Tensor,
166
+ head_mask: Optional[torch.Tensor] = None,
167
+ output_attentions: bool = False,
168
+ output_hidden_states: bool = False,
169
+ return_dict: bool = True,
170
+ ) -> Union[tuple, BaseModelOutput]:
171
+ all_hidden_states = () if output_hidden_states else None
172
+ all_self_attentions = () if output_attentions else None
173
+
174
+ for i, layer_module in enumerate(self.layer):
175
+ if output_hidden_states:
176
+ all_hidden_states = all_hidden_states + (hidden_states,)
177
+
178
+ layer_head_mask = head_mask[i] if head_mask is not None else None
179
+
180
+ if self.gradient_checkpointing and self.training:
181
+ layer_outputs = self._gradient_checkpointing_func(
182
+ layer_module.__call__,
183
+ hidden_states,
184
+ layer_head_mask,
185
+ output_attentions,
186
+ )
187
+ else:
188
+ layer_outputs = layer_module(hidden_states, layer_head_mask, output_attentions)
189
+
190
+ hidden_states = layer_outputs[0]
191
+
192
+ if output_attentions:
193
+ all_self_attentions = all_self_attentions + (layer_outputs[1],)
194
+
195
+ if output_hidden_states:
196
+ all_hidden_states = all_hidden_states + (hidden_states,)
197
+
198
+ if not return_dict:
199
+ return tuple(v for v in [hidden_states, all_hidden_states, all_self_attentions] if v is not None)
200
+ return BaseModelOutput(
201
+ last_hidden_state=hidden_states,
202
+ hidden_states=all_hidden_states,
203
+ attentions=all_self_attentions,
204
+ )
205
+
206
+ # @add_start_docstrings(
207
+ # "The bare ViT MAE transformer outputting raw hidden-states without any specific head on top.",
208
+ # # VIT_START_DOCSTRING, # OrthoViT is custom
209
+ # )
210
+ # @auto_docstring
211
+ class OrthoViTPreTrainedModel(PreTrainedModel): # Copied from ViTPreTrainedModel
212
+ config_class = OrthoViTConfig # Use OrthoViTConfig
213
+ base_model_prefix = "vit"
214
+ main_input_name = "pixel_values"
215
+ supports_gradient_checkpointing = True
216
+ _no_split_modules = ["ViTEmbeddings", "OrthoViTLayer"] # Use OrthoViTLayer
217
+ _supports_sdpa = True # Inherit from ViT
218
+ _supports_flash_attn_2 = True # Inherit from ViT
219
+
220
+
221
+ def _init_weights(self, module: Union[nn.Linear, nn.Conv2d, nn.LayerNorm]) -> None:
222
+ """Initialize the weights"""
223
+ if isinstance(module, (nn.Linear, nn.Conv2d)):
224
+ # Upcast the input in `fp32` and cast it back to desired `dtype` to avoid
225
+ # `trunc_normal_cpu` not implemented in `half` issues
226
+ module.weight.data = nn.init.trunc_normal_(
227
+ module.weight.data.to(torch.float32), mean=0.0, std=self.config.initializer_range
228
+ ).to(module.weight.dtype)
229
+ if module.bias is not None:
230
+ module.bias.data.zero_()
231
+ elif isinstance(module, nn.LayerNorm):
232
+ if module.elementwise_affine: # Only init if affine
233
+ module.bias.data.zero_()
234
+ module.weight.data.fill_(1.0)
235
+ elif isinstance(module, ViTEmbeddings): # Standard ViTEmbeddings init
236
+ module.position_embeddings.data = nn.init.trunc_normal_(
237
+ module.position_embeddings.data.to(torch.float32),
238
+ mean=0.0,
239
+ std=self.config.initializer_range,
240
+ ).to(module.position_embeddings.dtype)
241
+
242
+ module.cls_token.data = nn.init.trunc_normal_(
243
+ module.cls_token.data.to(torch.float32),
244
+ mean=0.0,
245
+ std=self.config.initializer_range,
246
+ ).to(module.cls_token.dtype)
247
+
248
+ VIT_START_DOCSTRING = r"""
249
+ This model is a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass. Use
250
+ it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
251
+ behavior.
252
+
253
+ Parameters:
254
+ config ([`OrthoViTConfig`]): Model configuration class with all the parameters of the model.
255
+ Initializing with a config file does not load the weights associated with the model, only the
256
+ configuration. Check out the [`~PreTrainedModel.from_pretrained`] method to load the model weights.
257
+ """
258
+
259
+ VIT_INPUTS_DOCSTRING = r"""
260
+ Args:
261
+ pixel_values (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`):
262
+ Pixel values. Pixel values can be obtained using [`AutoImageProcessor`]. See
263
+ [`ViTImageProcessor.__call__`] for details.
264
+
265
+ head_mask (`torch.FloatTensor` of shape `(num_heads,)` or `(num_layers, num_heads)`, *optional*):
266
+ Mask to nullify selected heads of the self-attention modules. Mask values selected in `[0, 1]`:
267
+
268
+ - 1 indicates the head is **not masked**,
269
+ - 0 indicates the head is **masked**.
270
+
271
+ output_attentions (`bool`, *optional*):
272
+ Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned
273
+ tensors for more detail.
274
+ output_hidden_states (`bool`, *optional*):
275
+ Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for
276
+ more detail.
277
+ interpolate_pos_encoding (`bool`, *optional*):
278
+ Whether to interpolate the positional encoding if the input image resolution is different from the one
279
+ used during pre-training.
280
+ return_dict (`bool`, *optional*):
281
+ Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
282
+ """
283
+
284
+ # @add_start_docstrings(
285
+ # "The bare OrthoViT transformer outputting raw hidden-states without any specific head on top.",
286
+ # VIT_START_DOCSTRING,
287
+ # )
288
+ # @auto_docstring
289
+ class OrthoViTModel(OrthoViTPreTrainedModel):
290
+ def __init__(self, config: OrthoViTConfig, add_pooling_layer: bool = True, use_mask_token: bool = False):
291
+ super().__init__(config)
292
+ self.config = config
293
+
294
+ self.embeddings = ViTEmbeddings(config, use_mask_token=use_mask_token)
295
+ self.encoder = OrthoViTEncoder(config) # Use OrthoViTEncoder
296
+
297
+ self.layernorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps) # No affine
298
+ self.pooler = ViTPooler(config) if add_pooling_layer else None
299
+
300
+ # Initialize weights and apply final processing
301
+ self.post_init()
302
+
303
+ def get_input_embeddings(self) -> ViTPatchEmbeddings:
304
+ return self.embeddings.patch_embeddings
305
+
306
+ def _prune_heads(self, heads_to_prune: Dict[int, List[int]]) -> None:
307
+ """
308
+ Prunes heads of the model. heads_to_prune: dict of {layer_num: list of heads to prune in this layer} See base
309
+ class PreTrainedModel
310
+ """
311
+ for layer, heads in heads_to_prune.items():
312
+ self.encoder.layer[layer].attention.prune_heads(heads)
313
+
314
+ # @add_start_docstrings_to_model_forward(VIT_INPUTS_DOCSTRING)
315
+ # @replace_return_docstrings(output_type=BaseModelOutputWithPooling, config_class=_CONFIG_FOR_DOC)
316
+ # @auto_docstring
317
+ def forward(
318
+ self,
319
+ pixel_values: Optional[torch.Tensor] = None,
320
+ bool_masked_pos: Optional[torch.BoolTensor] = None, # For MAE
321
+ head_mask: Optional[torch.Tensor] = None,
322
+ output_attentions: Optional[bool] = None,
323
+ output_hidden_states: Optional[bool] = None,
324
+ interpolate_pos_encoding: Optional[bool] = None,
325
+ return_dict: Optional[bool] = None,
326
+ ) -> Union[Tuple, BaseModelOutputWithPooling]:
327
+ output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions
328
+ output_hidden_states = (
329
+ output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states
330
+ )
331
+ return_dict = return_dict if return_dict is not None else self.config.use_return_dict
332
+
333
+ if pixel_values is None:
334
+ raise ValueError("You have to specify pixel_values")
335
+
336
+ head_mask = self.get_head_mask(head_mask, self.config.num_hidden_layers)
337
+
338
+ expected_dtype = self.embeddings.patch_embeddings.projection.weight.dtype
339
+ if pixel_values.dtype != expected_dtype:
340
+ pixel_values = pixel_values.to(expected_dtype)
341
+
342
+ embedding_output = self.embeddings(
343
+ pixel_values, bool_masked_pos=bool_masked_pos, interpolate_pos_encoding=interpolate_pos_encoding
344
+ )
345
+
346
+ encoder_outputs = self.encoder(
347
+ embedding_output,
348
+ head_mask=head_mask,
349
+ output_attentions=output_attentions,
350
+ output_hidden_states=output_hidden_states,
351
+ return_dict=return_dict,
352
+ )
353
+ sequence_output = encoder_outputs[0]
354
+ sequence_output = self.layernorm(sequence_output) # Final LayerNorm
355
+ pooled_output = self.pooler(sequence_output) if self.pooler is not None else None
356
+
357
+ if not return_dict:
358
+ head_outputs = (sequence_output, pooled_output) if pooled_output is not None else (sequence_output,)
359
+ return head_outputs + encoder_outputs[1:]
360
+
361
+ return BaseModelOutputWithPooling(
362
+ last_hidden_state=sequence_output,
363
+ pooler_output=pooled_output,
364
+ hidden_states=encoder_outputs.hidden_states,
365
+ attentions=encoder_outputs.attentions,
366
+ )
367
+
368
+ # @auto_docstring(
369
+ # """
370
+ # OrthoViT Model transformer with an image classification head on top (a linear layer on top of the final hidden state of
371
+ # the [CLS] token) e.g. for ImageNet.
372
+ # """
373
+ # )
374
+ class OrthoViTForImageClassification(OrthoViTPreTrainedModel):
375
+ def __init__(self, config: OrthoViTConfig) -> None:
376
+ super().__init__(config)
377
+
378
+ self.num_labels = config.num_labels
379
+ self.vit = OrthoViTModel(config, add_pooling_layer=False) # Use OrthoViTModel
380
+
381
+ # Classifier head (standard HF: just a Linear layer)
382
+ # The user's original classifier was nn.Sequential(nn.LayerNorm(dim), nn.Linear(dim, num_classes))
383
+ # The OrthoViTModel's output (CLS token) is already layernormed by self.vit.layernorm.
384
+ # So, if that self.vit.layernorm corresponds to the user's classifier.0 (LayerNorm),
385
+ # then this classifier head should just be Linear.
386
+ # If an *additional* LN is needed on the CLS token, this needs to be nn.Sequential.
387
+ # For now, assume vit.layernorm covers the user's classifier.0.
388
+ self.classifier = nn.Linear(config.hidden_size, config.num_labels) if config.num_labels > 0 else nn.Identity()
389
+
390
+ # Initialize weights and apply final processing
391
+ self.post_init()
392
+
393
+ # @auto_docstring
394
+ def forward(
395
+ self,
396
+ pixel_values: Optional[torch.Tensor] = None,
397
+ head_mask: Optional[torch.Tensor] = None,
398
+ labels: Optional[torch.Tensor] = None,
399
+ output_attentions: Optional[bool] = None,
400
+ output_hidden_states: Optional[bool] = None,
401
+ interpolate_pos_encoding: Optional[bool] = None,
402
+ return_dict: Optional[bool] = None,
403
+ ) -> Union[Tuple, ImageClassifierOutput]:
404
+ return_dict = return_dict if return_dict is not None else self.config.use_return_dict
405
+
406
+ outputs = self.vit(
407
+ pixel_values,
408
+ head_mask=head_mask,
409
+ output_attentions=output_attentions,
410
+ output_hidden_states=output_hidden_states,
411
+ interpolate_pos_encoding=interpolate_pos_encoding,
412
+ return_dict=return_dict,
413
+ )
414
+
415
+ sequence_output = outputs[0]
416
+ # Takes the CLS token representation for classification
417
+ logits = self.classifier(sequence_output[:, 0, :])
418
+
419
+
420
+ loss = None
421
+ if labels is not None:
422
+ labels = labels.to(logits.device)
423
+ if self.config.problem_type is None:
424
+ if self.num_labels == 1:
425
+ self.config.problem_type = "regression"
426
+ elif self.num_labels > 1 and (labels.dtype == torch.long or labels.dtype == torch.int):
427
+ self.config.problem_type = "single_label_classification"
428
+ else:
429
+ self.config.problem_type = "multi_label_classification"
430
+
431
+ if self.config.problem_type == "regression":
432
+ loss_fct = MSELoss()
433
+ if self.num_labels == 1:
434
+ loss = loss_fct(logits.squeeze(), labels.squeeze())
435
+ else:
436
+ loss = loss_fct(logits, labels)
437
+ elif self.config.problem_type == "single_label_classification":
438
+ loss_fct = CrossEntropyLoss()
439
+ loss = loss_fct(logits.view(-1, self.num_labels), labels.view(-1))
440
+ elif self.config.problem_type == "multi_label_classification":
441
+ loss_fct = BCEWithLogitsLoss()
442
+ loss = loss_fct(logits, labels)
443
+
444
+ if not return_dict:
445
+ output = (logits,) + outputs[1:]
446
+ return ((loss,) + output) if loss is not None else output
447
+
448
+ return ImageClassifierOutput(
449
+ loss=loss,
450
+ logits=logits,
451
+ hidden_states=outputs.hidden_states,
452
+ attentions=outputs.attentions,
453
+ )
454
+
455
+ __all__ = ["OrthoViTConfig", "OrthoViTModel", "OrthoViTForImageClassification", "OrthoViTPreTrainedModel"]
residual.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+
3
+ def _identity(x: torch.Tensor, f_x: torch.Tensor) -> torch.Tensor:
4
+ """
5
+ linear residual connection
6
+ x : residual stream
7
+ f_x : attention/MLP/conv(if channel-wise) output
8
+ """
9
+ return f_x
10
+
11
+ def _orthogonal_channel(x: torch.Tensor, f_x: torch.Tensor, dim: int, eps: float) -> torch.Tensor:
12
+ """
13
+ orthogonal residual connection
14
+ x : residual stream
15
+ f_x : attention/MLP/conv(if channel-wise) output
16
+ """
17
+ dot = (x * f_x).sum(dim, keepdim=True)
18
+ norm_x2 = (x * x ).sum(dim, keepdim=True) + eps
19
+ scale = (dot / norm_x2).to(x.dtype) # for amp
20
+ proj_out = scale * x
21
+ return f_x - proj_out
22
+
23
+ def _orthogonal_global(x: torch.Tensor, f_x: torch.Tensor, dim: int, eps: float) -> torch.Tensor:
24
+ """
25
+ orthogonal residual connection
26
+ x : residual stream
27
+ f_x : conv output
28
+ """
29
+ original_shape = x.shape
30
+ positive_dim = dim if dim >= 0 else len(original_shape) + dim
31
+
32
+ x_view = x.flatten(dim) # [B, CHW...]
33
+ f_view = f_x.flatten(dim) # same
34
+ dot = (x_view * f_view).sum(dim=dim, keepdim=True) # [B,1]
35
+ norm_sq = (x_view * x_view).sum(dim=dim, keepdim=True) + eps
36
+
37
+ scale = (dot / norm_sq).to(x.dtype) # for amp
38
+ unsqueeze_times = len(original_shape) - positive_dim - 1
39
+ for _ in range(unsqueeze_times):
40
+ scale = scale.unsqueeze(-1)
41
+ proj_out = scale * x # broadcast
42
+ return f_x - proj_out
43
+
44
+ def connect(x, f_x, *,
45
+ method="linear", orthogonal_method="global",
46
+ dim=-1, eps=1e-6, perturbation=None):
47
+ if perturbation is not None:
48
+ raise NotImplementedError("perturbation is not implemented yet")
49
+ if method == "linear":
50
+ return x + _identity(x, f_x)
51
+ elif method == "orthogonal":
52
+ if orthogonal_method == "global":
53
+ return x + _orthogonal_global(x, f_x, dim, eps)
54
+ elif orthogonal_method == "channel":
55
+ return x + _orthogonal_channel(x, f_x, dim, eps)
56
+ else:
57
+ raise ValueError(f"unknown orthogonal method: {method}")
58
+ else:
59
+ raise ValueError(f"unknown connect method: {method}")
60
+