Evaluate your face or voice verification models literally in seconds.
Project description
evalify
Evaluate Biometric Authentication Models Literally in Seconds.
Installation
Stable release:
pip install evalify
Bleeding edge:
pip install git+https://github.com/ma7555/evalify.git
Used for
Evaluating all biometric authentication models, where the model output is a high-level embeddings known as feature vectors for visual or behaviour biometrics or d-vectors for auditory biometrics.
Usage
import numpy as np
from evalify import Experiment
rng = np.random.default_rng()
nphotos = 500
emb_size = 32
nclasses = 10
X = rng.random((self.nphotos, self.emb_size))
y = rng.integers(self.nclasses, size=self.nphotos)
experiment = Experiment()
experiment.run(X, y)
experiment.get_roc_auc()
print(experiment.roc_auc)
print(experiment.find_threshold_at_fpr(0.01))
How it works
- When you run an experiment, evalify tries all the possible combinations between individuals for authentication based on the
X
andy
parameters and returns the results including FPR, TPR, FNR, TNR and ROC AUC.X
is an array of embeddings andy
is an array of corresponding targets. - Evalify can find the optimal threshold based on your agreed FPR and desired similarity or distance metric.
Documentation:
Features
- Blazing fast implementation for metrics calculation through optimized einstein sum and vectorized calculations.
- Many operations are dispatched to canonical BLAS, cuBLAS, or other specialized routines.
- Smart sampling options using direct indexing from pre-calculated arrays with total control over sampling strategy and sampling numbers.
- Supports most evaluation metrics:
cosine_similarity
pearson_similarity
cosine_distance
euclidean_distance
euclidean_distance_l2
minkowski_distance
manhattan_distance
chebyshev_distance
- Computation time for 4 metrics 4.2 million samples experiment is 24 seconds vs 51 minutes if looping using
scipy.spatial.distance
implemntations.
TODO
- Safer memory allocation. I did not have issues but if you ran out of memory please manually set the
batch_size
argument.
Contribution
- Contributions are welcomed, and they are greatly appreciated! Every little bit helps, and credit will always be given.
- Please check CONTRIBUTING.md for guidelines.
Citation
- If you use this software, please cite it using the metadata from CITATION.cff
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
evalify-1.0.0.tar.gz
(13.3 kB
view details)
Built Distribution
evalify-1.0.0-py3-none-any.whl
(12.9 kB
view details)
File details
Details for the file evalify-1.0.0.tar.gz
.
File metadata
- Download URL: evalify-1.0.0.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 512162b5e8f58223f9c3e0144f514514db96cf7164724b2eac4e69f743a2c497 |
|
MD5 | 6f7ec347eb215f0c2b3988b5eba15731 |
|
BLAKE2b-256 | d81ddc1df17f835a116950bc29d94885a7cac859242bd70ab0e27666a07cb4fc |
File details
Details for the file evalify-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: evalify-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e5e953edf56f44e0ddc09cad2260df8abd273bcd798a32328739a0cd8fa067f |
|
MD5 | da123037532098bfa992199f5998b700 |
|
BLAKE2b-256 | 28bbef0234424a55dab0505018e0ebe904263033234118d72f6e01dc7126ea10 |