FC2カウンター FPGAの部屋 2020年05月16日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

DPU on PYNQ をやってみる4(dpu_resnet50.ipynb をやってみた)

DPU on PYNQ をやってみる3(dpu_mnist_classifier.ipynb をやってみた)”の続き。

前回は、DPU on PYNQ の dpu_mnist_classifier.ipynb をやってみた。今回は、DPU on PYNQ の dpu_resnet50.ipynb をやってみよう。
今回は、Pybind11を利用してC ++ DNNDK APIを呼び出す方法をやっていくようだ。

最初に、dpu.bit を Ultra96-V2 の Zynq UltraScale+ MPSoC にダウンロードした。
!dexplorer -w で現在の DPU ステータスを確認した。やはり、コアが 1 個だった。
DPU-PYNQ_37_200516.png

overlay.load_model("dpu_resnet50_0.elf") で dpu_resnet50_0.elf のモデルをロードした。
画像を確認した。4 つの画像がある。
DPU-PYNQ_38_200516.png
DPU-PYNQ_39_200516.png

Jupyter notebook のセルに直接記述した C++ コードを pybind11を使用して自動的にコンパイルできるそうだ。
cflags と ldflags をセットして、

%%pybind11 resnet50;{cflags};{ldflags}

で以下の C++ コードが実行できるようだ。
DPU-PYNQ_40_200516.png

C++ コードは飛ばすので、後のコードは dpu_resnet50.ipynb を見て欲しい。

resnet50 を Python モジュールとしてインポートできるようになった。
DPU-PYNQ_41_200516.png
DPU-PYNQ_42_200516.png

画像と同じフォルダに、品名が記述されている word.txt ファイルが必要のようだ。
更に、img_floder は / が最後につく必要がある。

画像のディレクトリを見ると、word.txt があった。
DPU-PYNQ_43_200516.png

word.txt で”bell pepper”を検索した。
DPU-PYNQ_44_200516.png
  1. 2020年05月16日 04:23 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0