2017-11-20 9 views
0

私は "++"を使用して ".pb"モデルをロードしました。
すべてのモデル操作を印刷したいと思います。例えばTensorflowでは、C++を使用してグラフ内のすべてのテンソルの名前を取得します

:以下.pbファイルのレイヤー:私は名前を取得したい

node { 
    name: "add" 
    op: "Add" 
    input: "MatMul" 
    input: "bias/read" 
    attr { 
    key: "T" 
    value { 
    type: DT_FLOAT 
    } 
    } 
} 
node { 
    name: "output_TT" 
    op: "Softmax" 
    input: "add" 
    attr { 
    key: "T" 
    value { 
     type: DT_FLOAT 
    } 
    } 
} 

(すなわち追加やoutput_TT)とtensorflowライブラリを使用してC++を使用してそれらを表示します。

私は構築にbazelを使用していません。代わりに私はinbuildのmakefileをカスタマイズして実行しました。

答えて

0

私は、手順を実行して、この次のコードで

int node_count = graph_def.node_size(); 
for (int i = 0; i < node_count; i++) 
{ 
     auto n = graph_def.node(i); 
     cout<<"Names : "<< n.name() <<endl; 

} 
0

を出力を得、されたvname変数は、レイヤ名が含まれています。

int node_count = graph_def.node_size(); 
std::vector<string> vNames; 
for (int i = 0; i < node_count; i++) 
{ 

     auto n = graph_def.node(i); 
     if ((has_suffix(n.name(), "/read")) || (has_suffix(n.name(), "_w")) || (has_suffix(n.name(), "_b"))) 
     { 
       vNames.push_back(n.name()); 
     } 
} 
関連する問題