读别人家的代码的时候经常看到这个,结果两三天不看居然忘记了,这脑子绝对上锈了,决定记下来免得老是查来查去的。。。 
内容包含如下几个我们经常看到的几个函数: 
①tf.flags.DEFINE_xxx() 
②FLAGS = tf.flags.FLAGS 
③FLAGS._parse_flags()


简单的说:

用于帮助我们添加命令行的可选参数。 
也就是说利用该函数我们可以实现在命令行中选择需要设定的参数来运行程序, 
可以不用反复修改源代码中的参数,直接在命令行中进行参数的设定。

举个栗子:

程序train.py文件中的小部分代码如下所示:

FLAGS = tf.flags.FLAGStf.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')
#全局参数设置,显示在命令行

在命令行中我们为了执行train.py文件,在命令行中输入:

python train.py \--input_file data/shakespeare.txt  \--name shakespeare \--num_steps 50 \--num_seqs 32 \--learning_rate 0.01 \--max_steps 20000
  • 通过输入不同的文件名、参数,可以快速完成程序的调参和更换训练集的操作,不需要进入源码中更改。

备注:在此感谢上述代码的作者


实践操作一下:

现在我们有如下代码:

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("")
  • 尝试执行一下上述代码了解其各行代码的功能,可能因为tensorflow版本原因出现报错现象。

查看解决办法可点击链接

TensorFlow中的小知识:tf.flags.DEFINE_xxx()相关推荐

  1. vue项目中的小知识--快捷键-vue插件版本号--vscode插件等

    vue项目中的小知识--快捷键等 0 版本号 1 代码片段的获取: 2 vscode中一些常用扩展 3 进入另一个文件夹,返回上一级 4查看Vue的版本和Vue/CLI的版本 5 --save-dev ...

  2. ps中的小知识,你必须懂

    要说ps中的小知识是非常多的,掌握了之后,就能够很轻松的去完成一些基础的设计啦!所以关于ps中的小知识,我们今天就简单的介绍其中的一部分,后面会持续为大家更新,让我们也能够懂设计,了解ps,为以后的工 ...

  3. 【转】tensorflow中的batch_norm以及tf.control_dependencies和tf.GraphKeys.UPDATE_OPS的探究

    笔者近来在tensorflow中使用batch_norm时,由于事先不熟悉其内部的原理,因此将其错误使用,从而出现了结果与预想不一致的结果.事后对其进行了一定的调查与研究,在此进行一些总结. 一.错误 ...

  4. python时间str转datetime_深入了解Python中的小知识

    @Author:By Runsen time和datetime是Python处理日期和时间的标准库.在我们项目的实际开发当中使用率是非常高的.datetime模块有四个重要的类,date,time,d ...

  5. C++/C中的小知识备忘

    C++/C中防止头文件的重复包含的解决办法 为了避免头文件重复包含,有两种方式可以选择,一种是#ifndef方式,由标准支持:一种是#pragma once方式,编译器提供. //方式一 #ifnde ...

  6. 【转载翻译】tensorflow中样离线使用tf hub中的模型

    该方法是在国外网站中找到的,并没有完全按照原文翻译,而是按着步骤意思去写的 1.找到模型链接 在tfhub.dev中找到你需要的模型链接,例如:https://tfhub.dev/google/ima ...

  7. C语言中的小知识1~20

    打印字符 char ch='A'; printf("%c\n",ch); %d: 打印整形上的十进制数据 %p: 以地址的形式打印 %X: 打印16进制数字 打印双精度浮点数 do ...

  8. python维度扩展_在TensorFlow中实现矩阵维度扩展

    一般TensorFlow中扩展维度可以使用tf.expand_dims().近来发现另一种可以直接运用取数据操作符[]就能扩展维度的方法. 用法很简单,在要扩展的维度上加上tf.newaxis就行了. ...

  9. 【C#小知识】C#中一些易混淆概念总结(三)---------结构,GC,静态成员,静态类...

    目录: [C#小知识]C#中一些易混淆概念总结 [C#小知识]C#中一些易混淆概念总结(二) ---------------------------------------分割线----------- ...

  10. 【C#小知识】C#中一些易混淆概念总结(七)---------解析抽象类,抽象方法

    目录: [C#小知识]C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用 [C#小知识]C#中一些易混淆概念总结(二)--------构造函数,this关键字 ...

最新文章

  1. 【Mysql】日期、行变列(IF、CASE WHEN THEN)语句总结
  2. Matlab数据的可视化 -- 茎干图
  3. JGG | 这么漂亮的Venn网络竟然可以一步在线绘制?
  4. C++ 内存泄漏检测:valgrind和AddressSanitizer
  5. Android 导出traces.txt 遇到的坑
  6. selenium模拟H5触摸滑动之-TouchAction
  7. Redisson分布式锁分析
  8. java 配置文件加载_Java加载配置文件类
  9. 标题: ZZ- Linux 系统裁减指南(LiPS)
  10. 吉联新软件工作好累_社交小白:“如何在社交软件和陌生人打招呼”
  11. Taro小程序 Input组件focus属性失效解决方案
  12. 麻省理工学院计算机科学与工程博士,2020年麻省理工学院博士读几年
  13. 【UE4】如何使用Composite插件进行绿幕抠图
  14. 幼儿园故事导入语案例_幼儿园老师上课常用导入语 课前活跃气氛用这11种方法就对了...
  15. 一位阿里P9的年薪和家庭资产
  16. 如何将本地图片转换成链接
  17. 部分彩色图片处理方式的C++实现
  18. 行走在数据库上的行癫(二)
  19. linux 浏览器崩溃,Firefox DoS漏洞导致浏览器崩溃 影响到Windows操作系统
  20. 12.3 收敛级数的性质

热门文章

  1. 将整数翻译成英文(C++)
  2. php实现支付宝对账单打通
  3. ecu的c语言编程,ecu中的程序是如何编写的
  4. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day8】 —— Redis2
  5. 西门吹雪和他的剑——剑神和剑道
  6. oracle怎么截取long类型,如何把long类型的值取出来
  7. 冷血格斗场和热血格斗场
  8. java 禁用cookie的解决办法
  9. 一味顺从的人没有好果子吃
  10. 前嗅ForeSpider数据采集教程:采集东方财富网链接列表