tensorflow
Tf.cond के साथ TensorFlow ग्राफ के अंदर अगर हालत का उपयोग करना
खोज…
पैरामीटर
पैरामीटर | विवरण |
---|---|
महीनो | TensorFlow टाइप bool टेंसर |
fn1 | एक कॉल करने योग्य फ़ंक्शन, बिना किसी तर्क के |
fn2 | एक कॉल करने योग्य फ़ंक्शन, बिना किसी तर्क के |
नाम | (वैकल्पिक) ऑपरेशन के लिए नाम |
टिप्पणियों
-
pred
केवलTrue
याFalse
नहीं हो सकता, इसके लिए एक सेंसर होना आवश्यक है - फ़ंक्शन
fn1
औरfn2
को समान प्रकार के साथ, आउटपुट की एक ही संख्या को वापस करना चाहिए।
मूल उदाहरण
x = tf.constant(1.)
bool = tf.constant(True)
res = tf.cond(bool, lambda: tf.add(x, 1.), lambda: tf.add(x, 10.))
# sess.run(res) will give you 2.
जब f1 और f2 कई टेनर्स लौटाते हैं
दो कार्यों fn1
और fn2
कई tensors लौट सकते हैं, लेकिन वे बिल्कुल वही संख्या और आउटपुट के प्रकार वापस लौटाना होगा।
x = tf.constant(1.)
bool = tf.constant(True)
def fn1():
return tf.add(x, 1.), x
def fn2():
return tf.add(x, 10.), x
res1, res2 = tf.cond(bool, fn1, fn2)
# tf.cond returns a list of two tensors
# sess.run([res1, res2]) will return [2., 1.]
मापदंडों के साथ f1 और f2 फ़ंक्शन को परिभाषित और उपयोग करें
आप tf.cond () में lambda का उपयोग करके फंक्शंस में पैरामीटर पास कर सकते हैं और कोड bellow के रूप में है।
x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
z = tf.placeholder(tf.float32)
def fn1(a, b):
return tf.mul(a, b)
def fn2(a, b):
return tf.add(a, b)
pred = tf.placeholder(tf.bool)
result = tf.cond(pred, lambda: fn1(x, y), lambda: fn2(y, z))
तो आप इसे बोल्डिंग कह सकते हैं:
with tf.Session() as sess:
print sess.run(result, feed_dict={x: 1, y: 2, z: 3, pred: True})
# The result is 2.0
print sess.run(result, feed_dict={x: 1, y: 2, z: 3, pred: False})
# The result is 5.0
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow