参考:https://cloud.tencent.com/developer/article/1395581

tf.app.flags.FLAGS :用于接受从终端传入的命令行参数,相当于对python中的命令行参数模块optpars做了一层封装。

例子

#coding:utf-8# 学习使用 tf.app.flags 使用,全局变量
# 可以再命令行中运行也是比较方便,如果只写 python app_flags.py 则代码运行时默认程序里面设置的默认设置
# 若 python app_flags.py --train_data_path <绝对路径 train.txt> --max_sentence_len 100
#    --embedding_size 100 --learning_rate 0.05  代码再执行的时候将会按照上面的参数来运行程序import tensorflow as tfFLAGS = tf.app.flags.FLAGS# tf.app.flags.DEFINE_string("param_name", "default_val", "description")
tf.app.flags.DEFINE_string("train_data_path", "/home/yongcai/chinese_fenci/train.txt", "training data dir")
tf.app.flags.DEFINE_string("log_dir", "./logs", " the log dir")
tf.app.flags.DEFINE_integer("max_sentence_len", 80, "max num of tokens per query")
tf.app.flags.DEFINE_integer("embedding_size", 50, "embedding size")
tf.app.flags.DEFINE_float("learning_rate", 0.001, "learning rate")def main(unused_argv):train_data_path = FLAGS.train_data_pathprint("train_data_path", train_data_path)max_sentence_len = FLAGS.max_sentence_lenprint("max_sentence_len", max_sentence_len)embdeeing_size = FLAGS.embedding_sizeprint("embedding_size", embdeeing_size)abc = tf.add(max_sentence_len, embdeeing_size)init = tf.global_variables_initializer()#with tf.Session() as sess:#sess.run(init)#print("abc", sess.run(abc))sv = tf.train.Supervisor(logdir=FLAGS.log_dir, init_op=init)with sv.managed_session() as sess:print("abc:", sess.run(abc))# sv.saver.save(sess, "/home/yongcai/tmp/")# 使用这种方式保证了,如果此文件被其他文件 import的时候,不会执行main 函数
if __name__ == '__main__':tf.app.run()   # 解析命令行参数,调用main 函数 main(sys.argv)

调用方法:
① 默认参数调用:执行程序时自动调用程序中 default 中的参数

python app_flags.py

② 修改参数调用:

python app_flags.py --train_data_path <绝对路径 train.txt> --max_sentence_len 100 --embedding_size 100 --learning_rate 0.05

解释

和optpars中的参数类型类似是通过参数 “type=xxx” 定义的,tf中每个合法类型都有对应的 “DEFINE_xxx”函数。常用:

  • tf.app.flags.DEFINE_string() :定义一个用于接收string类型数值的变量;
  • tf.app.flags.DEFINE_integer() : 定义一个用于接收int类型数值的变量;
  • tf.app.flags.DEFINE_float() : 定义一个用于接收float类型数值的变量;
  • tf.app.flags.DEFINE_boolean() : 定义一个用于接收bool类型数值的变量;

“DEFINE_xxx”函数带3个参数,分别是变量名称,默认值,用法描述,例如:

tf.app.flags.DEFINE_string('ckpt_path', 'model/model.ckpt-100000', '''Checkpoint directory to restore''')

完整例子

定义一个名称是 “ckpt_path” 的变量,默认值是 ckpt_path = ‘model/model.ckpt-100000’,描述信息表明这是一个用于保存节点信息的路径。

# -*- coding=utf-8 -*-
import tensorflow  as tf
FLAGS = tf.app.flags.FLAGS
tf.app.flags.DEFINE_string('ckpt_path', 'model/model.ckpt-100000', '''模型保存路径''')
tf.app.flags.DEFINE_float('learning_rate',0.0001,'''初始学习率''')
tf.app.flags.DEFINE_integer('train_steps', 50000, '''总的训练轮数''')
tf.app.flags.DEFINE_boolean('is_use_gpu', False, '''是否使用GPU''')
print '模型保存路径: {}'.format(FLAGS.ckpt_path)
print '初始学习率: {}'.format(FLAGS.learning_rate)
print '总的训练次数: {}'.format(FLAGS.train_steps)
print '是否使用GPU: {}'.format(FLAGS.is_use_gpu)

使用 ‘-h’ 指令查看帮助信息:

python flags_test.py -h


调用:
① 按默认设置执行程序:

python flags_test.py


② 传入用户自定义的命令行参数:

python flags_test.py --ckpt_path abc/cba --learning_rate 0.001 --train_steps 10000 --is_use_gpu True

Tensorflow入门笔记——tf.app.flags.FLAGS用法介绍相关推荐

  1. TensorFlow 中 tf.app.flags.FLAGS 的用法介绍

    转载自:https://blog.csdn.net/lyc_yongcai/article/details/73456960 下面介绍 tf.app.flags.FLAGS 的使用,主要是在用命令行执 ...

  2. TensorFlow入门笔记

    TensorFlow 入门笔记 (1)(个人学习使用) 环境配置 Ubuntu16.04(VMware Workstation Pro 14) Python2.7 TensorFlow1.3.0 Te ...

  3. Tensorflow之flags的用法介绍

    1.功能解释 tensorflow中flags用于接收命令行传递参数,可以全局的更改代码中的参数.Tensorflow使用flags类定义命令行参数.网络模型中有大量的超参数需要我们赋值,所以此方法, ...

  4. tensorflow代码中tf.app.run()什么意思

    # 前面的代码省略了... ... ... ... def main(argv=None):mnist = input_data.read_data_sets("F:\mydata\Tens ...

  5. tensorflow+入门笔记︱基本张量tensor理解与tensorflow运行结构与相关报错

    欢迎登陆官网(附https://tensorflow.google.cn/)了解更多 TensorFlow 内容,也可关注 TensorFlow 官方公众号获取更多资讯. Gokula Krishna ...

  6. tensorflow 学习笔记-- tf.reduce_max、tf.sequence_mask

    1.tf.reduce_max函数的作用:计算张量的各个维度上的元素的最大值.例子: import tensorflow as tf max_value = tf.reduce_max([1, 3, ...

  7. tensorflow入门笔记(一)

    Tensorflow实现直线拟合 代码: #用tensorflow做回归 #用的是tensorflow2版本做直线拟合 import numpy as np import matplotlib.pyp ...

  8. tensorflow 入门笔记(二)

    Python3.0导入CIFAR-10数据集 前言 load_CIFAR10函数 调用cifar-10的数据集的数据 结果 前言 在搞完本科毕业设计之后终于有时间可以重新开始年前的关于深度学习的一些知 ...

  9. tensorflow function笔记: tf.tile

    tf.tile Function tf.tile(input, multiples, name=None) tile n. 瓷砖 通过拼接一个给定的tensor构建一个新的tensor Constru ...

  10. Tensorflow学习笔记——tf.set_random_seed函数

    设置图级随机seed 依赖于随机seed的操作实际上从两个seed中获取:图级和操作级seed.这将设置图级别的seed 其与操作级seed的相互作用如下: 如果没有设置图级和操作级seed,则使用随 ...

最新文章

  1. 漫画:什么是红黑树?
  2. WDS部署服务之四镜像捕获(1)
  3. 在一个JSP页面中包含另一个JSP页面的三种方式
  4. jQuery学习笔记(四)——表单选择
  5. SqlServer 中的增删改查语句的语法
  6. 13-Mybatis 注解开发
  7. 【服务器】创建docker、运行jupyter相关命令
  8. 线程、协程、Goroutine的区别和联系
  9. python实现Dijkstra算法求解图中最短路径距离
  10. wordpress不登陆后台禁用插件
  11. 如何快速把英语单词导入有道词典
  12. 饥荒专用服务器全图显示代码,饥荒联机地图全开代码
  13. COCI 2016/2017 Round 4 C dp
  14. Python自动化运行合成大西瓜|附小游戏地址
  15. 图像主结构的提取方法
  16. 魔兽世界出错排查以及解决方案
  17. 百度地图的鹰眼服务--Web上手
  18. 接收word里面的修订,使word显示时不会出现修订的痕迹
  19. 第五届湖南省机器人大赛暨第十四届湖南省智能汽车大赛名单
  20. python表示逻辑与运算的关键字_Python 逻辑与位运算

热门文章

  1. MPS模块式柔性自动化生产线
  2. @UPC 6605 @福建OI2018 [FJOI2018] @ 洛谷 P4578 所罗门王的宝藏 (矩阵行列规律)
  3. 扩散模型训练太难?来看看Meta AI最新提出的KNN-Diffusion
  4. Android简易实战教程--第三十七话《NotifiCation》
  5. linux memery dump
  6. Jenkins项目配置-maven项目-全面
  7. 管理类联考-英语: 前导( 三 )
  8. Android 打开应用商店评分
  9. 软文成功案例,给企业带来的价值不可限量
  10. java如何爬取qq音乐_爬取QQ音乐