Create overlay for PYNQ LSTM network

I have successfully built the PYNQ image on my ZedBoard. I want to use it now to accelerate a bidirectional Long Short Term Memory(LSTM) network code for detection of certain things in a time series.
I have written the code on KERAS with tensorflow backend.
I would need to use a overlay for LSTM for this purpose.
If it is not available please give me some idea as to how to make a custom overlay for LSTM network for the ZedBoard
Ambarish

1 Like

Use VHDL/Verilog, or Vivado HLS or some other design entry method to create the network.

There is a quantised LSTM example here for the PYNQ-Z1/Z2 board. These boards use the same Zynq 7020 as the Zedboard. You may not be able to use it directly with your existing code, but it might give you some ideas.

Cathal

2 Likes

The above github repository does not share the vivado HLS codes but only the .bit and .tcl files.How will i reuse the IP? I am a beginner in hardware design(just a undergraduate software developer) , so I might be asking questions which are seemingly stupid.
in PYNQ/bnn (overlay for binary neural network) for example the hardware design is shared and can be rebuilt .
if i use the overlay=Overlay('bit file for the PYNQ/LSTM ') , can the IP be reused?
The PYNQ READTHEDOCS suggest that there should be a python file containing the driver class. On importing that the drivers will be created

I request you to show me how to reuse the IP of the PYNQ/LSTM repo

The repository of PYNQ/LSTM is only for pynq z1 and z2 boards. I am using a zedboard , how to make it work for a zedboard. I want to reuse the IP of LSTM . I have followed the instructions on the pynq SD card to make the image for the zedboard. Now if i try to git clone the PYNQ/LSTM package its telling that its meant only for a PYNQ-Z1 or Z2 board. How to make it work for a ZedBoard?
Ambarish

1 Like

My network is a LSTM network and it is three layers of bidirectional LSTM followed by a full connected layer.
I want to predict time series data. The network is trained using keras and i have the weight files with me.
My first doubt is how will i use the pynq/lstm repo to transfer my weights?
I also have to make the network three layer deep wheras in the pynq lstm repo its only one layer.
so my second doubt is how to add new layers to it?
Thirdly I want prediction on time series and not on text data like on the pynq/lstm repo. can i use the overlay for a entirely different problem like this?

Please guide me
Ambarish

Hi!

Iā€™m actually in the same situation, I want to build an LSTM network for time series forcasting on a PYNQ Z1/Z2 board. Did you find an issue to do that with the LSTM-PYNQ solution ? Here there is the steps to generate the hls code for Vivado : GitHub - Xilinx/LSTM-PYNQ But how to include my python network to generate automatically the IP and RTL ?

Thanks in advance!
Sami