TensorFlow의 교육 단계에서만 레이어 (컨볼 루션, 요소 별 합계 등)를 정의 할 수 있는지 알고 싶습니다.TensorFlow에서 교육 단계에만 레이어를 정의하는 방법은 무엇입니까?
예를 들어, 네트워크에서 요소 단계별 합계 계층을 학습 단계에서만 사용하고 테스트 단계에서이 계층을 무시하고 싶습니다.
이것은 Caffe에서 쉽게 할 수 있습니다. TensorFlow에서도 가능할 수 있는지 알고 싶었습니다.
TensorFlow의 교육 단계에서만 레이어 (컨볼 루션, 요소 별 합계 등)를 정의 할 수 있는지 알고 싶습니다.TensorFlow에서 교육 단계에만 레이어를 정의하는 방법은 무엇입니까?
예를 들어, 네트워크에서 요소 단계별 합계 계층을 학습 단계에서만 사용하고 테스트 단계에서이 계층을 무시하고 싶습니다.
이것은 Caffe에서 쉽게 할 수 있습니다. TensorFlow에서도 가능할 수 있는지 알고 싶었습니다.
은 당신이 당신은 "tf.cond"control_flow 작업과이 작업을 수행 할 수 있습니다 if
Train = False
x = tf.constant(5.)
y = x + 1
if Train:
y = y + 2
y = y + 3
with tf.Session() as sess:
res = sess.run(y) # 11 if Train else 9
하여이 작업을 수행 할 수 있다고 생각합니다. https://www.tensorflow.org/api_docs/python/control_flow_ops/control_flow_operations#cond
나는 tf.cond()로 불린 자리 표시자를 사용할 수 있다고 생각한다. 다음과 같이하십시오.
train_phase = tf.placeholder(tf.bool, [])
x = tf.constant(2)
def f1(): return tf.add(x, 1)
def f2(): return tf.identity(x)
r = tf.cond(train_phase, f1, f2)
sess.run(r, feed_dict={train_phase: True}) # training phase, r = tf.add(x, 1) = x + 1
sess.run(r, feed_dict={train_phase: False}) # testing phase, r = tf.identity(x) = x
감사합니다. 그러나 기차 단계와 테스트 단계를 분리하기 위해 "pred"논쟁에 무엇을 넣어야합니까? – Behzad
설명서에 따라 : fn1 또는 fn2의 결과를 반환할지 여부를 결정하는 스칼라. ;) 이 경우 train_phase 텐서를 제공 할 수 있다고 생각합니다. 이게 도움이되는지 알려주세요! – rmeertens