該類主要為了提供一種方便解析引數的框架,對於每個實驗尤其是神經網路中要調引數上。同時還可以把輸出重定向到log檔案中。
一般用法:
cmd = torch.cmdline()
cmd:text()
cmd:text()
cmd:text(『training a ****** 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,)
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:
cmdline:
Torch7模型訓練
torch7搭建卷積神經網路詳細教程 已經詳細的介紹啦module模組,這裡再次基礎上再給出一些上container transfer functions layers和 layers模組的理解。並在後面給出一些簡單的模型訓練方法。下述程式在itorch qtconsole下執行。主要有四個函式 詳...
Torch7深度學習教程(二)
這是自己定義tensor的值輸入10個整型值,列印price,注意這時它只是乙個有10資料的tensor。對比這兩張,第一張是有10個資料的tensor,第二張是10x1的矩陣,也可以成為列向量 神經網路經常用到 是呼叫了reshape 方法轉換的,它們看著一樣本質上是不一樣的!這時再次呼叫resh...
Torch7深度學習教程(五)
這一節先介紹一些基本操作,然後再對我們前面建立的網路進行訓練 隨即生產一張 1通道,32x32畫素的。為了直觀像是,匯入image包,然後用itorch.image 方法顯示生成的,就是隨即的一些點。用之前建立好的神經網路net呼叫forward 方法輸入隨即生成的得到輸出的結果,如列印出來的形式,...