class documentation
class SortBySimilarity(ViewStage): (source)
Constructor: SortBySimilarity(query, k, reverse, dist_field, ...)
Sorts a collection by similarity to a specified query.
In order to use this stage, you must first use
fiftyone.brain.compute_similarity
to index your dataset by
similarity.
Examples:
import fiftyone as fo import fiftyone.brain as fob import fiftyone.zoo as foz dataset = foz.load_zoo_dataset("quickstart") fob.compute_similarity( dataset, model="clip-vit-base32-torch", brain_key="clip" ) # # Sort samples by their similarity to a sample by its ID # query_id = dataset.first().id stage = fo.SortBySimilarity(query_id, k=5) view = dataset.add_stage(stage) # # Sort samples by their similarity to a manually computed vector # model = foz.load_zoo_model("clip-vit-base32-torch") embeddings = dataset.take(2, seed=51).compute_embeddings(model) query = embeddings.mean(axis=0) stage = fo.SortBySimilarity(query, k=5) view = dataset.add_stage(stage) # # Sort samples by their similarity to a text prompt # query = "kites high in the air" stage = fo.SortBySimilarity(query, k=5) view = dataset.add_stage(stage)
Parameters | |
query | the query, which can be any of the following:
|
k | the number of matches to return. By default, the entire collection is sorted |
reverse | whether to sort by least similarity (True) or greatest similarity (False). Some backends may not support least similarity |
dist | the name of a float field in which to store the distance of each example to the specified query. The field is created if necessary |
brain | the brain key of an existing
fiftyone.brain.compute_similarity run on the dataset. If
not specified, the dataset must have an applicable run, which will
be used by default |
Method | __init__ |
Undocumented |
Method | to |
Returns the MongoDB aggregation pipeline for the stage. |
Method | validate |
Validates that the stage can be applied to the given collection. |
Property | brain |
The brain key of the similarity index to use. |
Property | dist |
The field to store similarity distances, if any. |
Property | k |
The number of matches to return. |
Property | query |
The query. |
Property | reverse |
Whether to sort by least similarity. |
Class Method | _params |
Returns a list of JSON dicts describing the stage's supported parameters. |
Method | _kwargs |
Returns a list of [name, value] lists describing the parameters of this stage instance. |
Method | _make |
Undocumented |
Instance Variable | _brain |
Undocumented |
Instance Variable | _dist |
Undocumented |
Instance Variable | _is |
Undocumented |
Instance Variable | _k |
Undocumented |
Instance Variable | _pipeline |
Undocumented |
Instance Variable | _query |
Undocumented |
Instance Variable | _query |
Undocumented |
Instance Variable | _reverse |
Undocumented |
Instance Variable | _state |
Undocumented |
Inherited from ViewStage
:
Method | __eq__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | get |
Returns a list of names of fields or embedded fields that may have been edited by the stage, if any. |
Method | get |
Returns a list of fields that have been excluded by the stage, if any. |
Method | get |
Returns a list of names of fields or embedded fields that contain arrays have been filtered by the stage, if any. |
Method | get |
Returns the dynamic group expression for the given stage, if any. |
Method | get |
Returns the media type outputted by this stage when applied to the given collection, if and only if it is different from the input type. |
Method | get |
Returns a list of fields that have been selected by the stage, if any. |
Method | load |
Loads the fiftyone.core.view.DatasetView containing the output of the stage. |
Property | has |
Whether this stage's output view should be loaded via load_view rather than appending stages to an aggregation pipeline via to_mongo . |
Property | outputs |
Whether this stage outputs or flattens dynamic groups. |
Class Method | _from |
Creates a ViewStage instance from a serialized JSON dict representation of it. |
Method | _needs |
Whether the stage requires frame labels of video samples to be attached. |
Method | _needs |
Whether the stage requires group slice(s) to be attached. |
Method | _serialize |
Returns a JSON dict representation of the ViewStage . |
Instance Variable | _uuid |
Undocumented |
def __init__(self, query, k=None, reverse=False, dist_field=None, brain_key=None, _state=None):
(source)
¶
Undocumented
overrides
fiftyone.core.stages.ViewStage.to_mongo
Returns the MongoDB aggregation pipeline for the stage.
Only usable if has_view
is False.
Parameters | |
_ | Undocumented |
sample | the
fiftyone.core.collections.SampleCollection to which
the stage is being applied |
Returns | |
a MongoDB aggregation pipeline (list of dicts) |
overrides
fiftyone.core.stages.ViewStage.validate
Validates that the stage can be applied to the given collection.
Parameters | |
sample | a
fiftyone.core.collections.SampleCollection |
Raises | |
ViewStageError | if the stage cannot be applied to the collection |
overrides
fiftyone.core.stages.ViewStage._params
Returns a list of JSON dicts describing the stage's supported parameters.
Returns | |
a list of JSON dicts |
overrides
fiftyone.core.stages.ViewStage._kwargs
Returns a list of [name, value] lists describing the parameters of this stage instance.
Returns | |
a list of [name, value] lists |