2011-07-28 82 views
1

我想通過使用train函數來訓練一個神經網絡。問題是我想通過使用SSH連接在互聯網上遠程執行此操作。Matlab - 在命令行環境下運行火車功能

不過,我收到以下錯誤:

??? Error using ==> nntraintool at 28 
NNTRAINTOOL requires Java which is not available 
Error in ==> trainbr>train_network at 257 
[userStop,userCancel] = nntraintool('check');` 
Error in ==> trainbr at 116` 
[net,tr] = train_network(net,tr,data,fcns,param);` 
Error in ==> network.train at 107` 
[net,tr] = feval(net.trainFcn,net,X,T,Xi,Ai,EW,net.trainParam);` 
Error in ==> ClassifierScript at 28` 
[MFLDefectSNetwork, tr] = train(MFLDefectSNetwork, TrainingInputSet, 
TrainingSTargets);` 

我想我收到,因爲當你要執行一個神經網絡訓練所顯示的訓練接口的這個錯誤。如果是這樣,你能告訴我,我怎麼關閉這個可視化界面,以便我可以通過使用ssh連接運行這個。

回答

2

我相信在調用nntraintool之前,您可以通過將network object的參數trainParam.showWindow設置爲false來解決此問題。例如,如果你的網絡對象存儲在變量net,你可以這樣做你以前訓練:

net.trainParam.showWindow = false; 

MATLAB Newsgroup thread還表明,你可能要註釋掉一些行nntraintool,您可以打開編輯命令爲edit nntraintool

+0

它不工作...我試圖編輯nntraintool,但它不會在unix環境中打開,我不知道爲什麼。 .. – Simon

+1

你找出問題了嗎? – gnovice

+0

不完全...我只是用ssh的可視化連接,我試着用可視化的遠程連接來運行訓練,這樣它就起作用了... – Simon

0

免責聲明:以下是未經檢驗的我現在只能訪問Windows安裝MATLAB的)

嘗試下面的命令序列啓動MATLAB(請注意,你不應該使用-nojvm選項) :

# on your machine 
ssh -x [email protected] 

# on the host 
unset DISPLAY 
matlab -nodisplay 

一旦在MATLAB,你可以明確地檢查Java是可用的:

>> usejava('jvm') 
>> java.lang.String('str') 

接下來,繼續創建並使用神經網絡(你只需要抑制training feedback):

%# load sample dataset 
load simpleclass_dataset 

%# create and train neural network 
net = newpr(simpleclassInputs, simpleclassTargets, 20); 
net.trainParam.showWindow = false;   %# no GUI (as @gnovice suggested) 
net.trainParam.showCommandLine = true;  %# display in command line 
net.trainParam.show = 1;     %# display every iteration 
net = train(net, simpleclassInputs, simpleclassTargets); 

%# predict and evaluate performance 
simpleclassOutputs = sim(net, simpleclassInputs); 
[c,cm] = confusion(simpleclassTargets,simpleclassOutputs) 

作爲一個側面說明,即使我們關閉所有顯示,我們仍然可以畫出的東西(但不可見)和出口數據到文件,正如我在previous中所顯示的相關questions ...