birder 0.3.3__py3-none-any.whl → 0.4.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. birder/adversarial/base.py +1 -1
  2. birder/adversarial/simba.py +4 -4
  3. birder/common/cli.py +1 -1
  4. birder/common/fs_ops.py +13 -13
  5. birder/common/lib.py +2 -2
  6. birder/common/masking.py +3 -3
  7. birder/common/training_cli.py +24 -2
  8. birder/common/training_utils.py +28 -4
  9. birder/data/collators/detection.py +9 -1
  10. birder/data/transforms/detection.py +27 -8
  11. birder/data/transforms/mosaic.py +1 -1
  12. birder/datahub/classification.py +3 -3
  13. birder/inference/classification.py +3 -3
  14. birder/inference/data_parallel.py +1 -1
  15. birder/inference/detection.py +5 -5
  16. birder/inference/wbf.py +1 -1
  17. birder/introspection/attention_rollout.py +6 -6
  18. birder/introspection/feature_pca.py +4 -4
  19. birder/introspection/gradcam.py +1 -1
  20. birder/introspection/guided_backprop.py +2 -2
  21. birder/introspection/transformer_attribution.py +4 -4
  22. birder/layers/attention_pool.py +2 -2
  23. birder/layers/layer_scale.py +1 -1
  24. birder/model_registry/model_registry.py +2 -1
  25. birder/net/__init__.py +4 -10
  26. birder/net/_rope_vit_configs.py +435 -0
  27. birder/net/_vit_configs.py +466 -0
  28. birder/net/alexnet.py +5 -5
  29. birder/net/base.py +28 -3
  30. birder/net/biformer.py +18 -17
  31. birder/net/cait.py +7 -7
  32. birder/net/cas_vit.py +1 -1
  33. birder/net/coat.py +27 -27
  34. birder/net/conv2former.py +3 -3
  35. birder/net/convmixer.py +1 -1
  36. birder/net/convnext_v1.py +3 -11
  37. birder/net/convnext_v1_iso.py +198 -0
  38. birder/net/convnext_v2.py +2 -10
  39. birder/net/crossformer.py +9 -9
  40. birder/net/crossvit.py +6 -6
  41. birder/net/cspnet.py +1 -1
  42. birder/net/cswin_transformer.py +10 -10
  43. birder/net/davit.py +11 -11
  44. birder/net/deit.py +68 -29
  45. birder/net/deit3.py +69 -204
  46. birder/net/densenet.py +9 -8
  47. birder/net/detection/__init__.py +4 -0
  48. birder/net/detection/{yolo_anchors.py → _yolo_anchors.py} +5 -5
  49. birder/net/detection/base.py +6 -5
  50. birder/net/detection/deformable_detr.py +31 -30
  51. birder/net/detection/detr.py +14 -11
  52. birder/net/detection/efficientdet.py +10 -29
  53. birder/net/detection/faster_rcnn.py +22 -22
  54. birder/net/detection/fcos.py +8 -8
  55. birder/net/detection/plain_detr.py +852 -0
  56. birder/net/detection/retinanet.py +4 -4
  57. birder/net/detection/rt_detr_v1.py +81 -25
  58. birder/net/detection/rt_detr_v2.py +1147 -0
  59. birder/net/detection/ssd.py +5 -5
  60. birder/net/detection/yolo_v2.py +12 -12
  61. birder/net/detection/yolo_v3.py +19 -19
  62. birder/net/detection/yolo_v4.py +16 -16
  63. birder/net/detection/yolo_v4_tiny.py +3 -3
  64. birder/net/dpn.py +1 -2
  65. birder/net/edgenext.py +5 -4
  66. birder/net/edgevit.py +13 -14
  67. birder/net/efficientformer_v1.py +3 -2
  68. birder/net/efficientformer_v2.py +18 -31
  69. birder/net/efficientnet_v2.py +3 -0
  70. birder/net/efficientvim.py +9 -9
  71. birder/net/efficientvit_mit.py +7 -7
  72. birder/net/efficientvit_msft.py +3 -3
  73. birder/net/fasternet.py +3 -3
  74. birder/net/fastvit.py +5 -12
  75. birder/net/flexivit.py +50 -58
  76. birder/net/focalnet.py +5 -9
  77. birder/net/gc_vit.py +11 -11
  78. birder/net/ghostnet_v1.py +1 -1
  79. birder/net/ghostnet_v2.py +1 -1
  80. birder/net/groupmixformer.py +13 -13
  81. birder/net/hgnet_v1.py +6 -6
  82. birder/net/hgnet_v2.py +4 -4
  83. birder/net/hiera.py +6 -6
  84. birder/net/hieradet.py +9 -9
  85. birder/net/hornet.py +3 -3
  86. birder/net/iformer.py +4 -4
  87. birder/net/inception_next.py +5 -15
  88. birder/net/inception_resnet_v1.py +3 -3
  89. birder/net/inception_resnet_v2.py +7 -4
  90. birder/net/inception_v3.py +3 -0
  91. birder/net/inception_v4.py +3 -0
  92. birder/net/levit.py +3 -3
  93. birder/net/lit_v1.py +13 -15
  94. birder/net/lit_v1_tiny.py +9 -9
  95. birder/net/lit_v2.py +14 -15
  96. birder/net/maxvit.py +11 -23
  97. birder/net/metaformer.py +5 -5
  98. birder/net/mim/crossmae.py +6 -6
  99. birder/net/mim/fcmae.py +3 -5
  100. birder/net/mim/mae_hiera.py +7 -7
  101. birder/net/mim/mae_vit.py +4 -6
  102. birder/net/mim/simmim.py +3 -4
  103. birder/net/mobilenet_v1.py +0 -9
  104. birder/net/mobilenet_v2.py +38 -44
  105. birder/net/{mobilenet_v3_large.py → mobilenet_v3.py} +37 -10
  106. birder/net/mobilenet_v4_hybrid.py +4 -4
  107. birder/net/mobileone.py +5 -12
  108. birder/net/mobilevit_v1.py +7 -34
  109. birder/net/mobilevit_v2.py +6 -54
  110. birder/net/moganet.py +8 -5
  111. birder/net/mvit_v2.py +30 -30
  112. birder/net/nextvit.py +2 -2
  113. birder/net/nfnet.py +4 -0
  114. birder/net/pit.py +11 -26
  115. birder/net/pvt_v1.py +9 -9
  116. birder/net/pvt_v2.py +10 -16
  117. birder/net/regionvit.py +15 -15
  118. birder/net/regnet.py +1 -1
  119. birder/net/repghost.py +5 -35
  120. birder/net/repvgg.py +3 -5
  121. birder/net/repvit.py +2 -2
  122. birder/net/resmlp.py +2 -2
  123. birder/net/resnest.py +4 -1
  124. birder/net/resnet_v1.py +125 -1
  125. birder/net/resnet_v2.py +75 -1
  126. birder/net/resnext.py +35 -1
  127. birder/net/rope_deit3.py +62 -151
  128. birder/net/rope_flexivit.py +46 -33
  129. birder/net/rope_vit.py +44 -758
  130. birder/net/sequencer2d.py +3 -4
  131. birder/net/shufflenet_v1.py +1 -1
  132. birder/net/shufflenet_v2.py +1 -1
  133. birder/net/simple_vit.py +69 -21
  134. birder/net/smt.py +8 -8
  135. birder/net/squeezenet.py +5 -12
  136. birder/net/squeezenext.py +0 -24
  137. birder/net/ssl/barlow_twins.py +1 -1
  138. birder/net/ssl/byol.py +2 -2
  139. birder/net/ssl/capi.py +4 -4
  140. birder/net/ssl/data2vec.py +1 -1
  141. birder/net/ssl/data2vec2.py +1 -1
  142. birder/net/ssl/dino_v2.py +13 -3
  143. birder/net/ssl/franca.py +28 -4
  144. birder/net/ssl/i_jepa.py +5 -5
  145. birder/net/ssl/ibot.py +1 -1
  146. birder/net/ssl/mmcr.py +1 -1
  147. birder/net/swiftformer.py +13 -3
  148. birder/net/swin_transformer_v1.py +4 -5
  149. birder/net/swin_transformer_v2.py +5 -8
  150. birder/net/tiny_vit.py +6 -19
  151. birder/net/transnext.py +19 -19
  152. birder/net/uniformer.py +4 -4
  153. birder/net/van.py +2 -2
  154. birder/net/vgg.py +1 -10
  155. birder/net/vit.py +72 -987
  156. birder/net/vit_parallel.py +35 -20
  157. birder/net/vit_sam.py +23 -48
  158. birder/net/vovnet_v2.py +1 -1
  159. birder/net/xcit.py +16 -13
  160. birder/ops/msda.py +4 -4
  161. birder/ops/swattention.py +10 -10
  162. birder/results/classification.py +3 -3
  163. birder/results/gui.py +8 -8
  164. birder/scripts/benchmark.py +37 -12
  165. birder/scripts/evaluate.py +1 -1
  166. birder/scripts/predict.py +3 -3
  167. birder/scripts/predict_detection.py +2 -2
  168. birder/scripts/train.py +63 -15
  169. birder/scripts/train_barlow_twins.py +10 -7
  170. birder/scripts/train_byol.py +10 -7
  171. birder/scripts/train_capi.py +15 -10
  172. birder/scripts/train_data2vec.py +10 -7
  173. birder/scripts/train_data2vec2.py +10 -7
  174. birder/scripts/train_detection.py +29 -14
  175. birder/scripts/train_dino_v1.py +13 -9
  176. birder/scripts/train_dino_v2.py +27 -14
  177. birder/scripts/train_dino_v2_dist.py +28 -15
  178. birder/scripts/train_franca.py +16 -9
  179. birder/scripts/train_i_jepa.py +12 -9
  180. birder/scripts/train_ibot.py +15 -11
  181. birder/scripts/train_kd.py +64 -17
  182. birder/scripts/train_mim.py +11 -8
  183. birder/scripts/train_mmcr.py +11 -8
  184. birder/scripts/train_rotnet.py +11 -7
  185. birder/scripts/train_simclr.py +10 -7
  186. birder/scripts/train_vicreg.py +10 -7
  187. birder/tools/adversarial.py +4 -4
  188. birder/tools/auto_anchors.py +5 -5
  189. birder/tools/avg_model.py +1 -1
  190. birder/tools/convert_model.py +30 -22
  191. birder/tools/det_results.py +1 -1
  192. birder/tools/download_model.py +1 -1
  193. birder/tools/ensemble_model.py +1 -1
  194. birder/tools/introspection.py +12 -3
  195. birder/tools/labelme_to_coco.py +2 -2
  196. birder/tools/model_info.py +15 -15
  197. birder/tools/pack.py +8 -8
  198. birder/tools/quantize_model.py +53 -4
  199. birder/tools/results.py +2 -2
  200. birder/tools/show_det_iterator.py +19 -6
  201. birder/tools/show_iterator.py +2 -2
  202. birder/tools/similarity.py +5 -5
  203. birder/tools/stats.py +4 -6
  204. birder/tools/voc_to_coco.py +1 -1
  205. birder/version.py +1 -1
  206. {birder-0.3.3.dist-info → birder-0.4.1.dist-info}/METADATA +3 -3
  207. birder-0.4.1.dist-info/RECORD +300 -0
  208. {birder-0.3.3.dist-info → birder-0.4.1.dist-info}/WHEEL +1 -1
  209. birder/net/mobilenet_v3_small.py +0 -43
  210. birder/net/se_resnet_v1.py +0 -105
  211. birder/net/se_resnet_v2.py +0 -59
  212. birder/net/se_resnext.py +0 -30
  213. birder-0.3.3.dist-info/RECORD +0 -299
  214. {birder-0.3.3.dist-info → birder-0.4.1.dist-info}/entry_points.txt +0 -0
  215. {birder-0.3.3.dist-info → birder-0.4.1.dist-info}/licenses/LICENSE +0 -0
  216. {birder-0.3.3.dist-info → birder-0.4.1.dist-info}/top_level.txt +0 -0
@@ -24,6 +24,7 @@ from birder.data.datasets.coco import MosaicType
24
24
  from birder.data.datasets.directory import tv_loader
25
25
  from birder.data.transforms.classification import get_rgb_stats
26
26
  from birder.data.transforms.classification import reverse_preset
27
+ from birder.data.transforms.detection import MULTISCALE_STEP
27
28
  from birder.data.transforms.detection import AugType
28
29
  from birder.data.transforms.detection import InferenceTransform
29
30
  from birder.data.transforms.detection import training_preset
@@ -44,6 +45,7 @@ def show_det_iterator(args: argparse.Namespace) -> None:
44
45
  args.multiscale,
45
46
  args.max_size,
46
47
  args.multiscale_min_size,
48
+ args.multiscale_step,
47
49
  )
48
50
  mosaic_transforms = training_preset(
49
51
  args.size,
@@ -54,6 +56,7 @@ def show_det_iterator(args: argparse.Namespace) -> None:
54
56
  args.multiscale,
55
57
  args.max_size,
56
58
  args.multiscale_min_size,
59
+ args.multiscale_step,
57
60
  post_mosaic=True,
58
61
  )
59
62
  if args.mosaic_prob > 0.0:
@@ -163,7 +166,11 @@ def show_det_iterator(args: argparse.Namespace) -> None:
163
166
  else:
164
167
  if args.batch_multiscale is True:
165
168
  data_collate_fn: Any = BatchRandomResizeCollator(
166
- offset, args.size, multiscale_min_size=args.multiscale_min_size
169
+ offset,
170
+ args.size,
171
+ size_divisible=args.multiscale_step,
172
+ multiscale_min_size=args.multiscale_min_size,
173
+ multiscale_step=args.multiscale_step,
167
174
  )
168
175
  else:
169
176
  data_collate_fn = collate_fn
@@ -263,17 +270,23 @@ def set_parser(subparsers: Any) -> None:
263
270
  help="allow variable image sizes while preserving aspect ratios",
264
271
  )
265
272
  subparser.add_argument("--multiscale", default=False, action="store_true", help="enable random scale per image")
266
- subparser.add_argument(
267
- "--multiscale-min-size",
268
- type=int,
269
- help="minimum short-edge size for multiscale lists (rounded up to nearest multiple of 32)",
270
- )
271
273
  subparser.add_argument(
272
274
  "--batch-multiscale",
273
275
  default=False,
274
276
  action="store_true",
275
277
  help="enable random square resize once per batch (batch mode only, capped by max(--size))",
276
278
  )
279
+ subparser.add_argument(
280
+ "--multiscale-step",
281
+ type=int,
282
+ default=MULTISCALE_STEP,
283
+ help="step size for multiscale size lists and collator padding divisibility (size_divisible)",
284
+ )
285
+ subparser.add_argument(
286
+ "--multiscale-min-size",
287
+ type=int,
288
+ help="minimum short-edge size for multiscale lists (rounded up to nearest multiple of --multiscale-step)",
289
+ )
277
290
  subparser.add_argument(
278
291
  "--aug-type",
279
292
  type=str,
@@ -57,11 +57,11 @@ def show_iterator(args: argparse.Namespace) -> None:
57
57
  if args.wds is True:
58
58
  wds_path: str | list[str]
59
59
  if args.wds_info is not None:
60
- (wds_path, dataset_size) = wds_args_from_info(args.wds_info, args.wds_split)
60
+ wds_path, dataset_size = wds_args_from_info(args.wds_info, args.wds_split)
61
61
  if args.wds_size is not None:
62
62
  dataset_size = args.wds_size
63
63
  else:
64
- (wds_path, dataset_size) = prepare_wds_args(args.data_path, args.wds_size, torch.device("cpu"))
64
+ wds_path, dataset_size = prepare_wds_args(args.data_path, args.wds_size, torch.device("cpu"))
65
65
 
66
66
  dataset = make_wds_dataset(
67
67
  wds_path,
@@ -32,7 +32,7 @@ def similarity(args: argparse.Namespace) -> None:
32
32
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
33
33
  logger.info(f"Using device {device}")
34
34
 
35
- (net, (class_to_idx, signature, rgb_stats, *_)) = fs_ops.load_model(
35
+ net, (class_to_idx, signature, rgb_stats, *_) = fs_ops.load_model(
36
36
  device, args.network, tag=args.tag, epoch=args.epoch, inference=True, reparameterized=args.reparameterized
37
37
  )
38
38
 
@@ -53,7 +53,7 @@ def similarity(args: argparse.Namespace) -> None:
53
53
  for file_paths, inputs, _targets in inference_loader:
54
54
  # Predict
55
55
  inputs = inputs.to(device)
56
- (_out, embedding) = classification.infer_batch(net, inputs, return_embedding=True)
56
+ _out, embedding = classification.infer_batch(net, inputs, return_embedding=True)
57
57
  embedding_list.append(embedding) # type: ignore[arg-type]
58
58
  sample_paths.extend(file_paths)
59
59
 
@@ -64,7 +64,7 @@ def similarity(args: argparse.Namespace) -> None:
64
64
 
65
65
  toc = time.time()
66
66
  rate = len(dataset) / (toc - tic)
67
- (minutes, seconds) = divmod(toc - tic, 60)
67
+ minutes, seconds = divmod(toc - tic, 60)
68
68
  logger.info(f"{int(minutes):0>2}m{seconds:04.1f}s to classify {len(dataset)} samples ({rate:.2f} samples/sec)")
69
69
 
70
70
  logger.info("Processing similarity...")
@@ -82,7 +82,7 @@ def similarity(args: argparse.Namespace) -> None:
82
82
  distance_arr = distance_matrix(tsne_embeddings_arr, tsne_embeddings_arr)
83
83
  distance_arr = squareform(distance_arr)
84
84
 
85
- (sample_1, sample_2) = list(zip(*combinations(sample_paths, 2)))
85
+ sample_1, sample_2 = list(zip(*combinations(sample_paths, 2)))
86
86
  distance_df = pl.DataFrame(
87
87
  {
88
88
  "sample_1": sample_1,
@@ -97,7 +97,7 @@ def similarity(args: argparse.Namespace) -> None:
97
97
  args.limit = len(distance_df)
98
98
 
99
99
  for idx, pair in enumerate(distance_df[: args.limit].iter_rows(named=True)):
100
- (fig, (ax1, ax2)) = plt.subplots(2, 1)
100
+ fig, (ax1, ax2) = plt.subplots(2, 1)
101
101
  ax1.imshow(Image.open(pair["sample_1"]))
102
102
  ax1.set_title(pair["sample_1"])
103
103
  ax2.imshow(Image.open(pair["sample_2"]))
birder/tools/stats.py CHANGED
@@ -55,12 +55,12 @@ def directory_label_count(directory: str | Path) -> Counter[str]:
55
55
 
56
56
  def class_graph(args: argparse.Namespace) -> None:
57
57
  if args.detection_class_graph is True:
58
- (label_count, _) = detection_object_count(Path(args.data_path))
58
+ label_count, _ = detection_object_count(Path(args.data_path))
59
59
  else:
60
60
  label_count = directory_label_count(args.data_path)
61
61
 
62
62
  total_count = sum(label_count.values())
63
- (sorted_classes, sorted_count) = list(zip(*label_count.most_common()))
63
+ sorted_classes, sorted_count = list(zip(*label_count.most_common()))
64
64
 
65
65
  fig = plt.figure()
66
66
  ax = fig.add_subplot()
@@ -106,9 +106,7 @@ def set_size(_args: argparse.Namespace) -> None:
106
106
  )
107
107
 
108
108
  logger.info("---")
109
- (training_detection_count, training_file_count) = detection_object_count(
110
- settings.TRAINING_DETECTION_ANNOTATIONS_PATH
111
- )
109
+ training_detection_count, training_file_count = detection_object_count(settings.TRAINING_DETECTION_ANNOTATIONS_PATH)
112
110
  if training_file_count > 0:
113
111
  logger.info(
114
112
  f"Detection training: {training_file_count:,} samples containing "
@@ -117,7 +115,7 @@ def set_size(_args: argparse.Namespace) -> None:
117
115
  f"{sum(training_detection_count.values()) / training_file_count:.1f} objects per sample)"
118
116
  )
119
117
 
120
- (validation_detection_count, validation_file_count) = detection_object_count(
118
+ validation_detection_count, validation_file_count = detection_object_count(
121
119
  settings.VALIDATION_DETECTION_ANNOTATIONS_PATH
122
120
  )
123
121
  if validation_file_count > 0:
@@ -32,7 +32,7 @@ def _create_annotation(
32
32
  annotation["image_id"] = image_id
33
33
 
34
34
  # Bounding box in (x, y, w, h) format
35
- (xmin, ymin, xmax, ymax) = points
35
+ xmin, ymin, xmax, ymax = points
36
36
  assert xmax > xmin and ymax > ymin
37
37
  w = xmax - xmin
38
38
  h = ymax - ymin
birder/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "v0.3.3"
1
+ __version__ = "v0.4.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: birder
3
- Version: 0.3.3
3
+ Version: 0.4.1
4
4
  Summary: An open-source computer vision framework for wildlife image analysis, featuring state-of-the-art models for species classification and detection.
5
5
  Author: Ofer Hasson
6
6
  License-Expression: Apache-2.0
@@ -43,8 +43,8 @@ Requires-Dist: torch>=2.7.0
43
43
  Requires-Dist: torchvision
44
44
  Provides-Extra: dev
45
45
  Requires-Dist: altair~=5.5.0; extra == "dev"
46
- Requires-Dist: bandit~=1.9.2; extra == "dev"
47
- Requires-Dist: black~=25.12.0; extra == "dev"
46
+ Requires-Dist: bandit~=1.9.3; extra == "dev"
47
+ Requires-Dist: black~=26.1.0; extra == "dev"
48
48
  Requires-Dist: build~=1.4.0; extra == "dev"
49
49
  Requires-Dist: bumpver~=2025.1131; extra == "dev"
50
50
  Requires-Dist: captum~=0.7.0; extra == "dev"
@@ -0,0 +1,300 @@
1
+ birder/__init__.py,sha256=qmAq9DNEsHDtvTTXJhp8Vzfrtc6ZR_TUjwjeyDW6VWc,869
2
+ birder/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ birder/version.py,sha256=FyV6PQkiLDhwnTdAyvL5lOoA5FjP-pfJYkkmQC-1g6A,23
4
+ birder/adversarial/__init__.py,sha256=PBdshTpEvO-aYZtD9kjkOF7Zor5t-P2V0wBwPhFr8_o,308
5
+ birder/adversarial/base.py,sha256=CjUftBQjZTjDP-DW-Hgv5a81qOMPvf4V-pn0ZTsvwJU,3170
6
+ birder/adversarial/deepfool.py,sha256=Om7C2OFk_uF7QcO4AO0pgjId-N0mIsU9HitpiWxk45o,6305
7
+ birder/adversarial/fgsm.py,sha256=banx3-n8w3gfCTKEHLn9Yw3iBHgCCyDsDmA_-97l4oc,2263
8
+ birder/adversarial/pgd.py,sha256=BfL2Zy4RzykTq7lbL3-A2e4OiRmoDdfqALSIwi5v1Xg,3551
9
+ birder/adversarial/simba.py,sha256=11LgbtwR8f4fkrOX3XsQC3cSijK8CV7jTbKFWYmZIRw,6411
10
+ birder/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ birder/common/cli.py,sha256=lOkAnp0L2YA8hAQk0orjluOHxEEK-CDJoRpeFKdyvWI,5427
12
+ birder/common/fs_ops.py,sha256=Jshd7UdUSmQ7EJUaFm3ThlOKuSROm0qNC6Elt-DRc1Y,43410
13
+ birder/common/lib.py,sha256=5w2YnQSvV-6b_k3j8U7XnY-_YzgTVEXkGGDg84mg6TQ,5907
14
+ birder/common/masking.py,sha256=lsW1s5zm89A4LCQoVtq_7zc6Kg0A4j629wXnvpG12hs,14060
15
+ birder/common/training_cli.py,sha256=rJEDAlu1q0OG1IyxdNvlN7PTtXy6NvXpzTcQjE1Qoxk,31850
16
+ birder/common/training_utils.py,sha256=8TCG4fiwzLBzcMcGe7IhgezqSun0AaL9HswE1A6I3VY,50065
17
+ birder/conf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ birder/conf/settings.py,sha256=tfrE4mo_gGqtIfXm243tOZy69goYK5KA-VSBMhmw_WQ,1996
19
+ birder/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ birder/data/collators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ birder/data/collators/detection.py,sha256=Vr6CPQlgjhu9jIfpdWUnMQvIs6WPxsnk-aFstcAL2-k,4821
22
+ birder/data/dataloader/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ birder/data/dataloader/webdataset.py,sha256=Mer9OK2Svj3RTvNdcVWvXTF0VSq4k0Y8X95D7DD1JmE,1666
24
+ birder/data/datasets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ birder/data/datasets/coco.py,sha256=g5HrJUqHaxEFaG2RlA-ff-g944GAtINRGUkTw3RjiVw,7443
26
+ birder/data/datasets/directory.py,sha256=hNVMV2Hwxr39o9Zc0K48hLPCbMQ48KW7pc9S37yoiJM,8999
27
+ birder/data/datasets/fake.py,sha256=xTziQIklDqRRNc4e09r8tNfSeBNAWogKMMX4ByRDF5w,293
28
+ birder/data/datasets/webdataset.py,sha256=gzka3OeKLJJ7C9YiHrQqXEfFw8uU8Rl8YVsa8V95R3Y,4744
29
+ birder/data/transforms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ birder/data/transforms/classification.py,sha256=fVfn2nnu8VUkalmxrojbPsduQaL1aFWJX6whDQfUi1s,15503
31
+ birder/data/transforms/detection.py,sha256=lprZJZczss-roczaXSU7Jvi73VPYkTCFO6m7_1PvAzY,14188
32
+ birder/data/transforms/mosaic.py,sha256=msCZKIlLXSxFgGhN3svJP0qNNX-rzdIUeHiWoSmUBt8,12179
33
+ birder/datahub/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ birder/datahub/_lib.py,sha256=-Jj6m2uJISmH0G-BLleFSp-jS5L-K3XQyx26eFLQiZg,1139
35
+ birder/datahub/classification.py,sha256=RMr_HiG_2CaLFQ032vkB4UpaJL08my7VvkLvSs1gKH0,7304
36
+ birder/inference/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ birder/inference/classification.py,sha256=yxzib-w7mG-6HslyZg0IKRdv-VJplj9jL2s1c9hObAE,13687
38
+ birder/inference/data_parallel.py,sha256=SrioCgIz9cubgHwfg55swVpOeP3NJvWguKpyjfogQgM,11693
39
+ birder/inference/detection.py,sha256=i0CLGj8EmtoywbmWNsiq6WkaJkKowp7TEgMN0GnClto,10084
40
+ birder/inference/wbf.py,sha256=4ttPqhpDHpOGzRRlUIRHjCafms8CBme8Pw5ZBKbskBQ,7964
41
+ birder/introspection/__init__.py,sha256=4vSjPcXd68icufoDj_EivoHZk4uB35ca0w3qNDWGgH0,532
42
+ birder/introspection/attention_rollout.py,sha256=pnPiorVu5t7535DeOf235z4tazDQyquvMe4SvihbRZU,6966
43
+ birder/introspection/base.py,sha256=QTAhp8gafp6vjYNE3h5omX9vGUIoTvdtA5QoyTM_Aak,2923
44
+ birder/introspection/feature_pca.py,sha256=OkwTHZiEL8ea6DoG4Rl66xrYAZ2nqGmEt9qjyPgNo68,3645
45
+ birder/introspection/gradcam.py,sha256=2xTKA-zHwzSD6uHMINfy_V2a-bzUUpGJ9LDMlAIcvrk,5093
46
+ birder/introspection/guided_backprop.py,sha256=mBjwycTgI-m5A9_8m7QQiWUunbQVRMGhFn45vgq6aYE,7742
47
+ birder/introspection/transformer_attribution.py,sha256=DNUygB2dNPlx3_CLDhYDItA1csFANLB8ZC3fbOeXTOk,6552
48
+ birder/kernels/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ birder/kernels/load_kernel.py,sha256=zmQpf1pBzroXBpizuJUQfShLAjuW9EYEvFgCkuvu1tk,4219
50
+ birder/kernels/deformable_detr/ms_deform_attn.h,sha256=pFEnvKIbHsvuHtkVhuTsyu2HIDdeFvmS1H6CVhslqnk,1999
51
+ birder/kernels/deformable_detr/vision.cpp,sha256=jewDIjaHPO466Gkh2ru7AsYv_ZXdu4Ou8LG4VnceimE,799
52
+ birder/kernels/deformable_detr/cpu/ms_deform_attn_cpu.cpp,sha256=VcCGm9IrvgVvmyZt0KyP16Q-ONmbeg6bKwccP6KadL0,1255
53
+ birder/kernels/deformable_detr/cpu/ms_deform_attn_cpu.h,sha256=S9sv5fAX7ygcGCP2ktV_gMyTyr9N74cjS_zFscBG5i8,1137
54
+ birder/kernels/deformable_detr/cuda/ms_deform_attn_cuda.cu,sha256=_PB83JP-CJw6Vhy2zDY6XxQw5vf6XW1EacuLFXDdUZ8,7726
55
+ birder/kernels/deformable_detr/cuda/ms_deform_attn_cuda.h,sha256=xxP17aer-SiU9J5ASLHdtLIyhFmHC5iLcPIPNW2xkrg,1694
56
+ birder/kernels/deformable_detr/cuda/ms_deform_im2col_cuda.cuh,sha256=B_ZXf8fOtVSVPW30AgKChjqWyiSz8LriI7egKN2Bq-I,54965
57
+ birder/kernels/soft_nms/op.cpp,sha256=OfJCw9-zXft2WbU2Lo4906dIydad6UatyMdQlwoxtwI,876
58
+ birder/kernels/soft_nms/soft_nms.cpp,sha256=GA3_9TzHC7zjaQFlYKVuN_7N-oMhrqyfnEkq8E06jLU,5352
59
+ birder/kernels/soft_nms/soft_nms.h,sha256=qJfq7fefCXtMyyeRwojjWrftJbHXD88NG34x9jp8LbI,806
60
+ birder/kernels/transnext/av_bw_kernel.cu,sha256=FztZGJvK7y82HPGMWhrTSP8C_oKZIVlIkdX_VnuEk88,6769
61
+ birder/kernels/transnext/av_fw_kernel.cu,sha256=Xm26VJXTzIMFSlR2x18Xa_jv8lp_MQzkbLzkKbONz1k,3948
62
+ birder/kernels/transnext/qk_bw_kernel.cu,sha256=0GgtR1BgNglqI7eUm8qf1YkZWIUkt_IJ4IoaEW269DY,6462
63
+ birder/kernels/transnext/qk_fw_kernel.cu,sha256=-OTL9KgscBcyqz77RGtCDBg_p9n4FV2aG01JKnqZSKc,3909
64
+ birder/kernels/transnext/qk_rpb_bw_kernel.cu,sha256=Z-aNoi8re8qyisTTCKHj9BKr6JG-5LFmNs7y5pmkQps,9037
65
+ birder/kernels/transnext/qk_rpb_fw_kernel.cu,sha256=wEqR028v1CYRvRnuo-Nh9qkuHR2qh2XWwlDrn7UicgA,4399
66
+ birder/kernels/transnext/swattention.cpp,sha256=_nJ0MgmkUL0LVYZLRJiWEVBYvsOZLTUJSJWATzFwQAQ,4262
67
+ birder/layers/__init__.py,sha256=SRbPAqMPyX8BSf0qz7voL58AkRA4QSlW7YRm63jdPFc,608
68
+ birder/layers/activations.py,sha256=kMovV0yHxwXCjx2i5_lloDvzn1PcXQXjAhTquSbVg4U,964
69
+ birder/layers/attention_pool.py,sha256=OZ0lCoigYCPpdNnZLJjidwIXBdjE9TRTfLOn3fBY4Mk,1691
70
+ birder/layers/ffn.py,sha256=fIpVIRX1nZW6sIsqmAh355J4c32V0Ajt5A3ieXguPhg,1849
71
+ birder/layers/gem.py,sha256=XDCipvFLEuc3pZDJ6QQf-qPZFfdVHToSq96a4Gk7TCQ,1379
72
+ birder/layers/layer_norm.py,sha256=9oIq4ZojTkP9ghUnyoUeIxJRvPQKME_mKbKVxoY216Q,369
73
+ birder/layers/layer_scale.py,sha256=r7AD76P0lW06lAqyXAfmoQ2EnRJQcs5fkUrKB3JXPFU,917
74
+ birder/model_registry/__init__.py,sha256=0om1631iWk8VfgYbugd554f6xctyxAn6MULQMSBCdNI,214
75
+ birder/model_registry/manifest.py,sha256=6gKayTBmnBm45fDTXTxZMmXnowS7VNaHq3fZSFqge_w,868
76
+ birder/model_registry/model_registry.py,sha256=myzRE4NMHqsVkokUO17FacJadHKKGxgjVIzFYAwqilk,9815
77
+ birder/net/__init__.py,sha256=s2hWVFw_NcGHsvdsvqphtMkEzSGBgr1tSXPurAU0Zlw,6804
78
+ birder/net/_rope_vit_configs.py,sha256=-mXwIwYTXAE0Umndjn1m4rdvaAGI9sq1Yh7tKF1kDn8,14018
79
+ birder/net/_vit_configs.py,sha256=2dL7gj8pS9v2SXoEeR_1dlVPu4x5ZPQOUmoU6-718XA,14501
80
+ birder/net/alexnet.py,sha256=y1_KOnJyJWCQURin5DMu4wdJo3XGSzllBDwaariOW_c,2227
81
+ birder/net/base.py,sha256=oUTtsg2T6P2gQq2JR8pp9AXImS1TlPCqIMmuSr8o66U,11234
82
+ birder/net/biformer.py,sha256=ZGUGGGoZRSGAb7LwZ4VYyGPYJR1jkKGMnLEJVt29LUc,18978
83
+ birder/net/cait.py,sha256=YABUTUROx3GkOMYBXeFgG83DgOgVw_WaoppLxarZqik,11289
84
+ birder/net/cas_vit.py,sha256=BWewoedWGU_Hdp5mSqX1Zu3e_fNvbzPeKw8C8llT4eU,12165
85
+ birder/net/coat.py,sha256=iQleCPw2XVtQR9rYx83hW6aBDyO-xf1MTkwW5SNAGUw,25302
86
+ birder/net/conv2former.py,sha256=2JBlsH6qy4Zj0wYyemSdXW1nBCd_nFQqiLLfOK1kJLo,10129
87
+ birder/net/convmixer.py,sha256=2y3yDj5OGZGEBVF5Mgm9GuVab9BptHJX5M-8C0a-1nc,3515
88
+ birder/net/convnext_v1.py,sha256=4b1FV3KoX2xV4kd_VW0AiYzh4kAqGcxkoNEwaZQZZ2Q,9247
89
+ birder/net/convnext_v1_iso.py,sha256=PhQEji3DEa9OQiDMfayUzuWPO293xwQd59qLSVZTyeI,6793
90
+ birder/net/convnext_v2.py,sha256=SgkdiRvJ0zrGjpzi9Q0jCsTcik6t6-gpDkcQDTuxMeY,11504
91
+ birder/net/crossformer.py,sha256=fmFCpMTCARGMmhiiLqIX8VmiueT0GzIbJaJ9SGyHFFw,18196
92
+ birder/net/crossvit.py,sha256=sGl3k3D9EzIYyjciRGDhoBbiSLQ29vmL6VQ8MdOFp8c,16771
93
+ birder/net/cspnet.py,sha256=0i3UO6f8PQlzBen0BJfdf1vhT2VjIvVrfRbZmUn6O7M,15465
94
+ birder/net/cswin_transformer.py,sha256=nNf6C94Gxr_Hu0w1_W9paWkMfW1K2YfOCPtsxxSEasA,15152
95
+ birder/net/darknet.py,sha256=oYbDi_HemdOzmwhLHKSQefEQ7fJmAdcoHqD2Rs1SAN8,4354
96
+ birder/net/davit.py,sha256=qurj-baUX_oahKk0lQUhRIFU3EbpMGJEdaPIpivgwVg,16079
97
+ birder/net/deit.py,sha256=9dN9rsQDxdCg59MtqhParXR_dmiR4ZBn5y-GSDxSb9I,10618
98
+ birder/net/deit3.py,sha256=VwG4pHCskQoea5sTZMNVJ4pfx24mydnY8MylmdYA84w,18496
99
+ birder/net/densenet.py,sha256=9hSloWLMZiaZtrithIEiSg_EfOtOLQPHbBctVSW6pBY,5972
100
+ birder/net/dpn.py,sha256=OCIYOS30USJk-7L9geHD4kKQWS1stWXgh4atoX8KmDw,6685
101
+ birder/net/edgenext.py,sha256=tEV3UkNOSSBmB_oE7x97EOWCvS_llwvPKG52p0Wkyr4,13799
102
+ birder/net/edgevit.py,sha256=mduKFcvqT0WVJV6VHSxG2Rme5kTtPqJ6uH-RB5kDnQU,13138
103
+ birder/net/efficientformer_v1.py,sha256=Ya37V2DRIugYR8tVYPyxI0P2JWnHVmlZGExQiabMPd8,14291
104
+ birder/net/efficientformer_v2.py,sha256=Z4qKYyFCE4IxIVOfEgyFSrP-4lKTV8EulAUeBdP_dUo,24881
105
+ birder/net/efficientnet_lite.py,sha256=v6vTuG7p1Jit6fFfhieigxG_006V5zwpkDgf8oSpCF0,10991
106
+ birder/net/efficientnet_v1.py,sha256=xnmA0xJdE_1SCtHIeI3Y6Pb8qUmuVCmyWuN-bAg4LB0,12902
107
+ birder/net/efficientnet_v2.py,sha256=GTnWN5OVTT7HfNLAR2bSpeQ-tRb_GiMkyIFlkobOPYQ,13538
108
+ birder/net/efficientvim.py,sha256=VlH6CHl3lz6JnwQidbLgzvsbIvwjmqT-VfQmVfFifXE,16858
109
+ birder/net/efficientvit_mit.py,sha256=t4QyU9Q6hM29EClkaKni3U4vQDviIus4arySgTyQWeA,24345
110
+ birder/net/efficientvit_msft.py,sha256=clajA5UJbAXWv9lEyHLNINOg0GiZNeJDis18gGVpuds,20144
111
+ birder/net/fasternet.py,sha256=jEmAX8mvi939ocxk7XXKd5iatI1bgOee3vzR3YSfNvA,9019
112
+ birder/net/fastvit.py,sha256=hr0m6b-IwrMN9BMbVmjxyR4kYiir64PCViV7YAM-PcU,38039
113
+ birder/net/flexivit.py,sha256=fHwEoUr6BGMUtfkjGJxqpuyVwn7GLJYTTRi0Xa3diwE,24946
114
+ birder/net/focalnet.py,sha256=tIo8wvzv2LJhWzuRqXIkI6poRZZ3y-hJrXheT9zJzOo,20246
115
+ birder/net/gc_vit.py,sha256=ea0sVCYH3w5yUIaWU31lrkiYD8xcK6CbjPkozXOPws4,23849
116
+ birder/net/ghostnet_v1.py,sha256=P0dnO20evTd0-E7jvhb9RBRKOe5UgSygYfkmaYwoIP4,9048
117
+ birder/net/ghostnet_v2.py,sha256=eNAWlfp40U57Ct3eSe4WVjMSnxB4xcc_RFCxNpVPnew,11638
118
+ birder/net/groupmixformer.py,sha256=DphJPX6nOavoQtMceNFAtlaA5iLd8v3qmRQDqSXOTOA,15186
119
+ birder/net/hgnet_v1.py,sha256=fvQJdHMJnzWDJlD1XEuFSqSEkTZbZNJOFF65c893Yrg,14538
120
+ birder/net/hgnet_v2.py,sha256=MUuJNEU2InsxeqFEp_xDljiH5ik27dx86mpsyZ-5gZc,10970
121
+ birder/net/hiera.py,sha256=DhUFC6qRuUia2-Z7TrBMFt1jNcLM3IBlNGgUo9k5UeQ,28062
122
+ birder/net/hieradet.py,sha256=2pFPsAhcNxCW-aZN4e7J9eCiv7NpgCUTenP0wTSYKts,20279
123
+ birder/net/hornet.py,sha256=E8F9Uljq71UtznHRTDrnYCBjhPVWjVHS6-Y3fT8Nfos,13907
124
+ birder/net/iformer.py,sha256=CsWI23qnBl0CIIagwiDle-i-4_XWAh0uICIlGrJfs6I,17925
125
+ birder/net/inception_next.py,sha256=PXVPeJszHZ7fJ2eOa3s1ChxpcOGSUjjnHi7qZ5WaZxE,10829
126
+ birder/net/inception_resnet_v1.py,sha256=-g48wMa5PbDk0W654kjqXsOzR1nP276vHN3OX-Li_2o,9976
127
+ birder/net/inception_resnet_v2.py,sha256=CEHPDHSPx5qlytsFseFOXE6DRagRPsR7gd3G97bMwEU,12026
128
+ birder/net/inception_v3.py,sha256=dDPJUA5Yg2xgpHsGiW5Muyh_Tt3Vq1mludaPslh-D5w,12180
129
+ birder/net/inception_v4.py,sha256=n3G68lPN_mjBzZR5qj5NaNVFwgTfLo2WYseCWK_dPw8,13519
130
+ birder/net/levit.py,sha256=oZqfP0AMYcT9CQ7p7UZaqXVCHRdfiEjli2JFXxaIp3E,19831
131
+ birder/net/lit_v1.py,sha256=kbbCVHyEic4ilZRoMFFBd43DYRxBR_CHQBieTUq0S68,16365
132
+ birder/net/lit_v1_tiny.py,sha256=FHndzM1lwMyWVjWINbb91ZB7hc_VgyaOlk2EUAFtZD8,11835
133
+ birder/net/lit_v2.py,sha256=E7PiTSdJHXfpbosHT37rh2fQUGwr_Uzru0c1FLOJS8M,13940
134
+ birder/net/maxvit.py,sha256=w6BkzMfOESE9C9OOF2X1IQMbaODGHe5je9QQsju8S34,29762
135
+ birder/net/metaformer.py,sha256=mia7kdlmyFRXhcTQjHKKdNoIzRWr1xh69N-mJPKk4Zg,30412
136
+ birder/net/mnasnet.py,sha256=uGjkWmr57-QeKhd33S4Ko_fCMXMC2LgGg6aqTNHOQ4M,9902
137
+ birder/net/mobilenet_v1.py,sha256=gbqBkKvCadZAngvTP3psh1bN6zjmP3aQFfCkG3oB5qU,5325
138
+ birder/net/mobilenet_v2.py,sha256=cDTRkALF07OSc3xYUKqNsfrHnUqJTor0yQ_Hqtf3LJg,7698
139
+ birder/net/mobilenet_v3.py,sha256=YyWsbmMjGQ9Nwp5NkMdPB3ns3BwRTEdbHuQT3kkt5rw,13678
140
+ birder/net/mobilenet_v4.py,sha256=DkGRe7ODBfsBriKcis66qQkS39M6V5G3IVYiSwIGLhw,24625
141
+ birder/net/mobilenet_v4_hybrid.py,sha256=kZUMsPn8pwb5-qxIrMrLn3JPv6Wa2MVRCCq37eAZAzA,22119
142
+ birder/net/mobileone.py,sha256=WcIZWpg-oMQuNDPVEbLtUephpZGPidxJVyrtipyuAq8,15737
143
+ birder/net/mobilevit_v1.py,sha256=D6oWW5-sTw4HEE4FaUo6Ghp9EZntPqQCViNr4BqC2PI,9388
144
+ birder/net/mobilevit_v2.py,sha256=BjAPC8XkQDb_Hp3kDqHa-aI1T7xoSLd2jWoVki98SJ8,11738
145
+ birder/net/moganet.py,sha256=0h0s-M_US7pWSobhjy4ED7BntS-bR_gD3ahNdcPYy70,15200
146
+ birder/net/mvit_v2.py,sha256=3-N7NppyqpN4rjWmeIb1RhbT3auDjs14iH2aQ8kozVs,26281
147
+ birder/net/nextvit.py,sha256=6cfOysPO_8Xqq5CRUNDFXAP3fgRhdC7fxvLJF4v0eog,15469
148
+ birder/net/nfnet.py,sha256=3H_YQSQgOhbdiecSdMHn-EnwVhz7qOKkVlufXfcZMrM,11559
149
+ birder/net/pit.py,sha256=VVQVZRT5orMBQBzecCE2otdgpMulVsumxU16fFszhMM,9738
150
+ birder/net/pvt_v1.py,sha256=x-FJl4dU0p9QN6yJgaQxgd8YOD1BK7W2E3oCtWOVUGA,10713
151
+ birder/net/pvt_v2.py,sha256=yRDeo9IFAWVownGzdpZ6lpPLHmvLSQIs_cVcFwzaSCs,15733
152
+ birder/net/rdnet.py,sha256=Q0SX_U15koNHGRVEANybQ8r5VeoYfld8W1FRoVpRWVo,13991
153
+ birder/net/regionvit.py,sha256=Kos8KEMyJq13iidW8NZOh5Q3N0mp52DaOdJoYlK4d8E,20216
154
+ birder/net/regnet.py,sha256=PPxIvJQ2Iij3cx2tN9VuKbR5-UmmRTN6tlIVQIdy7ME,21098
155
+ birder/net/regnet_z.py,sha256=RUOe6q10nYzYvvc2_VU31q3XGE9gQiDPF69ONFFry_I,9507
156
+ birder/net/repghost.py,sha256=f0uo7-Fx-UbIjAYkFXH0gKGT-78lnJ4Pfoz9yALfv3c,11728
157
+ birder/net/repvgg.py,sha256=N4zfQU4I4P_dblPBjpu6krSBW6MZkZrTdm7FQHohsNc,13046
158
+ birder/net/repvit.py,sha256=GhkX0Z6RvkCWfb1YDM57ZHSsZ1dsNdo7QcDq_UCd6OE,16151
159
+ birder/net/resmlp.py,sha256=NVrTRCP4q_mWhbJOywX5f_lqNhqKvhwiloUEoBZZDGc,4687
160
+ birder/net/resnest.py,sha256=_ql3dcLkqkhT91E-9-M0SiGty9uknwfns3uy4KZ3GkE,10104
161
+ birder/net/resnet_v1.py,sha256=TIv8TjywneOFsYxJQhLrwCgnOTS1V-y_-pu2qjU4tu8,14546
162
+ birder/net/resnet_v2.py,sha256=0QnKggNzpIwhAdI4gLej04VjuJGNVwcW9rPrIdtbnfM,9286
163
+ birder/net/resnext.py,sha256=mdDfUe0YxiDiRn8qhvR324DaMjFmefoT-LO4Rc7HZ6k,10265
164
+ birder/net/rope_deit3.py,sha256=asj7W0BvTkiHC1GIk3bb-suh_whA3hwUa7WVTQzssrw,22386
165
+ birder/net/rope_flexivit.py,sha256=mTtIL6X0yJwX9iR-Fgf9rgsHoR0vB_4hAzflyoA9OHI,27413
166
+ birder/net/rope_vit.py,sha256=iRQ_TVSe8qCXTlnUJx0dFyQ9Z6A3CneHRBnlTU9R6n4,43280
167
+ birder/net/sequencer2d.py,sha256=WcPlqawg6oQ9gg6h-WJmM25uxnDXA1wsfvJP53UUj60,7416
168
+ birder/net/shufflenet_v1.py,sha256=BAJH4fb8R9CeqHqAcczPF94H9ipjsyPPl2Da_cbzir0,8129
169
+ birder/net/shufflenet_v2.py,sha256=HNF33OmFlLgPN-VilZ9-JF78NJ60MiV2GlSwV8myv7c,6822
170
+ birder/net/simple_vit.py,sha256=Uh9SiRnM7MgJM5oJbPB8yP9KGmgtOiLqVVV3mDq9GxI,11006
171
+ birder/net/smt.py,sha256=wIY-RtKP6W_3WlAl-C0N_boybRJ4ZMxTSCXWDnS40-c,16198
172
+ birder/net/squeezenet.py,sha256=bUhtqQd9V43vKEcUJG03JkxxCX7iBS_QHFjz497MQP4,3505
173
+ birder/net/squeezenext.py,sha256=2nDG9E02UNlaquKgT-U6JgdyaRd_Hlwbesk81iIfbWc,6026
174
+ birder/net/starnet.py,sha256=A1FMspb_RFgyOQOLEMn5JvolG1F_l3Cp0wM0N0M8-os,7492
175
+ birder/net/swiftformer.py,sha256=8GqFS7xSPLBhj6tzUzsI3pE_sV4hbAXgQF8CYxIodQI,14001
176
+ birder/net/swin_transformer_v1.py,sha256=hzUa9Dec0vXDEZgc9al-cI6BujvzctQ3VDljaRgPB-c,18758
177
+ birder/net/swin_transformer_v2.py,sha256=E_zJznUfizhnTGKA1WhPvJmtyAPN8O3zCxoBCLtG1W8,17800
178
+ birder/net/tiny_vit.py,sha256=KzfTyY8Xbrx6EULil8CLlxBOhVnTtkZo2OIYUTSu_yI,16608
179
+ birder/net/transnext.py,sha256=IAX777lGLFJTJrhMY4g2on6sADmAEBQqxcLxkkzfzYk,23592
180
+ birder/net/uniformer.py,sha256=FYDzOAu4IvRiTVR6DQ1anooRQKiQTxyKFIIrzKAhsMc,12674
181
+ birder/net/van.py,sha256=IAymYsIEK3zzST4KS6iU689b29Gm8TCwLFV2BjPyM0g,10671
182
+ birder/net/vgg.py,sha256=-iTVoBXat_6jo8gnpA3Jk4yEBdMKLVbY4iMe_KJ-0Fw,3226
183
+ birder/net/vgg_reduced.py,sha256=1NmjS4KSMvSEU3U090gf82bvWkyYDssEglaXNauCw4A,3356
184
+ birder/net/vit.py,sha256=jeuxRrN4iT5Ue0ukO4Sx5mxrLGCnC9-k4WBuyS11Mnk,39229
185
+ birder/net/vit_parallel.py,sha256=N-QGz7v_MeuX8FNjpnyl_ha9qD5F3X5G94lPdwPgWRc,23672
186
+ birder/net/vit_sam.py,sha256=AckImaaux5cbw08ZvtEY1XJa9UEHCxSPA4ju3dUilXU,21157
187
+ birder/net/vovnet_v1.py,sha256=4Wgm1mALHpTJlhcrczKPVPkzDh3RNTGTty1FLzRK1EM,7685
188
+ birder/net/vovnet_v2.py,sha256=8kuLm3bURn_I3j0m9YmiJI4TohuWyB-UBlefWIa694g,9714
189
+ birder/net/wide_resnet.py,sha256=d6yn-Fb67zCGLMhQLV09gik5Otah6nCDronm4betcPA,5972
190
+ birder/net/xception.py,sha256=58rncfGZ2U3-aGZjBABhPenRBZl8cvttrtSc0iGMVck,6913
191
+ birder/net/xcit.py,sha256=0WH7Zex1dVpUbAZ7aiwyhhTNDiJd33KtFZGzno3cEQk,19747
192
+ birder/net/detection/__init__.py,sha256=2kusDH9kBe645DNwUQE59ArQZxphhYeIrhWWyLPTPUU,1105
193
+ birder/net/detection/_yolo_anchors.py,sha256=mbSWosbgfvw6KJ4AcfXV7LoRgTuYgX3yg4VH2zajLD0,6911
194
+ birder/net/detection/base.py,sha256=tHyXyGggKPjUaDiKnftYe6fNjZBK2TokenvgMVYhLf8,26248
195
+ birder/net/detection/deformable_detr.py,sha256=mcBT2h-SzA1n7nq0X4i10PGD08lYmL_rqagK4LLF61E,34646
196
+ birder/net/detection/detr.py,sha256=Fa8EVTH-lWrJgW-Y0Dc6UOmuPqyJqOsg0uMbO_Z_t6M,20670
197
+ birder/net/detection/efficientdet.py,sha256=1IrqoWbL6AX3g0jcdKqe010VHeD6GWEmEp9qmLxnNSE,29038
198
+ birder/net/detection/faster_rcnn.py,sha256=JOI4nlg5ss5_nvhklBhg7EBZu7e40zxmd-9i2avVCqg,34338
199
+ birder/net/detection/fcos.py,sha256=Qhe5y5ito4UZ9TtquWaVyslKWmv4xy56dKGRECkRf18,21867
200
+ birder/net/detection/plain_detr.py,sha256=SQ_0vWcegHNaB0PDsO4cZq7LLcMgC4wRHE0v_DgEzpc,32857
201
+ birder/net/detection/retinanet.py,sha256=PjkEpoKiAN6IkLleHaIFFQyOQbOFMXZEpn9lM-C8eeM,19076
202
+ birder/net/detection/rt_detr_v1.py,sha256=C0cONbzEtToVm0dQl2IeKBkWrL0CTxCQr7EELdsGiaA,46544
203
+ birder/net/detection/rt_detr_v2.py,sha256=3bU25aQgD-XcsTdgQx0TE6RfpU7N9RfZMdiSkk6oqB8,46355
204
+ birder/net/detection/ssd.py,sha256=SxTU151Fn8DmylFkqVp3_6F29BvZkQHejDDti3A554A,20339
205
+ birder/net/detection/ssdlite.py,sha256=pv2ychUWUu-UWxVs6_RXMdjEiIPfkBoscschCGNDXXI,7241
206
+ birder/net/detection/vitdet.py,sha256=bpyX0W_q0tBqxQ7hptHnn8Fm5y0DkXvRQQBiRcm-9RE,4424
207
+ birder/net/detection/yolo_v2.py,sha256=WpA5ZOtbzAFsUqPQDplXAJxMmDpVVGnBO7KTvzaEgrs,19949
208
+ birder/net/detection/yolo_v3.py,sha256=INTX3ciZ678PighKN6sNp8Xs3iWZT4aXYcP4ANjS8mo,27777
209
+ birder/net/detection/yolo_v4.py,sha256=atpRoSXWIrkC-AibHrp0vixq8JwC5r4sn2eneRyMTHw,31624
210
+ birder/net/detection/yolo_v4_tiny.py,sha256=l_Ny-6KTjZEMdUb9RTL3XzuwCBeW6Rfsp8EyKe5dguU,4641
211
+ birder/net/mim/__init__.py,sha256=W5Gj5KYTk8IYs2DqWiEcvtK2NYcgja_nSZnkbSs3gDc,305
212
+ birder/net/mim/base.py,sha256=6JdF_Fn95Lr66NhSnyuDpuyLaFItz7IS1GAkxQoHWaM,2252
213
+ birder/net/mim/crossmae.py,sha256=7zV4SsJcJev_frrR4AJmhmqdjF889glsDpSQrgz4RA4,8387
214
+ birder/net/mim/fcmae.py,sha256=h3u4ifMQFl4c6rMG7fsq0MGcPHFV6fbh2uQtS1ppwRE,5240
215
+ birder/net/mim/mae_hiera.py,sha256=FyBaiewoVE-T_xPpBqmrHpyitcV2yHoIwKMsXiqZTU0,9315
216
+ birder/net/mim/mae_vit.py,sha256=0fJ3IOVhH1-DckUKvSsJ_oI3O_7c82EPz77p99Vq-dk,7711
217
+ birder/net/mim/simmim.py,sha256=fOk1aLNP6tG357IFcSCKvqKJLifL_nK911q4cDf_-R0,5183
218
+ birder/net/ssl/__init__.py,sha256=mOBGe9XD4Epy01vQzsqSYRse9b84NFYpcOLVY3SCdFY,896
219
+ birder/net/ssl/barlow_twins.py,sha256=HFJBq90y9X_39iLwRkEzZ0aisW-zJRBdJ2KFMCsW81k,2440
220
+ birder/net/ssl/base.py,sha256=6nHGpIbCB7bL-6E3zxsmTacac0hEnYSKfOwlwCjqNMQ,2037
221
+ birder/net/ssl/byol.py,sha256=Ou5GUJKXydM7wN5YrKx_wJEyxO0oRjgPKi4slVX8RV8,3121
222
+ birder/net/ssl/capi.py,sha256=ipitaDWA6nF1PIJRfFIGv4AqeHpHunuO2EyMEnEm_3g,15338
223
+ birder/net/ssl/data2vec.py,sha256=gM2GC-kQOsZf298cDKdugyrsPmWaylPpByI4UCkgFmk,3172
224
+ birder/net/ssl/data2vec2.py,sha256=bl9FvlHGWn1Tvi8Lt-6tYlZtFpkoC-F7Z46f11V06Wg,6555
225
+ birder/net/ssl/dino_v1.py,sha256=zcdf35U1qt9j7zQCpg_rlA85pH3GuC6p-R6g1_G9wvQ,6548
226
+ birder/net/ssl/dino_v2.py,sha256=utMOtpMbKGdjK3Ub--6btXiKJkJpk0LN3Xl65QammpY,22579
227
+ birder/net/ssl/franca.py,sha256=vhFg5oji0S0if95RGq1z4tRtF_ycodWpKl-MZdIUErY,22254
228
+ birder/net/ssl/i_jepa.py,sha256=SwdNsjFnKRaLpLC37XTq_8KNn5fnqyMq8ahzQJ9wBwg,9917
229
+ birder/net/ssl/ibot.py,sha256=t46FeNUbMtQPpnos_nKLOfPg4wAQTZ2N3vqKizC17Tk,10827
230
+ birder/net/ssl/mmcr.py,sha256=yyRG7JEunnGz33AqEXwhohxK3XyyjatzgotllzQb6kc,4480
231
+ birder/net/ssl/simclr.py,sha256=JUkknI-0rxLu2azD2PMt3hB0hh3GK43FL_4KmTUzVIM,3372
232
+ birder/net/ssl/sscd.py,sha256=2zGU8_P8j8FIp9vRPpKntTnmwF4oGpOOIViDhFw5G6I,2058
233
+ birder/net/ssl/vicreg.py,sha256=DRZPlz9jPM1SusbeFsFe8CKk1unW6b9hZMbn6kXEGrI,3684
234
+ birder/ops/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
235
+ birder/ops/msda.py,sha256=gzHVcMxSIl5rbwusVr0eRfasMa2MNZokkVIS3S9MQts,7697
236
+ birder/ops/soft_nms.py,sha256=iujPaBIkdgSIAcu1USXM__Lz0xn9vGIwRVO6jzvcyT4,4833
237
+ birder/ops/swattention.py,sha256=3Am5k_YoA-jOgmGb2MG4TszEZvliHm1tJHM7xtjCaYo,10131
238
+ birder/optim/__init__.py,sha256=Y2g8IY3Fw1nEYHikdGHVDnCYZPqLSIUgBHqYEsoWlA4,109
239
+ birder/optim/lamb.py,sha256=bu1OK5E0O9oqip0ihVFSFuFHoGNhKRCP_6vH4nDImYs,7891
240
+ birder/optim/lars.py,sha256=wGytHAvmJUgo12Zikjfm5Tdy4mlf0vTGKzV2WGZESZ0,5514
241
+ birder/results/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
242
+ birder/results/classification.py,sha256=9rMCj3-6fggDZI_nVJemcuboxlfkCwCm_x7tQmYvUTg,31756
243
+ birder/results/detection.py,sha256=T6ZXFOGzGnizkJZb8F8CNJeAWNmfGCVmhsxrvvji8Z8,12821
244
+ birder/results/gui.py,sha256=ktRlMNCZUC73jSHF_w6IALJBGleZaAbazylv6YHT5Ik,13850
245
+ birder/scheduler/__init__.py,sha256=oya5nwyIrye-IsN0nIOHdTc4SpdkTvdy1ZQis2MaTWI,82
246
+ birder/scheduler/cooldown.py,sha256=SGlraOmYUwhEbIlSrUOfPRoAZO7xFC4h2exG1Gx6JvE,1412
247
+ birder/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
248
+ birder/scripts/__main__.py,sha256=aMxourAyGsCY-TVOZM5vQm4TYWVDC2RYheRfdf1pgSo,513
249
+ birder/scripts/benchmark.py,sha256=BNxrZDSs9bf7xH0AManKPJk9RTGmCqiUP95jBYx8wUw,15883
250
+ birder/scripts/evaluate.py,sha256=CbCWK2TR19bEdH0wPO3iCbS0EjZWxfsBAJ42hDD6fKI,6791
251
+ birder/scripts/predict.py,sha256=ryaWcy8xVN16MnLxf2fgxSMa6Wyb7CHi76HgVMCGoA4,30314
252
+ birder/scripts/predict_detection.py,sha256=n3-EJ3Lyg1cLOAgEEj1uyfqHGJRJlkMKKU28WY3i7Ts,17563
253
+ birder/scripts/train.py,sha256=gvR89QDW78QzFUOY-yhCWVp4sOW4NHAKB3bT8f3wOrs,38140
254
+ birder/scripts/train_barlow_twins.py,sha256=pUIAoS4ZbVnL7nuA-uQFHfxwnuJrZtM1xe0RC-C8uRs,23240
255
+ birder/scripts/train_byol.py,sha256=cD3ItGOSmF2-EvVzt7qHNO95wk0YVWusN05wnXPs18k,24207
256
+ birder/scripts/train_capi.py,sha256=Af7CyyUVRDWnroEAPN1zpPq9ZWv_qrXZ8911iJBmU70,32124
257
+ birder/scripts/train_data2vec.py,sha256=6UC3TDcnelz2R2sJcdiBsRv_rLtAs0rs79Am1EqgLuM,24651
258
+ birder/scripts/train_data2vec2.py,sha256=OnagbpMyr4YHW6Cuo5I7oW2bY-877MlUs0w5PxZ9z_k,25812
259
+ birder/scripts/train_detection.py,sha256=dEAxfS8ewQOK_j6gt-GazA88mOePTNUV2qBvd3A_ae8,41556
260
+ birder/scripts/train_dino_v1.py,sha256=atZjI_51RX0rWWO7ptKfduti3CF5F-6SNpPRhVdKOzM,32189
261
+ birder/scripts/train_dino_v2.py,sha256=7V3SuyMpcQvLyeBQmriNFCguG2w3aYSRQq9z7pBr6eM,48251
262
+ birder/scripts/train_dino_v2_dist.py,sha256=eOr52W4rROpQScPrg03LhTuAAXRrCCaHzIvHmCsPoD8,49635
263
+ birder/scripts/train_franca.py,sha256=-OcEjPzOYWEVeFfGr4Dl1_Cee7hFNeBWzKctrHJ9VJc,43736
264
+ birder/scripts/train_i_jepa.py,sha256=_C3N32gFFTF512eQgGsZ8tqSsz1vsCauot5bPq9aqrE,28127
265
+ birder/scripts/train_ibot.py,sha256=Pw-LZs2_-PWJj9iyidgdNdbCGj3QoIrQmlLDLctlkS8,33635
266
+ birder/scripts/train_kd.py,sha256=DmNZkWIdB1OuZqUYqII0XZX-ZDJn4I14A-LMln-bL9U,44476
267
+ birder/scripts/train_mim.py,sha256=Hu63BxHjGoOUgPPNElSuCdNT2-QYOoE0wWrR3E3fPxs,24251
268
+ birder/scripts/train_mmcr.py,sha256=laXYFvHTNwB1r--4elKG__7_IOkIQQkrZYzY6PrZsnA,24230
269
+ birder/scripts/train_rotnet.py,sha256=Td7WDkPmooP2TaedcDp1mIvQzRQHQmwA0TQN1wh2Zy4,24474
270
+ birder/scripts/train_simclr.py,sha256=6KosOZ-GbJJwZy32nw4vfZRjAtzjGmKXck7cjt-L4Oc,23138
271
+ birder/scripts/train_vicreg.py,sha256=D6akB5S8xpe3zRZYPVsUP3ZVfgG_5vEQ0jUMdhWAdu8,23588
272
+ birder/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
273
+ birder/tools/__main__.py,sha256=quuNfY2RKQQmY6ysDaie90iQ7ScVaQPOYIjWggSJZ4o,4410
274
+ birder/tools/adversarial.py,sha256=EAZyS-IKZZFK5W8ThFkgx7Jvv280HzywNCoQBJwXEKU,8590
275
+ birder/tools/auto_anchors.py,sha256=rEqfNk1AKjQO36cj3EDi8-zyPgzP51UDOEpqJKCNVkM,14961
276
+ birder/tools/avg_model.py,sha256=Z0KpbE0aimMNYE2PG1SxU0saO_4VhRMq2TEd5cCzTPs,4588
277
+ birder/tools/convert_model.py,sha256=b11ZJAiaMQ072qFvDUbnhmb2fsmH-rXpCUw5pfJ-7PA,16269
278
+ birder/tools/det_results.py,sha256=s369KDwMz7SmiKYxeVU1vZft98tzd0mpkmncyUBCqiM,10317
279
+ birder/tools/download_model.py,sha256=47bk9u14dKZNDG4P8yxB7UGy3jKJu9IYpyX2RX0JXiY,2490
280
+ birder/tools/ensemble_model.py,sha256=Tp6Mte-4cfNnBRqv4vki1g9lnlpVEh7mQwJZZSw2NyM,3967
281
+ birder/tools/introspection.py,sha256=X61fN2jtrncj0_OYA69LnDjkhuYidk618Y5xa4o7HMQ,8862
282
+ birder/tools/labelme_to_coco.py,sha256=esAQjoTj3tbFuuzOn1mtgJNIf0eS8sybOoRVGQyES3g,5265
283
+ birder/tools/list_models.py,sha256=XTq_W0jjYtoE0I1DiO8cYbK7l793AZx5EAtCPIXG8ys,6211
284
+ birder/tools/model_info.py,sha256=7xYhCON-xY2YdycI28U7_eZsKD8M8pxBMeiM_IkDGPc,5133
285
+ birder/tools/pack.py,sha256=EpQrKJqxqd9IEFE-RNwylukHco54wTVpFCEpzWNtd8U,17579
286
+ birder/tools/quantize_model.py,sha256=RAeSr-7BDl35f89PiSqkZe0QRHMsJSbK-U5iQlCPfiU,8371
287
+ birder/tools/results.py,sha256=_qWW0XNeBW2eD3U_eeaAOQdUy5Yss8Dus4lMsvHxlnQ,15634
288
+ birder/tools/show_det_iterator.py,sha256=sRllTQGvAE9uKjF3BB1qqdtHeABu8Wbae2HOx-ttcvU,13781
289
+ birder/tools/show_iterator.py,sha256=vxtoJSNuNuNBfrj8851EhOcLL0pFwbtEXXp9tUuZe-Y,10373
290
+ birder/tools/similarity.py,sha256=v8tNl0I8MRBLcM2zgCgwfWPVTkGAIoKzElQ69ybjraw,5379
291
+ birder/tools/stats.py,sha256=TapTDidm4Vhtb_q9Wm_v7V9VHchC0qaOmtPtLuoLaAk,8375
292
+ birder/tools/verify_coco.py,sha256=lMCc9X-P-odMEN6GkNpV_TDY7grze11RkPMs-Z_Uy-4,3717
293
+ birder/tools/verify_directory.py,sha256=KbA97CX2HrwdL97HoKmSO8o3vFdP19TT7zHkulMp8L4,3284
294
+ birder/tools/voc_to_coco.py,sha256=ktCviq1Bu9un27mWWPzsr5RolrOpwbFNID5EubY2C1k,5249
295
+ birder-0.4.1.dist-info/licenses/LICENSE,sha256=tQ5GIY23TCjwH64fidwWBp8JdK2QbPVl1UePNd-5m5U,11341
296
+ birder-0.4.1.dist-info/METADATA,sha256=gdJ2ADaW_-Qd8Pn_D1pvWHkXMcc41pYueN2FJpvvEjM,12696
297
+ birder-0.4.1.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
298
+ birder-0.4.1.dist-info/entry_points.txt,sha256=nikWKO1k2GISDo1hsv2T-37NCwD4dtb3PXRwPkOZ86w,128
299
+ birder-0.4.1.dist-info/top_level.txt,sha256=ZRzmYwYDWwwOKFYgW4k0vUysaazrAJDLnpIjVH6cwtY,7
300
+ birder-0.4.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,43 +0,0 @@
1
- from typing import Any
2
- from typing import Optional
3
-
4
- from birder.model_registry import registry
5
- from birder.net.mobilenet_v3_large import MobileNet_v3_Large
6
-
7
-
8
- # pylint: disable=invalid-name
9
- class MobileNet_v3_Small(MobileNet_v3_Large):
10
- def __init__(
11
- self,
12
- input_channels: int,
13
- num_classes: int,
14
- *,
15
- config: Optional[dict[str, Any]] = None,
16
- size: Optional[tuple[int, int]] = None,
17
- ) -> None:
18
- super().__init__(input_channels, num_classes, config=config, size=size, large=False)
19
-
20
-
21
- registry.register_model_config("mobilenet_v3_small_0_25", MobileNet_v3_Small, config={"alpha": 0.25})
22
- registry.register_model_config("mobilenet_v3_small_0_5", MobileNet_v3_Small, config={"alpha": 0.5})
23
- registry.register_model_config("mobilenet_v3_small_0_75", MobileNet_v3_Small, config={"alpha": 0.75})
24
- registry.register_model_config("mobilenet_v3_small_1_0", MobileNet_v3_Small, config={"alpha": 1.0})
25
- registry.register_model_config("mobilenet_v3_small_1_25", MobileNet_v3_Small, config={"alpha": 1.25})
26
- registry.register_model_config("mobilenet_v3_small_1_5", MobileNet_v3_Small, config={"alpha": 1.5})
27
- registry.register_model_config("mobilenet_v3_small_1_75", MobileNet_v3_Small, config={"alpha": 1.75})
28
- registry.register_model_config("mobilenet_v3_small_2_0", MobileNet_v3_Small, config={"alpha": 2.0})
29
-
30
- registry.register_weights(
31
- "mobilenet_v3_small_1_0_il-common",
32
- {
33
- "description": "MobileNet v3 small (1.0 multiplier) model trained on the il-common dataset",
34
- "resolution": (256, 256),
35
- "formats": {
36
- "pt": {
37
- "file_size": 7.4,
38
- "sha256": "ac53227f7513fd0c0b5204ee57403de2ab6c74c4e4d1061b9168596c6b5cea48",
39
- }
40
- },
41
- "net": {"network": "mobilenet_v3_small_1_0", "tag": "il-common"},
42
- },
43
- )