上一篇我介绍了Tensorflow中执行顺序和控制依赖关系。在构建循环神经网络等复杂模型时,可能需要通过条件和循环来控制操作流程。这一篇我会说一说一些常用的控制流程操作。
1、tf.cond()
假设我们想要对两个给定张量进行相乘或相加操作。这可简单地用tf.cond来实现,它相当于python中的if函数。
2、tf.where()
大多数情况下我们经常使用大张量并批量执行操作,Tensorflow提供了相关的条件操作——tf.where,它和tf.cond一样需要判定条件来进行输出。
3、tf.while_loop()
另一个广泛使用的控制流操作是tf.while_loop。它允许在Tensorflow中构建可变长度序列的动态循环。让我们来看看如何用tf.while_loops生成斐波那契数列。
tf.while_loops除了循环变量的初始值之外,还有一个条件函数和一个循环体函数。然后通过多次调用体函数更新这些循环变量,直到条件返回false。