2017-11-13 2 views
0

intput을 생성 한 후에 테프로 변경해야합니다. 단순화 된 예를 들면 다음과 같습니다. x(constant=42.0), s(x^2)x_new(constant=4.0).tensorflow에서 입력을 OP로 변경하는 방법

s으로 입력을 x에서 x_new으로 변경하고 싶습니다. 이 작업을 수행 한 후 나는 tf.contrib.graph_editor.reroute_inputs를 사용하여 시도했지만, 내 인생 내가 반환하는 서브 그래프와 무슨 일을하는지 알 수 없을 s.eval() == 16.0

x = tf.constant(42.0, name='x') 
s = tf.square(x, name='s') 
x_new = tf.constant(4.0, name='x_new') 

tf.get_default_graph().as_graph_def() 

Out[6]: 
node { 
    name: "x" 
    op: "Const" 
    attr { 
    key: "dtype" 
    value { 
     type: DT_FLOAT 
    } 
    } 
    attr { 
    key: "value" 
    value { 
     tensor { 
     dtype: DT_FLOAT 
     tensor_shape { 
     } 
     float_val: 42.0 
     } 
    } 
    } 
} 
node { 
    name: "s" 
    op: "Square" 
    input: "x" 
    attr { 
    key: "T" 
    value { 
     type: DT_FLOAT 
    } 
    } 
} 
node { 
    name: "x_new" 
    op: "Const" 
    attr { 
    key: "dtype" 
    value { 
     type: DT_FLOAT 
    } 
    } 
    attr { 
    key: "value" 
    value { 
     tensor { 
     dtype: DT_FLOAT 
     tensor_shape { 
     } 
     float_val: 4.0 
     } 
    } 
    } 
} 
versions { 
    producer: 24 
} 

를 기대합니다.

나는 또한 어렴풋이 자식 문제 (https://github.com/tensorflow/tensorflow/issues/1758)에 설명 된 tf.import_graph_def와 함께 연주 시도했지만, 아무리 내가 그것을 수행하려고 얼마나 많은 방법으로, 나는 sx에서 x_new에 intputs을 변경 얻을하지 않습니다.

누구나이 간단한 예제를 수행하기 위해 이러한 방법 중 하나를 사용하는 방법을 알고 있습니까?

답변

0

상수 대신 자리 표시자를 사용할 수 있습니다. 예를 들어

이 단순화 된 예에서

import tensorflow as tf 

x = tf.placeholder(tf.int32, shape=[]) 
s = tf.square(x) 

with tf.Session() as sess: 
    print(s.eval({x: 5})) 
    print(s.eval({x: 4})) 
+0

, 확실하게,하지만 기존의 모델을 수입하고 내가 일하고 있어요 다른 모델 것을 결합. 다른 모델을 조작하여 기대했던 입력을 원래 입력 파이프 라인 대신 입력 파이프 라인에서 변경하려고 시도하는 것은 꽤 못생긴 해킹입니다. 그렇기 때문에 원래 모델의 코드를 변경하지 않고 OP의 입력을 실제로 변경해야합니다. –

관련 문제