npy2flt

概要

npy2fltは、Python上の数値配列フォーマットとして一般的なNumpyフォーマットのバイナリ配列を読み取り、 VPPLが取り込み可能なFLT形式にして出力するユーティリティプログラムです。 Python上プログラムで取得された係数テーブルなどをVPPLに移行する場合に使用することができます。

リビジョン

npy2fltpy v01r01

コマンドライン

python npy2flt.py [option [option_parameter]]...

以下のようなオプションをつけて動作させることで所望の結果を得ることができます。

コマンドラインオプション

オプション 意味
-h ヘルプ表示
–NPY n 入力であるNPYバイナリファイル名
–NPFMT f 配列形式(NHWC...)
–FOUT flt 出力FLTファイル名
–FARRAY a 出力配列名
–FMT m 出力数値形式(ip8...)
–PADX p 出力Xパディングサイズ(無指定32)
–BATCH b 抽出Numpy Batch番号
-v 処理の途中経過を詳細に出力
-V バージョンのみ表示して終了
-d デバッグ用オプション

構造

class npy2flt.NumpyFileReader(inputFnam, bt)[ソース]

NumpyFile Reader Class.

Numpy形式のバイナリファイルを読みとってNumpy ndarrayとして確保する。 読み取り時にshapeを報告する。 取り出し時には、FltFileWriterで出力できるようにshapeを加工したndarrayに変形する

getArray(mode)[ソース]

Get Array method

読み込み済のndarrayをmodeに従って変形したndarrayに変換して返す。 ‘NHWC’ = 1 ... 特定のN=prmBatch について、HWをWHに変換W*H->X, C->Y ‘NCHW’ = 2 ... 特定のN=prmBatch について、HWをWHに変換W*H->X, C->Y ‘HWI_’ = 3 ... _=0固定、HWをWHに変換W*H->X, C->Y ‘HW_O’ = 4 ... _=0固定、HWをWHに変換W*H->X, C->Y 変換不能な場合は Noneを返す。

getHWI_()[ソース]

Get HWI_ Array

‘HWI_’ = 3 ... _=0固定、HWをWHに変換W*H->X, C->Y

getHW_O()[ソース]

Get HW_O Array

‘HW_O’ = 4 ... _=0固定、HWをWHに変換W*H->X, C->Y

static getModeNumber(modeName)[ソース]

get Mode Number.

モード文字列からモード番号を返す。

getNCHW()[ソース]

Get NCHW Array

‘NCHW’ = 2 ... 特定のN=prmBatch について、HWをWHに変換W*H->X, C->Y

getNHWC()[ソース]

Get NHWC Array

‘NHWC’ = 1 ... 特定のN=prmBatch について、HWをWHに変換W*H->X, C->Y

read()[ソース]

Read method

.npyファイルを読み込むメソッド。読み込み成功すれば真を返す。

class npy2flt.FltFileWriter(nary, aName, md, padX)[ソース]

FltFile Writer Class.

Numpy 配列をFLT形式ファイルとして出力する。 モードにより整形用の「フィルタ」を適用する。

formatArray()[ソース]

format Array

入力Numpy配列の形とモードから出力Numpy配列を準備し、 モードに応じた方法でデータを変形しながら転送する。 成功すれば真、そうでなければ偽。

static getModeNumber(modeName)[ソース]

get Mode Number.

モード文字列からモード番号を返す。

makeIP8()[ソース]

format IP8(inner product x 8 mode)

内積計算8並列モードとなるように入力Numpy配列の行8行を1行とした出力Numpy配列を準備する。 横幅8倍、縦幅8分の1 入力Numpy配列の行8行縦1列を横8要素として出力Numpy配列にコピー (行が8行以下の場合は要素0フィルして8要素とする) 成功すれば真、そうでなければ偽。

makeSTRAIGHT()[ソース]

format STRAIGHT

そのままのX, Yサイズで出力Numpy配列を準備する。

writeFLT(fname)[ソース]

write FLT file

出力Numpy配列をFLTファイルへ出力。 出力X方向がpaddingXの倍数でなければpaddingXの倍数になるまで0で埋める。 Numpy配列とFLTファイル上のxが異なることがある。 書き込み成功すれば真