Change default train duration to 0.256 instead of 0.512

This commit is contained in:
mbsantiago 2025-08-30 14:08:00 +01:00
parent 93e89ecc46
commit 1cec332dd5
3 changed files with 36 additions and 3 deletions

View File

@ -10,7 +10,7 @@ from batdetect2.typing.preprocess import PreprocessorProtocol
from batdetect2.typing.train import PreprocessedExample from batdetect2.typing.train import PreprocessedExample
from batdetect2.utils.arrays import adjust_width, slice_tensor from batdetect2.utils.arrays import adjust_width, slice_tensor
DEFAULT_TRAIN_CLIP_DURATION = 0.512 DEFAULT_TRAIN_CLIP_DURATION = 0.256
DEFAULT_MAX_EMPTY_CLIP = 0.1 DEFAULT_MAX_EMPTY_CLIP = 0.1

View File

@ -22,6 +22,7 @@ from batdetect2.targets import (
from batdetect2.targets.classes import ClassesConfig, TargetClass from batdetect2.targets.classes import ClassesConfig, TargetClass
from batdetect2.targets.filtering import FilterConfig, FilterRule from batdetect2.targets.filtering import FilterConfig, FilterRule
from batdetect2.targets.terms import TagInfo from batdetect2.targets.terms import TagInfo
from batdetect2.train.clips import build_clipper
from batdetect2.train.labels import build_clip_labeler from batdetect2.train.labels import build_clip_labeler
from batdetect2.typing import ( from batdetect2.typing import (
ClipLabeller, ClipLabeller,
@ -29,6 +30,7 @@ from batdetect2.typing import (
TargetProtocol, TargetProtocol,
) )
from batdetect2.typing.preprocess import AudioLoader from batdetect2.typing.preprocess import AudioLoader
from batdetect2.typing.train import ClipperProtocol
@pytest.fixture @pytest.fixture
@ -440,6 +442,13 @@ def sample_labeller(
) )
@pytest.fixture
def sample_clipper(
sample_preprocessor: PreprocessorProtocol,
) -> ClipperProtocol:
return build_clipper(preprocessor=sample_preprocessor)
@pytest.fixture @pytest.fixture
def example_dataset(example_data_dir: Path) -> DatasetConfig: def example_dataset(example_data_dir: Path) -> DatasetConfig:
return DatasetConfig( return DatasetConfig(

View File

@ -1,3 +1,27 @@
import numpy as np from soundevent import data
from batdetect2.train.clips import select_subclip from batdetect2.train import generate_train_example
from batdetect2.typing import (
AudioLoader,
ClipLabeller,
ClipperProtocol,
PreprocessorProtocol,
)
def test_default_clip_size_is_correct(
sample_clipper: ClipperProtocol,
sample_labeller: ClipLabeller,
sample_audio_loader: AudioLoader,
clip_annotation: data.ClipAnnotation,
sample_preprocessor: PreprocessorProtocol,
):
example = generate_train_example(
clip_annotation=clip_annotation,
audio_loader=sample_audio_loader,
preprocessor=sample_preprocessor,
labeller=sample_labeller,
)
clip, _, _ = sample_clipper(example)
assert clip.spectrogram.shape == (1, 128, 256)