-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug/memory loss #126
Bug/memory loss #126
Conversation
Handle errors more gracefully
# Conflicts: # cerulean_cloud/cloud_function_ais_analysis/main.py # cerulean_cloud/cloud_run_orchestrator/handler.py # cerulean_cloud/database_client.py # cerulean_cloud/models.py
🍹
|
🍹
|
features=tileset_fc_list, min_overlaps_to_keep=1 | ||
) | ||
|
||
# Stitch inferences |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this stitching and ensembling done twice or is there a subtle difference I am missing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Stitching and Ensembling are related concepts that we try to keep distinct in this code. Here's my working definition...
Stitching: connecting adjacent tiles that do not overlap
Ensembling: combining multiple (overlapping) runs of a collection of data into a single more robust result
I'm not sure if I am interpreting your question exactly correctly, but yes we do run nms_feature_reduction() twice--
• the first takes place inside postprocess_tileset() and is applied to the scene after having gone through Stitching
self.nms_feature_reduction(feature_collection)
• the second takes place in _orchestrate() and is our primary method of Ensembling
model.nms_feature_reduction(features=tileset_fc_list, min_overlaps_to_keep=1)
This operation goes like N^2, so smaller datasets lead to substantially fewer intersection operations.
The first one is used to generate a single tileset's best candidates for the oil in the scene, primarily used to eliminate the lowest likelihood classes if a single polygon of oil shows up as in two or more class layers (very likely).
The second one is used to choose which of the tileset's results is the best.
Is your question / argument that we might be able to do a single nms_feature_reduction? If so, I'm not sure that we would have much to gain by that, and possibly suffer much worse performance on some "messy" scenes where the polygon count is high.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment is referring to the stitching and ensemble blocks each being run twice
Feel free to merge MAIN back into this branch before running your review.