TF flags的简介

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/HHTNAN/article/details/102743006

1、TF flags的简介

1、flags可以帮助我们通过命令行来动态的更改代码中的参数。Tensorflow 使用flags定义命令行参数的方法。ML的模型中有大量需要tuning的超参数,所以此方法,迎合了需要一种灵活的方式对代码某些参数进行调整的需求 (1)、比如,在这个py文件中,首先定义了一些参数,然后将参数统一保存到变量FLAGS中,相当于赋值,后边调用这些参数的时候直接使用FLAGS参数即可 (2)、基本参数类型有三种flags.DEFINE_integer、flags.DEFINE_float、flags.DEFINE_boolean。 (3)、第一个是参数名称,第二个参数是默认值,第三个是参数描述

2、使用过程

#第一步,调用flags = tf.app.flags,进行定义参数名称,并可给定初值、参数说明 #第二步,flags参数直接赋值 #第三步,运行tf.app.run()

FLAGS = tf.flags.FLAGS

tf.flags.DEFINE_string('name', 'default', 'name of the model')
tf.flags.DEFINE_integer('num_seqs', 100, 'number of seqs in one batch')
tf.flags.DEFINE_integer('num_steps', 100, 'length of one seq')
tf.flags.DEFINE_integer('lstm_size', 128, 'size of hidden state of lstm')
tf.flags.DEFINE_integer('num_layers', 2, 'number of lstm layers')
tf.flags.DEFINE_boolean('use_embedding', False, 'whether to use embedding')
tf.flags.DEFINE_integer('embedding_size', 128, 'size of embedding')
tf.flags.DEFINE_float('learning_rate', 0.001, 'learning_rate')
tf.flags.DEFINE_float('train_keep_prob', 0.5, 'dropout rate during training')
tf.flags.DEFINE_string('input_file', '', 'utf8 encoded text file')
tf.flags.DEFINE_integer('max_steps', 100000, 'max steps to train')
tf.flags.DEFINE_integer('save_every_n', 1000, 'save the model every n steps')
tf.flags.DEFINE_integer('log_every_n', 10, 'log to the screen every n steps')
tf.flags.DEFINE_integer('max_vocab', 3500, 'max char number')

示例如下:

import tensorflow as tf
#取上述代码中一部分进行实验
tf.flags.DEFINE_integer('num_seqs', 100, 'number of seqs in one batch')
tf.flags.DEFINE_integer('num_steps', 100, 'length of one seq')
tf.flags.DEFINE_integer('lstm_size', 128, 'size of hidden state of lstm')

#通过print()确定下面内容的功能
FLAGS = tf.flags.FLAGS #FLAGS保存命令行参数的数据
FLAGS._parse_flags() #将其解析成字典存储到FLAGS.__flags中
print(FLAGS.__flags)

print(FLAGS.num_seqs)

print("\nParameters:")
for attr, value in sorted(FLAGS.__flags.items()):
    print("{}={}".format(attr.upper(), value))
print("")

遇到问题可以参考:相关解决办法

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • tensorflow之tf.placeholder 与 tf.Variable区别对比

    Variable:主要是用于训练变量之类的。比如我们经常使用的网络权重,偏置。 值得注意的是Variable在声明是必须赋予初始值。在训练过程中该值很可能会...

    学到老
  • tensorflow之tf.placeholder 与 tf.Variable区别对比

    二者的主要区别在于 Variable:主要是用于训练变量之类的。比如我们经常使用的网络权重,偏置。 值得注意的是Variable在声明是必须赋予初始值。在训...

    学到老
  • windows下mysql忘记root密码,如何重设密码

    添加windows下mysql服务 以管理员身份打开cmd,执行 mysqld --install net stop mysql # 忘记密码找回 找到mysq...

    学到老
  • 【TensorFlow】TensorFlow 的卷积神经网络 CNN - TensorBoard 版

    前面 写了一篇用 TensorFlow 实现 CNN 的文章,没有实现 TensorBoard,这篇来加上 TensorBoard 的实现,代码可以从 这里 下...

    Alan Lee
  • 【TensorFlow】TensorFlow 的卷积神经网络 CNN - TensorBoard版

    前面 写了一篇用 TensorFlow 实现 CNN 的文章,没有实现 TensorBoard,这篇来加上 TensorBoard 的实现,代码可以从 这里 下...

    Alan Lee
  • A3C原理和代码解析

    完整代码地址:https://github.com/dgriff777/a3c_continuous

    用户1908973
  • tf.GradientTape详解:梯度求解利器

    tf.GradientTape定义在tensorflow/python/eager/backprop.py文件中,从文件路径也可以大概看出,GradientTa...

    用户7164815
  • 研发:认识Web安全

    确保您的 Web 站点或 Web 应用安全是十分重要的,即使是代码中很小的 bug 也可能导致隐私信息被泄露,黑客会尝试偷窃数据。

    heidsoft
  • Shell&Vim合集(更新中)

    你还可以将特定字符做为替换范围。比如,将SQL语句从FROM至分号部分中的所有等号(=)替换为不等号(<>):

    用户1621453
  • python和tensorflow处理命令行参数的方法

    Python 有两个内建的模块用于处理命令行参数:一个是 getopt,《Deep in python》一书中也有提到,只能简单处理 命令行参数;另一个是 op...

    于小勇

扫码关注云+社区

领取腾讯云代金券