Matlab——命令行环境下运行train函数

Posted

技术标签:

【中文标题】Matlab——命令行环境下运行train函数【英文标题】:Matlab - running train function under command line environment 【发布时间】:2011-07-28 14:38:41 【问题描述】:

我正在尝试使用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 连接运行它。

【问题讨论】:

【参考方案1】:

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

net.trainParam.showWindow = false;

这个MATLAB Newsgroup thread还建议你可能需要注释掉nntraintool中的一些行,你可以在编辑器中使用命令edit nntraintool打开。

【讨论】:

它不起作用...我尝试编辑nntraintool,但是在unix环境下打不开,我不知道为什么... 你发现问题了吗? 不完全...我只是使用了 ssh 的视觉连接,我尝试使用视觉远程连接来运行培训,这样就可以了... @Simon:我发布了一个可能的解决方案,您可以检查一下(不启用X11转发)【参考方案2】:

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

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

# on your machine
ssh -x user@host

# 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 中所展示的那样...

【讨论】:

以上是关于Matlab——命令行环境下运行train函数的主要内容,如果未能解决你的问题,请参考以下文章

从命令行使用 nntool [MATLAB]

Caffe初试命令行解析

caffe(10) 命令行解析

Matlab基础学习

怎么在matlab中绘制一个函数图像

matlab命令行窗口不能运行