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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM