web-dev-qa-db-fra.com

Augmenter la taille du tas en Java pour weka

J'essaie d'augmenter la taille du tas en Java pour weka, qui continue de planter. J'ai utilisé la ligne suggérée:

> Java -Xmx500m -classpath

mais j'obtiens l'erreur suivante:

-classpath requires class path specification

Je ne suis pas sûr de ce que cela signifie. Aucune suggestion?

18
screechOwl

Ce que j’ai trouvé, c’est le problème réel qui se trouvait dans le fichier 'RunWeka.ini' dans '\Program Files (x86)\Weka-3-6'. Je l'ai ouvert avec le bloc-notes et au milieu du fichier, il y a une ligne 'maxheap = 512m'

J'ai changé la ligne pour lire 'maxheap=2000m', sauvegardé le fichier et rechargé weka et cela a résolu mes problèmes. 

Je ne suis pas sûr que ce soit la bonne façon de le faire ou non, mais cela a fonctionné pour moi.

21
screechOwl

Omettez l'option -classpath. Utilisez uniquement l'option -Xmx500m.

Donc, au lieu de simplement:

Java weka.core.Instances data/soybean.arff

tu fais:

Java -Xmx500m weka.core.Instances data/soybean.arff

Si vous exécutez weka via un script (RunWeka.bat par exemple), vous devez alors modifier ce script (avec un éditeur de texte tel que le bloc-notes).

11
Michał Šrajer

Exécutez cette commande dans votre terminal:

Java -Xmx1024m -jar weka.jar
10
Dulith De Costa

Si vous utilisez Weka 3.8.1 sous Windows, vous pouvez éviter beaucoup de problèmes en modifiant le paramètre javaOpts. Le paramètre maxheap n'est plus utilisé, vous pouvez donc définir javaOpts comme ceci dans RunWeka.ini fichier:

javaOpts= -Xmx1040m

1040m est la quantité de mémoire que vous souhaitez allouer. 

Notez que le fichier est sensible à la casse.

Il existe de nombreuses façons de configurer cela, mais c’est le moyen le plus rapide d’exécuter Weka sur un environnement Windows dans cette version.

Edit: Si vous voulez que Weka utilise plus que 1gb sur Windows, vous devez installer JDK. JRE ordinaire ne le fera pas.

8
Wesley Costa

La réponse officielle de Weka (pour tous les systèmes d'exploitation et les versions de Weka) est disponible sur http://weka.wikispaces.com/OutOfMemoryException .

Si vous utilisez une version récente de Weka sous Windows, la réponse est:

Modifiez le paramètre maxheap dans le fichier RunWeka.ini.

5
Robert Pollak

Vous devez spécifier un chemin d'accès aux classes après -classpath, similaire à la variable PATH env pour spécifier le chemin d'accès où Java peut trouver les classes.

Le paramètre -Xmx500m est correct, sauf que je suggérerais d'utiliser 512m.

3
Jonas

Sur Ubuntu, j’ai eu le même problème, mais je le résous en augmentant la quantité de mémoire à utiliser pour la machine virtuelle Java. lancez ceci: weka -m 1024m

3
Ali Dabour

Pour Mac OS, vous devez éditer un fichier de configuration afin d’augmenter la taille de la pile de l’application Weka UI.

Je répète ce que j'ai écrit dans: Existe-t-il une solution de contournement pour résoudre l'erreur de mémoire "Espace de tas Java" lorsque la valeur de tas maximale a déjà été spécifiée?

  1. Quittez Weka s'il est en cours d'exécution.

  2. cd dans /Applications/weka-XXX.app/Contents, ou à tout autre endroit où votre exécutable weka a été installé. Il y aura un fichier appelé Info.plist ici. C'est un fichier texte XML. Je vous suggère d'en sauvegarder une copie à un autre emplacement, car vous devrez l'éditer à l'étape suivante.

  3. Ouvrez le fichier Info.plist (XML) dans votre éditeur de texte préféré et recherchez un bloc indiquant "VMOptions". Il devrait y avoir une valeur indiquant "-Xmx256M" ou quelque chose de similaire pour que spécifie la taille maximale du segment de mémoire . Vous devriez changer cette valeur en quelque chose de plus gros, tel que "-Xmx1024M".

  4. Commencez Weka.

2

Weka 3.9.2 n’a plus non plus l’option de maxheap. RunWeka.ini ont la possibilité de javaOpts, vous pouvez donc modifier l’allocation de mémoire ci-dessous en fonction de votre allocation de mémoire

javaOpts=%Java_OPTS%   ---- > javaOpts= -Xmx1024m

Ici, 1024m correspond à la quantité de mémoire personnalisée que vous souhaitez allouer.

1
monir zaman

La réponse officielle de Weka est la bonne… Mais… il est crucial de supprimer d’abord tous les fichiers JVM et d’installer la version Java 32 ou 64 bits correspondante. Ne pas utiliser la version appropriée pose de nombreux problèmes, notamment l'impossibilité d'augmenter le tas de plus de 1024 m (en modifiant le fichier ini).

1
Roel

J'exécute Weka 3.6 dans Windows. C’est ce que j’ai fait. Accéder au répertoire d’installation de Weka et vous trouverez un fichier RunWeka.bat. Ouvrez ce fichier dans un éditeur de texte et ajoutez l'argument -Xmx dans la ligne de commande Java.

par exemple, cela définit 4 Go de mémoire, % _ Java% -Xmx4096m -classpath. RunWeka -i.\RunWeka.ini -w.\Weka.jar -c% _cmd% "% 2"

1
Rahav

Vous devriez également voir si la taille de pile de threads par défaut de 20 Mo est suffisante. Augmentez la valeur à 50 Mo dans le fichier /Applications/weka-3-8-1-Oracle-jvm.app/Contents/Info.plist (sur MAC) comme ci-dessous: 

<string>-Xss50M</string>
0
Lokendra Chauhan

La meilleure façon de le faire en utilisant cette commande

    Java -Xmx1024m -[weka classifier] -t [training file path]
0
Muneeb ul Hassan

Les réponses ci-dessus sont trop anciennes (la dernière date d'il y a 1 an) . J'ai eu le même problème avec mon WEKA (version 3.8.1) sur Windows 10.

J'ai eu un problème pour mettre à jour la taille du tas, la façon dont j'ai résolu le problème est d'ajouter une variable d'environnement (sous Panneau de configuration) comme suit:

Java_OPTS = -Xms30000m -Xmx30000m

Astuce : Assurez-vous simplement que RunWeka.ini utilise cette variable d'environnement.

Dans l'exemple ci-dessus, je donne à WEKA 30 Go. Ça marche. 

J'espère que cela sera utile pour certaines personnes.

0
Samer Aamar

Si nous utilisons Weka Workbench CLI ou Knowledge Explorer, nous devons utiliser changer comme ci-dessous.

Comme le suggère la documentation, le paramètre d'exécution doit être -Xmx [taille_nécessaire] m où [taille_nécessaire] est la taille de la mémoire que vous souhaitez conserver pour éviter les exceptions de mémoire.

Ouvrez RunWeka.ini

Définir maxheap = [size_required] G

Dans mon cas, j'ai gardé maxheap = 4G. On peut définir comme maxheap = 4096m et ajouter -Xmx # maxheap # à toutes les options d'exécution dans les sections # setups (préfixé par "cmd_") à côté des commandes Java comme ci-dessous

cmd_default=javaw -Xmx#maxheap# ...............
cmd_console=cmd.exe /K start cmd.exe ..................
cmd_Explorer=Java -Xmx#maxheap# .................
cmd_knowledgeFlow=Java -Xmx#maxheap#....................

maxheap=4G

Vérifiez la même chose en redémarrant Weka et Aide >> SystemInfo

0
Prateek