Torch7平台学习_CmdLine()总结

来源:互联网 发布:灵格斯for mac 编辑:程序博客网 时间:2024/05/21 07:48

  该类主要为了提供一种方便解析参数的框架,对于每个实验尤其是神经网络中要调参数上。同时还可以把输出重定向到log文件中。
一般用法

cmd = torch.CmdLine()cmd:text()cmd:text()cmd:text(‘Training a simple network’)cmd:text()cmd:text(‘Options’)cmd:option(‘-seed’,123,’initial random seed’)cmd:option(‘-booloption’,false,’boolean option’)cmd:option(‘-stroption’,’mystring’,’string option’)cmd:text()params = cmd:parse(arg)params.rundir = cmd:string(‘experiment’,params,{dir=true})paths.mkdir(params.rundir)cmd:log(params.rundir .. ‘/log’, params)

把上述指令保存在myscript.lua文件中,在命令行下执行下面语句:

# th myscript.lua

可得到如下结果:
[program started on Thu Nov 5 10:21:59 2015]
[command line arguments]
stroption mystring
booloption false
seed 123
rundir experiment
[———————-]
该结果会被保存在同文件夹下experiment/log里.
当在命令行中修改options的参数时,则不会采用缺省值,而且会生成rundir来反应这些参数设置.

th myscript.lua -seed 456 -stroption mycustomstring

结果如下:
stroption mycustomstring mystring
seed 456 123
[program started on Thu Nov 5 10:29:05 2015]
[command line arguments]
stroption mycustomstring
booloption false
seed 456
rundir experiment,seed=456,stroption=mycustomstring
[———————-]
该输出结果会记录在experiment,seed=456,stroption=mycustomstring/log中.
%------------------------------%
增加时间: addTime([name] [,format])
作用:在记录文件(log file)中增加时间的’前缀’,日期格式和os.date()相同,值得注意的是,该前缀只添加在记录文件中,不在屏幕输出.名字的缺省值为空,默认格式为’%F %T’.
举例:在刚才的myscript.lua文件中添加语句:

cmd:addTime('your project name','%F %T')

再执行

# th myscript.lua

可得到如下结果:
2015-11-05 10:40:33[your project name]: [program started on Thu Nov 5 10:40:33 2015]
2015-11-05 10:40:33[your project name]: [command line arguments]
2015-11-05 10:40:33[your project name]: stroption mystring
2015-11-05 10:40:33[your project name]: booloption false
2015-11-05 10:40:33[your project name]: seed 123
2015-11-05 10:40:33[your project name]: rundir experiment
2015-11-05 10:40:33[your project name]: [———————-]
%------------------------------%
其他的一些函数:
log(filename,parameter_table) 把log输出到给定的文件名
option(name,default,help) 把参数的名字(以’-‘开头)和默认值给定,后面的help最好用字符串提示
[table] parse(arg) 把命令行的参数解析出来
silent() 只输出到文件,不输出到屏幕
[string] string(prefix,params,ignore) 字符串合成
text(string) 就是输出给定的字符串到屏幕或者文件中。

参考资料:
Torch7学习笔记(一)CmdLine: http://www.07net01.com/2015/09/931385.html
CmdLine:http://torch7.readthedocs.org/en/latest/cmdline/index.html

0 0
原创粉丝点击