FiftyOne Brain
The FiftyOne Brain extends the FiftyOne ecosystem with powerful machine learning capabilities for data curation and model analysis. It provides features like visual similarity search, text-based querying, finding unique and representative samples, detecting media quality issues, and identifying annotation mistakes. The library is actively developed, with frequent releases.
Common errors
-
ValueError: Brain method run with key 'my_brain_key' already exists
cause You are attempting to compute a FiftyOne Brain method (e.g., `compute_visualization`, `compute_similarity`) using a `brain_key` that is already associated with an existing run on the dataset.fixDelete the old run before recomputing: `dataset.delete_brain_run('my_brain_key')`, or provide a new, unique `brain_key` for the current run. -
ModuleNotFoundError: No module named 'umap'
cause You are trying to use the UMAP dimensionality reduction method in `fob.compute_visualization` but the `umap-learn` package is not installed.fixInstall the required package: `pip install umap-learn`. -
AttributeError: module 'fiftyone.brain' has no attribute 'compute_similarity' (or other Brain functions)
cause The `fiftyone-brain` package might not be correctly installed, or an outdated version of `fiftyone` is in use where the brain components are not properly linked or exposed.fixEnsure `fiftyone-brain` is installed: `pip install fiftyone-brain`. If you have `fiftyone` installed, verify `pip show fiftyone-brain` shows it. Sometimes reinstalling `fiftyone` (`pip install --upgrade fiftyone`) can resolve component linking issues.
Warnings
- gotcha When re-running a FiftyOne Brain method like `compute_visualization` or `compute_similarity`, if you use the same `brain_key` as a previous run, it will raise a `ValueError`.
- gotcha The `compute_visualization` method, when using `method="umap"`, requires the `umap-learn` package to be installed separately.
- breaking `compute_visualization` with `TSNE` had compatibility issues with `scikit-learn` versions older than 1.7.0.
- gotcha If a `brain_key` is not explicitly provided when computing a Brain method, the run will not be persisted on your dataset and will not be accessible via the FiftyOne App.
- gotcha To use certain embedding models with `compute_similarity` (e.g., 'clip-vit-base32-torch'), you might need to install additional FiftyOne plugins or packages like `fiftyone-embeddings`.
Install
-
pip install fiftyone-brain -
pip install fiftyone
Imports
- fiftyone.brain
import fiftyone_brain as fb
import fiftyone.brain as fob
- fiftyone
import fiftyone as fo
- fiftyone.zoo
import fiftyone.zoo as foz
Quickstart
import fiftyone as fo
import fiftyone.brain as fob
import fiftyone.zoo as foz
# Load a sample dataset
dataset = foz.load_zoo_dataset("quickstart", max_samples=100)
# Compute a 2D visualization of the dataset embeddings
print("Computing visualization...")
results = fob.compute_visualization(
dataset,
brain_key="quickstart_viz",
method="umap" # Requires `pip install umap-learn`
)
print(f"Visualization results stored under brain key: {results.key}")
# You can then launch the FiftyOne App to view the visualization
# session = fo.launch_app(dataset)
# session.wait()
# Compute visual similarity index
print("Computing similarity index...")
fob.compute_similarity(
dataset,
brain_key="quickstart_similarity",
model="clip-vit-base32-torch" # Requires `pip install fiftyone-embeddings`
)
print(f"Similarity index computed for brain key: quickstart_similarity")