I am using the amazing FiftyOne to analyze machine learning model evaluations.
I have an existing (persistent) dataset. In a previous session, I ran an evaluation on it:
python
>>> import fiftyone as fo
>>> dataset = fo.load_dataset("existing_dataset")
>>> dataset.list_evaluations()
[eval]
I would like to retrieve the results
object associated with this evaluation without running the dataset.evaluate_detections
method.
We have multiple teams are will analyze these results, and we need to ensure that all teams have the same data/values. It also would be convenient to access results without waiting for them to be generated.
What I Tried
The command dataset.get_evaluation_info("eval")
returns high level information about the evaluation, but not the results themselves.
When I generated the results, doing a pickle
on the results
object gives a PicklingError
associated with the mongoengine.base.metaclasses
.
I'm glad you like the tool!
What you're looking for is the dataset.load_evaluation_results("eval")
method.
It will return the results object even after persisting and reloading a dataset.
get_evaluation_info()
is used to access the info and arguments used to create the evaluation. Also just FYI, load_evaluation_view()
can be used to load the exact View that was evaluated.
Accessing results while they are being generated could be quite useful. Please feel free to create a feature request on GitHub: https://github.com/voxel51/fiftyone/issues