tensorflow随笔-条件语句-tf.cond
tf.cond
tf.cond(
pred,
true_fn=None,
false_fn=None,
strict=False,
name=None,
fn1=None,
fn2=None
)
如果謂詞pred是真的返回true_fn(),否則返回false_fn()。
有些參數(shù)將過時,在未來版本將被移除,指令更新:fn1/fn2 不支持 true_fn/false_fn參數(shù)。
true_fn 和 false_fn 都返回一個輸出tensors。true_fn 和 false_fn 必須有相同的非零數(shù)和類型輸出。
條件執(zhí)行僅用于在true_fn 和false_fn定義的操作。
#!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Mon Aug 27 11:16:32 2018 @author: myhaspl """import tensorflow as tf x = tf.constant(11) y = tf.constant(22)z = tf.multiply(x, y) result1 = tf.cond(x > y, lambda: tf.add(x, y), lambda: tf.square(y)) result2 = tf.cond(x < y, lambda: tf.add(x, y), lambda: tf.square(y))init_op = tf.global_variables_initializer() sess=tf.Session() with sess: sess.run(init_op)print sess.run(result1)print sess.run(result2)484
33
result2:當(dāng)x<y,tf.add
result1:當(dāng)x>y:tf.add
這種行為偶爾也會讓一些期望語義更懶的用戶感到驚訝。
條件調(diào)用 true_fn和 false_fn 僅一次(包括對cond的調(diào)用,不在Session.run()期間),條件將true_fn和false_fn調(diào)用期間創(chuàng)建的計算圖片斷和一些附加的計算圖結(jié)點縫合在一起,以確保根據(jù)pred的值執(zhí)行正確的分支。
tf.cond 支持在 tensorflow.python.util.nest.實現(xiàn)的嵌套結(jié)構(gòu)。true_fn和false_fn必須返回相同的(可能是嵌套的)值結(jié)構(gòu),這些結(jié)構(gòu)包括lists、tuples、命名元組。單例列表和元組形成了唯一的例外:當(dāng)由true_fn和false_fn返回時,它們被隱式地解包為單個值。通過傳遞strict=True,禁用此行為。
參數(shù):
pred: 一個標(biāo)量決定了返回結(jié)果是true_fn 還是 false_fn。
true_fn: 當(dāng)pred為真時,調(diào)用。
false_fn: 當(dāng)pred為假時,調(diào)用。
strict: 一個boolen類型。
name: 返回tensors的可選名字前綴。
返回:
返回
通過調(diào)用true_fn或ffalse_fn 返回的張量。如果回調(diào)函數(shù)返回單列表,則從列表中提取元素。
Raises:
TypeError: true_fn或false_fn 不能調(diào)用
ValueError:true_fn和false_fn 不能返回相同數(shù)量的張量,或者返回不同類型的張量。
34
總結(jié)
以上是生活随笔為你收集整理的tensorflow随笔-条件语句-tf.cond的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git上传代码到coding.net
- 下一篇: Dubbo是如何进行远程服务调用的?(源