leapmindのblue-oil メモ1(TFグラフ変換)
何者か知らなかったのでちょっとだけ覗いてみた。
blueoilにはlmnetとdlkというものがあった。
lmnet
lmnetはTensorflowによる学習や推論をサポートしている。 分散学習するかどうかもconfig_fileに設定できてhorovodを利用している。
dlk
Tensorflowのprotocol buffer or onnix形式を受け取り、独自グラフに変換している
pb->graph_def->dlk的な感じ.(以下TFの場合)
generate_project.pyを実行すると,
pb->graph_defの変換をTensorFlowIOにて行う.そしてoptimize_graph_stepが実行されTFのgraph_defからdlkのグラフに変換される.
そしてその後,dlkグラフの最適化処理を行っている.
- グラフ変換(TF)
importerクラスでtf->dlkグラフに変換.
Importerメンバー関数のcreate_new_nodeでTFとdlk用のopの変換を行っている.
変換はnode.op_typeを見て判断(1部opはDLK_OPERATOR_MAPで事前に変換(BiasAdd->Addとか))
dlk側のopはoperater.pyに記述