2015-05-04 68 views
0

我想這養病NN的參數較長的線路:當保存輸出torch7:在文本文件打印矩陣超過80個字符

print(mlp:get(1).weight) 
print(mlp:get(1).bias) 

print(mlp:get(3).weight) 
print(mlp:get(3).bias) 

print(mlp:get(5).weight) 
print(mlp:get(5).bias) 

:使用此代碼

nn.Sequential { 
     [input -> (1) -> (2) -> (3) -> (4) -> (5) -> (6) -> output] 
     (1): nn.Linear(4 -> 200) 
     (2): nn.Tanh 
     (3): nn.Linear(200 -> 200) 
     (4): nn.Tanh 
     (5): nn.Linear(200 -> 3) 
     (6): nn.LogSoftMax   
    } 

.lua文件轉換爲文本文件使用此命令行:

>>th 'MyScript.lua' > NNParameters.txt 

我得到所有權重矩陣包成六段(列1至6 ...列193至198 ...列199至200)。

有沒有辦法阻止文本被包裝並僅在一個塊中顯示權重矩陣?

謝謝。

回答

1
printT = function(t) 
    t = t:view(-1) 
    for i=1,t:nElement() do 
     io.write(t[i] .. ',') 
    end 
end 

printT(mlp:get(1).weight) 
printT(mlp:get(1).bias) 

printT(mlp:get(3).weight) 
printT(mlp:get(3).bias) 

printT(mlp:get(5).weight) 
printT(mlp:get(5).bias) 
+0

這回應了我的問題。我只是做一個小的變化的函數printT: 'printT =函數(T,nbrCols) T = T:視圖(-1) 對於i = 1,T:nElement()做\t io.write( T [1] .. ' ') 如果(ⅰ%nbrCols == 0)和(i〜= 0),那麼 \t io.write(' \ n') 端 端 end' –

0

我想你真正想要做的是保存參數,以便以後可以加載它們?在這種情況下,看看這個:

https://github.com/torch/torch7/blob/master/doc/serialization.md

+0

謝謝@cfh的回覆。實際上,我的最終目標是在java平臺中使用這些參數,而不管文件格式(文本,csv或其他)。關鍵是要在一個塊中有一個矩陣。 –