TensorFlow学习笔记之--[tf.app.flags使用方法]
很多时候在运行python代码的时候我们需要从外部定义参数,从而避免每次都需要改动代码。所以一般我们都会使用 argparse 这个库。其实TensorFlow也提供了这个功能,那就是 tf.app.flags 。
使用方法很简单
tf.app.flags.DEFINE_boolean("param_name", "default_val", "description")
上面给出的是定义一个bool变量,第一个参数是指参数名,第二个是默认值,第三个是对该变量的描述,如果不想描述可以直接用 ""。
除了bool类,我们还可以定义其他的类型数据,如:
- tf.app.flags.DEFINE_integer
- tf.app.flags.DEFINE_float
- tf.app.flags.DEFINE_string
那么如何使用呢?完整示例(假设文件名为test.py)如下:
# coding=utf-8
import tensorflow as tf
flags = tf.app.flags
FLAGS = flags.FLAGS
tf.app.flags.DEFINE_integer('data', 10, "")
tf.app.flags.DEFINE_boolean("istrain", True, "")
def main(_):
print("{}".format(FLAGS.data))
print("{}".format(FLAGS.istrain))
if __name__ == '__main__':
tf.app.run()
5-6行:首先需要定义一个tf.app.flags,然后定义一个FLAGS,它是用来解析传入的参数的。
7-8行:定义了两个变量,分别是整型变量和bool型。
10-12行:注意使用tf.app.flags一般需要使用main函数作为入口,然后再仔细看main函数是需要传参数的(虽然不知道为什么),否则会出现如下报错信息:
Traceback (most recent call last):
File "d:/Code/AutoML/enas/testfiles/batch_test.py", line 19, in <module>
tf.app.run()
File "D:\Continuum\anaconda3\lib\site-packages\tensorflow\python\platform\app.py", line 125, in run
_sys.exit(main(argv))
TypeError: main() takes 0 positional arguments but 1 was given
所以我们可以传入一个无意义的 _ 来解决这个问题。
下面来看看如何运行这个文件:
python test.py --data 20
>>>
20
True
可以看到如果不穿入参数则按默认值处理,否则根据传入的值对变量进行更新。
另外对于bool型变量有个地方需要注意,因为bool只有True和False,所以无论bool变量默认值为True还是False,在变量面前加个no后都取False,,其他类型的没有这个特权,示例如下:
python test.py --nodata --noistrain
>>>
10
False
将istrain默认值设为False,运行结果和上面一样。
TensorFlow学习笔记之--[tf.app.flags使用方法]的更多相关文章
- tensorflow API _ 2 (tf.app.flags.FLAGS)
tf.app.flags.FLAGS 的使用,主要是在用命令行执行程序时,需要传些参数,代码如下:新建一个名为:app_flags.py 的文件. #coding:utf-8 import tens ...
- TensorFlow学习笔记之--[tf.clip_by_global_norm,tf.clip_by_value,tf.clip_by_norm等的区别]
以下这些函数可以用于解决梯度消失或梯度爆炸问题上. 1. tf.clip_by_value tf.clip_by_value( t, clip_value_min, clip_value_max, n ...
- TensorFlow学习笔记之--[compute_gradients和apply_gradients原理浅析]
I optimizer.minimize(loss, var_list) 我们都知道,TensorFlow为我们提供了丰富的优化函数,例如GradientDescentOptimizer.这个方法会自 ...
- tensorflow入门笔记(一) tf.app.flags.FLAGS
tf.app.flags.DEFINE_xxx()就是添加命令行的optional argument(可选参数),而tf.app.flags.FLAGS可以从对应的命令行参数取出参数.举例如下: FL ...
- TensorFlow 学习(十三)—— tf.app.flags
flags = tf.app.flags FLAGS = flags.FLAGS flags.DEFINE_integer('num_hidden_layers', 3, 'number of hid ...
- TensorFlow tf.app&tf.app.flags用法介绍
TensorFlow tf.app&tf.app.flags用法介绍 TensorFlow tf.app argparse tf.app.flags 下面介绍 tf.app.flags.FL ...
- 【转载】 TensorFlow tf.app&tf.app.flags用法介绍
作 者:marsggbo 出 处:https://www.cnblogs.com/marsggbo版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本. ---------- ...
- tensorflow命令行参数:tf.app.flags.DEFINE_string、tf.app.flags.DEFINE_integer、tf.app.flags.DEFINE_boolean
tf 中定义了 tf.app.flags.FLAGS ,用于接受从终端传入的命令行参数,相当于对Python中的命令行参数模块optpars(参考:python中处理命令行参数的模块optpars)做 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...
随机推荐
- C# enum、int、string三种类型互相转换
enum.int.string三种类型之间的互转 #代码: public enum Sex { Man=, Woman= } public static void enumConvert() { in ...
- 利用 JMetal 实现大规模聚类问题的研究(一)JMetal配置
研究多目标优化问题,往往需要做实验来对比效果,所以需要很多多目标方面的经典代码,比如NSGA-II, SPEA, MOEA,MOEA/D, 或者PSO等等. 想亲自实现这些代码,非常浪费时间,还有可能 ...
- Netsarang
下载 https://www.netsarang.com/zh/all-downloads/ 建议直接下载 xmanager-power-suite,里面包含了 Xmanager.Xshell.Xft ...
- mysql安装绑定my.ini
Windows操作系统中,我们安装Mysql有两个选择: 一是下载MSI点击运行,利用windows系统安装程序的方法按部就班的来安装: 二是下载ZIP,解压出来就能立即使用. 在使用ZIP安装时,安 ...
- Bootstrap模态框修改出现的位置和大小
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 解决composer出错的原因
1.执行了php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" 2.出 ...
- windows环境配置计划任务让weblogic的servers开机启动【原】
准备脚本 注意如果weblogic在D盘,那么以下cmd中的所有C:都要替换成D: , 因为windows需要切盘符. 启动weblogic管理服务adminServer 的文件: startAdmi ...
- LeetCode(193. Valid Phone Numbers)(sed用法)
193. Valid Phone Numbers Given a text file file.txt that contains list of phone numbers (one per lin ...
- 记一次解决非法参数DDoS攻击的实践
起因 线上项目突然遭到大量的非法参数攻击,由于历史问题,之前的代码从未对请求参数进行校验. 导致大量请求落到了数据访问层,给应用服务器和数据库都带来了很大压力. 针对这个问题,只能对请求真正到Cont ...
- ueditor 百度编辑器 粘贴的table表格样式边线
粘贴html的table表格会有间隔大,黑色边线,可以在: ueditor.all.js 里 找到以下处,修改里面的样式即可 me.ready(function () { utils.cssRule( ...