2017-12-11 12 views
1

나는보고에 대한 tensorboard에서로드 할 .pb 또 그래프를 덤프하기 위해 간단한 스크립트를 사용하고 있습니다 :Tensorflow 그래프 변환 도구 quantize_nodes는 존재하지 않는 "모자"노드 이름을 참조합니까?

당신이 변환 그래프를 사용하는 경우이 그래프에서 발생하는 시각화하는 훌륭한 작품을
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() 

최소 1.2 TF까지 나는 최근 마스터를했을 때, 나는 (예를 들어, 그래프로 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 

을 이전이 잘 작동합니다. 내가 tensorboard에서 가리킬 수있는 디렉토리를 얻을. 그러나 주인에 나는 이것을 얻는다 :

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.. 

이것은 또한 그래프 변형 도구를 사용한 후에 사용하는 다른 스크립트에서 발생합니다.

이것은 그래프의 시작 부분이기 때문에 입력 노드와 관련이 있는지 또는 그래프의 다른 노드에도이를 가져올 지 여부는 확실하지 않습니다.

이전 버전의 tensorflow에서는 1.2 분기와 마찬가지로이 스크립트가 정상적으로 작동합니다.

커밋 d0a5d885와 관련 될 수 있습니다 (노드 이름 앞에 "^"가 삽입 됨). 그러나 이는 상당히 큰 병합 커밋입니다.

답변