britekit 0.0.5__tar.gz → 0.0.7__tar.gz

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.

Potentially problematic release.


This version of britekit might be problematic. Click here for more details.

Files changed (124) hide show
  1. {britekit-0.0.5 → britekit-0.0.7}/PKG-INFO +1 -1
  2. {britekit-0.0.5 → britekit-0.0.7}/britekit/__about__.py +1 -1
  3. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_reports.py +4 -3
  4. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_tune.py +2 -0
  5. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/tuner.py +17 -2
  6. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/base_model.py +3 -2
  7. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/testing/per_minute_tester.py +2 -2
  8. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/testing/per_segment_tester.py +1 -1
  9. {britekit-0.0.5 → britekit-0.0.7}/.gitignore +0 -0
  10. {britekit-0.0.5 → britekit-0.0.7}/LICENSE.txt +0 -0
  11. {britekit-0.0.5 → britekit-0.0.7}/README.md +0 -0
  12. {britekit-0.0.5 → britekit-0.0.7}/britekit/__init__.py +0 -0
  13. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/__init__.py +0 -0
  14. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_analyze.py +0 -0
  15. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_audioset.py +0 -0
  16. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_calibrate.py +0 -0
  17. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_ckpt_ops.py +0 -0
  18. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_db_add.py +0 -0
  19. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_db_delete.py +0 -0
  20. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_embed.py +0 -0
  21. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_extract.py +0 -0
  22. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_find_dup.py +0 -0
  23. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_inat.py +0 -0
  24. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_init.py +0 -0
  25. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_pickle.py +0 -0
  26. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_plot.py +0 -0
  27. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_reextract.py +0 -0
  28. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_search.py +0 -0
  29. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_train.py +0 -0
  30. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_wav2mp3.py +0 -0
  31. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_xeno.py +0 -0
  32. {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_youtube.py +0 -0
  33. {britekit-0.0.5 → britekit-0.0.7}/britekit/core/__init__.py +0 -0
  34. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/class_inclusion.csv +0 -0
  35. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/class_list.csv +0 -0
  36. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/aircraft.csv +0 -0
  37. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/car.csv +0 -0
  38. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/chainsaw.csv +0 -0
  39. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/cow.csv +0 -0
  40. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/cricket.csv +0 -0
  41. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/dog.csv +0 -0
  42. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/rain.csv +0 -0
  43. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/rooster.csv +0 -0
  44. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/sheep.csv +0 -0
  45. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/siren.csv +0 -0
  46. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/speech.csv +0 -0
  47. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/truck.csv +0 -0
  48. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/wind.csv +0 -0
  49. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/unbalanced_train_segments.csv +0 -0
  50. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/classes.csv +0 -0
  51. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/ignore.txt +0 -0
  52. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/base_config.yaml +0 -0
  53. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/cfg_infer.yaml +0 -0
  54. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_dla.yaml +0 -0
  55. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_effnet.yaml +0 -0
  56. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_gernet.yaml +0 -0
  57. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_hgnet.yaml +0 -0
  58. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_timm.yaml +0 -0
  59. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_vovnet.yaml +0 -0
  60. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/tune_dropout.yaml +0 -0
  61. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/tune_learning_rate.yaml +0 -0
  62. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/tune_optimizer.yaml +0 -0
  63. {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/tune_smooth.yaml +0 -0
  64. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/class_inclusion.csv +0 -0
  65. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/class_list.csv +0 -0
  66. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/aircraft.csv +0 -0
  67. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/car.csv +0 -0
  68. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/chainsaw.csv +0 -0
  69. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/cow.csv +0 -0
  70. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/cricket.csv +0 -0
  71. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/dog.csv +0 -0
  72. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/rain.csv +0 -0
  73. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/rooster.csv +0 -0
  74. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/sheep.csv +0 -0
  75. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/siren.csv +0 -0
  76. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/speech.csv +0 -0
  77. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/truck.csv +0 -0
  78. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/wind.csv +0 -0
  79. {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/unbalanced_train_segments.csv +0 -0
  80. {britekit-0.0.5 → britekit-0.0.7}/install/data/classes.csv +0 -0
  81. {britekit-0.0.5 → britekit-0.0.7}/install/data/ignore.txt +0 -0
  82. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/base_config.yaml +0 -0
  83. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/cfg_infer.yaml +0 -0
  84. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_dla.yaml +0 -0
  85. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_effnet.yaml +0 -0
  86. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_gernet.yaml +0 -0
  87. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_hgnet.yaml +0 -0
  88. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_timm.yaml +0 -0
  89. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_vovnet.yaml +0 -0
  90. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/tune_dropout.yaml +0 -0
  91. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/tune_learning_rate.yaml +0 -0
  92. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/tune_optimizer.yaml +0 -0
  93. {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/tune_smooth.yaml +0 -0
  94. {britekit-0.0.5 → britekit-0.0.7}/pyproject.toml +0 -0
  95. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/cli.py +0 -0
  96. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/analyzer.py +0 -0
  97. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/audio.py +0 -0
  98. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/augmentation.py +0 -0
  99. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/base_config.py +0 -0
  100. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/config_loader.py +0 -0
  101. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/data_module.py +0 -0
  102. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/dataset.py +0 -0
  103. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/exceptions.py +0 -0
  104. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/pickler.py +0 -0
  105. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/plot.py +0 -0
  106. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/predictor.py +0 -0
  107. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/reextractor.py +0 -0
  108. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/trainer.py +0 -0
  109. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/util.py +0 -0
  110. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/dla.py +0 -0
  111. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/effnet.py +0 -0
  112. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/gernet.py +0 -0
  113. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/head_factory.py +0 -0
  114. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/hgnet.py +0 -0
  115. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/model_loader.py +0 -0
  116. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/timm_model.py +0 -0
  117. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/vovnet.py +0 -0
  118. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/occurrence_db/occurrence_data_provider.py +0 -0
  119. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/occurrence_db/occurrence_db.py +0 -0
  120. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/testing/base_tester.py +0 -0
  121. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/testing/per_recording_tester.py +0 -0
  122. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/training_db/extractor.py +0 -0
  123. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/training_db/training_data_provider.py +0 -0
  124. {britekit-0.0.5 → britekit-0.0.7}/src/britekit/training_db/training_db.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: britekit
3
- Version: 0.0.5
3
+ Version: 0.0.7
4
4
  Summary: Core functions for bioacoustic recognizers.
5
5
  Project-URL: Documentation, https://github.com/jhuus/BriteKit#readme
6
6
  Project-URL: Issues, https://github.com/jhuus/BriteKit/issues
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2025-present Jan Huus <jhuus1@gmail.com>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "0.0.5"
4
+ __version__ = "0.0.7"
@@ -244,12 +244,14 @@ def rpt_epochs(
244
244
  max_roc_score, max_roc_epoch = 0, 0
245
245
  pr_scores = []
246
246
  roc_scores = []
247
- util.set_logging(level=logging.ERROR) # suppress output from Analyzer and PerSegmentTester
248
247
  with tempfile.TemporaryDirectory() as temp_dir:
249
248
  cfg.misc.ckpt_folder = temp_dir
250
249
 
251
250
  for epoch_num in epoch_nums:
251
+ util.set_logging() # restore console output
252
252
  logging.info(f"Processing epoch {epoch_num}")
253
+ # suppress output from Analyzer and PerSegmentTester
254
+ util.set_logging(level=logging.ERROR)
253
255
 
254
256
  # copy checkpoint to temp dir
255
257
  from_path = epoch_to_ckpt[epoch_num]
@@ -270,6 +272,7 @@ def rpt_epochs(
270
272
  temp_dir,
271
273
  threshold=0.8,
272
274
  )
275
+
273
276
  tester.initialize()
274
277
 
275
278
  pr_stats = tester.get_pr_auc_stats()
@@ -288,8 +291,6 @@ def rpt_epochs(
288
291
 
289
292
  os.remove(to_path)
290
293
 
291
- util.set_logging() # restore console output
292
-
293
294
  # Save CSV
294
295
  df = pd.DataFrame()
295
296
  df["epoch"] = epoch_nums
@@ -9,6 +9,7 @@ from typing import Optional
9
9
 
10
10
  import click
11
11
 
12
+ from britekit.core.config_loader import get_config
12
13
  from britekit.core import util
13
14
 
14
15
 
@@ -57,6 +58,7 @@ def tune(
57
58
  from britekit.core.tuner import Tuner
58
59
 
59
60
  try:
61
+ cfg, _ = get_config(cfg_path)
60
62
  if extract and skip_training:
61
63
  logging.error(
62
64
  "Performing spectrogram extract is incompatible with skipping training."
@@ -1,7 +1,6 @@
1
1
  # Defer some imports to improve initialization performance.
2
2
  import copy
3
3
  import logging
4
- import os
5
4
  from pathlib import Path
6
5
  import random
7
6
  import re
@@ -263,6 +262,21 @@ class Tuner:
263
262
  self.trial_num += 1
264
263
  self.trial_metrics[self.trial_num] = {}
265
264
 
265
+ @staticmethod
266
+ def _find_latest_version_dir(root):
267
+ root = Path(root)
268
+ version_dirs = []
269
+ for d in root.iterdir():
270
+ if d.is_dir() and d.name.startswith("version"):
271
+ m = re.search(r"\d+", d.name)
272
+ if m:
273
+ version_dirs.append((int(m.group()), d))
274
+
275
+ assert version_dirs, "Failed to find training log directory"
276
+
277
+ # Sort numerically by the extracted version number
278
+ return max(version_dirs, key=lambda x: x[0])[1].name
279
+
266
280
  def _run_test(self):
267
281
  """
268
282
  Run inference with the generated checkpoints and return the selected metric.
@@ -270,10 +284,11 @@ class Tuner:
270
284
  from britekit.core.analyzer import Analyzer
271
285
  from britekit.testing.per_segment_tester import PerSegmentTester
272
286
 
273
- train_dir = sorted(os.listdir(self.train_log_dir), key=natural_key)[-1]
287
+ train_dir = self._find_latest_version_dir(self.train_log_dir)
274
288
  self.cfg.misc.ckpt_folder = str(
275
289
  Path(self.train_log_dir) / train_dir / "checkpoints"
276
290
  )
291
+ print(f"{self.cfg.misc.ckpt_folder=}")
277
292
  self.cfg.infer.min_score = 0
278
293
 
279
294
  # suppress console output during inference and test analysis
@@ -11,7 +11,6 @@ import torch
11
11
  from torch import nn
12
12
  import torch.nn.functional as F
13
13
  from torch.optim.lr_scheduler import CosineAnnealingLR, LinearLR, SequentialLR
14
- from torchmetrics.functional import accuracy
15
14
 
16
15
  from britekit.core.config_loader import get_config
17
16
  from britekit.core import util
@@ -195,7 +194,9 @@ class BaseModel(pl.LightningModule):
195
194
  if self.multi_label:
196
195
  preds = torch.sigmoid(seg_logits)
197
196
  roc_auc = metrics.roc_auc_score(y.cpu(), preds.cpu(), average="micro")
198
- self.log("test_roc_auc", roc_auc, on_step=False, on_epoch=True, prog_bar=True)
197
+ self.log(
198
+ "test_roc_auc", roc_auc, on_step=False, on_epoch=True, prog_bar=True
199
+ )
199
200
 
200
201
  return loss
201
202
 
@@ -237,7 +237,7 @@ class PerMinuteTester(BaseTester):
237
237
  f"\rPercent complete: {int(threshold * 100)}%", end="", flush=True
238
238
  )
239
239
 
240
- logging.info()
240
+ logging.info("")
241
241
  pr_table_dict = {}
242
242
  pr_table_dict["annotated_thresholds"] = thresholds
243
243
  pr_table_dict["annotated_precisions_minutes"] = precision_annotated_minutes
@@ -425,7 +425,7 @@ class PerMinuteTester(BaseTester):
425
425
  rpt.append(
426
426
  f" Recall (minutes) = {100 * self.details_dict['recall_trained']:.2f}%\n"
427
427
  )
428
- logging.info()
428
+ logging.info("")
429
429
  with open(os.path.join(self.output_dir, "summary_report.txt"), "w") as summary:
430
430
  for rpt_line in rpt:
431
431
  logging.info(rpt_line[:-1])
@@ -543,7 +543,7 @@ class PerSegmentTester(BaseTester):
543
543
  f"Average of macro-ROC-annotated and micro-ROC-trained = {self.roc_auc_dict['combined_roc_auc_trained']:.4f}\n"
544
544
  )
545
545
 
546
- logging.info()
546
+ logging.info("")
547
547
  with open(os.path.join(self.output_dir, "summary_report.txt"), "w") as summary:
548
548
  for rpt_line in rpt:
549
549
  logging.info(rpt_line[:-1])
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes