假如在运作python脚本制作时必须传到一些主要参数,例如GPU和batch_size,能够应用下列三种方式。

python script.py 0,1,2 10python script.py -gpus=0,1,2 --batch-size=10python script.py -gpus=0,1,2 --batch_size=10123

三种文件格式相匹配不一样的主要参数分析方式,分别是sys.argv,argparse和tf.app.run前二种是python内置的涵数,后一种是tensorflow给予的方便快捷方法。

小编是一名python研发工程师。这儿我梳理了一套全新的python系统学习实例教程,包含一般的python脚本制作,web开发,网络爬虫,数据统计分析,大数据可视化,深度学习这些。假如你要想这种材料,能够关心小编,在后台管理私写小编:“01”就可以个人收藏。

1.sys.argvsys控制模块是一个十分普遍的控制模块,它封裝了与python编译器有关的数据信息。比如,sys.modules包括全部已载入的控制模块信息内容,sys.path包括PYTHONPATH內容,sys.argv封裝传到的主要参数数据信息。应用sys.argv接受上边第一个指令中包括的主要参数,如下所示所显示:

import sysgpus = sys.argv[1]#gpus = [int(gpus.split(','))]batch_size = sys.argv[2]print(gpus)print(batch_size)123456windows执行python脚本的两种方式-win7运行python程序-第1张图片2.argparse

import argparseparser = argparse.ArgumentParser(description='manual to this script')parser.add_argument("--gpus", type=str, default="0")parser.add_argument("--batch-size", type=int, default=32)args = parser.parse_args()print(args.gpus)print(args.batch_size)1234567

必须特别注意的是,脚本制作运行指令pythonscript.py-gpus = 0,1,2–batch-size = 10中的–batch-size将被全自动分析为batch_size.parser.add_argument方式的种类主要参数,理论上能够是一切合理合法的种类,可是有一些主要参数在文件格式中传送起來非常不便。例如list,因此一般用bool,int,str,float这种基本上种类就可以了。更繁杂的需要能够根据str传到,随后手动式剖析。布尔类型的屏幕尺寸是独特的。传到的一切值都将被分析为“真”,仅有在传到空的值时才会分析为“假”。

windows执行python脚本的两种方式-win7运行python程序-第2张图片3.tf.app.run

'''碰到问题没有人解释?我建立了一个Python交流学习QQ群:778463939找寻有志趣相投的小伙伴们,互相帮助,群内也有非常好的学习视频实例教程和PDF电子书籍!'''import tensorflow as tftf.app.flags.DEFINE_string('gpus', None, 'gpus to use')tf.app.flags.DEFINE_integer('batch_size', 5, 'batch size')FLAGS = tf.app.flags.FLAGSdef main(_): print(FLAGS.gpus) print(FLAGS.batch_size)if ._name._=="._main._": tf.app.run()12345678910111213141516

有几个方面必须留意:

Tensorflow仅给予下列方式:

tf.app.flags.DEFINE_string,tf.app.flags.DEFINE_integer,tf.app.flags.DEFINE_boolean,

Tf.app.flags.DEFINE_float四个方式,各自相匹配str,int,bool和float种类的主要参数。这儿对bool的分析是严苛的,传到的1将被分析为True,别的一切值都将被分析为False。

在脚本制作中,您必须界定一个接受主要参数:def main(_)的main方式。传到的主要参数是脚本制作名字,一般不应用,因而它是带下横线的。

以batch_size主要参数为例子。传到此参数时采用的命名是–batch _ size。换句话说,破折号不容易像argparse那般被分析为下横线。

Tf.app.run()搜索并实行门户网脚本制作的主方式。只有在实行tf.app.run()后从FLAGS中查找主要参数。从它的签字看来,还可以特定自身要实行的方式,不一定要叫main:

windows执行python脚本的两种方式-win7运行python程序-第3张图片

评论(0条)

刀客源码 游客评论