TensorFlow-谷歌深度学习库 命令行参数

Posted duwenlu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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-谷歌深度学习库 命令行参数的主要内容,如果未能解决你的问题,请参考以下文章

谷歌发布深度学习库TensorFlow Fold,支持动态计算图

头条谷歌发布全新TensorFlow 库tf.Transform;百度将Ring Allreduce算法引入深度学习

谷歌 TensorFlow 稳居第一:23 个深度学习库的排名

学 Python 有啥用?谷歌 TensorFlow 指定开发语言!

23种深度学习库排行榜:TensorFlow最活跃Keras最流行

承接TensorFlow深度学习代做pytorch图像处理