2017-12-11 13 views
1
私は見てのためにtensorboardにアップロードするために.pbグラフをダンプするために、この単純なスクリプトを使用している

Tensorflowグラフ変換ツールquantize_nodesは、存在しない "hat"ノード名を参照していますか?

import sys 
import os 
import os.path 
import tensorflow as tf 
from tensorflow.python.platform import gfile 

model_filename = sys.argv[1] 
output_dirname = sys.argv[2] 

if not os.path.exists(output_dirname): 
    os.makedirs(output_dirname) 
with tf.Session() as sess: 
    with gfile.FastGFile(model_filename, 'rb') as f: 
     graph_def = tf.GraphDef() 
     graph_def.ParseFromString(f.read()) 
     _ = tf.import_graph_def(graph_def, name='') 
    writer = tf.summary.FileWriter(output_dirname, tf.get_default_graph()) 
    writer.close() 

これはトランスフォームグラフを使用した場合のグラフで何が起こるか視覚化するための素晴らしい作品少なくともTF 1.2を上回るツール。私は最近、マスターをしようとしたとき、私は(例えばグラフとしてhttps://storage.googleapis.com/download.tensorflow.org/models/inception_dec_2015.zipを使用して)次のような問題を取得:Tensorflow 1.2およびそれ以前のバージョンでは

bazel-bin/tensorflow/tools/graph_transforms/transform_graph \ 
    --in_graph=tensorflow_inception_graph.pb \ 
    --out_graph=inception_v3_quantized.pb \ 
    --inputs="Mul" \ 
    --outputs='softmax' \ 
    --transforms='add_default_attributes 
    strip_unused_nodes(type=float, shape="1,299,299,3") 
    remove_nodes(op=Identity, op=CheckNumerics) 
    fold_constants(ignore_errors=true) 
    fold_batch_norms 
    fold_old_batch_norms 
    quantize_weights 
    quantize_nodes 
    strip_unused_nodes 
    sort_by_execution_order' 
python dump_for_tensorboard.py inception_v3_quantized.pb /tmp/dump_logdir 

を、これは正常に動作します。私はテンソルボードを指すことができるディレクトリを取得します。しかし、マスターで私はこれを得る:

2017-12-11 15:56:39.159333: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA 
Traceback (most recent call last): 
    File "../dump_for_tensorboard.py", line 16, in <module> 
    _ = tf.import_graph_def(graph_def, name='') 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/importer.py", line 369, in import_graph_def 
    'Control input %r not found in graph_def.' % (input_name,))) 
ValueError: graph_def is invalid at node u'conv/Conv2D_eightbit/Mul__port__0/reshape_dims': Control input '^Mul:0' not found in graph_def.. 

これは私がグラフ変換ツールを使用した後に使用する他のスクリプトでも起こります。

これはグラフの冒頭にあるので、入力ノードと何か関係があるかどうか、またはグラフの他のノードでもこれを取得するかどうかはわかりません。

テンソルフローの古いバージョンでは、1.2ブランチのように、このスクリプトは正常に動作します。

コミットd0a5d885(これはノード名の前に "^"が挿入されるため)に関係するようですが、かなり大きなマージコミットです。

答えて

0

この問題は、ここで追跡されるように見えますhttps://github.com/tensorflow/tensorflow/pull/14527 ちょうどマスターにマージされました。

repoをクローンしてtransform_graphツールを再度ビルドすると、この問題は修正されると思います。

関連する問題