<!-- # hard line break macro for HTML -->

<a id="recipes"></a>

# FiftyOne Recipes

FiftyOne turbocharges your current workflows, transforming hours of scripting
into minutes so that you can focus on your models. Browse the recipes below to
see how you can leverage FiftyOne to enhance key parts of your machine learning
workflows.

<!-- Recipe cards section ------------------------------------------------------- --><div id="tutorial-cards-container">

<nav class="navbar navbar-expand-lg navbar-light tutorials-nav col-12">
    <div class="tutorial-tags-container">
        <div id="dropdown-filter-tags">
            <div class="tutorial-filter-menu">
                <div class="tutorial-filter filter-btn all-tag-selected" data-tag="all">All</div>
            </div>
        </div>
    </div>
</nav>

<hr class="tutorials-hr">

<div class="row">

<div id="tutorial-cards">
<div class="list">
<!-- Add recipe cards below -->

<div class="col-md-6 tutorials-card-container" data-tags=Basics,Dataset-Curation>

<div class="card tutorials-card" link=fiftyone_torch_dataloader.html>

<div class="card-body">

<div class="tutorials-image"><img src="https://cdn.voxel51.com/recipes_sid_get_item/notebook1/sid_get_item.webp"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Data Loading with Torch Datasets</strong>
</div>

<p class="card-summary">Learn how to efficiently load and work with FiftyOne datasets in PyTorch using FiftyOneTorchDataset.</p>

<p class="tags">Basics,Dataset-Curation</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Torch,Training,Datasets>

<div class="card tutorials-card" link=torch-dataset-examples/simple_training_example.html>

<div class="card-body">

<div class="tutorials-image"><img src="https://cdn.voxel51.com/recipes_fiftyone_torch_mnist_training/notebook_simple_training_example/fiftyone_torch_mnist_training.webp"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Training on MNIST with Torch</strong>
</div>

<p class="card-summary">Train a simple PyTorch model on the MNIST dataset using \`FiftyOneTorchDataset\`, with train/validation/test splits managed in FiftyOne and a reusable training script.</p>

<p class="tags">Torch,Training,Datasets</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Torch,Performance,Data-Loading>

<div class="card tutorials-card" link=torch-dataset-examples/the_cache_field_names_argument.html>

<div class="card-body">

<div class="tutorials-image"><img src="https://cdn.voxel51.com/recipes_fiftyone_torch_cache_fields/notebook_cache_field_names/fiftyone_torch_cache_fields.webp"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Speed Up FiftyOneTorchDataset with Vectorize Mode</strong>
</div>

<p class="card-summary">Eliminate database query overhead during training by enabling vectorize mode in \`FiftyOneTorchDataset\`, preloading all required fields into memory before the training loop begins.</p>

<p class="tags">Torch,Performance,Data-Loading</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Basics,Dataset-Curation>

<div class="card tutorials-card" link=creating_views.html>

<div class="card-body">

<div class="tutorials-image"><img src="../_images/app-views1.gif"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Creating views and using view expressions</strong>
</div>

<p class="card-summary">Create views to easily query and explore your datasets in FiftyOne.</p>

<p class="tags">Basics,Dataset-Curation</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Basics,Dataset-Curation>

<div class="card tutorials-card" link=image_deduplication.html>

<div class="card-body">

<div class="tutorials-image"><img src="../_static/images/recipes/image_deduplication.png"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Removing duplicate images from a dataset</strong>
</div>

<p class="card-summary">Automatically find and remove duplicate and near-duplicate images from your FiftyOne datasets.</p>

<p class="tags">Basics,Dataset-Curation</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Basics,Dataset-Curation>

<div class="card tutorials-card" link=remove_duplicate_annos.html>

<div class="card-body">

<div class="tutorials-image"><img src="../_static/images/recipes/remove_duplicate_annos.png"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Removing duplicate objects from a dataset</strong>
</div>

<p class="card-summary">Check out some common workflows for finding and removing duplicate objects from your FiftyOne datasets.</p>

<p class="tags">Basics,Dataset-Curation</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Basics,Model-Training>

<div class="card tutorials-card" link=adding_classifications.html>

<div class="card-body">

<div class="tutorials-image"><img src="../_images/evaluate_detections_dataset.jpg"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Adding classifier predictions to a dataset</strong>
</div>

<p class="card-summary">Add FiftyOne to your model training and analysis loop to visualize and analyze your classifier's predictions.</p>

<p class="tags">Basics,Model-Training</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Basics,Model-Training>

<div class="card tutorials-card" link=adding_detections.html>

<div class="card-body">

<div class="tutorials-image"><img src="../_images/yolov8_coco_val_predictions.png"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Adding object detections to a dataset</strong>
</div>

<p class="card-summary">Use FiftyOne to store your object detections and use the FiftyOne App to analyze them.</p>

<p class="tags">Basics,Model-Training</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Basics,Visualization>

<div class="card tutorials-card" link=draw_labels.html>

<div class="card-body">

<div class="tutorials-image"><img src="../_images/draw_labels_quickstart_video.gif"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Draw labels on samples</strong>
</div>

<p class="card-summary">Render labels on the samples in your FiftyOne Dataset with a single line of code.</p>

<p class="tags">Basics,Visualization</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Basics,I/O>

<div class="card tutorials-card" link=convert_datasets.html>

<div class="card-body">

<div class="tutorials-image"><img src="../_images/file-explorer.gif"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Convert dataset formats on disk</strong>
</div>

<p class="card-summary">Use FiftyOne's powerful dataset import/export features to convert your datasets on disk between standard (or custom) formats.</p>

<p class="tags">Basics,I/O</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Basics,I/O>

<div class="card tutorials-card" link=merge_datasets.html>

<div class="card-body">

<div class="tutorials-image"><img src="../_images/dynamic-groups.gif"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Merging datasets</strong>
</div>

<p class="card-summary">Easily merge datasets on disk or in-memory using FiftyOne; e.g., to add a new set of model predictions to a dataset.</p>

<p class="tags">Basics,I/O</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Advanced,I/O>

<div class="card tutorials-card" link=custom_importer.html>

<div class="card-body">

<div class="tutorials-image"><img src="../_images/import.gif"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Import datasets in custom formats</strong>
</div>

<p class="card-summary">Write your own custom DatasetImporter and use it to import datasets in your custom format into FiftyOne.</p>

<p class="tags">Advanced,I/O</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Advanced,I/O>

<div class="card tutorials-card" link=custom_exporter.html>

<div class="card-body">

<div class="tutorials-image"><img src="../_images/archive-snapshot.png"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Export datasets in custom formats</strong>
</div>

<p class="card-summary">Write your own custom DatasetExporter and use it to export a FiftyOne Dataset to disk in your custom format.</p>

<p class="tags">Advanced,I/O</p>

</div>

</div>

</div>

</div>

<div class="col-md-6 tutorials-card-container" data-tags=Advanced,I/O>

<div class="card tutorials-card" link=custom_parser.html>

<div class="card-body">

<div class="tutorials-image"><img src="../_images/groups-grid-view.gif"></div>

<div class="tutorials-card-content">

<div class="card-title-container">
    <strong>Parse samples in custom formats</strong>
</div>

<p class="card-summary">Write your own custom SampleParser and use it to add samples in your custom format to a FiftyOne Dataset.</p>

<p class="tags">Advanced,I/O</p>

</div>

</div>

</div>

</div>

<!-- End of recipe cards --></div>

<div class="pagination d-flex justify-content-center"></div>

</div>

</div>
<!-- End Recipe cards section --------------------------------------------------- -->

#### NOTE
Check out the
[fiftyone-examples](https://github.com/voxel51/fiftyone-examples)
repository for more examples of using FiftyOne!
