我有一个训练有素的人工神经网络(ANN)的PMML文件。我想创建一个Java方法,它只接受输入并返回目标值。
这看起来很简单,但我不知道如何实现它。
PMML版本= 3.0
更新:24.05.2013
我尝试使用jpmml Java API。
这就是我的表现:
(1)通过Maven Central Repository(link)下载三个.Jar文件:
(2)使用eclipse“配置构建路径”并添加了这三个外部.Jar的
(3)导入名为“text.xml”的PMML文件(人工神经网络(ANN))PMML version =“3.0”
(4)试图运行jpmml-project提供的示例“TreeModelTraversalExample.java”
显然由于某些原因它不起作用:
明显的事实#2,我不知道我做了什么: - )
再次感谢并表示最诚挚的问候。
的Stefan
答案 0 :(得分:2)
JPMML应该能够毫无问题地处理PMML 3.X和更新版本的NeuralNetwork模型。此外,它应该能够处理可能伴随这些模型的所有归一化和非规范化转换。
我可以澄清一下,为什么你有兴趣首先将PMML模型转换为Java代码。这使整个问题复杂化,并没有增加任何价值。 JPMML库本身相当紧凑,并且具有最小的外部依赖性(在编写本文时,它仅取决于commons-math)。性能方面不应该有太大差异。您可以合理地期望在现代台式计算机上获得高达10,000的scorings / sec。
JPMML代码库最近已转移到GitHub:http://github.com/jpmml/jpmml
Turn Inc.的研究员已经分叉了这个代码库,正在为选定的模型类型实现PMML到Java的翻译(参见顶级模块“pmml-translation”):https://github.com/turn/jpmml
目前我建议您查看Openscoring项目(在内部使用JPMML):http://www.openscoring.org
然后,您可以尝试以下方法:
您可以随时尝试与项目所有者联系以获取更多信息。我相信他们是好人。
答案 1 :(得分:1)
另一种方法是使用Cascading API。 Cascading有一个名为“Pattern”的库,它将PMML模型转换为Java中的级联应用程序。 https://github.com/Cascading/pattern
通常这些是针对Hadoop的工作;但是,如果在Cascading中使用“本地模式”流程规划器,则可以将其构建为JAR文件以包含在其他Java应用程序中。
ANN模型正在进行中。查看开发者电子邮件列表:https://groups.google.com/forum/?fromgroups#!forum/pattern-user
答案 2 :(得分:0)
我认为这可能会满足您的需求。它是一个开源库,声称能够读取和评估pmml神经网络。我没试过。