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.
- {britekit-0.0.5 → britekit-0.0.7}/PKG-INFO +1 -1
- {britekit-0.0.5 → britekit-0.0.7}/britekit/__about__.py +1 -1
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_reports.py +4 -3
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_tune.py +2 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/tuner.py +17 -2
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/base_model.py +3 -2
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/testing/per_minute_tester.py +2 -2
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/testing/per_segment_tester.py +1 -1
- {britekit-0.0.5 → britekit-0.0.7}/.gitignore +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/LICENSE.txt +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/README.md +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/__init__.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/__init__.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_analyze.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_audioset.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_calibrate.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_ckpt_ops.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_db_add.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_db_delete.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_embed.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_extract.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_find_dup.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_inat.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_init.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_pickle.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_plot.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_reextract.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_search.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_train.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_wav2mp3.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_xeno.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/commands/_youtube.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/core/__init__.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/class_inclusion.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/class_list.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/aircraft.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/car.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/chainsaw.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/cow.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/cricket.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/dog.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/rain.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/rooster.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/sheep.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/siren.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/speech.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/truck.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/curated/wind.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/unbalanced_train_segments.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/classes.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/ignore.txt +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/base_config.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/cfg_infer.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_dla.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_effnet.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_gernet.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_hgnet.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_timm.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/train_vovnet.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/tune_dropout.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/tune_learning_rate.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/tune_optimizer.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/britekit/install/yaml/samples/tune_smooth.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/class_inclusion.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/class_list.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/aircraft.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/car.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/chainsaw.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/cow.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/cricket.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/dog.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/rain.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/rooster.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/sheep.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/siren.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/speech.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/truck.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/curated/wind.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/audioset/unbalanced_train_segments.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/classes.csv +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/data/ignore.txt +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/base_config.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/cfg_infer.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_dla.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_effnet.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_gernet.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_hgnet.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_timm.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/train_vovnet.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/tune_dropout.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/tune_learning_rate.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/tune_optimizer.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/install/yaml/samples/tune_smooth.yaml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/pyproject.toml +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/cli.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/analyzer.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/audio.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/augmentation.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/base_config.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/config_loader.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/data_module.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/dataset.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/exceptions.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/pickler.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/plot.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/predictor.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/reextractor.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/trainer.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/core/util.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/dla.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/effnet.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/gernet.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/head_factory.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/hgnet.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/model_loader.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/timm_model.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/models/vovnet.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/occurrence_db/occurrence_data_provider.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/occurrence_db/occurrence_db.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/testing/base_tester.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/testing/per_recording_tester.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/training_db/extractor.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/training_db/training_data_provider.py +0 -0
- {britekit-0.0.5 → britekit-0.0.7}/src/britekit/training_db/training_db.py +0 -0
|
@@ -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 =
|
|
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(
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{britekit-0.0.5 → britekit-0.0.7}/britekit/install/data/audioset/unbalanced_train_segments.csv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|