Releases: talmolab/sleap
SLEAP v1.2.3
Stable release of SLEAP v1.2.3. This release contains some bug fixes and new feature enhancements.
See the release notes for v1.2.0, v1.2.1, and v1.2.2 for previous major changes.
Note: In this release, we transition from the murthylab GitHub organization to the talmolab organization. Let us know if run into any issues with outdated links through the GUI or website.
Quick install
conda (Windows/Linux/GPU):
conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.3
pip (any OS):
pip install sleap==1.2.3
See the Installation page in the docs for more info.
Highlights
- Add support for importing AlphaTracker annotations
- Add support for new DeepLabCut labels formats
Full changelog
Enhancements
Fixes
SLEAP v1.2.2
Stable release of SLEAP v1.2.2. This release contains some bug fixes and new feature enhancements.
See the release notes for v1.2.0 and release notes for v1.2.1 for previous major changes.
Quick install
conda (Windows/Linux/GPU):
conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.2
pip (any OS):
pip install sleap==1.2.2
See the Installation page in the docs for more info.
Highlights
-
Major inference speed improvements of 2-4x when using the high-level API:
Old:
New:
-
New training monitor statistics and more detailed graphics in the loss plot:
Full changelog
Enhancements
- Add support for new maDLC labels format (#678)
- Training monitor enhancements (implements #624) (#691)
- Add hide instance menu item and hotkey (H) (implements #665) (#692, #694)
Fixes
SLEAP v1.2.1
Stable release of SLEAP v1.2.1. This release contains a small number of hotfixes. See the release notes for v1.2.0 for previous major changes.
Quick install
conda (Windows/Linux/GPU):
conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.1
pip (any OS):
pip install sleap==1.2.1
See the Installation page in the docs for more info.
Full changelog
-
Add support for new maDLC labels format (#678)
- Fixes #676
-
Enable TensorFlow 2.8 support (#683)
- Fixes Colab support (#680)
-
Add experimental support for supervised ID models (#679)
- Note: This is being released for backward compatibility, but it should be considered strictly experimental. It is not yet available in the GUI. Full functionality will be documented in a future release.
SLEAP v1.2.0
Stable release of SLEAP v1.2.0.
This includes updates to core libraries used in SLEAP to enable support for newer NVIDIA GPUs, including TensorFlow 2.6. In addition, this release contains a long list of bug fixes and minor enhancements in both the GUI and the backend.
Quick install
conda (Windows/Linux/GPU):
conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.0
pip (any OS):
pip install sleap==1.2.0
Highlights
- SLEAP now uses Python 3.7, but is compatible with 3.8 and 3.9 (where dependencies are available for your OS).
- SLEAP now uses TensorFlow 2.6.3, but is compatible with 2.7.x.
- SLEAP now supports newer NVIDIA GPUs such as the 3000 series and A100s.
Full changelog
-
Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.
- Fixes #454
- Version changes:
python=3.6→python=3.7tensorflow=2.3.1→tensorflow=2.7.0(2.6.2 should also work)cudatoolkit=10.1→cudatoolkit=11.3.1cudnn=7.6→cudnn=8.2.1h5py=2.10.0→h5py=3.1.0(up to 3.6.0 should also work)numpy=1.18.1→numpy=1.19.5(up to 1.21.2 should also work)imgaug=0.3.0→imgaug=0.4.0attrs=19.3→attrs=21.2.0cattrs=1.0.0rc→cattrs=1.1.1rich=9.10.0→rich=10.16.1scipy=1.4.1→scipy=1.7.1(1.4.1 should also work)
-
Conda packages and environments now require
nvidia::cuda-nvcc=11.3to enable platform specific optimizations (#623).- Note: This now requires the
-c nvidiachannel addition to conda commands.
- Note: This now requires the
-
Clean up CI/CD pipelines (#618):
- Now building on release or when build version is bumped
environment.ymlis not usingsleap::channel packages and instead relies onpipfor flexibilityenvironment_no_cuda.ymlis not usingsleap::packages and is now the default for CIenvironment_build.ymlDOES usesleap::packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
-
GUI enhancements (#618)
-
Labeling GUI node visibility fixes (#619)
- Add option for toggling display of non-visible user nodes to View menu.
- Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
- Fixes "ValueError: min() arg is an empty sequence" error
- Fixes "RuntimeWarning: All-NaN axis encountered" error
-
Additional numpy conversion and label manipulation functionality (#621)
- Add
LabeledFrameconvenience properties:user_instances,n_user_instances,has_user_instancespredicted_instances,n_predicted_instances,has_predicted_instancestracked_instances,n_tracked_instances,has_tracked_instances
- Fix
LabeledFrame.numpy()when there are no instances in the frame Labels.numpy()revamp- Works with untracked and single instance data
- Allow for specifying video as integer
- Add
-
Training profile tweaks (#622)
- Standardize profiles and delete old ones
- Sigma defaults to 2.5 for all profiles
- Learning rate scheduler and early stopping now use threshold of 1e-8
- Rotation augmentation defaults to [-15, 15] so front facing videos work by default
- Change default inference target behavior (selected clip → current frame → none)
- Hardcode order for built-in profiles (Defaults are now the smaller models)
- Auto-detect single vs multi-instance model type for default tab from data
- Standardize profiles and delete old ones
-
Fix centroid model evaluation when GT instances have NaNs (#618)
-
Fix PAF instance assembly when skeleton is not topologically sorted (#618)
- Thanks E. Mae Guthman for the report!
-
Fix single instance model visualization during training (#620) (Fixes #604)
-
Drag and drop support for videos and projects (#632)
-
Fix failing grayscale conversion at inference time on GPU (#639) (Fixes #638)
-
Training job generation tweaks (#642)
- Training job package exports a
jobs.yamlthat describes the training/inference tasks. - Training CLI no longer specifies all video paths when building command. Fixes issue where paths are too long or there are too many videos.
- Training job package exports a
-
Fix path resolution in training & inference (#643) (Fixes #634)
-
Bump minor versions and relax some constraints (#647)
-
Use rich to print inference CLI inputs and provenance (#651)
-
Make PAF distance penalty more usable (#650)
- Adds CLI args:
--max_edge_length_ratio MAX_EDGE_LENGTH_RATIO
The maximum expected length of a connected pair of
points as a fraction of the image size. Candidate
connections longer than this length will be penalized
during matching. Only applies to bottom-up (PAF)
models.
--dist_penalty_weight DIST_PENALTY_WEIGHT
A coefficient to scale weight of the distance penalty.
Set to values greater than 1.0 to enforce the distance
penalty more strictly. Only applies to bottom-up (PAF)
models.
-
Fix multi-video inference through the GUI (#655)
-
Fix some dependencies during build (#656)
-
Lazy evaluation of frame list when provided to inference CLI (#659) (fixes #657)
-
Build conda package using tensorflow 2.6.3 (#660)
- Pinned these conda packages for the build:
conda-forge::numpy=1.19.5sleap::tensorflow=2.6.3conda-forge::pyside2=5.13.2conda-forge::h5py=3.1.0conda-forge::scipy=1.7.3
- And these pip packages:
imageio==2.15.0certifi==2021.10.8
- Pinned these conda packages for the build:
Installing
We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.
See the Installation page in the docs for more info.
Using Conda (Windows/Linux)
- Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
- Create new environment called
sleap(recommended):
conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.0
Using PyPI (Windows/Linux/Mac)
- Create a new conda environment called
sleap(recommended):
conda create -n sleap python=3.7
conda activate sleap
- Install from PyPI:
pip install sleap==1.2.0
SLEAP v1.2.0a6
Pre-release of SLEAP v1.2.0.
This includes updates to core libraries used in SLEAP, including TensorFlow to enable support for newer NVIDIA GPUs.
Warning: This is a pre-release! Expect bugs and strange behavior when testing.
Quick install
conda (Windows/Linux/GPU):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a6
pip (any OS):
pip install sleap==1.2.0a6
Full changelog
-
Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.
- Fixes #454
- Version changes:
python=3.6→python=3.7tensorflow=2.3.1→tensorflow=2.7.0(2.6.2 should also work)cudatoolkit=10.1→cudatoolkit=11.3.1cudnn=7.6→cudnn=8.2.1h5py=2.10.0→h5py=3.1.0(up to 3.6.0 should also work)numpy=1.18.1→numpy=1.19.5(up to 1.21.2 should also work)imgaug=0.3.0→imgaug=0.4.0attrs=19.3→attrs=21.2.0cattrs=1.0.0rc→cattrs=1.1.1rich=9.10.0→rich=10.16.1scipy=1.4.1→scipy=1.7.1(1.4.1 should also work)
-
Conda packages and environments now require
nvidia::cuda-nvcc=11.3to enable platform specific optimizations (#623).- Note: This now requires the
-c nvidiachannel addition to conda commands.
- Note: This now requires the
-
Clean up CI/CD pipelines (#618):
- Now building on release or when build version is bumped
environment.ymlis not usingsleap::channel packages and instead relies onpipfor flexibilityenvironment_no_cuda.ymlis not usingsleap::packages and is now the default for CIenvironment_build.ymlDOES usesleap::packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
-
GUI enhancements (#618)
-
Labeling GUI node visibility fixes (#619)
- Add option for toggling display of non-visible user nodes to View menu.
- Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
- Fixes "ValueError: min() arg is an empty sequence" error
- Fixes "RuntimeWarning: All-NaN axis encountered" error
-
Additional numpy conversion and label manipulation functionality (#621)
- Add
LabeledFrameconvenience properties:user_instances,n_user_instances,has_user_instancespredicted_instances,n_predicted_instances,has_predicted_instancestracked_instances,n_tracked_instances,has_tracked_instances
- Fix
LabeledFrame.numpy()when there are no instances in the frame Labels.numpy()revamp- Works with untracked and single instance data
- Allow for specifying video as integer
- Add
-
Training profile tweaks (#622)
- Standardize profiles and delete old ones
- Sigma defaults to 2.5 for all profiles
- Learning rate scheduler and early stopping now use threshold of 1e-8
- Rotation augmentation defaults to [-15, 15] so front facing videos work by default
- Change default inference target behavior (selected clip → current frame → none)
- Hardcode order for built-in profiles (Defaults are now the smaller models)
- Auto-detect single vs multi-instance model type for default tab from data
- Standardize profiles and delete old ones
-
Fix centroid model evaluation when GT instances have NaNs (#618)
-
Fix PAF instance assembly when skeleton is not topologically sorted (#618)
- Thanks E. Mae Guthman for the report!
-
Fix single instance model visualization during training (#620) (Fixes #604)
-
Drag and drop support for videos and projects (#632)
-
Fix failing grayscale conversion at inference time on GPU (#639) (Fixes #638)
-
Training job generation tweaks (#642)
- Training job package exports a
jobs.yamlthat describes the training/inference tasks. - Training CLI no longer specifies all video paths when building command. Fixes issue where paths are too long or there are too many videos.
- Training job package exports a
-
Fix path resolution in training & inference (#643) (Fixes #634)
-
Bump minor versions and relax some constraints (#647)
-
Use rich to print inference CLI inputs and provenance (#651)
-
Make PAF distance penalty more usable (#650)
- Adds CLI args:
--max_edge_length_ratio MAX_EDGE_LENGTH_RATIO
The maximum expected length of a connected pair of
points as a fraction of the image size. Candidate
connections longer than this length will be penalized
during matching. Only applies to bottom-up (PAF)
models.
--dist_penalty_weight DIST_PENALTY_WEIGHT
A coefficient to scale weight of the distance penalty.
Set to values greater than 1.0 to enforce the distance
penalty more strictly. Only applies to bottom-up (PAF)
models.
-
Fix multi-video inference through the GUI (#655)
-
Fix some dependencies during build (#656)
-
Lazy evaluation of frame list when provided to inference CLI (#659) (fixes #657)
-
Build conda package using tensorflow 2.6.3 (#660)
- Pinned these conda packages for the build:
conda-forge::numpy=1.19.5sleap::tensorflow=2.6.3conda-forge::pyside2=5.13.2conda-forge::h5py=3.1.0conda-forge::scipy=1.7.3
- And these pip packages:
imageio==2.15.0certifi==2021.10.8
- Pinned these conda packages for the build:
Installing
We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.
See the Installation page in the docs for more info.
Using Conda (Windows/Linux)
- Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
- Create new environment called
sleap(recommended):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a6
Using PyPI (Windows/Linux/Mac)
- Create a new conda environment called
sleap(recommended):
conda create -n sleap python=3.7
conda activate sleap
- Install from PyPI:
pip install sleap==1.2.0a6
SLEAP v1.2.0a5
Pre-release of SLEAP v1.2.0.
This includes updates to core libraries used in SLEAP, including TensorFlow to enable support for newer NVIDIA GPUs.
Warning: This is a pre-release! Expect bugs and strange behavior when testing.
Quick install
conda (Windows/Linux/GPU):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a5
pip (any OS):
pip install sleap==1.2.0a5
Full changelog
-
Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.
- Fixes #454
- Version changes:
python=3.6→python=3.7tensorflow=2.3.1→tensorflow=2.7.0(2.6.2 should also work)cudatoolkit=10.1→cudatoolkit=11.3.1cudnn=7.6→cudnn=8.2.1h5py=2.10.0→h5py=3.1.0(up to 3.6.0 should also work)numpy=1.18.1→numpy=1.19.5(up to 1.21.2 should also work)imgaug=0.3.0→imgaug=0.4.0attrs=19.3→attrs=21.2.0cattrs=1.0.0rc→cattrs=1.1.1rich=9.10.0→rich=10.16.1scipy=1.4.1→scipy=1.7.1(1.4.1 should also work)
-
Conda packages and environments now require
nvidia::cuda-nvcc=11.3to enable platform specific optimizations (#623).- Note: This now requires the
-c nvidiachannel addition to conda commands.
- Note: This now requires the
-
Clean up CI/CD pipelines (#618):
- Now building on release or when build version is bumped
environment.ymlis not usingsleap::channel packages and instead relies onpipfor flexibilityenvironment_no_cuda.ymlis not usingsleap::packages and is now the default for CIenvironment_build.ymlDOES usesleap::packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
-
GUI enhancements (#618)
-
Labeling GUI node visibility fixes (#619)
- Add option for toggling display of non-visible user nodes to View menu.
- Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
- Fixes "ValueError: min() arg is an empty sequence" error
- Fixes "RuntimeWarning: All-NaN axis encountered" error
-
Additional numpy conversion and label manipulation functionality (#621)
- Add
LabeledFrameconvenience properties:user_instances,n_user_instances,has_user_instancespredicted_instances,n_predicted_instances,has_predicted_instancestracked_instances,n_tracked_instances,has_tracked_instances
- Fix
LabeledFrame.numpy()when there are no instances in the frame Labels.numpy()revamp- Works with untracked and single instance data
- Allow for specifying video as integer
- Add
-
Training profile tweaks (#622)
- Standardize profiles and delete old ones
- Sigma defaults to 2.5 for all profiles
- Learning rate scheduler and early stopping now use threshold of 1e-8
- Rotation augmentation defaults to [-15, 15] so front facing videos work by default
- Change default inference target behavior (selected clip → current frame → none)
- Hardcode order for built-in profiles (Defaults are now the smaller models)
- Auto-detect single vs multi-instance model type for default tab from data
- Standardize profiles and delete old ones
-
Fix centroid model evaluation when GT instances have NaNs (#618)
-
Fix PAF instance assembly when skeleton is not topologically sorted (#618)
- Thanks E. Mae Guthman for the report!
-
Fix single instance model visualization during training (#620) (Fixes #604)
-
Drag and drop support for videos and projects (#632)
-
Fix failing grayscale conversion at inference time on GPU (#639) (Fixes #638)
-
Training job generation tweaks (#642)
- Training job package exports a
jobs.yamlthat describes the training/inference tasks. - Training CLI no longer specifies all video paths when building command. Fixes issue where paths are too long or there are too many videos.
- Training job package exports a
-
Fix path resolution in training & inference (#643) (Fixes #634)
-
Bump minor versions and relax some constraints (#647)
-
Use rich to print inference CLI inputs and provenance (#651)
-
Make PAF distance penalty more usable (#650)
- Adds CLI args:
--max_edge_length_ratio MAX_EDGE_LENGTH_RATIO
The maximum expected length of a connected pair of
points as a fraction of the image size. Candidate
connections longer than this length will be penalized
during matching. Only applies to bottom-up (PAF)
models.
--dist_penalty_weight DIST_PENALTY_WEIGHT
A coefficient to scale weight of the distance penalty.
Set to values greater than 1.0 to enforce the distance
penalty more strictly. Only applies to bottom-up (PAF)
models.
Installing
We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.
See the Installation page in the docs for more info.
Using Conda (Windows/Linux)
- Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
- Create new environment called
sleap(recommended):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a5
Using PyPI (Windows/Linux/Mac)
- Create a new conda environment called
sleap(recommended):
conda create -n sleap python=3.7
conda activate sleap
- Install from PyPI:
pip install sleap==1.2.0a5
SLEAP v1.2.0a4
Pre-release of SLEAP v1.2.0.
This includes updates to core libraries used in SLEAP, including TensorFlow to enable support for newer NVIDIA GPUs.
Warning: This is a pre-release! Expect bugs and strange behavior when testing.
Quick install
conda (Windows/Linux/GPU):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a4
pip (any OS):
pip install sleap==1.2.0a4
Full changelog
-
Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.
- Fixes #454
- Version changes:
python=3.6→python=3.7tensorflow=2.3.1→tensorflow=2.7.0(2.6.2 should also work)cudatoolkit=10.1→cudatoolkit=11.3.1cudnn=7.6→cudnn=8.2.1h5py=2.10.0→h5py=3.1.0(up to 3.6.0 should also work)numpy=1.18.1→numpy=1.19.5(up to 1.21.2 should also work)imgaug=0.3.0→imgaug=0.4.0attrs=19.3→attrs=21.2.0cattrs=1.0.0rc→cattrs=1.1.1rich=9.10.0→rich=10.16.1scipy=1.4.1→scipy=1.7.1(1.4.1 should also work)
-
Conda packages and environments now require
nvidia::cuda-nvcc=11.3to enable platform specific optimizations (#623).- Note: This now requires the
-c nvidiachannel addition to conda commands.
- Note: This now requires the
-
Clean up CI/CD pipelines (#618):
- Now building on release or when build version is bumped
environment.ymlis not usingsleap::channel packages and instead relies onpipfor flexibilityenvironment_no_cuda.ymlis not usingsleap::packages and is now the default for CIenvironment_build.ymlDOES usesleap::packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
-
GUI enhancements (#618)
-
Labeling GUI node visibility fixes (#619)
- Add option for toggling display of non-visible user nodes to View menu.
- Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
- Fixes "ValueError: min() arg is an empty sequence" error
- Fixes "RuntimeWarning: All-NaN axis encountered" error
-
Additional numpy conversion and label manipulation functionality (#621)
- Add
LabeledFrameconvenience properties:user_instances,n_user_instances,has_user_instancespredicted_instances,n_predicted_instances,has_predicted_instancestracked_instances,n_tracked_instances,has_tracked_instances
- Fix
LabeledFrame.numpy()when there are no instances in the frame Labels.numpy()revamp- Works with untracked and single instance data
- Allow for specifying video as integer
- Add
-
Training profile tweaks (#622)
- Standardize profiles and delete old ones
- Sigma defaults to 2.5 for all profiles
- Learning rate scheduler and early stopping now use threshold of 1e-8
- Rotation augmentation defaults to [-15, 15] so front facing videos work by default
- Change default inference target behavior (selected clip → current frame → none)
- Hardcode order for built-in profiles (Defaults are now the smaller models)
- Auto-detect single vs multi-instance model type for default tab from data
- Standardize profiles and delete old ones
-
Fix centroid model evaluation when GT instances have NaNs (#618)
-
Fix PAF instance assembly when skeleton is not topologically sorted (#618)
- Thanks E. Mae Guthman for the report!
-
Fix single instance model visualization during training (#620) (Fixes #604)
-
Drag and drop support for videos and projects (#632)
-
Fix failing grayscale conversion at inference time on GPU (#639) (Fixes #638)
-
Training job generation tweaks (#642)
- Training job package exports a
jobs.yamlthat describes the training/inference tasks. - Training CLI no longer specifies all video paths when building command. Fixes issue where paths are too long or there are too many videos.
- Training job package exports a
-
Fix path resolution in training & inference (#643) (Fixes #634)
-
Bump minor versions and relax some constraints (#647)
-
Use rich to print inference CLI inputs and provenance (#651)
-
Make PAF distance penalty more usable (#650)
- Adds CLI args:
--max_edge_length_ratio MAX_EDGE_LENGTH_RATIO
The maximum expected length of a connected pair of
points as a fraction of the image size. Candidate
connections longer than this length will be penalized
during matching. Only applies to bottom-up (PAF)
models.
--dist_penalty_weight DIST_PENALTY_WEIGHT
A coefficient to scale weight of the distance penalty.
Set to values greater than 1.0 to enforce the distance
penalty more strictly. Only applies to bottom-up (PAF)
models.
- Fix multi-video inference through the GUI (#655)
Installing
We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.
See the Installation page in the docs for more info.
Using Conda (Windows/Linux)
- Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
- Create new environment called
sleap(recommended):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a4
Using PyPI (Windows/Linux/Mac)
- Create a new conda environment called
sleap(recommended):
conda create -n sleap python=3.7
conda activate sleap
- Install from PyPI:
pip install sleap==1.2.0a4
SLEAP v1.2.0a3
Pre-release of SLEAP v1.2.0.
This includes updates to core libraries used in SLEAP, including TensorFlow to enable support for newer NVIDIA GPUs.
Warning: This is a pre-release! Expect bugs and strange behavior when testing.
Quick install
conda (Windows/Linux/GPU):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a3
pip (any OS):
pip install sleap==1.2.0a3
Full changelog
-
Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.
- Fixes #454
- Version changes:
python=3.6→python=3.7tensorflow=2.3.1→tensorflow=2.7.0(2.6.2 should also work)cudatoolkit=10.1→cudatoolkit=11.3.1cudnn=7.6→cudnn=8.2.1h5py=2.10.0→h5py=3.1.0(up to 3.6.0 should also work)numpy=1.18.1→numpy=1.19.5(up to 1.21.2 should also work)imgaug=0.3.0→imgaug=0.4.0attrs=19.3→attrs=21.2.0cattrs=1.0.0rc→cattrs=1.1.1rich=9.10.0→rich=10.16.1scipy=1.4.1→scipy=1.7.1(1.4.1 should also work)
-
Conda packages and environments now require
nvidia::cuda-nvcc=11.3to enable platform specific optimizations (#623).- Note: This now requires the
-c nvidiachannel addition to conda commands.
- Note: This now requires the
-
Clean up CI/CD pipelines (#618):
- Now building on release or when build version is bumped
environment.ymlis not usingsleap::channel packages and instead relies onpipfor flexibilityenvironment_no_cuda.ymlis not usingsleap::packages and is now the default for CIenvironment_build.ymlDOES usesleap::packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
-
GUI enhancements (#618)
-
Labeling GUI node visibility fixes (#619)
- Add option for toggling display of non-visible user nodes to View menu.
- Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
- Fixes "ValueError: min() arg is an empty sequence" error
- Fixes "RuntimeWarning: All-NaN axis encountered" error
-
Additional numpy conversion and label manipulation functionality (#621)
- Add
LabeledFrameconvenience properties:user_instances,n_user_instances,has_user_instancespredicted_instances,n_predicted_instances,has_predicted_instancestracked_instances,n_tracked_instances,has_tracked_instances
- Fix
LabeledFrame.numpy()when there are no instances in the frame Labels.numpy()revamp- Works with untracked and single instance data
- Allow for specifying video as integer
- Add
-
Training profile tweaks (#622)
- Standardize profiles and delete old ones
- Sigma defaults to 2.5 for all profiles
- Learning rate scheduler and early stopping now use threshold of 1e-8
- Rotation augmentation defaults to [-15, 15] so front facing videos work by default
- Change default inference target behavior (selected clip → current frame → none)
- Hardcode order for built-in profiles (Defaults are now the smaller models)
- Auto-detect single vs multi-instance model type for default tab from data
- Standardize profiles and delete old ones
-
Fix centroid model evaluation when GT instances have NaNs (#618)
-
Fix PAF instance assembly when skeleton is not topologically sorted (#618)
- Thanks E. Mae Guthman for the report!
-
Fix single instance model visualization during training (#620) (Fixes #604)
-
Drag and drop support for videos and projects (#632)
-
Fix failing grayscale conversion at inference time on GPU (#639) (Fixes #638)
-
Training job generation tweaks (#642)
- Training job package exports a
jobs.yamlthat describes the training/inference tasks. - Training CLI no longer specifies all video paths when building command. Fixes issue where paths are too long or there are too many videos.
- Training job package exports a
-
Fix path resolution in training & inference (#643) (Fixes #634)
-
Bump minor versions and relax some constraints (#647)
-
Use rich to print inference CLI inputs and provenance (#651)
-
Make PAF distance penalty more usable (#650)
- Adds CLI args:
--max_edge_length_ratio MAX_EDGE_LENGTH_RATIO
The maximum expected length of a connected pair of
points as a fraction of the image size. Candidate
connections longer than this length will be penalized
during matching. Only applies to bottom-up (PAF)
models.
--dist_penalty_weight DIST_PENALTY_WEIGHT
A coefficient to scale weight of the distance penalty.
Set to values greater than 1.0 to enforce the distance
penalty more strictly. Only applies to bottom-up (PAF)
models.
Installing
We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.
See the Installation page in the docs for more info.
Using Conda (Windows/Linux)
- Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
- Create new environment called
sleap(recommended):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a3
Using PyPI (Windows/Linux/Mac)
- Create a new conda environment called
sleap(recommended):
conda create -n sleap python=3.7
conda activate sleap
- Install from PyPI:
pip install sleap==1.2.0a3
SLEAP v1.2.0a2
Pre-release of SLEAP v1.2.0.
This includes updates to core libraries used in SLEAP, including TensorFlow to enable support for newer NVIDIA GPUs.
Warning: This is a pre-release! Expect bugs and strange behavior when testing.
Quick install
conda (Windows/Linux/GPU):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia sleap=1.2.0a2
pip (any OS):
pip install sleap==1.2.0a2
Full changelog
-
Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.
- Fixes #454
- Version changes:
python=3.6→python=3.7tensorflow=2.3.1→tensorflow=2.7.0(2.6.2 should also work)cudatoolkit=10.1→cudatoolkit=11.3.1cudnn=7.6→cudnn=8.2.1h5py=2.10.0→h5py=3.1.0(up to 3.6.0 should also work)numpy=1.18.1→numpy=1.19.5(up to 1.21.2 should also work)imgaug=0.3.0→imgaug=0.4.0attrs=19.3→attrs=21.2.0cattrs=1.0.0rc→cattrs=1.1.1rich=9.10.0→rich=10.16.1scipy=1.4.1→scipy=1.7.1(1.4.1 should also work)
-
Conda packages and environments now require
nvidia::cuda-nvcc=11.3to enable platform specific optimizations (#623).- Note: This now requires the
-c nvidiachannel addition to conda commands.
- Note: This now requires the
-
Clean up CI/CD pipelines (#618):
- Now building on release or when build version is bumped
environment.ymlis not usingsleap::channel packages and instead relies onpipfor flexibilityenvironment_no_cuda.ymlis not usingsleap::packages and is now the default for CIenvironment_build.ymlDOES usesleap::packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
-
GUI enhancements (#618)
-
Labeling GUI node visibility fixes (#619)
- Add option for toggling display of non-visible user nodes to View menu.
- Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
- Fixes "ValueError: min() arg is an empty sequence" error
- Fixes "RuntimeWarning: All-NaN axis encountered" error
-
Additional numpy conversion and label manipulation functionality (#621)
- Add
LabeledFrameconvenience properties:user_instances,n_user_instances,has_user_instancespredicted_instances,n_predicted_instances,has_predicted_instancestracked_instances,n_tracked_instances,has_tracked_instances
- Fix
LabeledFrame.numpy()when there are no instances in the frame Labels.numpy()revamp- Works with untracked and single instance data
- Allow for specifying video as integer
- Add
-
Training profile tweaks (#622)
- Standardize profiles and delete old ones
- Sigma defaults to 2.5 for all profiles
- Learning rate scheduler and early stopping now use threshold of 1e-8
- Rotation augmentation defaults to [-15, 15] so front facing videos work by default
- Change default inference target behavior (selected clip → current frame → none)
- Hardcode order for built-in profiles (Defaults are now the smaller models)
- Auto-detect single vs multi-instance model type for default tab from data
- Standardize profiles and delete old ones
-
Fix centroid model evaluation when GT instances have NaNs (#618)
-
Fix PAF instance assembly when skeleton is not topologically sorted (#618)
- Thanks E. Mae Guthman for the report!
-
Fix single instance model visualization during training (#620)
- Fixes #604
Installing
We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.
See the Installation page in the docs for more info.
Using Conda (Windows/Linux)
- Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
- Create new environment called
sleap(recommended):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia sleap=1.2.0a2
Using PyPI (Windows/Linux/Mac)
- Create a new conda environment called
sleap(recommended):
conda create -n sleap python=3.7
conda activate sleap
- Install from PyPI:
pip install sleap==1.2.0a2
SLEAP v1.2.0a1
Pre-release of SLEAP v1.2.0.
This includes updates to core libraries used in SLEAP, particularly TensorFlow to enable support for newer NVIDIA GPUs.
Warning: This is a pre-release! Expect bugs and strange behavior when testing.
Full changelog
- Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.
- Fixes #454
- Version changes:
python=3.6→python=3.7tensorflow=2.3.1→tensorflow=2.7.0(2.6.2 should also work)cudatoolkit=10.1→cudatoolkit=11.3.1cudnn=7.6→cudnn=8.2.1h5py=2.10.0→h5py=3.1.0numpy=1.18.1→numpy=1.19.5imgaug=0.3.0→imgaug=0.4.0attrs=19.3→attrs=21.2.0
Installing
We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.
See the Installation page in the docs for more info.
Using Conda (Windows/Linux)
- Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
- Create new environment
sleap(recommended):
conda create -n sleap -c sleap -c sleap/label/dev sleap=1.2.0a1
Or to update inside an existing environment:
conda install -c sleap -c sleap/label/dev sleap=1.2.0a1
Using PyPI (Windows/Linux/Mac)
- Create a new conda environment (recommended):
conda create -n sleap python=3.7
conda activate sleap
- Install from PyPI:
pip install sleap==1.2.0a1
Or to upgrade an existing installation:
pip install --upgrade --force-reinstall sleap==1.2.0a1