FC2カウンター FPGAの部屋 Vitis-AI 2.5 の Custom OP Workflow のクイックスタートをやってみる3
fc2ブログ

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

FPGAの部屋

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

Vitis-AI 2.5 の Custom OP Workflow のクイックスタートをやってみる3

Vitis-AI 2.5 の Custom OP Workflow のクイックスタートをやってみる2”の続き。

Vitis-AI 2.5 のカスタム OP ワークフローをやってみようということで、前回は、量子化を行ってコンパイルして XMODL を生成した。今回は、生成された XMODEL と sample.jpg を KV260 に送って、動作させてみたがエラーになってしまった。

Vitis-AI/examples/Custom_OP_Demo/tensorflow2_example ディレクトリを KV260 の Petalinux 2022.1 の /home/petalinux ディレクトリにコピーする。
Custom_OP_Workflow_25_221205.png

KV260 の Petalinux 2022.1 でカスタム OP を登録する。
cd ~/tensorflow2_example/op_registration/cpp
bash op_registration.sh

Custom_OP_Workflow_31_221205.png

sample.jpg をダウンロードする。
Custom_OP_Workflow_26_221205.png

XMODL と sample.jpg を KV260 の Petalinux 2022.1 の ~/tensorflow2_example ディレクトリにコピーする。
Custom_OP_Workflow_27_221205.png

KV260 の Petalinux 2022.1 上で tf2_custom_op_graph_runner.cpp をコンパイルする。
cd ~/tensorflow2_example/deployment/cpp
bash build.sh

tf2_custom_op_graph_runner が生成された。
Custom_OP_Workflow_28_221205.png

カスタム OP デモを実行する。
cd ~/kv260_median/dpu
sudo mkdir -p /run/media/mmcblk0p1/
sudo cp dpu.xclbin /run/media/mmcblk0p1/
sudo xmutil unloadapp
sudo xmutil loadapp dpuprj
cd ~/tensorflow2_example/deployment/cpp
./tf2_custom_op_graph_runner ~/tensorflow2_example/tf2_custom_op.xmodel ~/tensorflow2_example/sample.jpg

うまく行って、7 と認識されている。
Custom_OP_Workflow_29_221205.png
Custom_OP_Workflow_32_221205.png

xilinx-k26-starterkit-20221:~/tensorflow2_example/deployment/cpp$ ./tf2_custom_op_graph_runner ~/tensorflow2_example/tf2_custom_op.xmodel ~/tensorflow2_example/sample.jpg
model_file: /home/petalinux/tensorflow2_example/tf2_custom_op.xmodel
image_path: /home/petalinux/tensorflow2_example/sample.jpg
WARNING: Logging before InitGoogleLogging() is written to STDERR
W1204 12:08:48.427207  1485 tool_function.cpp:171] [UNILOG][WARNING] The operator named custom_layer, type: Mylayer, is not defined in XIR. XIR creates the definition of this operator automatically. You should specify the shape and the data_type of the output tensor of this operation by set_attr("shape", std::vector<int>) and set_attr("data_type", std::string)
image file /home/petalinux/tensorflow2_example/sample.jpg result:
    score[0]   =  0           
    score[1]   =  0           
    score[2]   =  0           
    score[3]   =  0           
    score[4]   =  0           
    score[5]   =  0           
    score[6]   =  0           
    score[7]   =  0.992188    
    score[8]   =  0           
    score[9]   =  0           

  1. 2022年12月05日 05:21 |
  2. Vitis-AI
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/5784-fe286fb3
この記事にトラックバックする(FC2ブログユーザー)