caffeDataDumper

概要

caffeDataDumperは、caffeのモデルから、係数行列、バイアス値などを抽出するユーティリティです。 Cプログラム中のデータを抽出するためのライブラリDataDumperと互換のあるフォーマットでファイル出力が可能です。 なお、pyCaffeが実行可能な環境で実行しなければなりません。 通常はCaffeインストール済のUbuntu環境で実行します。

リビジョン

caffeDataDumper v01r01

コマンドライン

python caffeDataDumper.py [option [option_parameter]]...

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

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

オプション 意味
-h ヘルプ表示
–PROT prt prototxtファイル名
–MODEL m 学習済caffeモデル
–PYCAFFE p pyCAFFEのpath
–IMG i 識別用画像ファイル
–OUTPARAMS op 出力パラメータファイル名
–OUTBLOBS ob 出力Blobデータファイル名
-p pyCAFFE Pathをsys.pathに加える
-b Blob名をリスト
-v 処理の途中経過を詳細に出力
-V バージョンのみ表示して終了
-d デバッグ用オプション

構造

class caffeDataDumper.caffeModelReader(pfnam, mfnam, ofnamP, ofnamB)[ソース]

caffe model Reader Class.

caffeモデルを読み取って出力するクラス

checkData(dat)[ソース]

check data

データが長さを持つ構造であることを確認する。 長さを持ては真。

ddArayTrailer(idx, opt=0)[ソース]

data dumper Array Trailer

アレイトレイラーを作成する。

ddArrayHeader(nam, bc, n, x, y, opt=0)[ソース]

data dumper Array Header

アレイヘッダを作成する。

dumpB1(lnam, L1, wh, num)[ソース]

dump B1

w x h x numのBlobダンプ データダンプ成功すれば真

dumpB2(lnam, L1, num)[ソース]

dump B2

1 x numのBlobダンプ データダンプ成功すれば真

dumpBlobs()[ソース]

dump Blobs data

データダンプ成功すれば真

dumpC1A(lnam, ch, num, w, h, L1, bc)[ソース]

dump C1A

ch=1でw,h > 1 配列1, wxh * num のダンプ データダンプ成功すれば真

dumpC1B(lnam, ch, num, w, h, L1, bc)[ソース]

dump C1B

ch=1でw,h = 1 配列1, 1 * num個要素 の1次元配列 データダンプ成功すれば真

dumpC2A(lnam, ch, num, w, h, L1, bc)[ソース]

dump C2A

ch=n, num=mでw,h > 1 配列1 wxh * ch * num のダンプの繰り返し データダンプ成功すれば真

dumpC2B(lnam, ch, num, w, h, L1, bc)[ソース]

dump C2B

ch=n, num=mでw,h =1 1 配列1 ch * m個要素の二次元配列 データダンプ成功すれば真

dumpParams(lnam, ch, num, w, h, L1, bc)[ソース]

dump Parameters

4D構造のデータをダンプ bc=1 ... 係数 bc=2 ... バイアス C1A ch=1でw,h > 1 配列1, wxh * num のダンプ C1B ch=1でw,h = 1 配列1, num個要素 * 1 の1次元配列 C2A ch=n, num=mでw,h > 1 配列1 wxh * ch * num のダンプ C2B ch=n, num=mでw,h =1 1 配列1 ch * num個要素の一次元配列 データダンプ成功すれば真

execClassifier(imgFile)[ソース]

execute Classifiler

識別器を実行するメソッド 読み取り成功すれば真

loadModel()[ソース]

load model

Caffeモデルを読み込み、解釈するメソッド 読み取り成功すれば真

wrList(arg, opt=0, dbg=False)[ソース]

write list.

一時リストに書き込む opt=0ならパラメータ、opt=1ならBlob

write(opt=0)[ソース]

write.

ファイルに書き込む opt=0ならパラメータ、opt=1ならBlob