2011-12-29 32 views
15

Tôi đang cố gắng tăng kích thước heap trong java cho weka mà vẫn gặp sự cố. Tôi đã sử dụng dòng gợi ý:Tăng kích thước heap trong java cho weka

> java -Xmx500m -classpath 

nhưng tôi nhận được lỗi sau:

-classpath requires class path specification 

Tôi không chắc chắn điều này có nghĩa. Bất kỳ đề xuất?

Trả lời

19

Điều tôi thấy là sự cố thực tế nằm trong tệp 'RunWeka.ini' trong '\Program Files (x86)\Weka-3-6'. Tôi mở nó bằng notepad và ở giữa tập tin có một dòng 'maxheap = 512m'.

Tôi đã thay đổi dòng để đọc 'maxheap=2000m', lưu tệp và tải lại weka và điều này đã khắc phục được sự cố của tôi.

Tôi không chắc đây có phải là cách chính xác để thực hiện hay không nhưng nó có hiệu quả đối với tôi.

+0

Điều này không làm việc cho tôi – vikifor

+0

bạn cũng thay đổi kích thước heap tối đa từ lệnh cũng như chạy weka.jar. Điều tương tự của nó – Maxi

+0

Các phiên bản gần đây của Weka chấp nhận tùy chọn '-m'. Vì vậy, bạn chỉ có thể chạy 'weka -m 2g'. – giusti

11

Bỏ qua tùy chọn -classpath. Chỉ sử dụng tùy chọn -Xmx500m.

Vì vậy, thay vì chỉ:

java weka.core.Instances data/soybean.arff 

bạn làm:

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

Nếu bạn chạy WEKA qua một số kịch bản (RunWeka.bat chẳng hạn), sau đó bạn cần phải sửa đổi kịch bản đó (với một số trình soạn thảo văn bản như notepad).

3

Bạn cần chỉ định đường dẫn lớp sau -classpath, tương tự như biến env PATH bạn cần chỉ định đường dẫn nơi Java có thể tìm thấy các lớp.

Cài đặt -Xmx500m có vẻ ổn, ngoại trừ việc tôi khuyên bạn nên sử dụng 512m.

+0

somethi ng như: java -Xmx512m -c: \ Program Files (x86) \ Java? – screechOwl

+1

bạn không cần đặt đường dẫn lớp cho các thư viện Java, chỉ cho các lớp của riêng bạn, vì vậy nó có thể là 'java -Xmx512m -classpath'' nếu các lớp được biên dịch của bạn nằm trong thư mục làm việc. Hoặc bạn biên dịch chúng thành một tệp jar, sau đó bạn làm java '-Xmx512m -classpath c: \ path \ thành \ your \ jarfile.jar ' – Jonas

1

Tôi đang chạy Weka 3.6 trong cửa sổ. Đây là những gì tôi đã làm. Vào thư mục cài đặt Weka và bạn sẽ tìm thấy một tập tin RunWeka.bat. Mở tệp này trong trình soạn thảo văn bản và thêm đối số -Xmx vào dòng lệnh java.

ví dụ bộ này thành bộ nhớ 4GB, % _java% -Xmx4096m -classpath. RunWeka -i. \ RunWeka.ini -w. \ Weka.jar -c% _cmd% "% 2"

5

Các chính thức Weka câu trả lời (cho tất cả các hệ điều hành và các phiên bản Weka) có thể được tìm thấy trên http://weka.wikispaces.com/OutOfMemoryException.

Trong trường hợp bạn đang sử dụng một phiên bản gần đây Weka trên Windows, the answer là:

Modify the maxheap parameter in the RunWeka.ini file.

8

Chạy lệnh này trong terminal của bạn:

java -Xmx1024m -jar weka.jar 
2

Đối với Mac OS, bạn phải chỉnh sửa một cấu hình tệp để tăng kích thước heap của ứng dụng Giao diện người dùng Weka.

Tôi lặp lại những gì tôi đã viết trong: Is there a workaround to solve "Java heap space" memory error when the max heap value has been already specified?

  1. Thoát ra khỏi Weka nếu nó đang chạy.

  2. cd vào /Applications/weka-XXX.app/Contents hoặc bất kỳ nơi nào tệp thi hành weka của bạn được cài đặt. Sẽ có một tệp có tên là Info.plist ở đó. Nó là một tệp văn bản XML. Tôi đề nghị bạn lưu một bản sao của nó đến một vị trí khác, vì bạn sẽ cần phải chỉnh sửa nó trong bước tiếp theo.

  3. Mở tệp Info.plist (XML) trong trình chỉnh sửa văn bản yêu thích của bạn và tìm một khối có nội dung "VMOptions". Phải có một giá trị có nội dung "-Xmx256M" hoặc một cái gì đó tương tự như specifies the maximum heap size. Bạn nên thay đổi giá trị đó thành giá trị lớn hơn, chẳng hạn như "-Xmx1024M".

  4. Bắt đầu Weka.

1

Câu trả lời chính thức của Weka là đúng ... Nhưng điều quan trọng là trước tiên phải loại bỏ tất cả các tệp JVM và cài đặt phiên bản Java 32 bit hoặc 64 bit có liên quan. Không sử dụng các phiên bản có liên quan gây ra nhiều vấn đề bao gồm cả việc không thể tăng heap xa hơn 1024m (bằng cách thay đổi tệp ini).

2

Trên Ubuntu tôi đã có cùng một vấn đề nhưng tôi giải quyết nó bằng cách tăng dung lượng bộ nhớ sử dụng cho Java Virtual Machine chạy này: WEKA -m 1024M

0

Cách tốt nhất để làm điều đó sử dụng lệnh này

java -Xmx1024m -[weka classifier] -t [training file path] 
0

Câu trả lời ở trên quá cũ (last one is 1 year ago). tôi đã cùng một vấn đề với WEKA tôi (phiên bản 3.8.1) trên Windows 10

Tôi đã có một vấn đề để cập nhật kích thước heap, cách tôi cố định nó bằng cách thêm một biến môi trường (dưới bảng điều khiển) như sau:

JAVA_OPTS = -Xms30000m -Xmx30000m 

Mẹo: Chỉ cần đảm bảo rằng RunWeka.ini đang sử dụng biến môi trường này.

Trong ví dụ trên, tôi cung cấp cho WEKA 30 GB. Nó hoạt động.

Hy vọng điều này sẽ hữu ích đối với một số người.

3

Nếu bạn đang sử dụng Weka 3.8.1 trên Windows, bạn có thể tiết kiệm cho mình rất nhiều rắc rối bằng cách chỉnh sửa thông số javaOpts. Tham số maxheap không được sử dụng nữa, vì vậy bạn có thể thiết lập javaOpts như thế này trong RunWeka.ini file:

javaOpts= -Xmx1040m 

đâu 1040m là dung lượng bộ nhớ bạn muốn phân bổ.

Lưu ý rằng tệp phân biệt chữ hoa chữ thường.

Có rất nhiều cách để thiết lập điều này, nhưng đây là cách nhanh hơn để chạy Weka trên môi trường Windows ở phiên bản này.

Chỉnh sửa: Nếu bạn muốn Weka sử dụng nhiều hơn 1gb trên cửa sổ, bạn cần phải cài đặt JDK. JRE thông thường sẽ không làm điều đó.

0

Bạn cũng nên xem nếu kích thước ngăn xếp mặc định là 20MB là đủ. Tăng giá trị đến 50MB trong /Applications/weka-3-8-1-oracle-jvm.app/Contents/Info.plist file (trên MAC) như dưới đây:

<string>-Xss50M</string> 
0

If we are using Weka Workbench CLI or Knowledge explorer we need to change as below.

Như các tài liệu cho biết tham số thời gian chạy phải là -Xmx [size_required] m trong đó [size_required] là kích thước bộ nhớ mà bạn dự định giữ để tránh ngoại lệ bộ nhớ.

mở RunWeka.ini

Define maxheap=[size_required]G

Trong trường hợp của tôi, tôi giữ maxheap = 4G, Người ta có thể thiết lập như maxheap = 4096m và thêm -Xmx # maxheap # để tất cả các tùy chọn chạy ở vị trí # thiết lập (tiền tố với phần "cmd_") bên cạnh java lệnh như dưới đây

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 

Xác minh cùng bằng cách khởi động Weka và Trợ giúp >> SystemInfo

Các vấn đề liên quan