2011-07-28 2 views
1

J'essaye de former un réseau de neurones, en utilisant la fonction train. La chose est que je veux faire cela à distance sur Internet en utilisant une connexion SSH.Matlab - fonction de train en cours d'exécution dans l'environnement de ligne de commande

Cependant, je reçois l'erreur suivante:

??? 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);` 

Je pense que je reçois cette erreur en raison de l'interface de formation qui apparaît lorsque vous souhaitez effectuer une formation réseau neuronal. Si c'est le cas, pourriez-vous me dire comment désactiver cette interface visuelle pour que je puisse l'utiliser en utilisant la connexion ssh.

Répondre

2

Je crois que vous pouvez résoudre ce problème en réglant le paramètre trainParam.showWindow de votre network object à false avant d'appeler nntraintool. Par exemple, si votre objet réseau est stocké dans la net variable, vous devez faire cela avant le train:

net.trainParam.showWindow = false; 

Ce MATLAB Newsgroup thread suggère également que vous pourriez avoir à commenter certaines lignes nntraintool, que vous pouvez ouvrir dans l'éditeur avec la commande edit nntraintool.

+0

ça ne fonctionne pas ... J'ai essayé d'éditer nntraintool, mais il ne sera pas ouvert dans un environnement unix, je ne sais pas pourquoi. .. – Simon

+1

Avez-vous trouvé le problème? – gnovice

+0

pas tout à fait ... Je viens d'utiliser à la place la connexion visuelle pour ssh, et j'ai essayé d'exécuter la formation en utilisant la connexion visuelle à distance et de cette façon, il a travaillé ... – Simon

0

(Avertissement:. ce qui suit est non testé, je ne disposent actuellement que l'accès à une installation de Windows de Matlab)

Essayez la séquence de commandes suivante pour démarrer Matlab (notez que vous ne devriez pas utiliser l'option -nojvm) :

# on your machine 
ssh -x [email protected] 

# on the host 
unset DISPLAY 
matlab -nodisplay 

Une fois dans Matlab, vous pouvez explicitement vérifier que Java est disponible:

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

Ensuite, passez à créer et utiliser le réseau de neurones (il vous suffit de supprimer 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) 

Comme une note de côté, même si nous avons désactivé Affichage, nous pouvons tracer encore des choses (bien qu'invisible) et à l'exportation chiffres à des fichiers, comme je l'ai montré dans previous lié questions ...

Questions connexes