Skip to content
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

Feature/sg 1033 fix yolox anchors #1369

Merged
merged 37 commits into from
Aug 15, 2023
Merged

Conversation

BloodAxe
Copy link
Contributor

@BloodAxe BloodAxe commented Aug 11, 2023

[Ready for review]

Fixes Anchors implementation that prevents exporting a model to ONNX in FP16 mode

The biggest challenge was to ensure we still can load old checkpoints and new checkpoints (if training a model using current SG version) as well.

How

  • Slightly refactored adapt_state_dict_to_fit_model_layer_names to remap layer weights to new names and extract all logic specific to YoloX to YoloXCheckpointSolver.
  • Removed old _yolox_ckpt_solver since it's logic now inside YoloXCheckpointSolver

Notes

✅ This PR should be merged after #1359 since it relies on changes from that PR

@BloodAxe BloodAxe marked this pull request as ready for review August 14, 2023 08:14
Copy link
Contributor

@Louis-Dupont Louis-Dupont left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some comments inline

@BloodAxe
Copy link
Contributor Author

BloodAxe commented Aug 15, 2023

Ran unit and integration tests on tzag - all greens

Copy link
Contributor

@Louis-Dupont Louis-Dupont left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, did you rerun the tests on tzags to make sure it works ?

@BloodAxe
Copy link
Contributor Author

@Louis-Dupont yes, I re-run tests after we merged @shaydeci's PR with OD prediction once again

@BloodAxe BloodAxe merged commit 6a1f1bc into master Aug 15, 2023
@BloodAxe BloodAxe deleted the feature/SG-1033-fix-yolox-anchors branch August 15, 2023 09:35
Louis-Dupont pushed a commit that referenced this pull request Aug 15, 2023
* Update readme

* Fix small bug in __repr__ implementation of KeypointsImageToTensor

* Test

* Test

* Test

* Test

* Test

* Test

* Make graphsurgeon an optional

* Make graphsurgeon an optional

* Properly handle imports of optional packages

* Added empty __init__.py files

* Do imports of gs inside the export call

* Do imports of gs inside the export call

* Fix DEKR's missing HasPredict interface

* Update notebook & example doc to reflect changes in imports & function names

* Update readme

* Put back images

* Install onnx_graphsurgeon in CI

* Install onnx_graphsurgeon in CI

* Working prototype of YoloX fix of Anchors that can load model weights as well

* Added more tests for detection predict() and yolox checkpoint loading

* Fix version of ONNX-GS installed in CI and installed on-demand

* Added docs

* Added docs

* Added docs

* Remove leftover

* Set ignore_errors=True to trainer test and declare why

* Fix bug in maybe_remove_module_prefix
Louis-Dupont added a commit that referenced this pull request Aug 22, 2023
* wip-S

* wip

* fix bug where resume would crash if latest run doesnt include latest_ckpt

* remove unwanted change + copy hydra

* minor changes

* fix test

* add tests

* fix test

* New Export API (#1318)

* Designing export API

* Export WIP

* ONNX NMS

* Export WIP

* Refactor test and move benchmark API to functino

* Export WIP

* Make the top_k a constant and not variable since TRT export does not work with dynamic top_k

* Refactor test and move benchmark API to functino

* Added option to change the output format

* Refactor test and move benchmark API to functino

* Added option to change the output format

* Refactor test and move benchmark API to functino

* Fixing export to make it TRT friendly

* Fixing export to make it TRT friendly

* Fixing export to make it TRT friendly

* Fixing export to make it TRT friendly

* Remove unused classes

* Remove unused classes

* Remove unused classes

* Remove unused classes

* Fixing export to FP16

* Fixing export to FP16

* Improve output of the benchmark result

* Improve device handling when exporting NMS

* Improve device handling when exporting NMS

* Fix nms format conversion modules export

* Revert unit test

* Improve model device handling

* Adding docs

* Adding docs

* Adding docs

* Adding docs

* Address TODO's after code review

* Added check whether model is already quantized

* Install pytorch quantization package

* Added printin of user-friendly description on how to use the exported model

* Update docs

* Update docs

* Uninstall SG

* Added onnx_graphsurgeon

* Added onnx_graphsurgeon

* Put extra index url at the top

* Put extra index url before the package that requires it

* Fix --index-url to --extra-index-url

* get_requirements to handle --extra-index-url correctly

* Made method draw_box_title public

* Fix tests

* Fix missing HasPredict for BaseClassifier model

* Make quantization parameters overridable

* Feature/sg 000 fix predict in pose estimation (#1358)

* Update readme

* Fix small bug in __repr__ implementation of KeypointsImageToTensor

* Test

* Test

* Test

* Test

* Test

* Test

* Make graphsurgeon an optional

* Make graphsurgeon an optional

* Properly handle imports of optional packages

* Added empty __init__.py files

* Do imports of gs inside the export call

* Do imports of gs inside the export call

* Fix DEKR's missing HasPredict interface

* Update notebook & example doc to reflect changes in imports & function names

* Update readme

* Put back images

* add model export (#1362)

* fix (#1367)

* fix

* add spacing

* Feature/sg 000 propagate imagenet dataset params (#1368)

* Propagate default dataset processing params for other classification models

* Fix bug in predict pipeline (Softmax was computed along batch dimension AFTER taking max along classes dimension)

* Added more classification models to test

* Doc changes (#1253)

* num classes specified was wrong

* wrong num_classes specified

---------

Co-authored-by: Ofri Masad <ofrimasad@users.noreply.github.com>
Co-authored-by: Eugene Khvedchenya <ekhvedchenya@gmail.com>

* Summarize models, losses & metrics for segmentation (#1354)

* Summarize models, losses & metrics

* Added troubleshoothing section

* Feature/sg 000 fix import of onnx graphsurgeon (#1359)

* Update readme

* Fix small bug in __repr__ implementation of KeypointsImageToTensor

* Test

* Test

* Test

* Test

* Test

* Test

* Make graphsurgeon an optional

* Make graphsurgeon an optional

* Properly handle imports of optional packages

* Added empty __init__.py files

* Do imports of gs inside the export call

* Do imports of gs inside the export call

* Fix DEKR's missing HasPredict interface

* Update notebook & example doc to reflect changes in imports & function names

* Update readme

* Put back images

* Install onnx_graphsurgeon in CI

* Install onnx_graphsurgeon in CI

* Fix version of ONNX-GS installed in CI and installed on-demand

* Fix arange_cpu not implemented for Half

* Fix arange_cpu not implemented for Half

* Fix graph merging for old pytorch (1.12) that crashed because of nodes with duplicate names

* Feature/sg 1047 predict od with labels (#1365)

* cleanup start

* added docs

* added tests

* added tests + fix yolox

* fixed ppyoloe

* fixed ppyoloe

* small ppyoloe prep model for conversion fix

* small ppyoloe prep model for conversion fix

* fixed image_i_object_count ref docs

* alligned box thickness

* renamed vars in example

* changed statement and added len verification

* fixed predictions docs

* fixed pipelines docs

* removed gt text from plots

* removed gt text from plots

* refactored predict with labels to use show/save

* Feature/sg 1033 fix yolox anchors (#1369)

* Update readme

* Fix small bug in __repr__ implementation of KeypointsImageToTensor

* Test

* Test

* Test

* Test

* Test

* Test

* Make graphsurgeon an optional

* Make graphsurgeon an optional

* Properly handle imports of optional packages

* Added empty __init__.py files

* Do imports of gs inside the export call

* Do imports of gs inside the export call

* Fix DEKR's missing HasPredict interface

* Update notebook & example doc to reflect changes in imports & function names

* Update readme

* Put back images

* Install onnx_graphsurgeon in CI

* Install onnx_graphsurgeon in CI

* Working prototype of YoloX fix of Anchors that can load model weights as well

* Added more tests for detection predict() and yolox checkpoint loading

* Fix version of ONNX-GS installed in CI and installed on-demand

* Added docs

* Added docs

* Added docs

* Remove leftover

* Set ignore_errors=True to trainer test and declare why

* Fix bug in maybe_remove_module_prefix

* version bumped (#1374)

Co-authored-by: Eugene Khvedchenya <ekhvedchenya@gmail.com>

* Adding pose estimation to the readme (#1375)

* Update readme

* Fix small bug in __repr__ implementation of KeypointsImageToTensor

* Update pose estimation image

* Fix link

* Remove broken link that we can't recover where it was pointing to (#1376)

* test on first run

* improve doc with new checkpoint run logic

* add doc for Trainer

* update doc

* test sweeper

* test sweeper

* test sweeper

* test sweeper

* test sweeper

* test sweeper

* test direcrlt call

* fix indentation

* fix indentation

* move test to integration test

* fix

* add makefiletest

* iupdate

* remove test from base ci test

---------

Co-authored-by: Eugene Khvedchenya <ekhvedchenya@gmail.com>
Co-authored-by: Pranoy Radhakrishnan <pranoyalkr@gmail.com>
Co-authored-by: Ofri Masad <ofrimasad@users.noreply.github.com>
Co-authored-by: Shay Aharon <80472096+shaydeci@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants