【深度学习向】Python&TensorFlow语法规则(一)

这里列出在阅读学习深度学习源码的过程中需要掌握的Python或TensorFlow基本编程规则或语法

  • Python语法及TensorFlow包的使用

1. tf.app.run()的使用

这里我们新建两个文件,test1和test2

//test1:
print("目前运行的是test")
print(__name__)

//test2:
import test
print("目前运行的是test1")
print("test1 name:", __name__)
print("test name:", test.__name__)

我们先后运行test和test1,会得到如下的结果:

//test
目前运行的是test
__main__

//test1
目前运行的是test
test
目前运行的是test1
test1 name: __main__
test name: test

 解释:

在我们使用import语句时,首先通过sys.path找到test.py ,然后执行test脚本(全部执行),运行某脚本文件,则该文件的__name__值就为“__main__”,调用的脚本文件的__name__值就是它的文件名。我们经常看到的Demo代码中都会有如下:

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

它主要是负责判断脚本执行的入口是不是该文件,若是则执行tf.app.run()函数,该函数主要是完成两个任务(可以查阅源码得知):处理flag解析、将参数传递到main方法中执行。下面介绍flag解析。

 

 

2. Flag解析

tensorflow中tf.app.flags与argparse模块有点类似,通过它们都可以定义输入参数。它是预先加载flags中的参数项,再执行main函数。下面给出如何使用tf.app.flags的例子:

import tensorflow as tf

FLAGS = tf.app.flags.FLAGS
tf.app.flags.DEFINE_string("my_name", "xugao", "这是关于这个参数的描述:姓名")
tf.app.flags.DEFINE_integer("my_stuno", 180231071, "这是关于这个参数的描述:学号")
tf.app.flags.DEFINE_boolean("is_worker", False, "这是关于这个参数的描述:是否参加工作")

def main(_):
    print(FLAGS.my_name)
    print(FLAGS.my_stuno)
    print(FLAGS.is_worker)

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

主要是tf.app.flags.DEFINE_string函数,我的理解是添加了我们在训练中需要补充的字段,例如输入尺寸、文件路径、epoch数目等,函数第一个参数为名称,第二个参数为默认值,第三个参数为该输入参数的描述,如果我们直接运行,不传任何参数的话,该程序就会显示默认的参数:

如果我们传递参数:

当我们在使用别人的程序时,如果不清楚参数列表,则可以使用--help来查看参数的描述:

注意:

  • main函数中需要带参数,这样才能将FLAGS的值正确传递到函数中去。(上面程序使用的是“_”)
  • tf.app.run()默认是调用main(),如果需要调用别的函数可以在括号中说明:tf.app.run(fun)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值