Replies: 3 comments 3 replies
-
Hi,
I know @bwintermann is also working with ResNet-50 (at least the finn-example) on the Alveo U280. Maybe you can talk to him. In general, there have been quite a few issues/discussions that deal with ResNet streamlining problems. Perhaps we should aggregate them into a list or guide. An end-to-end ResNet example (including model definition, training code, and pre-built finn-example) would also be helpful. |
Beta Was this translation helpful? Give feedback.
-
Please check again, whether the code you have linked above is indeed the code you used to export the model shown above: It seems you are not using the shared quantizer for adding the residual branches here, but according to your comment here it seems like you are aware of this issue or even had a shared quantizer in some earlier version of your code? Your model, as it is right now, will not make it past the export to ONNX, due to Could you then please share the exported ONNX model file (or at least some code I could use to quickly export a model with the right input sizes)? I need to see the whole model graph and the order of streamlining steps you are trying to apply to give you more detailed hints at what might be going wrong here. Are you using the |
Beta Was this translation helpful? Give feedback.
-
Maybe the "feature/rn-18" branch in finn-examples can also help you: https://github.com/Xilinx/finn-examples/tree/feature/rn-18/build/resnet18 It should contain a working FINN flow for the ResNet-18 example from Brevitas, but was not merged because the folding configuration is sub-optimal. |
Beta Was this translation helpful? Give feedback.
-
Hi,
I'm currently try to synthesis resnet50 model for Alveo U280. I created the model using brevitas and qonnx library (from dev and main brunch, I merge them ) and based on resnet18, resnet50 (already in qonnx format) and resnet 50 from pytorch. Both of the are from finn example. The synthesis of resnet50 (from the example) process for Alveo U280 is successful but not for my model with the same flow (with auto configuration for folding).
During synthesis, the intermediate model (model after cleanup and streamline) look different from the intermediate model during the synthesis process of the example model. For the blocks number >= 2 on each layer, the input for Relu (MultiTreshold) is change cause defect on the structure of the model ( as in image below ).
My questions are:
Link to my resnet code: resnet50
Thank you!
Beta Was this translation helpful? Give feedback.
All reactions