W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
case ( pred_fn_pairs , default , exclusive = False , strict = False , name = 'case' )
定義在:tensorflow/python/ops/control_flow_ops.py
參見指南:控制流程>控制流程操作
創(chuàng)建案例操作.
pred_fn_pairs 參數(shù)是字典或大小對的列表.每對都包含一個布爾標量張量和一個可調(diào)用的 python, 如果布爾計算結(jié)果為 True, 則創(chuàng)建要返回的數(shù)量.默認值是一個可調(diào)用的生成張量列表.pred_fn_pairs 中的所有 callables 以及默認值都應(yīng)返回相同的張量和類型.
如果 exclusive = = true, 則計算所有謂詞, 如果有多個謂詞的計算結(jié)果為 true, 則引發(fā)異常.如果 exclusive = = False, 則執(zhí)行停止是計算結(jié)果為 True 的第一個謂詞, 并立即返回相應(yīng)函數(shù)生成的張量.如果沒有任何謂詞計算為 True, 則此操作返回默認情況下生成的張量.
tf.case 支持在 tensorflow.python.util.nest 中實現(xiàn)的嵌套結(jié)構(gòu).所有的 callables 必須返回列表、元組和/或命名元組的相同 (可能是嵌套的) 值結(jié)構(gòu).單例列表和元組是唯一的例外: 當由可調(diào)用返回時, 它們被隱式解壓到單個值.通過 strict = True 來禁用此行為.
如果使用無序字典 pred_fn_pairs, 則不保證條件測試的順序.但是, 該順序保證是確定性的, 以便在條件分支中創(chuàng)建的變量在運行時按固定順序創(chuàng)建.
示例1:偽碼:
if (x < y) return 17; else return 23;
表達式:
f1 = lambda: tf.constant(17) f2 = lambda: tf.constant(23) r = case([(tf.less(x, y), f1)], default=f2)
示例2:偽碼:
if (x < y && x > z) raise OpError("Only one predicate may evaluate true"); if (x < y) return 17; else if (x > z) return 23; else return -1;
表達式:
def f1(): return tf.constant(17) def f2(): return tf.constant(23) def f3(): return tf.constant(-1) r = case({tf.less(x, y): f1, tf.greater(x, z): f2}, default=f3, exclusive=True)
由謂詞計算為 True 的第一對返回的張量,或者默認情況下返回的張量 (如果沒有).
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: