2013-05-22 6 views
2

나는 훈련 된 인공 신경망 (ANN)의 PMML 파일을 가지고 있습니다. 나는 단순히 입력을 받아서 목표 값을 반환하는 자바 메소드를 만들고 싶다.PMML - 모델 (인공 신경망)을 Java 코드로 변환

이것은 매우 쉬운 것처럼 보이지만 어떻게 실현하는지 모르겠습니다.

PMML 버전 = 3.0

업데이트 : 2013년 5월 24일

은 내가 jpmml 자바 API를 사용하려고했습니다.

이 내가했던 방법입니다

(1) 메이븐 중앙 저장소 (link) 세 개의 jar 파일을 통해 다운로드 :

  • PMML 매니저-1.0.2.jar
  • PMML
  • PMML - 평가자-1.0.2.jar

(2) 일식 사용 "구성 할-1.0.2.jar - 모델 부이 LD 경로 "를 추가하는 3 개의 외부 .JAR의

(3)라는 이름의 내 PMML - 파일 가져 오기"text.xml "(인공 신경망 (ANN)) PMML 버전 ="3.0 "

(4) 어떤 이유로 jpmml 프로젝트 분명히

작동하지 않았다가 제공하는 예 "TreeModelTraversalExample.java"를 실행하려고 :

  • 언급 된 예는 ANN의 아닙니다. 어떻게 다시 작성 하시겠습니까?
  • 내 PMML 파일은 XML 형식입니다. 올바른 형식입니까?
  • Java API를 처리하거나 추가하는 방법을 모르겠습니다. "configure path"를 Eclipse에 추가해야합니까?

명백한 사실 # 2, 나는 다시 :-)

감사를하고 친절한 관해서 어떤 단서가 없다.

스테판

답변

2

JPMML은 PMML 3.x 및 문제없이 NeuralNetwork 모델의 새 버전을 처리 할 수 ​​있어야합니다. 또한, 그러한 모델에 수반 될 수있는 모든 정규화 및 비정규 화 변환을 처리 할 수 ​​있어야합니다.

처음에는 PMML 모델을 Java 코드로 변환하는 데 관심이있는 이유를 설명 할 수 있습니다.이것은 모든 문제를 복잡하게 만들며 어떤 가치도 추가하지 않습니다. JPMML 라이브러리 자체는 비교적 작고 외 부 의존성이 적습니다 (이 기능을 작성하는 순간은 단지 commons-math에만 의존합니다). 성능면에서는 큰 차이가 없어야합니다. 현대 데스크톱 컴퓨터에서 초당 최대 10,000 스코어를 얻을 것으로 예상 할 수 있습니다.

JPMML 코드베이스는 최근 GitHub의에 이동 : 전원을 켜고 사에서 http://github.com/jpmml/jpmml

연구원 코더가 (최상위 모듈 "PMML 번역"참조)이 코드베이스를 포크하고 PMML에서 Java로 변환을 구현하는 선택한 모델 유형 :

: 다음을 시도해 볼 수도 있습니다, 그리고 http://www.openscoring.org

: 순간 https://github.com/turn/jpmml

나는 당신이 Openscoring 프로젝트 (JPMML가 내부적으로 사용) 체크 아웃하는 것이 좋습니다

  1. HTTP PUT 메소드를 사용하여 XML 파일을 배치하십시오.
  2. HTTP GET 메서드를 사용하여 모델 요약 정보를 가져옵니다. 요청이 성공하면 (HTTP 상태 500 오류 코드로 실패하는 것과는 대조적으로) 모델이 잘 지원됩니다.
  3. HTTP POST 메서드를 사용하여 단일 예측 모드 또는 일괄 예측 모드에서 모델을 실행합니다. 더 큰 배치를 보내 성능 요구 사항을 충족하는지 확인하십시오.
  4. HTTP DELETE 메서드를 사용하여 모델의 배포를 취소합니다.

더 많은 통찰력을 얻기 위해 언제든지 프로젝트 소유자에게 연락 할 수 있습니다. 나는 그들이 훌륭한 사람들이라고 확신한다.

+0

안녕하세요. 대단히 감사합니다. 기존의 프로그램에 Java-Method (예 : "inputs x1-x5 and return Y")를 포함시키려는 훈련 된 .pmml 모델을 변환하고 싶습니다. 신경망 자체는 PMML 모델로만 내보낼 수있는 독립 실행 형 프로그램에서 교육되었습니다. 실제로 나는 JPMML이 작동한다고 생각하지만 실제로 어떻게 동작하는지 모르겠습니다. 전에 말했듯이, 나는 정말로 이것에 관한 멍청한 행동이다. 나는 이미 "openscoring"실행을 시도했지만, 작동하지 않을 것이라고 생각한다 (n 전체 관리자 권한). JPMML에 대한 단계별 지침이 필요합니다. 나는 프로젝트 주인에게 질문 할 것이다. – StefanOverFlow

+0

안녕하세요. 마침내 작동합니다. 필요한 것은 실제로 JPMML 번들 .jar 파일뿐입니다. 정말 내 PMML 파일과 잘 맞습니다. 다시 감사합니다. 프로젝트 소유자에게 특별히 감사드립니다. 감사합니다, Stefan – StefanOverFlow

+0

@ user1808924 PMML을 읽고 scikit-learn MultilayerPerceptron에 대한 점수를 예측하는 링크 또는 Java 코드 예제를 제공해 주시겠습니까? – Naresh

0

나는 이것이 당신이 필요로 할 것 같아요. pmml 신경망을 읽고 평가할 수 있다고 주장하는 오픈 소스 라이브러리입니다. 나는 그것을 시도하지 않았다.

https://code.google.com/p/jpmml/

+0

안녕하십니까, Jeff, 감사합니다. 나는 이미 시도했지만 그것을 올바르게 사용하는 방법을 모르겠다. 지금까지 시도한 것을 볼 수 있도록 첫 번째 게시물을 수정합니다. – StefanOverFlow

1

또 다른 방법은 계단식 API를 사용하는 것입니다. Cascading에는 PMML 모델을 Java로 계단식 응용 프로그램으로 변환하는 "Pattern"이라는 라이브러리가 있습니다. https://github.com/Cascading/pattern

일반적으로 이러한 항목은 하둡 작업용입니다. 그러나 계단식으로 "로컬 모드"플로 플래너를 사용하는 경우 다른 Java 응용 프로그램과 함께 포함시킬 JAR 파일로 빌드 할 수 있습니다.

ANN 모델에 대한 작업이 진행 중입니다. 개발자 전자 메일 목록 확인 : https://groups.google.com/forum/?fromgroups#!forum/pattern-user