mirror of
https://github.com/macaodha/batdetect2.git
synced 2025-06-30 15:12:06 +02:00
Compare commits
No commits in common. "a62f07ebdd505d23577a60b026f89126ea546099" and "b819180656cac39f886ec3e505c7f3a46682ec3e" have entirely different histories.
a62f07ebdd
...
b819180656
@ -1,79 +0,0 @@
|
||||
from collections.abc import Generator
|
||||
from typing import Optional, Tuple
|
||||
|
||||
from soundevent import data
|
||||
|
||||
from batdetect2.data.datasets import Dataset
|
||||
from batdetect2.targets.types import TargetProtocol
|
||||
|
||||
|
||||
def iterate_over_sound_events(
|
||||
dataset: Dataset,
|
||||
targets: TargetProtocol,
|
||||
apply_filter: bool = True,
|
||||
apply_transform: bool = True,
|
||||
exclude_generic: bool = True,
|
||||
) -> Generator[Tuple[Optional[str], data.SoundEventAnnotation], None, None]:
|
||||
"""Iterate over sound events in a dataset, applying filtering and
|
||||
transformations.
|
||||
|
||||
This generator function processes sound event annotations from a given
|
||||
dataset, allowing for optional filtering, transformation, and exclusion of
|
||||
unclassifiable (generic) events based on the provided target definitions.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
dataset : Dataset
|
||||
The dataset containing clip annotations, each of which may contain
|
||||
multiple sound event annotations.
|
||||
targets : TargetProtocol
|
||||
An object implementing the `TargetProtocol`, which provides methods
|
||||
for filtering, transforming, and encoding sound events.
|
||||
apply_filter : bool, optional
|
||||
If True, sound events will be filtered using `targets.filter()`.
|
||||
Only events for which `targets.filter()` returns True will be yielded.
|
||||
Defaults to True.
|
||||
apply_transform : bool, optional
|
||||
If True, sound events will be transformed using `targets.transform()`
|
||||
before being yielded. Defaults to True.
|
||||
exclude_generic : bool, optional
|
||||
If True, sound events that result in a `None` class name after
|
||||
`targets.encode()` will be excluded. This is typically used to
|
||||
filter out events that cannot be mapped to a specific target class.
|
||||
Defaults to True.
|
||||
|
||||
Yields
|
||||
------
|
||||
Tuple[Optional[str], data.SoundEventAnnotation]
|
||||
A tuple containing:
|
||||
- The encoded class name (str) for the sound event, or None if it
|
||||
cannot be encoded to a specific class.
|
||||
- The sound event annotation itself, after passing all specified
|
||||
filtering and transformation steps.
|
||||
|
||||
Notes
|
||||
-----
|
||||
The processing order for each sound event is:
|
||||
1. Filtering (if `apply_filter` is True). Events failing the filter are
|
||||
skipped.
|
||||
2. Transformation (if `apply_transform` is True).
|
||||
3. Encoding to determine class name and check for genericity (if
|
||||
`exclude_generic` is True). Events with a `None` class name are skipped
|
||||
if `exclude_generic` is True.
|
||||
"""
|
||||
for clip_annotation in dataset:
|
||||
for sound_event_annotation in clip_annotation.sound_events:
|
||||
if apply_filter:
|
||||
if not targets.filter(sound_event_annotation):
|
||||
continue
|
||||
|
||||
if apply_transform:
|
||||
sound_event_annotation = targets.transform(
|
||||
sound_event_annotation
|
||||
)
|
||||
|
||||
class_name = targets.encode(sound_event_annotation)
|
||||
if class_name is None and exclude_generic:
|
||||
continue
|
||||
|
||||
yield class_name, sound_event_annotation
|
@ -84,7 +84,7 @@ def features_to_xarray(
|
||||
freqs = np.linspace(min_freq, max_freq, height, endpoint=False)
|
||||
|
||||
return xr.DataArray(
|
||||
data=features.detach().cpu().numpy(),
|
||||
data=features.detach().numpy(),
|
||||
dims=[
|
||||
Dimensions.feature.value,
|
||||
Dimensions.frequency.value,
|
||||
@ -157,7 +157,7 @@ def detection_to_xarray(
|
||||
freqs = np.linspace(min_freq, max_freq, height, endpoint=False)
|
||||
|
||||
return xr.DataArray(
|
||||
data=detection.squeeze(dim=0).detach().cpu().numpy(),
|
||||
data=detection.squeeze(dim=0).detach().numpy(),
|
||||
dims=[
|
||||
Dimensions.frequency.value,
|
||||
Dimensions.time.value,
|
||||
@ -233,7 +233,7 @@ def classification_to_xarray(
|
||||
freqs = np.linspace(min_freq, max_freq, height, endpoint=False)
|
||||
|
||||
return xr.DataArray(
|
||||
data=classes.detach().cpu().numpy(),
|
||||
data=classes.detach().numpy(),
|
||||
dims=[
|
||||
"category",
|
||||
Dimensions.frequency.value,
|
||||
@ -302,7 +302,7 @@ def sizes_to_xarray(
|
||||
freqs = np.linspace(min_freq, max_freq, height, endpoint=False)
|
||||
|
||||
return xr.DataArray(
|
||||
data=sizes.detach().cpu().numpy(),
|
||||
data=sizes.detach().numpy(),
|
||||
dims=[
|
||||
"dimension",
|
||||
Dimensions.frequency.value,
|
||||
|
@ -19,7 +19,7 @@ reproducible spectrogram generation consistent between training and inference.
|
||||
The core computation is performed by `compute_spectrogram`.
|
||||
"""
|
||||
|
||||
from typing import Callable, Literal, Optional, Union
|
||||
from typing import Literal, Optional, Union
|
||||
|
||||
import numpy as np
|
||||
import xarray as xr
|
||||
@ -327,7 +327,6 @@ def compute_spectrogram(
|
||||
"""
|
||||
config = config or SpectrogramConfig()
|
||||
|
||||
with xr.set_options(keep_attrs=True):
|
||||
spec = stft(
|
||||
wav,
|
||||
window_duration=config.stft.window_duration,
|
||||
@ -478,7 +477,7 @@ def scale_spectrogram(
|
||||
"""Apply final amplitude scaling/representation to the spectrogram.
|
||||
|
||||
Converts the input magnitude spectrogram based on the `scale` type:
|
||||
- "dB": Applies logarithmic scaling `log10(S)`.
|
||||
- "dB": Applies logarithmic scaling `log1p(C * S)`.
|
||||
- "power": Squares the magnitude values `S^2`.
|
||||
- "amplitude": Returns the input magnitude values `S` unchanged.
|
||||
|
||||
@ -497,7 +496,7 @@ def scale_spectrogram(
|
||||
Spectrogram with the specified amplitude scaling applied.
|
||||
"""
|
||||
if scale == "dB":
|
||||
return arrays.to_db(spec).astype(dtype)
|
||||
return scale_log(spec, dtype=dtype)
|
||||
|
||||
if scale == "power":
|
||||
return spec**2
|
||||
@ -562,13 +561,12 @@ def apply_pcen(
|
||||
def scale_log(
|
||||
spec: xr.DataArray,
|
||||
dtype: DTypeLike = np.float32, # type: ignore
|
||||
ref: Union[float, Callable] = np.max,
|
||||
amin: float = 1e-10,
|
||||
top_db: Optional[float] = 80.0,
|
||||
) -> xr.DataArray:
|
||||
"""Apply logarithmic scaling to a magnitude spectrogram.
|
||||
|
||||
Calculates `log10(S)`, where S is the input magnitude spectrogram.
|
||||
Calculates `log(1 + C * S)`, where S is the input magnitude spectrogram
|
||||
and C is a scaling factor derived from the original STFT parameters
|
||||
(sample rate, N-FFT, window function) stored in `spec.attrs`.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
@ -589,29 +587,12 @@ def scale_log(
|
||||
If required attributes are missing from `spec.attrs`.
|
||||
ValueError
|
||||
If attributes are non-numeric or window function is invalid.
|
||||
|
||||
|
||||
Notes
|
||||
-----
|
||||
Implementation mainly taken from librosa `power_to_db` function
|
||||
"""
|
||||
|
||||
if callable(ref):
|
||||
ref_value = ref(spec)
|
||||
else:
|
||||
ref_value = np.abs(ref)
|
||||
|
||||
log_spec = 10.0 * np.log10(np.maximum(amin, spec)) - np.log10(
|
||||
np.maximum(amin, ref_value)
|
||||
)
|
||||
|
||||
if top_db is not None:
|
||||
if top_db < 0:
|
||||
raise ValueError("top_db must be non-negative")
|
||||
log_spec = np.maximum(log_spec, log_spec.max() - top_db)
|
||||
|
||||
samplerate = spec.attrs["original_samplerate"]
|
||||
nfft = spec.attrs["nfft"]
|
||||
log_scaling = 2 / (samplerate * (np.abs(np.hanning(nfft)) ** 2).sum())
|
||||
return xr.DataArray(
|
||||
data=log_spec.astype(dtype),
|
||||
data=np.log1p(log_scaling * spec).astype(dtype),
|
||||
dims=spec.dims,
|
||||
coords=spec.coords,
|
||||
attrs=spec.attrs,
|
||||
|
@ -9,7 +9,6 @@ from torch.utils.data import Dataset
|
||||
|
||||
from batdetect2.train.augmentations import Augmentation
|
||||
from batdetect2.train.types import ClipperProtocol, TrainExample
|
||||
from batdetect2.utils.tensors import adjust_width
|
||||
|
||||
__all__ = [
|
||||
"LabeledDataset",
|
||||
@ -88,26 +87,6 @@ class LabeledDataset(Dataset):
|
||||
)
|
||||
|
||||
|
||||
def collate_fn(batch: List[TrainExample]):
|
||||
width = 512
|
||||
|
||||
return TrainExample(
|
||||
spec=torch.stack([adjust_width(x.spec, width) for x in batch]),
|
||||
detection_heatmap=torch.stack(
|
||||
[adjust_width(x.detection_heatmap, width) for x in batch]
|
||||
),
|
||||
class_heatmap=torch.stack(
|
||||
[adjust_width(x.class_heatmap, width) for x in batch]
|
||||
),
|
||||
size_heatmap=torch.stack(
|
||||
[adjust_width(x.size_heatmap, width) for x in batch]
|
||||
),
|
||||
idx=torch.stack([x.idx for x in batch]),
|
||||
start_time=torch.stack([x.start_time for x in batch]),
|
||||
end_time=torch.stack([x.end_time for x in batch]),
|
||||
)
|
||||
|
||||
|
||||
def list_preprocessed_files(
|
||||
directory: data.PathLike, extension: str = ".nc"
|
||||
) -> List[Path]:
|
||||
|
@ -276,11 +276,8 @@ def preprocess_single_annotation(
|
||||
labeller=labeller,
|
||||
)
|
||||
except Exception as error:
|
||||
logger.error(
|
||||
"Failed to process annotation: {uuid}. Error {error}",
|
||||
uuid=clip_annotation.uuid,
|
||||
error=error,
|
||||
)
|
||||
return
|
||||
raise RuntimeError(
|
||||
f"Failed to process annotation: {clip_annotation.uuid}"
|
||||
) from error
|
||||
|
||||
_save_xr_dataset_to_file(sample, path)
|
||||
|
@ -17,11 +17,7 @@ from batdetect2.train.augmentations import (
|
||||
)
|
||||
from batdetect2.train.clips import build_clipper
|
||||
from batdetect2.train.config import TrainingConfig
|
||||
from batdetect2.train.dataset import (
|
||||
LabeledDataset,
|
||||
RandomExampleSource,
|
||||
collate_fn,
|
||||
)
|
||||
from batdetect2.train.dataset import LabeledDataset, RandomExampleSource
|
||||
from batdetect2.train.lightning import TrainingModule
|
||||
from batdetect2.train.losses import build_loss
|
||||
|
||||
@ -92,7 +88,6 @@ def train(
|
||||
batch_size=config.batch_size,
|
||||
shuffle=True,
|
||||
num_workers=train_workers,
|
||||
collate_fn=collate_fn,
|
||||
)
|
||||
|
||||
val_dataloader = None
|
||||
@ -106,7 +101,6 @@ def train(
|
||||
batch_size=config.batch_size,
|
||||
shuffle=False,
|
||||
num_workers=val_workers,
|
||||
collate_fn=collate_fn,
|
||||
)
|
||||
|
||||
trainer.fit(
|
||||
|
540
requirements-dev.lock
Normal file
540
requirements-dev.lock
Normal file
@ -0,0 +1,540 @@
|
||||
# generated by rye
|
||||
# use `rye lock` or `rye sync` to update this lockfile
|
||||
#
|
||||
# last locked with the following flags:
|
||||
# pre: false
|
||||
# features: []
|
||||
# all-features: false
|
||||
# with-sources: false
|
||||
# generate-hashes: false
|
||||
# universal: false
|
||||
|
||||
-e file:.
|
||||
absl-py==2.1.0
|
||||
# via tensorboard
|
||||
affine==2.4.0
|
||||
# via rasterio
|
||||
aiobotocore==2.12.3
|
||||
# via s3fs
|
||||
aiohttp==3.9.5
|
||||
# via aiobotocore
|
||||
# via fsspec
|
||||
# via lightning
|
||||
# via s3fs
|
||||
aioitertools==0.11.0
|
||||
# via aiobotocore
|
||||
aiosignal==1.3.1
|
||||
# via aiohttp
|
||||
annotated-types==0.6.0
|
||||
# via pydantic
|
||||
antlr4-python3-runtime==4.9.3
|
||||
# via hydra-core
|
||||
# via omegaconf
|
||||
anyio==4.3.0
|
||||
# via starlette
|
||||
arrow==1.3.0
|
||||
# via lightning
|
||||
asttokens==2.4.1
|
||||
# via stack-data
|
||||
async-timeout==4.0.3
|
||||
# via aiohttp
|
||||
# via redis
|
||||
attrs==23.2.0
|
||||
# via aiohttp
|
||||
# via rasterio
|
||||
audioread==3.0.1
|
||||
# via librosa
|
||||
backcall==0.2.0
|
||||
# via ipython
|
||||
backoff==2.2.1
|
||||
# via lightning
|
||||
beautifulsoup4==4.12.3
|
||||
# via lightning
|
||||
bitsandbytes==0.41.0
|
||||
# via lightning
|
||||
blessed==1.20.0
|
||||
# via inquirer
|
||||
boto3==1.34.69
|
||||
# via lightning-cloud
|
||||
botocore==1.34.69
|
||||
# via aiobotocore
|
||||
# via boto3
|
||||
# via s3transfer
|
||||
certifi==2024.2.2
|
||||
# via netcdf4
|
||||
# via rasterio
|
||||
# via requests
|
||||
cf-xarray==0.9.0
|
||||
# via batdetect2
|
||||
cffi==1.16.0
|
||||
# via soundfile
|
||||
cftime==1.6.3
|
||||
# via netcdf4
|
||||
charset-normalizer==3.3.2
|
||||
# via requests
|
||||
click==8.1.7
|
||||
# via batdetect2
|
||||
# via click-plugins
|
||||
# via cligj
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
# via rasterio
|
||||
# via uvicorn
|
||||
click-plugins==1.1.1
|
||||
# via rasterio
|
||||
cligj==0.7.2
|
||||
# via rasterio
|
||||
comm==0.2.2
|
||||
# via ipykernel
|
||||
contourpy==1.1.1
|
||||
# via matplotlib
|
||||
croniter==1.4.1
|
||||
# via lightning
|
||||
cycler==0.12.1
|
||||
# via matplotlib
|
||||
cython==3.0.10
|
||||
# via soundevent
|
||||
dateutils==0.6.12
|
||||
# via lightning
|
||||
debugpy==1.8.1
|
||||
# via ipykernel
|
||||
decorator==5.1.1
|
||||
# via ipython
|
||||
# via librosa
|
||||
deepdiff==6.7.1
|
||||
# via lightning
|
||||
dnspython==2.6.1
|
||||
# via email-validator
|
||||
docker==6.1.3
|
||||
# via lightning
|
||||
docstring-parser==0.16
|
||||
# via jsonargparse
|
||||
editor==1.6.6
|
||||
# via inquirer
|
||||
email-validator==2.1.1
|
||||
# via soundevent
|
||||
exceptiongroup==1.2.1
|
||||
# via anyio
|
||||
# via pytest
|
||||
executing==2.0.1
|
||||
# via stack-data
|
||||
fastapi==0.110.2
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
filelock==3.13.4
|
||||
# via torch
|
||||
# via triton
|
||||
fonttools==4.51.0
|
||||
# via matplotlib
|
||||
frozenlist==1.4.1
|
||||
# via aiohttp
|
||||
# via aiosignal
|
||||
fsspec==2023.12.2
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via pytorch-lightning
|
||||
# via s3fs
|
||||
# via torch
|
||||
grpcio==1.62.2
|
||||
# via tensorboard
|
||||
h11==0.14.0
|
||||
# via uvicorn
|
||||
hydra-core==1.3.2
|
||||
# via lightning
|
||||
idna==3.7
|
||||
# via anyio
|
||||
# via email-validator
|
||||
# via requests
|
||||
# via yarl
|
||||
importlib-metadata==7.1.0
|
||||
# via jupyter-client
|
||||
# via markdown
|
||||
# via rasterio
|
||||
importlib-resources==6.4.0
|
||||
# via matplotlib
|
||||
# via typeshed-client
|
||||
iniconfig==2.0.0
|
||||
# via pytest
|
||||
inquirer==3.2.4
|
||||
# via lightning
|
||||
ipykernel==6.29.4
|
||||
ipython==8.12.3
|
||||
# via ipykernel
|
||||
jedi==0.19.1
|
||||
# via ipython
|
||||
jinja2==3.1.3
|
||||
# via lightning
|
||||
# via torch
|
||||
jmespath==1.0.1
|
||||
# via boto3
|
||||
# via botocore
|
||||
joblib==1.4.0
|
||||
# via librosa
|
||||
# via scikit-learn
|
||||
jsonargparse==4.28.0
|
||||
# via lightning
|
||||
jupyter-client==8.6.1
|
||||
# via ipykernel
|
||||
jupyter-core==5.7.2
|
||||
# via ipykernel
|
||||
# via jupyter-client
|
||||
kiwisolver==1.4.5
|
||||
# via matplotlib
|
||||
lazy-loader==0.4
|
||||
# via librosa
|
||||
librosa==0.10.1
|
||||
# via batdetect2
|
||||
lightning==2.2.2
|
||||
# via batdetect2
|
||||
lightning-api-access==0.0.5
|
||||
# via lightning
|
||||
lightning-cloud==0.5.65
|
||||
# via lightning
|
||||
lightning-fabric==2.2.2
|
||||
# via lightning
|
||||
lightning-utilities==0.11.2
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via pytorch-lightning
|
||||
# via torchmetrics
|
||||
llvmlite==0.41.1
|
||||
# via numba
|
||||
markdown==3.6
|
||||
# via tensorboard
|
||||
markdown-it-py==3.0.0
|
||||
# via rich
|
||||
markupsafe==2.1.5
|
||||
# via jinja2
|
||||
# via werkzeug
|
||||
matplotlib==3.7.5
|
||||
# via batdetect2
|
||||
# via lightning
|
||||
# via soundevent
|
||||
matplotlib-inline==0.1.7
|
||||
# via ipykernel
|
||||
# via ipython
|
||||
mdurl==0.1.2
|
||||
# via markdown-it-py
|
||||
mpmath==1.3.0
|
||||
# via sympy
|
||||
msgpack==1.0.8
|
||||
# via librosa
|
||||
multidict==6.0.5
|
||||
# via aiohttp
|
||||
# via yarl
|
||||
nest-asyncio==1.6.0
|
||||
# via ipykernel
|
||||
netcdf4==1.6.5
|
||||
# via batdetect2
|
||||
networkx==3.1
|
||||
# via torch
|
||||
numba==0.58.1
|
||||
# via librosa
|
||||
numpy==1.24.4
|
||||
# via batdetect2
|
||||
# via cftime
|
||||
# via contourpy
|
||||
# via librosa
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via matplotlib
|
||||
# via netcdf4
|
||||
# via numba
|
||||
# via onnx
|
||||
# via pandas
|
||||
# via pytorch-lightning
|
||||
# via rasterio
|
||||
# via scikit-learn
|
||||
# via scipy
|
||||
# via shapely
|
||||
# via snuggs
|
||||
# via soxr
|
||||
# via tensorboard
|
||||
# via tensorboardx
|
||||
# via torchmetrics
|
||||
# via torchvision
|
||||
# via xarray
|
||||
nvidia-cublas-cu12==12.1.3.1
|
||||
# via nvidia-cudnn-cu12
|
||||
# via nvidia-cusolver-cu12
|
||||
# via torch
|
||||
nvidia-cuda-cupti-cu12==12.1.105
|
||||
# via torch
|
||||
nvidia-cuda-nvrtc-cu12==12.1.105
|
||||
# via torch
|
||||
nvidia-cuda-runtime-cu12==12.1.105
|
||||
# via torch
|
||||
nvidia-cudnn-cu12==8.9.2.26
|
||||
# via torch
|
||||
nvidia-cufft-cu12==11.0.2.54
|
||||
# via torch
|
||||
nvidia-curand-cu12==10.3.2.106
|
||||
# via torch
|
||||
nvidia-cusolver-cu12==11.4.5.107
|
||||
# via torch
|
||||
nvidia-cusparse-cu12==12.1.0.106
|
||||
# via nvidia-cusolver-cu12
|
||||
# via torch
|
||||
nvidia-nccl-cu12==2.19.3
|
||||
# via torch
|
||||
nvidia-nvjitlink-cu12==12.4.127
|
||||
# via nvidia-cusolver-cu12
|
||||
# via nvidia-cusparse-cu12
|
||||
nvidia-nvtx-cu12==12.1.105
|
||||
# via torch
|
||||
omegaconf==2.3.0
|
||||
# via hydra-core
|
||||
# via lightning
|
||||
onnx==1.16.0
|
||||
# via batdetect2
|
||||
ordered-set==4.1.0
|
||||
# via deepdiff
|
||||
packaging==24.0
|
||||
# via docker
|
||||
# via hydra-core
|
||||
# via ipykernel
|
||||
# via lazy-loader
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via lightning-utilities
|
||||
# via matplotlib
|
||||
# via pooch
|
||||
# via pytest
|
||||
# via pytorch-lightning
|
||||
# via tensorboardx
|
||||
# via torchmetrics
|
||||
# via xarray
|
||||
pandas==2.0.3
|
||||
# via batdetect2
|
||||
# via xarray
|
||||
parso==0.8.4
|
||||
# via jedi
|
||||
pexpect==4.9.0
|
||||
# via ipython
|
||||
pickleshare==0.7.5
|
||||
# via ipython
|
||||
pillow==10.3.0
|
||||
# via matplotlib
|
||||
# via torchvision
|
||||
platformdirs==4.2.0
|
||||
# via jupyter-core
|
||||
# via pooch
|
||||
pluggy==1.4.0
|
||||
# via pytest
|
||||
pooch==1.8.1
|
||||
# via librosa
|
||||
prompt-toolkit==3.0.43
|
||||
# via ipython
|
||||
protobuf==5.26.1
|
||||
# via onnx
|
||||
# via tensorboard
|
||||
# via tensorboardx
|
||||
psutil==5.9.8
|
||||
# via ipykernel
|
||||
# via lightning
|
||||
ptyprocess==0.7.0
|
||||
# via pexpect
|
||||
pure-eval==0.2.2
|
||||
# via stack-data
|
||||
pycparser==2.22
|
||||
# via cffi
|
||||
pydantic==2.7.0
|
||||
# via fastapi
|
||||
# via lightning
|
||||
# via soundevent
|
||||
pydantic-core==2.18.1
|
||||
# via pydantic
|
||||
pygments==2.17.2
|
||||
# via ipython
|
||||
# via rich
|
||||
pyjwt==2.8.0
|
||||
# via lightning-cloud
|
||||
pyparsing==3.1.2
|
||||
# via matplotlib
|
||||
# via snuggs
|
||||
pytest==8.1.1
|
||||
python-dateutil==2.9.0.post0
|
||||
# via arrow
|
||||
# via botocore
|
||||
# via croniter
|
||||
# via dateutils
|
||||
# via jupyter-client
|
||||
# via matplotlib
|
||||
# via pandas
|
||||
python-multipart==0.0.9
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
pytorch-lightning==2.2.2
|
||||
# via batdetect2
|
||||
# via lightning
|
||||
pytz==2024.1
|
||||
# via dateutils
|
||||
# via pandas
|
||||
pyyaml==6.0.1
|
||||
# via jsonargparse
|
||||
# via lightning
|
||||
# via omegaconf
|
||||
# via pytorch-lightning
|
||||
pyzmq==26.0.0
|
||||
# via ipykernel
|
||||
# via jupyter-client
|
||||
rasterio==1.3.10
|
||||
# via soundevent
|
||||
readchar==4.0.6
|
||||
# via inquirer
|
||||
redis==5.0.4
|
||||
# via lightning
|
||||
requests==2.31.0
|
||||
# via docker
|
||||
# via fsspec
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
# via pooch
|
||||
rich==13.7.1
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
runs==1.2.2
|
||||
# via editor
|
||||
s3fs==2023.12.2
|
||||
# via lightning
|
||||
s3transfer==0.10.1
|
||||
# via boto3
|
||||
scikit-learn==1.3.2
|
||||
# via batdetect2
|
||||
# via librosa
|
||||
scipy==1.10.1
|
||||
# via batdetect2
|
||||
# via librosa
|
||||
# via scikit-learn
|
||||
# via soundevent
|
||||
setuptools==69.5.1
|
||||
# via lightning-utilities
|
||||
# via rasterio
|
||||
# via readchar
|
||||
# via tensorboard
|
||||
shapely==2.0.3
|
||||
# via soundevent
|
||||
six==1.16.0
|
||||
# via asttokens
|
||||
# via blessed
|
||||
# via lightning-cloud
|
||||
# via python-dateutil
|
||||
# via tensorboard
|
||||
sniffio==1.3.1
|
||||
# via anyio
|
||||
snuggs==1.4.7
|
||||
# via rasterio
|
||||
soundevent==2.0.1
|
||||
# via batdetect2
|
||||
soundfile==0.12.1
|
||||
# via librosa
|
||||
# via soundevent
|
||||
soupsieve==2.5
|
||||
# via beautifulsoup4
|
||||
soxr==0.3.7
|
||||
# via librosa
|
||||
stack-data==0.6.3
|
||||
# via ipython
|
||||
starlette==0.37.2
|
||||
# via fastapi
|
||||
# via lightning
|
||||
sympy==1.12
|
||||
# via torch
|
||||
tensorboard==2.16.2
|
||||
# via batdetect2
|
||||
tensorboard-data-server==0.7.2
|
||||
# via tensorboard
|
||||
tensorboardx==2.6.2.2
|
||||
# via lightning
|
||||
threadpoolctl==3.4.0
|
||||
# via scikit-learn
|
||||
tomli==2.0.1
|
||||
# via pytest
|
||||
torch==2.2.2
|
||||
# via batdetect2
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via pytorch-lightning
|
||||
# via torchaudio
|
||||
# via torchmetrics
|
||||
# via torchvision
|
||||
torchaudio==2.2.2
|
||||
# via batdetect2
|
||||
torchmetrics==1.3.2
|
||||
# via lightning
|
||||
# via pytorch-lightning
|
||||
torchvision==0.17.2
|
||||
# via batdetect2
|
||||
tornado==6.4
|
||||
# via ipykernel
|
||||
# via jupyter-client
|
||||
tqdm==4.66.2
|
||||
# via batdetect2
|
||||
# via lightning
|
||||
# via pytorch-lightning
|
||||
traitlets==5.14.2
|
||||
# via comm
|
||||
# via ipykernel
|
||||
# via ipython
|
||||
# via jupyter-client
|
||||
# via jupyter-core
|
||||
# via lightning
|
||||
# via matplotlib-inline
|
||||
triton==2.2.0
|
||||
# via torch
|
||||
types-python-dateutil==2.9.0.20240316
|
||||
# via arrow
|
||||
typeshed-client==2.5.1
|
||||
# via jsonargparse
|
||||
typing-extensions==4.11.0
|
||||
# via aioitertools
|
||||
# via anyio
|
||||
# via fastapi
|
||||
# via ipython
|
||||
# via jsonargparse
|
||||
# via librosa
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via lightning-utilities
|
||||
# via pydantic
|
||||
# via pydantic-core
|
||||
# via pytorch-lightning
|
||||
# via starlette
|
||||
# via torch
|
||||
# via typeshed-client
|
||||
# via uvicorn
|
||||
tzdata==2024.1
|
||||
# via pandas
|
||||
urllib3==1.26.18
|
||||
# via botocore
|
||||
# via docker
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
# via requests
|
||||
uvicorn==0.29.0
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
wcwidth==0.2.13
|
||||
# via blessed
|
||||
# via prompt-toolkit
|
||||
websocket-client==1.7.0
|
||||
# via docker
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
websockets==11.0.3
|
||||
# via lightning
|
||||
werkzeug==3.0.2
|
||||
# via tensorboard
|
||||
wrapt==1.16.0
|
||||
# via aiobotocore
|
||||
xarray==2023.1.0
|
||||
# via cf-xarray
|
||||
# via soundevent
|
||||
xmod==1.8.1
|
||||
# via editor
|
||||
# via runs
|
||||
yarl==1.9.4
|
||||
# via aiohttp
|
||||
zipp==3.18.1
|
||||
# via importlib-metadata
|
||||
# via importlib-resources
|
470
requirements.lock
Normal file
470
requirements.lock
Normal file
@ -0,0 +1,470 @@
|
||||
# generated by rye
|
||||
# use `rye lock` or `rye sync` to update this lockfile
|
||||
#
|
||||
# last locked with the following flags:
|
||||
# pre: false
|
||||
# features: []
|
||||
# all-features: false
|
||||
# with-sources: false
|
||||
# generate-hashes: false
|
||||
# universal: false
|
||||
|
||||
-e file:.
|
||||
absl-py==2.1.0
|
||||
# via tensorboard
|
||||
affine==2.4.0
|
||||
# via rasterio
|
||||
aiobotocore==2.12.3
|
||||
# via s3fs
|
||||
aiohttp==3.9.5
|
||||
# via aiobotocore
|
||||
# via fsspec
|
||||
# via lightning
|
||||
# via s3fs
|
||||
aioitertools==0.11.0
|
||||
# via aiobotocore
|
||||
aiosignal==1.3.1
|
||||
# via aiohttp
|
||||
annotated-types==0.6.0
|
||||
# via pydantic
|
||||
antlr4-python3-runtime==4.9.3
|
||||
# via hydra-core
|
||||
# via omegaconf
|
||||
anyio==4.3.0
|
||||
# via starlette
|
||||
arrow==1.3.0
|
||||
# via lightning
|
||||
async-timeout==4.0.3
|
||||
# via aiohttp
|
||||
# via redis
|
||||
attrs==23.2.0
|
||||
# via aiohttp
|
||||
# via rasterio
|
||||
audioread==3.0.1
|
||||
# via librosa
|
||||
backoff==2.2.1
|
||||
# via lightning
|
||||
beautifulsoup4==4.12.3
|
||||
# via lightning
|
||||
bitsandbytes==0.41.0
|
||||
# via lightning
|
||||
blessed==1.20.0
|
||||
# via inquirer
|
||||
boto3==1.34.69
|
||||
# via lightning-cloud
|
||||
botocore==1.34.69
|
||||
# via aiobotocore
|
||||
# via boto3
|
||||
# via s3transfer
|
||||
certifi==2024.2.2
|
||||
# via netcdf4
|
||||
# via rasterio
|
||||
# via requests
|
||||
cf-xarray==0.9.0
|
||||
# via batdetect2
|
||||
cffi==1.16.0
|
||||
# via soundfile
|
||||
cftime==1.6.3
|
||||
# via netcdf4
|
||||
charset-normalizer==3.3.2
|
||||
# via requests
|
||||
click==8.1.7
|
||||
# via batdetect2
|
||||
# via click-plugins
|
||||
# via cligj
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
# via rasterio
|
||||
# via uvicorn
|
||||
click-plugins==1.1.1
|
||||
# via rasterio
|
||||
cligj==0.7.2
|
||||
# via rasterio
|
||||
contourpy==1.1.1
|
||||
# via matplotlib
|
||||
croniter==1.4.1
|
||||
# via lightning
|
||||
cycler==0.12.1
|
||||
# via matplotlib
|
||||
cython==3.0.10
|
||||
# via soundevent
|
||||
dateutils==0.6.12
|
||||
# via lightning
|
||||
decorator==5.1.1
|
||||
# via librosa
|
||||
deepdiff==6.7.1
|
||||
# via lightning
|
||||
dnspython==2.6.1
|
||||
# via email-validator
|
||||
docker==6.1.3
|
||||
# via lightning
|
||||
docstring-parser==0.16
|
||||
# via jsonargparse
|
||||
editor==1.6.6
|
||||
# via inquirer
|
||||
email-validator==2.1.1
|
||||
# via soundevent
|
||||
exceptiongroup==1.2.1
|
||||
# via anyio
|
||||
fastapi==0.110.2
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
filelock==3.13.4
|
||||
# via torch
|
||||
# via triton
|
||||
fonttools==4.51.0
|
||||
# via matplotlib
|
||||
frozenlist==1.4.1
|
||||
# via aiohttp
|
||||
# via aiosignal
|
||||
fsspec==2023.12.2
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via pytorch-lightning
|
||||
# via s3fs
|
||||
# via torch
|
||||
grpcio==1.62.2
|
||||
# via tensorboard
|
||||
h11==0.14.0
|
||||
# via uvicorn
|
||||
hydra-core==1.3.2
|
||||
# via lightning
|
||||
idna==3.7
|
||||
# via anyio
|
||||
# via email-validator
|
||||
# via requests
|
||||
# via yarl
|
||||
importlib-metadata==7.1.0
|
||||
# via markdown
|
||||
# via rasterio
|
||||
importlib-resources==6.4.0
|
||||
# via matplotlib
|
||||
# via typeshed-client
|
||||
inquirer==3.2.4
|
||||
# via lightning
|
||||
jinja2==3.1.3
|
||||
# via lightning
|
||||
# via torch
|
||||
jmespath==1.0.1
|
||||
# via boto3
|
||||
# via botocore
|
||||
joblib==1.4.0
|
||||
# via librosa
|
||||
# via scikit-learn
|
||||
jsonargparse==4.28.0
|
||||
# via lightning
|
||||
kiwisolver==1.4.5
|
||||
# via matplotlib
|
||||
lazy-loader==0.4
|
||||
# via librosa
|
||||
librosa==0.10.1
|
||||
# via batdetect2
|
||||
lightning==2.2.2
|
||||
# via batdetect2
|
||||
lightning-api-access==0.0.5
|
||||
# via lightning
|
||||
lightning-cloud==0.5.65
|
||||
# via lightning
|
||||
lightning-fabric==2.2.2
|
||||
# via lightning
|
||||
lightning-utilities==0.11.2
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via pytorch-lightning
|
||||
# via torchmetrics
|
||||
llvmlite==0.41.1
|
||||
# via numba
|
||||
markdown==3.6
|
||||
# via tensorboard
|
||||
markdown-it-py==3.0.0
|
||||
# via rich
|
||||
markupsafe==2.1.5
|
||||
# via jinja2
|
||||
# via werkzeug
|
||||
matplotlib==3.7.5
|
||||
# via batdetect2
|
||||
# via lightning
|
||||
# via soundevent
|
||||
mdurl==0.1.2
|
||||
# via markdown-it-py
|
||||
mpmath==1.3.0
|
||||
# via sympy
|
||||
msgpack==1.0.8
|
||||
# via librosa
|
||||
multidict==6.0.5
|
||||
# via aiohttp
|
||||
# via yarl
|
||||
netcdf4==1.6.5
|
||||
# via batdetect2
|
||||
networkx==3.1
|
||||
# via torch
|
||||
numba==0.58.1
|
||||
# via librosa
|
||||
numpy==1.24.4
|
||||
# via batdetect2
|
||||
# via cftime
|
||||
# via contourpy
|
||||
# via librosa
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via matplotlib
|
||||
# via netcdf4
|
||||
# via numba
|
||||
# via onnx
|
||||
# via pandas
|
||||
# via pytorch-lightning
|
||||
# via rasterio
|
||||
# via scikit-learn
|
||||
# via scipy
|
||||
# via shapely
|
||||
# via snuggs
|
||||
# via soxr
|
||||
# via tensorboard
|
||||
# via tensorboardx
|
||||
# via torchmetrics
|
||||
# via torchvision
|
||||
# via xarray
|
||||
nvidia-cublas-cu12==12.1.3.1
|
||||
# via nvidia-cudnn-cu12
|
||||
# via nvidia-cusolver-cu12
|
||||
# via torch
|
||||
nvidia-cuda-cupti-cu12==12.1.105
|
||||
# via torch
|
||||
nvidia-cuda-nvrtc-cu12==12.1.105
|
||||
# via torch
|
||||
nvidia-cuda-runtime-cu12==12.1.105
|
||||
# via torch
|
||||
nvidia-cudnn-cu12==8.9.2.26
|
||||
# via torch
|
||||
nvidia-cufft-cu12==11.0.2.54
|
||||
# via torch
|
||||
nvidia-curand-cu12==10.3.2.106
|
||||
# via torch
|
||||
nvidia-cusolver-cu12==11.4.5.107
|
||||
# via torch
|
||||
nvidia-cusparse-cu12==12.1.0.106
|
||||
# via nvidia-cusolver-cu12
|
||||
# via torch
|
||||
nvidia-nccl-cu12==2.19.3
|
||||
# via torch
|
||||
nvidia-nvjitlink-cu12==12.4.127
|
||||
# via nvidia-cusolver-cu12
|
||||
# via nvidia-cusparse-cu12
|
||||
nvidia-nvtx-cu12==12.1.105
|
||||
# via torch
|
||||
omegaconf==2.3.0
|
||||
# via hydra-core
|
||||
# via lightning
|
||||
onnx==1.16.0
|
||||
# via batdetect2
|
||||
ordered-set==4.1.0
|
||||
# via deepdiff
|
||||
packaging==24.0
|
||||
# via docker
|
||||
# via hydra-core
|
||||
# via lazy-loader
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via lightning-utilities
|
||||
# via matplotlib
|
||||
# via pooch
|
||||
# via pytorch-lightning
|
||||
# via tensorboardx
|
||||
# via torchmetrics
|
||||
# via xarray
|
||||
pandas==2.0.3
|
||||
# via batdetect2
|
||||
# via xarray
|
||||
pillow==10.3.0
|
||||
# via matplotlib
|
||||
# via torchvision
|
||||
platformdirs==4.2.0
|
||||
# via pooch
|
||||
pooch==1.8.1
|
||||
# via librosa
|
||||
protobuf==5.26.1
|
||||
# via onnx
|
||||
# via tensorboard
|
||||
# via tensorboardx
|
||||
psutil==5.9.8
|
||||
# via lightning
|
||||
pycparser==2.22
|
||||
# via cffi
|
||||
pydantic==2.7.0
|
||||
# via fastapi
|
||||
# via lightning
|
||||
# via soundevent
|
||||
pydantic-core==2.18.1
|
||||
# via pydantic
|
||||
pygments==2.17.2
|
||||
# via rich
|
||||
pyjwt==2.8.0
|
||||
# via lightning-cloud
|
||||
pyparsing==3.1.2
|
||||
# via matplotlib
|
||||
# via snuggs
|
||||
python-dateutil==2.9.0.post0
|
||||
# via arrow
|
||||
# via botocore
|
||||
# via croniter
|
||||
# via dateutils
|
||||
# via matplotlib
|
||||
# via pandas
|
||||
python-multipart==0.0.9
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
pytorch-lightning==2.2.2
|
||||
# via batdetect2
|
||||
# via lightning
|
||||
pytz==2024.1
|
||||
# via dateutils
|
||||
# via pandas
|
||||
pyyaml==6.0.1
|
||||
# via jsonargparse
|
||||
# via lightning
|
||||
# via omegaconf
|
||||
# via pytorch-lightning
|
||||
rasterio==1.3.10
|
||||
# via soundevent
|
||||
readchar==4.0.6
|
||||
# via inquirer
|
||||
redis==5.0.4
|
||||
# via lightning
|
||||
requests==2.31.0
|
||||
# via docker
|
||||
# via fsspec
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
# via pooch
|
||||
rich==13.7.1
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
runs==1.2.2
|
||||
# via editor
|
||||
s3fs==2023.12.2
|
||||
# via lightning
|
||||
s3transfer==0.10.1
|
||||
# via boto3
|
||||
scikit-learn==1.3.2
|
||||
# via batdetect2
|
||||
# via librosa
|
||||
scipy==1.10.1
|
||||
# via batdetect2
|
||||
# via librosa
|
||||
# via scikit-learn
|
||||
# via soundevent
|
||||
setuptools==69.5.1
|
||||
# via lightning-utilities
|
||||
# via rasterio
|
||||
# via readchar
|
||||
# via tensorboard
|
||||
shapely==2.0.3
|
||||
# via soundevent
|
||||
six==1.16.0
|
||||
# via blessed
|
||||
# via lightning-cloud
|
||||
# via python-dateutil
|
||||
# via tensorboard
|
||||
sniffio==1.3.1
|
||||
# via anyio
|
||||
snuggs==1.4.7
|
||||
# via rasterio
|
||||
soundevent==2.0.1
|
||||
# via batdetect2
|
||||
soundfile==0.12.1
|
||||
# via librosa
|
||||
# via soundevent
|
||||
soupsieve==2.5
|
||||
# via beautifulsoup4
|
||||
soxr==0.3.7
|
||||
# via librosa
|
||||
starlette==0.37.2
|
||||
# via fastapi
|
||||
# via lightning
|
||||
sympy==1.12
|
||||
# via torch
|
||||
tensorboard==2.16.2
|
||||
# via batdetect2
|
||||
tensorboard-data-server==0.7.2
|
||||
# via tensorboard
|
||||
tensorboardx==2.6.2.2
|
||||
# via lightning
|
||||
threadpoolctl==3.4.0
|
||||
# via scikit-learn
|
||||
torch==2.2.2
|
||||
# via batdetect2
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via pytorch-lightning
|
||||
# via torchaudio
|
||||
# via torchmetrics
|
||||
# via torchvision
|
||||
torchaudio==2.2.2
|
||||
# via batdetect2
|
||||
torchmetrics==1.3.2
|
||||
# via lightning
|
||||
# via pytorch-lightning
|
||||
torchvision==0.17.2
|
||||
# via batdetect2
|
||||
tqdm==4.66.2
|
||||
# via batdetect2
|
||||
# via lightning
|
||||
# via pytorch-lightning
|
||||
traitlets==5.14.3
|
||||
# via lightning
|
||||
triton==2.2.0
|
||||
# via torch
|
||||
types-python-dateutil==2.9.0.20240316
|
||||
# via arrow
|
||||
typeshed-client==2.5.1
|
||||
# via jsonargparse
|
||||
typing-extensions==4.11.0
|
||||
# via aioitertools
|
||||
# via anyio
|
||||
# via fastapi
|
||||
# via jsonargparse
|
||||
# via librosa
|
||||
# via lightning
|
||||
# via lightning-fabric
|
||||
# via lightning-utilities
|
||||
# via pydantic
|
||||
# via pydantic-core
|
||||
# via pytorch-lightning
|
||||
# via starlette
|
||||
# via torch
|
||||
# via typeshed-client
|
||||
# via uvicorn
|
||||
tzdata==2024.1
|
||||
# via pandas
|
||||
urllib3==1.26.18
|
||||
# via botocore
|
||||
# via docker
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
# via requests
|
||||
uvicorn==0.29.0
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
wcwidth==0.2.13
|
||||
# via blessed
|
||||
websocket-client==1.7.0
|
||||
# via docker
|
||||
# via lightning
|
||||
# via lightning-cloud
|
||||
websockets==11.0.3
|
||||
# via lightning
|
||||
werkzeug==3.0.2
|
||||
# via tensorboard
|
||||
wrapt==1.16.0
|
||||
# via aiobotocore
|
||||
xarray==2023.1.0
|
||||
# via cf-xarray
|
||||
# via soundevent
|
||||
xmod==1.8.1
|
||||
# via editor
|
||||
# via runs
|
||||
yarl==1.9.4
|
||||
# via aiohttp
|
||||
zipp==3.18.1
|
||||
# via importlib-metadata
|
||||
# via importlib-resources
|
Loading…
Reference in New Issue
Block a user