TensorFlow-谷歌深度學習庫 命令行參數
程序的入口:
tf.app.run
tf.app.run( main=None, argv=None )
運行程序,可以提供‘main’函數以及函數參數列表。處理flag解析然後執行main函數。
什麽是flag解析呢?
由於深度學習神經網絡往往需要對各種Hyperparameter調優,比如學習率,卷積核參數設置等等, 這時使用命令行調參是非常方便的。
需要用到TensorFlow框架中的tf.app.flags組件
tf.app.flags組件中提供很多自帶的設置不同類型命令行參數以及其默認值。比如下面這些:
tf.app.flags.DEFINE_integer
tf.app.flags.DEFINE_string
tf.app.flags.DEFINE_float
tf.app.flags.DEFINE_bool
舉個最簡單的例子的話是這樣:
FLAGS = tf.app.flags.FLAGS # 聲明FLAGS對象 # Configuration (alphabetically) tf.app.flags.DEFINE_integer(‘batch_size‘, 16, "Number of samples per batch.") if __name__ == ‘__main__‘: tf.app.run()
tf.ConfigProto
tf.ConfigProto()函數用在創建session的時候,用來對session進行參數配置。
它可以用來
1. 記錄設備指派情況 tf.ConfigProto(log_device_placement=True)
是否打印設備分配日誌,設置tf.ConfigProto()中參數log_device_placement = True , 會在終端打印出各項操作是在哪個設備上運行的。
tf.set_random_seed(seed)
設置圖級隨機seed。
依賴於隨機seed的操作實際上從兩個seed中獲取:圖級和操作級seed。 這將設置圖級別的seed。
其與操作級seed的相互作用如下:
1.如果沒有設置圖形級別和操作seed,則使用隨機seed進行操作。
2.如果設置了圖級seed,但操作seed沒有設置:系統確定性地選擇與圖級seed一起的操作seed,以便獲得唯一的隨機序列。
3.如果沒有設置圖級seed,但是設置了操作seed:使用默認的圖級seed和指定的操作seed來確定隨機序列。
4.如果圖級和操作seed都被設置:兩個seed聯合使用以確定隨機序列。
http://www.cnblogs.com/antflow/p/7234144.html
TensorFlow-谷歌深度學習庫 命令行參數