2017-02-02 5 views
0

나는 tensorflow 제공을 사용하여 재교육받은 그래프를 제공하려고합니다. 재교육을 위해이 번호는 example입니다. 그러나 serving export code과 작동 시키려면이 그래프를 변경해야합니다.tensorflow 이미지 재교육 제공

서빙 tensorflow에 있기 때문에, 그래프는 입력이 시작해야 입력으로 일련의 이미지를 수신 할 것이다 :

serialized_tf_example = tf.placeholder(tf.string, name='tf_example') 
feature_configs = { 
    'image/encoded': tf.FixedLenFeature(shape=[], dtype=tf.string), 
} 
tf_example = tf.parse_example(serialized_tf_example, feature_configs) 
jpegs = tf_example['image/encoded'] 
images = tf.map_fn(preprocess_image, jpegs, dtype=tf.float32) 

이 이미지 텐서 재교육 개시 그래프에 입력한다. 그러나 placeholder_with_input (재교육 코드에서 수행)을 사용하여 쉽게 추가 할 수있는 것처럼 tensorflow에서 다른 그래프에 하나의 그래프를 추가 할 수 있는지 여부는 알 수 없습니다.

graph, bottleneck_tensor, jpeg_data_tensor, resized_image_tensor = (
    create_inception_graph()) 

이미지 재교역 코드에서 이상적으로는 자리 표시 자 텐서 jpeg_input_data을 수신합니다. 이 자리 표시 자 텐서 jpeg_data_tensor에 텐서 images을 추가하고 텐포 흐름 제공을 사용하여 제공 할 수 있도록 내보내기를 사용하여 단일 그래프로 내 보내야합니다. 그러나 나는 그것을하는 어떤 tensorflow 지시도하지 않는다. 이 방법 외에도 다른 대안이 있습니까? 그것에 대해가는

답변

2

한 가지 방법은 다음과 같습니다

model_path = 'trained/export.pb' 
with tf.Graph().as_default(): 
    with tf.Session() as sess:  
     with gfile.FastGFile(model_path, 'rb') as f: 
      graph_def = tf.GraphDef() 
      graph_def.ParseFromString(f.read()) 
      # Your prepending ops here 
      images_placeholder = tf.placeholder(tf.string, name='tf_example') 
      ... 
      images = tf.map_fn(preprocess_image, jpegs, dtype=tf.float32) 
      tf.import_graph_def(graph_def, name='inception', input_map={'ResizeBilinear:0': images}) 

사항에 특히주의 input_map 인수입니다. ResizeBilinear:0 가능성이 당신이 필요로하는 작업의 올바른 이름이 아닙니다 - 당신은에 의해 작전을 나열 할 수 있습니다 :이 전체 답변을하지 않고 아마도 아니라 가장 효율적인 그러나 희망은 당신이 시작할 수 있습니다 내가 실현

[n.name for n in tf.get_default_graph().as_graph_def().node] 

. 그냥 헤드 업, this blogpost도 있습니다.

0

모델을 다시 교육 했으므로이 모델이 Protobuf라고 가정하고 있지만, 이것을 파이썬 객체에로드하고 배치를 처리하는 사용자 정의 함수를 사용하여 해당 객체를 제공 할 수 있습니다 또는 원자 조작.

당신의 그래프 질문에, 내가 아는 한 tf.Graph() 객체를로드 할 때 당신은 그 객체로만 작업하고 다른 그래프에서는 작동하지 않는다. 기존 Inception-V3 그래프를 확장 한 또 다른 그래프는 사용자 정의 그래프의 계산 그래프에 쉽게 추가 할 수 있습니다.

관련 문제