作  者:marsggbo
出  处:https://www.cnblogs.com/marsggbo
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本

---------------------------------------------------------------------------------------------------------------

Tensorflow       tf.app  &  tf.app.flags    用法介绍

1.     tf.app.flags

下面介绍 tf.app.flags.FLAGS的使用,主要是在用命令行执行程序时,需要传些参数,其实也就可以理解成对argparse库进行的封装,示例代码如下

#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 tf FLAGS = tf.app.flags.FLAGS # tf.app.flags.DEFINE_string("param_name", "default_val", "description")
tf.app.flags.DEFINE_string("train_data_path", "/desktop/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_path
print("train_data_path", train_data_path)
print("*" * 30)
max_sentence_len = FLAGS.max_sentence_len
print("max_sentence_len", max_sentence_len)
print("*" * 30)
embdeeing_size = FLAGS.embedding_size
print("embedding_size", embdeeing_size)
print("*" * 30)
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)) # 使用这种方式保证了,如果此文件被其他文件 import的时候,不会执行main 函数
if __name__ == '__main__':
tf.app.run() # 解析命令行参数,调用main 函数 main(sys.argv)

两种调用方式:

方式一:

  1. python tf_app_flag.py

结果如下:

方式二:

python app_flags.py --train_data_path ./test.py --max_sentence_len 100 --embedding_size 100 --learning_rate 0.05

 3.         tf.app.run()

该函数一般都是出现在这种代码中:

if __name__ == '__main__':
tf.app.run()

上述第一行代码表示如果当前是从其它模块调用的该模块程序,则不会运行main函数!而如果就是直接运行的该模块程序,则会运行main函数。

具体第二行的功能从源码开始分析,源码如下:

flags_passthrough=f._parse_flags(args=args)这里的parse_flags就是我们tf.app.flags源码中用来解析命令行参数的函数。所以这一行就是解析参数的功能;

下面两行代码也就是tf.app.run的核心意思:执行程序中main函数,并解析命令行参数!






参考:

----------------------------------------------------------------------------------------------------

【转载】 TensorFlow tf.app&tf.app.flags用法介绍的更多相关文章

  1. TensorFlow tf.app&tf.app.flags用法介绍

    TensorFlow tf.app&tf.app.flags用法介绍 TensorFlow tf.app argparse  tf.app.flags 下面介绍 tf.app.flags.FL ...

  2. [转载]tensorflow中使用tf.ConfigProto()配置Session运行参数&&GPU设备指定

    tf.ConfigProto()函数用在创建session的时候,用来对session进行参数配置: config = tf.ConfigProto(allow_soft_placement=True ...

  3. 【TensorFlow】tf.nn.embedding_lookup函数的用法

    tf.nn.embedding_lookup函数的用法主要是选取一个张量里面索引对应的元素.tf.nn.embedding_lookup(tensor, id):tensor就是输入张量,id就是张量 ...

  4. 【转载】 TensorFlow函数:tf.Session()和tf.Session().as_default()的区别

    原文地址: https://blog.csdn.net/Enchanted_ZhouH/article/details/77571939 ------------------------------- ...

  5. tensorflow中使用变量作用域及tf.variable(),tf,getvariable()与tf.variable_scope()的用法

    一 .tf.variable() 在模型中每次调用都会重建变量,使其存储相同变量而消耗内存,如: def repeat_value(): weight=tf.variable(tf.random_no ...

  6. TensorFlow高级API(tf.contrib.learn)及可视化工具TensorBoard的使用

    一.TensorFlow高层次机器学习API (tf.contrib.learn) 1.tf.contrib.learn.datasets.base.load_csv_with_header 加载cs ...

  7. Tensorflow中的tf.argmax()函数

    转载请注明出处:http://www.cnblogs.com/willnote/p/6758953.html 官方API定义 tf.argmax(input, axis=None, name=None ...

  8. tf.concat, tf.stack和tf.unstack的用法

    tf.concat, tf.stack和tf.unstack的用法 tf.concat相当于numpy中的np.concatenate函数,用于将两个张量在某一个维度(axis)合并起来,例如: a ...

  9. tf.nn.embedding_lookup函数的用法

    关于np.random.RandomState.np.random.rand.np.random.random.np.random_sample参考https://blog.csdn.net/lanc ...

随机推荐

  1. 常用内置模块(二)--logging、hashlib、shelve、xml、configparser

    一.logging模块 1.logging作用 1. 控制日志级别  2. 控制日志格式  3. 控制输出的目标为文件 2.日志级别 1 logging.debug( 2 logging.info( ...

  2. Django 之 cookie & session

    Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面 ...

  3. SAMBA 服务配置

    Samba文件共享服务 Linux系统中一种文件共享程序 在Windows网络环境中,主机之间进行文件和打印机共享是通过微软公司自己的SMB/CIFS网络协议实现的.SMB(Server Messag ...

  4. linux中网络部分的总结

    二.简述iproute家族命令 静态配置地址的方法有一下几种方式: (1)ifconfig (2)ip命令 (3)GUI工具 (4)TUI工具 (5)编辑配置文件 1.ifconfig 查看接口:if ...

  5. ELK快速入门(五)配置nginx代理kibana

    ELK快速入门五-配置nginx代理kibana 由于kibana界面默认没有安全认证界面,为了保证安全,通过nginx进行代理并设置访问认证. 配置kibana [root@linux-elk1 ~ ...

  6. 文件上传与下载,PDF与Excel的操作

    1.文件上传 前端代码 <el-upload class="upload-demo" ref="upload" :action="actionU ...

  7. ansible(三)

    setup ansible_all_ipv4_addresses # ipv4的所有地址 ansible_all_ipv6_addresses # ipv6的所有地址 ansible_date_tim ...

  8. ssm上传文件

    ssm上传文件(上传到本地磁盘) (1)先要导入所需要的jar包或者pom文件中添加依赖 <!-- 上传 --> <dependency> <groupId>com ...

  9. 在Xshell 运行angular 项目时,找不到node-sass模块,安装node-sass模块时,又出现权限问题

    情景再现: 运行时的报错找不到node-sass模块 接着安装node-sass模块出现权限问题 解决方法:既然是权限问题,那么就给项目添加权限指令,在npm前面添加# sudo ,命令如下: 这样就 ...

  10. JS的ES6的基础语法

    JS的ES6 1.let let age = 12; (1). 作用: 与var类似, 用于声明一个变量 (2). 特点: 在块作用域内有效 不能重复声明 不会预处理, 不存在提升 (3). 应用: ...