Testing Tensorflow 2.5 in Zybo-Z7 running Pynq 2.7

Hi Brian I hope you’re doing great. First of all, sorry for the late reply :sweat_smile: and thanks for reading the post.

  • I didn’t use Conda for creating the environment, instead I use the virtualenv package since I though it could be more simple. When calling the command $ python3.7 -m virtualenv env (as shown in step 2), a folder called env is created in the current directory. This folder will contain the binaries for the activate and deactivate environment routines.
  • The above mentioned process was made in the /home/xilinx/ directory, but of course you could create the environment anywhere, including the root. However, it is important to run the source $PATHtoENV/env/bin/activate command to get the environment running. After that the shell prompt will add (env) to indicate the activated environment.
  • I’m not sure if I understood the question correctly. So, here is my humble attempt to answer it. The Tensorflow 2.5 wheel was compiled for Python3.7 running on a CPU with the 32-bits architecture ARMv7l. For that reason, the installation was made using the command $pip3.7 install tensorflow-2.5.0-cp37-none-linuxarmv7l.whl . Take into account that all the packages needed by tensorflow (e.g. h5py, matplotlib, numpy, etc) are also installed inside the Python3.7 environment.
  • Issues: I didn’t test all the Tensorflow features. As reported, the model.fit method had a problem. However, you should test your application/model requirements to determine if it doesn’t need that method. One scenario that occurs to me, is to load the pre-trained weights and run the inference in the board. Thus, avoiding the NN training with TF in the Zybo-Z7 board.
    On the other hand, I could train a CNN model with PyTorch as reported here https://discuss.pynq.io/t/testing-pytorch-1-8-in-zybo-z7-running-pynq-2-7/4181. The installation process is similar and there are some example notebooks.
    Hope this can be helpful for anyone reading the post.
    Regards,
    Dorfell