Matlab - функция запуска поезда в командной строке - PullRequest
1 голос
/ 28 июля 2011

Я пытаюсь обучить нейронную сеть, используя функцию train. Дело в том, что я хочу сделать это удаленно через Интернет, используя соединение SSH.

Однако я получаю следующую ошибку:

??? 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 ]

2 голосов
/ 28 июля 2011

Полагаю, вы можете решить эту проблему, установив параметр trainParam.showWindow вашего сетевого объекта на false перед вызовом nntraintool. Например, если ваш сетевой объект хранится в переменной net, вы должны сделать это перед тем, как тренироваться:

net.trainParam.showWindow = false;

Эта ветка группы новостей MATLAB также предполагает, что вам, возможно, придется закомментировать некоторые строки в nntraintool, которые вы можете открыть в редакторе с помощью команды edit nntraintool.

0 голосов
/ 29 июля 2011

( Отказ от ответственности: следующее не проверено. В настоящее время у меня есть доступ только к установке MATLAB для Windows)

Попробуйте следующую последовательность команд для запуска 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)

В качестве дополнительного примечания, даже если мы отключили все отображения, мы все равно можем рисовать материал (хотя и невидимый)и экспортировать данные в файлы, как я показал в предыдущие связанные вопросы ...

...