Tensorflow的條件判斷式 tf.cond

Jia-Yau Shiau
AI Blog TW
Published in
2 min readAug 3, 2019

這篇文章會介紹tf.cond這個operator,這個語法是tensorflow的if / else條件判斷式。我會再用tf.cond將上篇文章中的counter加上auto-reset的功能。

Screenshot from Tensorflow Official website

給Pytorch用戶的小前言

老話一句,在Pytorch裡也是完全不需要什麼額外的conditional語法,畢竟原本就可以在可以在計算時配合一般的Python語法。不過在Tensorflow,flow裡的條件式就得好好依靠tf.cond了。

如何使用tf.cond

考慮一個簡單的問題,在上次的文章中使用了tf.assign實現了一個不斷往上加的計數器。如果今天希望這個計數器在到達一定數字後,可以自動歸零,應該怎麼做呢?

這時候就需要tf.cond 的加入了!先看一下tf.cond 的語法(忽略後面四個args ):pred是一個條件,如果符合條件(if)會執行true_fn,如果不符合(else)則執行false_fn

所以只要在上次的counter上加上條件式與對應的function。

# Terminal Output
1
0
1
0
1

範例程式碼可以直接到我的Google Colaboratory執行。

tf.assign一樣,tf.cond也是tensorflow中非常基本的語句。雖然如果都是使用high level API或keras可能就不太會碰到,不過如果要實踐很多自己或很多較新的方法時,tf.cond真的就是基本中的基本了。

--

--