Caffe - 1.1 Japanese

Vitis AI ユーザー ガイド (UG1414)

Document ID
UG1414
Release Date
2020-03-23
Version
1.1 Japanese

プレゼンテーションでは、MODEL (model.prototxt)、WEIGHT (model.caffemodel)、および QUANT_INFO (例: 量子化情報ファイル) があることを前提としてします。基本の Caffe コンパイラ インターフェイスには、シンプルなヘルプがあります。

vai_c_caffe -help
**************************************************
 * VITIS_AI Compilation - Xilinx Inc.
 **************************************************
 usage: vai_c_caffe.py [-h] [-p PROTOTXT] [-c CAFFEMODEL] [-a ARCH]
                       [-o OUTPUT_DIR] [-n NET_NAME] [-e OPTIONS]optional arguments:
   -h, --help            show this help message and exit
   -p PROTOTXT, --prototxt PROTOTXT
                         prototxt
   -c CAFFEMODEL, --caffemodel CAFFEMODEL
                         caffe-model
   -a ARCH, --arch ARCH  json file
   -o OUTPUT_DIR, --output_dir OUTPUT_DIR
                         output directory
   -n NET_NAME, --net_name NET_NAME
                         prefix-name for the outputs
   -e OPTIONS, --options OPTIONS
                         extra options

このインターフェイスの主な目標は、異なるデザインで最小限の措置を指定することです。ここでは、最小限の入力でスタートする、DPU-V1 デザイン用の実行方法を説明します。

vai_c_caffe.py -p MODEL -c WEIGHT -a vai/dpuv1/tools/compile/arch.json -o WORK -n cmd -e OPTIONS

MODEL、WEIGHT、および出力の書き込み先を指定します。生成するコード名 (cmd など) を指定してください。これにより、WORK ディレクトリに 4 つの出力ファイルが作成されます。

compiler.json  quantizer.json  weights.h5 meta.json

これがランタイムとの主な動作です。JSON ファイルは 3 つあります。実行する手順に関する情報が含まれているファイルと、量子化の情報 (スケール/シフトの方法など) が含まれているファイルのほかに、arch.json ファイルから作成される meta.json ファイルがあります。これは、基本的にランタイム情報を指定する辞書ファイルです。このユーザー ガイド作成時では、cmd 名が必要ですが、ランタイムでは使用されません。

DPU のほかのバージョンとの主な違いは、オプションを使用して QUANT_INF0 を指定する必要があります。

-e "{'quant_cfgfile' : '/SOMEWHERE/quantize_info.txt'}"

オプション フィールドは、Python の辞書を表す文字列です。この例では、第 4 章で説明した個別に計算された量子化ファイルの場所を指定します。コンテキストでは、ほかの DPU バージョンはこの情報をモデルまたは重みのいずれかで構築します。このため、拡張モデルはバニラ Caffe モデルではないため、これらを実行するにはカスタム Caffe が必要です。DPU-V1 は、ネイティブ Caffe (およびカスタム Caffe) を使用して実行します。

注記: 量子化ファイルを提供する必要があることに注意してください。コンパイラは量子化ファイルを要求します。このときにコンパイラが探すことになると最終的にクラッシュします。完全な Caffe モデルには、prototxt と caffemodel の両方が必要です。arch.json ファイルについては後ほど説明しますが、これも必要です。また、スクリプト形式を使用する統合 Caffe インターフェイスでもあり、より高度なカスタマイズやコンパイルを可能にする Python インターフェイスがあるため、アドバンス ユーザーはモデルのさらなる最適化が可能になります。