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

创建case操作

pred_fn_pairs参数是大小为N的字典或pairs的列表。每对包含一个布尔标量tensor和一个python可调用函数项,当条件为True将返回对应的函数项创建的tensors。在pred_fn_pairs对中的所有调用子以及默认值(如果提供的话)都应该返回相同数量和类型的张量。

如果exclusiveTrue,则计算所有的谓词,如果多个谓词计算为True,则引发异常。如果exclusiveFalse,则执行在求值为True的第一个谓词处停止,并且立即返回由相应函数生成的张量(tensors)。如果没有一个谓词评估为true,则此操作返回默认生成的张量。

tf.case支持在tensorflow.python.util.nest中实现的嵌套结构。所有的调用都必须返回相同的(可能嵌套的)列表、元组和/或命名元组的值结构。单例列表和元组形成了唯一的例外:当由可调用程序返回时,它们被隐式地解包为单个值。通过通过传递strict=True禁用此行为。

如果无序字典在pred_fn_pairs使用,则条件测试的顺序不能保证。不管怎么样,顺序保证是确定的,以便在条件分支中变量按固定顺序被创建。

#!/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)

相当于:

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;

参数:

pred_fn_pairs: 字典或pairs的列表(由boolean标量和可调用函数返回张量列表)
default: 默认返回tensors列表
exclusive: 如果为True表示仅最多一个谓语为True
strict: boolean打开或关闭’strict’ 模式
name: 操作的名字(可选)
返回:

第一个谓词为True时执行返回的tensors,如果没有谓词为True,则返回default

Raises:

TypeError: pred_fn_pairs 不是一个列表或字典
TypeError: pred_fn_pairs是一个列表,但不包括2个元素的元组
TypeError: fns[i] 不是任何i的调用,或default不是可调用的

tensorflow随笔-条件语句-tf.case相关推荐

  1. tensorflow随笔-条件语句-tf.cond

    tf.cond tf.cond( pred, true_fn=None, false_fn=None, strict=False, name=None, fn1=None, fn2=None ) 如果 ...

  2. (24)Verilog HDL条件语句:case语句

    (24)Verilog HDL条件语句:case语句 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog HDL条件语句:case语句 5)结语 1.2 FP ...

  3. tensorflow随笔-条件循环控制(1)

    TensorFlow 提供了一些操作和类,您可以使用它们来控制操作的执行,并向图表添加条件依赖项. tf.identity tf.tuple tf.group tf.no_op tf.count_up ...

  4. tensorflow随笔-条件循环语句求解一元多次方程

    !/usr/bin/env python2 -*- coding: utf-8 -*- """ Created on Thu Sep 6 10:16:37 2018 @a ...

  5. tensorflow随笔-条件循环控制(4)

    例如非严格语义的示例:在下面的示例中,计数器i的最终值不依赖于x.while_loop可并行地增加计数器,并更新x. #!/usr/bin/env python2 # -*- coding: utf- ...

  6. tensorflow随笔-条件循环控制(2)

    tf.count_up_to tf.count_up_to( ref, limit, name=None ) 增加"ref"直到它达到"limit" 参数: r ...

  7. tensorflow随笔-读写数据tf.data

    模块:tf.data 定义在tensorflow/_api/v1/data/init.py 输入管道的tf.data.Dataset API 模块 实验模块:构建输入管道的实验API. 类 class ...

  8. SQL条件语句(IF, CASE WHEN, IF NULL)

    1.IF   表达式:IF( expr1 , expr2 , expr3 )   expr1条件,条件为true,则值是expr2 ,false,值就是expr3 SELECT o.id,u.acco ...

  9. 条件语句:case语句

    转载于:https://www.cnblogs.com/xxd0825/archive/2012/11/12/2766138.html

最新文章

  1. python基础之内建函数(二)
  2. 详析数字图像中高斯模糊理论及实现
  3. flowable工作流 流程变量_Activiti工作流的应用示例
  4. Hello, AnnsShadow!
  5. HDOJ5542-The Battle of Chibi【树状数组,dp】
  6. Spring和JSF集成:国际化和本地化
  7. 读取模式错误,计算引擎操作复杂……面对Hadoop这些问题该如何应对?
  8. pgsql thinkphp5_thinkphp 连接postgresql
  9. 我听到了一个熟息的GuanDan声音
  10. mysql sql select for update_mysql SELECT FOR UPDATE语句使用示例
  11. 显示封装_LED显示封装高度集成化道路上,五大封装技术谁能率先拔得头筹?
  12. 使用ember-simple-auth实现Ember.js应用的权限控制
  13. 洗小龙虾、麻将,洗碗机品牌“大秀肌肉”会让年轻人心动吗?
  14. 如何管理好一个团队 怎样管理好一个团队 如何带领一个团队
  15. 第五章-对单词进行分类和标记
  16. PostgreSQL 设置远程访问
  17. 用Python获取照片GPS信息
  18. 文华学院计算机专业师资,华中科技大学文华学院“最受欢迎教师”名单
  19. dellR730装机教程
  20. 极光im java_java手写一个迷你版的Tomcat代码分享

热门文章

  1. Tomcat无法访问中文路径的解决办法
  2. StringWriter/PrintWriter在Java输出异常信息中的作用
  3. STC89C52RC内部EEPROM编程
  4. TortoiseGit for windows安装与配置
  5. vue使用sweetalert2弹窗插件
  6. Ant build.xml程序简单说明
  7. 使用git下载giuhub中的项目
  8. 3D Object Classification With Point Convolution —— 点云卷积网络
  9. 聊聊前段插件之Datatables
  10. GPUImage 简介