How to implement Deep Learning Model(CNN) on pynq


I have seen many papers about using PYNQ to accelerate AI models such as CNNs. I want to create my own CNN model using a PYNQ overlay to achieve acceleration. I have downloaded Vitis AI to run some examples with its overlays.

These are the problems I am confused about:

1.Can I retrain these models, such as U-Net included in Vitis AI, with my own dataset?
2.Can I build my own model using CNN with an overlay on the board using tools like REVISION or other tools?
The board I have is the FPGA Pynq Z2.

Any advice would be appreciated! Thanks for your help!

Hi @tahar_abs,

Welcome to the PYNQ community.

Vitis AI does not support Zynq 7000. You can use FINN to compile your CNN as dataflow accelerator. But, you will not be able to do this directly on the board.


1 Like

Hi Mario,

Thank you for your response and warm welcome to the PYNQ community.

I appreciate your clarification regarding Vitis AI’s compatibility with the Zynq 7000 platform and the suggestion to use FINN for compiling CNN as a dataflow accelerator. I’ve taken a look into FINN and dataflow acceleration, but I’m still a bit unclear about the process of not being able to do this directly on the board.

Could you please provide further insight or point me towards resources that explain why this process cannot be done directly on the board? Additionally, are there any alternative approaches or tools that might enable me to deploy my custom CNN (U-net) model with an overlay on the PYNQ Z2 board?

Thank you once again for your assistance.


Let me clarify, you can deploy the overlay that FINN generates on the board. What you cannot do is the development on the PYNQ-Z2 as many of the tools do not run on ARM, for instance Vivado.

1 Like

Thank you for the clarification. I understand that I can deploy FINN-generated overlays on the PYNQ-Z2, but development tools like Vivado don’t run on its ARM processor.

Could you please provide a simplified step-by-step guide to implement my U-Net model using FINN? From what I understand, this means I don’t need to use Vivado for block design.

Thanks again for your assistance!

You may be better off asking this question on the FINN discuss channel or reading their documentation. Xilinx/finn · Discussions · GitHub

1 Like

Thank you for your guidance. I’ll explore the FINN discussion channel
I appreciate your help!