日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

tensorflow随笔-条件语句-tf.case

發(fā)布時(shí)間:2025/3/12 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tensorflow随笔-条件语句-tf.case 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

tf.case
tf.case(
pred_fn_pairs,
default=None,
exclusive=False,
strict=False,
name=‘case’
)

創(chuàng)建case操作

pred_fn_pairs參數(shù)是大小為N的字典或pairs的列表。每對(duì)包含一個(gè)布爾標(biāo)量tensor和一個(gè)python可調(diào)用函數(shù)項(xiàng),當(dāng)條件為True將返回對(duì)應(yīng)的函數(shù)項(xiàng)創(chuàng)建的tensors。在pred_fn_pairs對(duì)中的所有調(diào)用子以及默認(rèn)值(如果提供的話)都應(yīng)該返回相同數(shù)量和類型的張量。

如果exclusiveTrue,則計(jì)算所有的謂詞,如果多個(gè)謂詞計(jì)算為True,則引發(fā)異常。如果exclusiveFalse,則執(zhí)行在求值為True的第一個(gè)謂詞處停止,并且立即返回由相應(yīng)函數(shù)生成的張量(tensors)。如果沒(méi)有一個(gè)謂詞評(píng)估為true,則此操作返回默認(rèn)生成的張量。

tf.case支持在tensorflow.python.util.nest中實(shí)現(xiàn)的嵌套結(jié)構(gòu)。所有的調(diào)用都必須返回相同的(可能嵌套的)列表、元組和/或命名元組的值結(jié)構(gòu)。單例列表和元組形成了唯一的例外:當(dāng)由可調(diào)用程序返回時(shí),它們被隱式地解包為單個(gè)值。通過(guò)通過(guò)傳遞strict=True禁用此行為。

如果無(wú)序字典在pred_fn_pairs使用,則條件測(cè)試的順序不能保證。不管怎么樣,順序保證是確定的,以便在條件分支中變量按固定順序被創(chuàng)建。

#!/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(7) y = tf.constant(27) f1 = lambda: tf.constant(17) f2 = lambda: tf.constant(23) r = tf.case([(tf.less(x, y), f1)], default=f2) #if (x < y) return 17; #else return 23; sess=tf.Session() with sess:print sess.run(r)

17

Example 2:

#!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Mon Aug 27 11:16:32 2018"""import tensorflow as tf x = tf.constant(7) y = tf.constant(27) z = tf.constant(21) def f1(): return tf.constant(17) def f2(): return tf.constant(23) def f3(): return tf.constant(-1) r = tf.case({tf.less(x, y): f1, tf.greater(x, z): f2},default=f3, exclusive=True);sess=tf.Session() with sess:print sess.run(r)

相當(dāng)于:

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;

參數(shù):

pred_fn_pairs: 字典或pairs的列表(由boolean標(biāo)量和可調(diào)用函數(shù)返回張量列表)
default: 默認(rèn)返回tensors列表
exclusive: 如果為True表示僅最多一個(gè)謂語(yǔ)為True
strict: boolean打開或關(guān)閉’strict’ 模式
name: 操作的名字(可選)
返回:

第一個(gè)謂詞為True時(shí)執(zhí)行返回的tensors,如果沒(méi)有謂詞為True,則返回default

Raises:

TypeError: pred_fn_pairs 不是一個(gè)列表或字典
TypeError: pred_fn_pairs是一個(gè)列表,但不包括2個(gè)元素的元組
TypeError: fns[i] 不是任何i的調(diào)用,或default不是可調(diào)用的

總結(jié)

以上是生活随笔為你收集整理的tensorflow随笔-条件语句-tf.case的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。