Matlab-命令行环境下的列车运行功能

Matlab-命令行环境下的列车运行功能,matlab,command-line,neural-network,headless,Matlab,Command Line,Neural Network,Headless,我试图通过使用train函数来训练神经网络。问题是,我希望通过使用SSH连接在internet上远程执行此操作 但是,我收到以下错误: ??? Error using ==> nntraintool at 28 NNTRAINTOOL requires Java which is not available Error in ==> trainbr>train_network at 257 [userStop,userCancel] = nntraintool('check')

我试图通过使用
train
函数来训练神经网络。问题是,我希望通过使用SSH连接在internet上远程执行此操作

但是,我收到以下错误:

??? 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连接运行该界面吗

我相信您可以通过在调用之前将您的
trainParam.showWindow
参数设置为
false
来解决此问题。例如,如果您的网络对象存储在变量
net
中,您可以在训练前执行以下操作:

net.trainParam.showWindow = false;
这也意味着您可能必须注释掉中的某些行,您可以使用命令
edit nntraintool

(免责声明:以下内容未经测试。我目前只能访问Windows安装的MATLAB)

尝试以下命令序列以启动MATLAB(请注意,不应使用该选项):

进入MATLAB后,您可以显式检查Java是否可用:

>> usejava('jvm')
>> java.lang.String('str')
接下来,继续创建并使用神经网络(只需抑制):


作为补充说明,即使我们禁用了所有显示,我们仍然可以打印内容(尽管不可见)并将图形导出到文件,正如我在相关…

中所示,它不起作用。。。我尝试过编辑nntraintool,但它在unix环境下无法打开,我不知道为什么…您解决了问题吗?不太清楚。。。我只是使用了ssh的可视连接,我试着使用可视远程连接来运行培训,这样就可以了…@Simon:我发布了一个可能的解决方案,你能检查一下吗(不启用X11转发)
>> usejava('jvm')
>> java.lang.String('str')
%# 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)