vai_p_tensorflow API - vai_p_tensorflow API - 3.5 日本語 - UG1414

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

Document ID
UG1414
Release Date
2023-09-28
Version
3.5 日本語

tf_nndct1.IterativePruningRunner

__init__(self,
         model_name: str, 
         sess: SessionInterface, 
         input_specs: Mapping[str, tf.TensorSpec], 
         output_node_names: List[str], 
         excludes: List[str]=[])

引数:

model_name
 モデル名。
sess
TensorFlow セッションのインスタンス、グラフおよび初期化された変数を含む。
input_specs
 このマッピングのキーは、ベースライン モデルの入力ノード名です。
output_node_names
ターゲット出力ノード名。
excludes
プルーニングをスキップするノード名。

戻り値: Instance of IterativePruningRunner

ana(self,
    eval_fn: Callable[[tf.compat.v1.GraphDef], float], 
    gpu_ids: List[str]=['/GPU:0'], 
    checkpoint_interval: int = 10) -> None:

引数

eval_fn
この関数は、プルーニング プロセスの中間結果を評価します。これは、float を返します。
gpu_ids
評価を実行するデバイスを示す文字列のリストです。
checkpoint_interval
この手法でキャッシュ メカニズムを実装し、checkpoint_interval 評価ごとに結果を保存します。

戻り値: None

prune(self,
      sparsity: float=None, 
      threshold: float=None, 
      max_attemp: int=10) -> Tuple[Mapping[str, TensorProto], Mapping[str, np.ndarray]]:

プルーニングには、FLOP ベースと精度ベースの 2 つのモードがあり、引数のスパース性としきい値に対応します。これら 2 つの引数を同時に None にすることは できません 。引数のスパース性はしきい値よりも優先されます。

引数:

sparsity
この値は、順方向パスでのモデルの浮動小数点演算量の減少率を示します。
threshold
範囲は 0 ~ 1 内です。プルーニングされたグラフと元のグラフ間の相対的な精度差の最大許容値を示します。
max_attemp
プルーニング ランナーが最適なプルーニング手法を繰り返し見つけ、max_attemp ステップ後に戻します。

戻り値:

shape_tensors
文字列から NodeDef へのマッピングです。キーは、graph_def 内の node_defs の名前であり、軽量グラフを得るためにはこれらのキーを変更する必要があります。値はターゲット node_def の内容をマスクします。
masks
文字列からアレイへのマッピングで、変数に対応します。
get_slim_graph_def(self, 
                   shape_tensors: Mapping[str, TensorProto]=None, 
                   masks: Mapping[str, np.ndarray]=None) -> tf.compat.v1.GraphDef:

引数:

shape_tensors
prune メソッドから戻される文字列から NodeDef へのマッピングです。
masks
文字列からアレイへのマッピングで、変数に対応します。このオブジェクトは、prune メソッドからも取得されます。

戻り値: 凍結された軽量の graph_def。