1. 程式人生 > >tensorflow中的control_flow_ops.switch函式介紹

tensorflow中的control_flow_ops.switch函式介紹

tensorflow中的control_flow_ops模組屬於tensorflow.python.ops中的一個模組,從switch函式的名稱上看就是一個開關函式。

函式:control_flow_ops.switch(data,pred,dtype=None,name=None)

功能:用來選擇資料的輸出通道,如果pred為False則data從第一個輸出,如果pred為True則資料從第二個輸出

引數:

  • data:需要被選擇輸出的tensor資料
  • pred:bool型別用來選擇data的輸出通道
  • dtype:可選,用來設定返回tensor的資料型別,如果為None則輸出tensor的資料型別與輸入tensor型別保持一致

name:操作名稱

返回值:(output_false,output_true),如果pred為true就輸出output_true,如果pred為false就輸出output_false

import tensorflow as tf
from tensorflow.python.ops import control_flow_ops

if __name__ == "__main__":
    with tf.Session() as sess:
        output_false,output_true = control_flow_ops.switch([1,2,3,4],False)
        print(output_false.eval())
        output_false,output_true = control_flow_ops.switch([5,6,7,8],True)
        print(output_true.eval())

注意:如果輸出通道與選擇的輸出通道不統一會報錯,tensorflow.python.framework.errors_impl.InvalidArgumentError: Retval[0] does not have value

        output_false,output_true = control_flow_ops.switch([1,2,3,4],False)
        print(output_true.eval())