tf,cond()函数

  tensorflow里面有太多的函数功能,完全像是新学一门语言,所以打算采用,遇到不会的函数就记录下来,作为自己的函数手册。这篇要讲的就是tf,cond()。

tf,cond(A,B,C) 就像是条件语句:if A: B else:C,举个例子:

z = tf.multiply(a, b)
result = tf.cond(x < y, lambda: tf.add(x, z), lambda: tf.square(y))

  解读一下这个官方的例子,首先是给z赋值了一个简单的乘法函数,然后调用tf,cond这个函数,它的意思是,如果 x<y,就执行函数 tf.add(x,z) , 否则 就执行 tf.square(y)。 在这里有liangdian注意:

  第一点,条件判断后执行命令都采用匿名函数的方式;

  第二点,因为tensorflow是计算图的形式,所以其实无论x与y的大小如何,后面的两条命令都是运行过的,只是最后根据x,y的大小决定数据流图走哪条路。

  tf,cond()函数,一般就掌握到能看懂代码,知道这个代码可以简化代码就够了,具体细节知道就好了,忘了也没事。下面再列两个我遇到的例子:

# remove alpha channel if present
input_image = tf.cond(tf.equal(tf.shape(input_image)[2], 4), lambda: input_image[:,:,:3], lambda: input_image)
# convert grayscale to RGB
input_image = tf.cond(tf.equal(tf.shape(input_image)[2], 1), lambda: tf.image.grayscale_to_rgb(input_image), lambda: input_image)

 

原文地址:https://www.cnblogs.com/happy-sir/p/11530881.html

时间: 2024-10-02 11:06:15

tf,cond()函数的相关文章

TensorFlow如何通过tf.device函数来指定运行每一个操作的设备?

TensorFlow程序可以通过tf.device函数来指定运行每一个操作的设备. 这个设备可以是本地的CPU或者GPU,也可以是某一台远程的服务器. TensorFlow会给每一个可用的设备一个名称,tf.device函数可以通过设备的名称,来指定执行运算的设备.比如CPU在TensorFlow中的名称为/cpu:0. 在默认情况下,即使机器有多个CPU,TensorFlow也不会区分它们,所有的CPU都使用/cpu:0作为名称. –而一台机器上不同GPU的名称是不同的,第n个GPU在Tens

tf.slice函数解析

tf.slice函数解析 觉得有用的话,欢迎一起讨论相互学习~Follow Me tf.slice(input_, begin, size, name = None) 解释 :这个函数的作用是从输入数据input中提取出一块切片,切片的尺寸是size,切片的开始位置是begin. 切片的尺寸size表示输出tensor的数据维度,其中size[i]表示在第i维度上面的元素个数. 开始位置begin表示切片相对于输入数据input_的每一个偏移量,比如数据input_是 [[[1, 1, 1],

tf.transpose函数的用法讲解

tf.transpose函数中文意思是转置,对于低维度的转置问题,很简单,不想讨论,直接转置就好(大家看下面文档,一看就懂). tf.transpose(a, perm=None, name='transpose') Transposes a. Permutes the dimensions according to perm. The returned tensor's dimension i will correspond to the input dimension perm[i]. If

tensorflow中 tf.reduce_mean函数

tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值. 参考:https://blog.csdn.net/dcrmg/article/details/79797826 原文地址:https://www.cnblogs.com/yibeimingyue/p/11517034.html

tf.slice()函数详解(极详细)

目录 1.官方注释 2.参数解释 3.例子 参考 tf.slice()是TensorFlow库中分割张量的一个函数,其定义为def slice(input_, begin, size, name=None):.tf.slice()函数的那些参数设置实在是不好理解,查了好多资料才理解,所以这边记录一下. 1.官方注释 官方的注释如下: """Extracts a slice from a tensor. This operation extracts a slice of si

【Tensorflow】tf.argmax函数

tf.argmax(input, axis=None, name=None, dimension=None) 此函数是对矩阵按行或列计算最大值 参数 input:输入Tensor axis:0表示按列,1表示按行 name:名称 dimension:和axis功能一样,默认axis取值优先.新加的字段 返回:Tensor  一般是行或列的最大值下标向量 例: import tensorflow as tf a=tf.get_variable(name='a', shape=[3,4], dtyp

tf.placeholder函数说明

函数形式:tf.placeholder(    dtype,    shape=None,    name=None)参数:dtype:数据类型.常用的是tf.float32,tf.float64等数值类型shape:数据形状.默认是None,就是一维值,也可以是多维(比如[2,3], [None, 3]表示列是3,行不定)name:名称为什么要用placeholder?       Tensorflow的设计理念称之为计算流图,在编写程序时,首先构筑整个系统的graph,代码并不会直接生效,这

tf.reduce_sum()函数

1234567reduce_sum 是 tensor 内部求和的工具.其参数中: input_tensor 是要求和的 tensor axis 是要求和的 rank,如果为 none,则表示所有 rank 都要仇和 keep_dims 求和后是否要降维 这个操作的名称,可能在 graph 中 用 已被淘汰的,被参数 axis 替代 x = tf.constant([[1, 1, 1], [1, 1, 1]])tf.reduce_sum(x, 0) # 对 tensor 的 0 级进行求和,[1,

tf.matmul函数

tf.matmul(a,b,transpose_a=False,transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None) 参数: a 一个类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量 b  一个类型跟张量a相同的张量 transpose_a 如果为真,