zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【lua实战摸索】在b.lua调用a.lua的函数
    【VScode】使用VScode 来写markdown ① 时序图
    修改虚拟机的ip地址
    PyCharm 导包提示 unresolved reference
    报错:Request failed with status code 413
    安装cuda和cudnn
    delphi 10.2报错:connot resolve unit name Forms
    运行delphi 10.2时出现的错误:Error setting debug exception hook
    已知两点坐标和半径,求圆心
    电脑蓝屏,出现BitLocker 恢复
  • 原文地址:https://www.cnblogs.com/duwenlu/p/9038999.html
Copyright © 2011-2022 走看看