當前位置: 首頁>>算法&結構>>正文


TensorFlow中tf.app.flags的作用是什麽?

閱讀Tensorflow代碼時遇到的問題

最近在研究大名鼎鼎的深度學習工具包Tensorflow,在閱讀Tensorflow中的示例Python代碼時,發現有以下代碼片段:

flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.')
flags.DEFINE_integer('max_steps', 2000, 'Number of steps to run trainer.')
flags.DEFINE_integer('hidden1', 128, 'Number of units in hidden layer 1.')
flags.DEFINE_integer('hidden2', 32, 'Number of units in hidden layer 2.')
flags.DEFINE_integer('batch_size', 100, 'Batch size.  '
                 'Must divide evenly into the dataset sizes.')
flags.DEFINE_string('train_dir', 'data', 'Directory to put the training data.')
flags.DEFINE_boolean('fake_data', False, 'If true, uses fake data '
                 'for unit testing.')

這段代碼位於文件:tensorflow/tensorflow/g3doc/tutorials/mnist/fully_connected_feed.py之中。

其中有一個tf.app.flags變量,目前我找不到關於tf.app.flags這個用法的任何文檔或者資料,這讓人非常困惑。

顯然,從上麵代碼的上下文來看,這個tf.app.flags應該用於以某種方式初始化或者配置網絡,那麽為什麽它不在Tensorflow的官方API文檔中?誰能解釋一下這個表示到底是幹什麽用的?

tf.app.flags相關的介紹

tf.app.flags相關的模塊,從命令行解析參數的方法,它是google特有的風格,更常見的解析方法是argparsetf.app.flags可以認為是對模塊argparse的簡單封裝,它實現了python-gflags的一個功能子集。

請注意,此模塊目前封裝在一起,主要用於編寫演示應用程序,並且在技術上不是公共API的一部分,將來有發生更改的可能性。

建議您使用argparse或您喜歡的任何其他代碼庫實現自己的標誌解析。

補充說明:tf.app.flags模塊實際上並不是使用python-gflags實現的,而是使用其他類似的API。

附加:Tensorflow的簡介

tensorflow
圖1. Tensorflow的Logo

Tensorflow是一個采用數據流圖(data flow graphs),用於數值計算的開源軟件庫。由於google公司本身的號召力,以及Tensorflow係統設計的優越性,目前該工具包在深度學習領域得到廣泛應用。Tensorflow具有非常好的易用性,特別是使用Keras這樣的封裝,深度網絡搭建如同探囊取物。Keras入門可以參考:深度學習庫Keras入門

本文由編程愛好者ubuntuer整理自

  1. What’s the purpose of tf.app.flags in TensorFlow?
  2. what does tf.app.flags do? why we need that?

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/3591.html,未經允許,請勿轉載。