tensorflow 使用flags定义命令行参数,TensorFlow tf.app&tf.app.flags用法介绍_tf.app.flags.define_string('root_dir-程序员宅基地

转载:https://blog.csdn.net/leiting_imecas/article/details/72367937

tf定义了tf.app.flags,用于支持接受命令行传递参数,相当于接受argv。

import tensorflow as tf

#第一个是参数名称,第二个参数是默认值,第三个是参数描述
tf.app.flags.DEFINE_string('str_name', 'def_v_1',"descrip1")
tf.app.flags.DEFINE_integer('int_name', 10,"descript2")
tf.app.flags.DEFINE_boolean('bool_name', False, "descript3")

FLAGS = tf.app.flags.FLAGS

#必须带参数,否则:'TypeError: main() takes no arguments (1 given)';   main的参数名随意定义,无要求
def main(_):  
    print(FLAGS.str_name)
    print(FLAGS.int_name)
    print(FLAGS.bool_name)

if __name__ == '__main__':
    tf.app.run()  #执行main函数

执行:

[root@AliHPC-G41-211 test]# python tt.py
def_v_1
10
False
[root@AliHPC-G41-211 test]# python tt.py --str_name test_str --int_name 99 --bool_name True
test_str
99
True

 

转载:https://www.cnblogs.com/marsggbo/p/9719580.html

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

TensorFlow tf.app argparse 

tf.app.flags

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

  1. #coding:utf-8 
  2.  
  3. # 学习使用 tf.app.flags 使用,全局变量 
  4. # 可以再命令行中运行也是比较方便,如果只写 python app_flags.py 则代码运行时默认程序里面设置的默认设置 
  5. # 若 python app_flags.py --train_data_path <绝对路径 train.txt> --max_sentence_len 100 
  6. # --embedding_size 100 --learning_rate 0.05 代码再执行的时候将会按照上面的参数来运行程序 
  7.  
  8. import tensorflow as tf 
  9.  
  10. FLAGS = tf.app.flags.FLAGS 
  11.  
  12. # tf.app.flags.DEFINE_string("param_name", "default_val", "description") 
  13. tf.app.flags.DEFINE_string("train_data_path", "/desktop/train.txt", "training data dir") 
  14. tf.app.flags.DEFINE_string("log_dir", "./logs", " the log dir") 
  15. tf.app.flags.DEFINE_integer("max_sentence_len", 80, "max num of tokens per query") 
  16. tf.app.flags.DEFINE_integer("embedding_size", 50, "embedding size") 
  17.  
  18. tf.app.flags.DEFINE_float("learning_rate", 0.001, "learning rate") 
  19.  
  20.  
  21. def main(unused_argv): 
  22. train_data_path = FLAGS.train_data_path 
  23. print("train_data_path", train_data_path) 
  24. print("*" * 30) 
  25. max_sentence_len = FLAGS.max_sentence_len 
  26. print("max_sentence_len", max_sentence_len) 
  27. print("*" * 30) 
  28. embdeeing_size = FLAGS.embedding_size 
  29. print("embedding_size", embdeeing_size) 
  30. print("*" * 30) 
  31. abc = tf.add(max_sentence_len, embdeeing_size) 
  32.  
  33. init = tf.global_variables_initializer() 
  34.  
  35. with tf.Session() as sess: 
  36. sess.run(init) 
  37. print("abc", sess.run(abc)) 
  38.  
  39. # 使用这种方式保证了,如果此文件被其他文件 import的时候,不会执行main 函数 
  40. if __name__ == '__main__': 
  41. tf.app.run() # 解析命令行参数,调用main 函数 main(sys.argv) 
  42.  
  43.  
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38409301/article/details/88077299

智能推荐

Android基础篇 访问Assets文件夹里面的资源【文本、图片、音频、字体包】_file:///android_assets_其子昱舟的博客-程序员宅基地

一、创建Assest文件夹直接把资源复制粘贴到该文件夹下(1)获取Assets文件夹的管理类AssetManager assets = getAssets();(2)遍历文件夹下的资源列表String[] list = assets.list();(3)访问Assets的绝对路径file:///android_asset二、获取Assets文件夹的文本AssetManager am = getAssets();try{ //"penlaoxi.txt" 资源文本名称以及后_file:///android_assets

关于springmvc一致停留“信息: Initializing Spring FrameworkServlet 'SpringMVC'”的问题-程序员宅基地

最近使用spring构建项目,发现部署到tomcat之后一致停留在:“信息: Initializing Spring FrameworkServlet 'SpringMVC”这一行不动,甚至可能需要1分钟才能启动项目,我去,整个项目只有配置文件和jar包,还没写代码,这也太离谱了吧。果断打开log4j看打印信息,发现一直停留在这一行:2016-12-15 15:46:28,10_initializing spring frameworkservlet 'springmvc

GBT-25000.51-2010 课件及笔记-程序员宅基地

概述GB/T25000.51-2010 《软件工程 软件产品质 量要求和评价(SQuaRE) 商业现货(COTS) 软件产品的质量要求和测试细则》替代了 GB/T17544-1998《信息技术 软件包 质量要 求和测试》。第三方软件检测实验室采用的检测标准也随之 变更。但是,软件企业的产品文档没有随之跟进,造 成软件产品测试中的种种问题的产生。GB/T 25000.51..._gb/t 25000.51培训资料

IMWeb提升营Day3 | 训练题18:二叉树的镜像-程序员宅基地

IMWeb提升营Day3 | 训练题18:二叉树的镜像

深度解析C语言中的sizeof-程序员宅基地

解析C语言中的sizeof 一、sizeof的概念    sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。

TCL脚本语言基础介绍_tcl 数组 取uniq-程序员宅基地

Tcl简介(一):Tcl 语法Tcl 语法Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对 Tcl有很好的描述和说明。如果你看起来很吃力,那是因为 Tcl与一般的语言有一些不同之处,刚开始可能有一些不理解,但很快就会掌握的。请坚持一下,我能坚持写完,你至少也应该坚持读一遍吧!Tcl Overview这篇文章_tcl 数组 取uniq

随便推点

Cocos2d-x C++ Sprite、Texture2D、TextureCache、SpriteBatchNode、SpriteFrame、SpriteFrameCache及相关类 源码简析_quad_batchnode-程序员宅基地

文章目录Sprite简介渲染模式QUAD(默认模式)POLYGONSLICE9QUAD_BATCHNODE优化渲染属性介绍当节点由图集渲染时使用以下属性texture atlas、atlas indexbatch node当节点由自身渲染时使用以下属性blend functexture、rect、rect rotated当节点渲染模式为slice 9使用以下属性center rect normal..._quad_batchnode

mybatis mysql 批量查询数据判断-程序员宅基地

mysql判断字段是否为空select case when isnull(colum) then ''else colum end from tableName where ……做完发现case只能判断字段为空,如果数据不存在case判断不生效,于是改成select case when c&lt;=0 or isnull(colum) then ''else colum end fro...

Hive02---Hive中的with用法-程序员宅基地

  原理不多少,直接上用法。WITH (SELECT * FROM Table1) as t1(SELECT * FROM Table2) as t2SELECT t1.*FROM t1LEFT JOIN t2 ON t1.id=t2.id

解决SourceInsight的半个汉字的问题-程序员宅基地

通常安装完的SourceInsight一次只能删除半个汉字的问题确实情况下,Source Insight删除汉字时是半个半个删除的,删除一半的汉字显示为乱码,在写注释时非常讨厌,最后在网上找到了一个宏,当按退格键时执行,基本上可以解决这个问题了。在附件中有这个宏。具体的使用方法文件中有说明,如下:* 安装:* ① 复制入SourceInsight安装目录;* ② P

C# SqlBulkCopy实现大数据插入数据库_sqlbulkcopy dapper-程序员宅基地

public bool SqlBulkCopyData(DataTable dt) { bool flag = true; if (dt != null && dt.Rows.Count > 0) { string connectionString = @"server=.\sq_sqlbulkcopy dapper

第十二章 卷积神经网络实战--猫狗识别_DuanPenghao的博客-程序员宅基地

本章使用卷积神经网络完成了一个简单的猫狗识别模型的构建。