当前位置: 首页>>算法&结构>>正文


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/article/3591.html,未经允许,请勿转载。