1

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

4

2 回答 2

2

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

net.trainParam.showWindow = false;

这个MATLAB 新闻组线程还建议您可能需要注释掉其中的一些行nntraintool,您可以使用命令在编辑器中打开这些行edit nntraintool

于 2011-07-28T15:17:25.770 回答
0

免责声明:以下内容未经测试。我目前只能访问 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')

接下来,继续创建和使用神经网络(您只需抑制训练反馈):

%# 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)

附带说明一下,即使我们禁用了所有显示,我们仍然可以绘制内容(尽管不可见)并将图形导出到文件中,正如我在之前的相关问题中所展示的那样......

于 2011-07-28T21:10:00.353 回答