开发者学堂课程【深度学习框架 TensorFlow 入门:命令行参数设置】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/773/detail/13551
命令行参数设置
内容介绍:
一、什么是命令行参数
二、命令行参数使用
一、什么是命令行参数
(1)当前路径下,在终端执行 Python 文件:
Python day01_deeplearning.py 按下回车运行
如果在后面加上 --logdir ,这就是命令行参数。
(2)tensorboard --logdir=”” 指定事件文件的路径,这些路径是赋给命令行参数的值,可以传到代码当中去执行要显示的事件文件,这就是命令行参数。
二、命令行参数使用
(1)定义 tf.app.flags
它支持应用从命令行接受参数,可以用来指定集群配置等。在 tf.app.flags 下面有各种定义参数的类型
#定义整型
tf.app.flags.DEFINE_integer("max_step",0,"训练模型的步数")
第一个 “max_step”是参数的名字。
第二个是给的一个默认值。 tensorboard 后如果什么都不传,程序将返回默认值0传给 max_step 。
第三个参数是对变量的说明,例如 max_step 是训练模型的步数。
#定义字符串
tf.app.flags.DEFINE_string("max_step","","模型保存的路径+模型名字")
第一个参数是变量的名字。
第二个参数是给一个默认值。
第三个参数是对变量的说明。
(2)FLAGS 标志
为了方便后续的调用,在 tf.app.flags 中 flags 有一个 FLAGS 标志,它在程序中可以调用到我们前面具体定义的 flag.name
#定义获取命令行参数
FLAGS = tf.app.flags.FLAGS 简化FLAGS
#训练的步数(依据模型大小而定)
for i in range(FLAGS.max_step):
sess.run(train_op)
通过FLAGS.max_step调用命令行中传过来的参数。
命令行参数演示
#1)定义命令行参数
tf.app.flags.DEFINE_integer("max_step",100,"训练模型的步数")
tf.app.flags.DEFINE_string("max_step","UnKnow","模型保存的路径+模型名字")
#2)简化变量名
FLAGS = tf.app.flags.FLAGS
def command_demo():
"""
命令行参数演示
"""
print("max_step:\n",FLAGS.max_step)
print("model_dir:\n",FLAGS.model_dir)
return None
if __name__ == "__name__":
#代码7:命令行参数演示
command_demo()
运行后代码结果:
在命令行当中运行
Python day01_deeplearning.py
运行结果:
max_step:
100
model_dir:
UnKnow
Python day01_deeplearning.py --max_step=200 --model_dir="Hello World"
运行结果:
max_step:
200
model_dir:
Hello World
(3)通过 tf.app.run() 启动 main(argv) 函数
tf.app.flags.DEFINE_integer("max_step",100,"训练模型的步数")
tf.app.flags.DEFINE_string("max_step","UnKnow","模型保存的路径+模型名字")
#2)简化变量名
FLAGS = tf.app.flags.FLAGS
def command_demo():
"""
命令行参数演示
"""
print("max_step:\n",FLAGS.max_step)
print("model_dir:\n",FLAGS.model_dir)
return None
def main(argv):
print(argv)
return None
if __name__ == "__name__":
tf.app.run
如果 main(argv) 中不写argv或者换成其他,将会报错,就算没用到它也必须写上argv。