首页 文章

POJO编译失败(Algo:GBM,H2o-Version 3.8.1.3,Javac:1.8.0_45,Mac OSX 10.11.3 / Fedora 23)

提问于
浏览
0

我尝试在本地编译用H2o 3.8.1.3生成的GBM预测模型的POJO;我按照POJO课程中的说明操作:

  • 创建一个文件夹

  • 将h2o-genmodel.jar下载到以下文件夹中:

curl http://myh2oinstancesurl:myh2oinstancesport/3/h2o-genmodel.jar > h2o-genmodel.jar
  • 将名为154的成功训练的GBM模型下载到文件夹中:
curl http://myh2oinstancesurl:myh2oinstancesport/3/Models/154/java > 154.java
  • 使用Max OSX 10.11.3或Fedora 23下的javac 1.8.0_45编译文件夹中的源:
javac -cp h2o-genmodel.jar 154.java
  • 结果是一堆编译错误:
154.java:24: error: <identifier> expected
public class 154 extends GenModel {
        ^
154.java:24: error: illegal start of type
public class 154 extends GenModel {
             ^
154.java:24: error: ';' expected
public class 154 extends GenModel {
                             ^
154.java:25: error: illegal start of expression
  public hex.ModelCategory getModelCategory() { return hex.ModelCategory.Binomial; }
  ^
154.java:25: error: ';' expected
   public hex.ModelCategory getModelCategory() { return hex.ModelCategory.Binomial; }
                                       ^
154.java:27: error: illegal start of expression
   public boolean isSupervised() { return true; }
  ^
154.java:27: error: ';' expected
  public boolean isSupervised() { return true; }
                         ^
154.java:28: error: illegal start of expression
  public int nfeatures() { return 14; }
  ^
154.java:28: error: ';' expected
  public int nfeatures() { return 14; }
                  ^
154.java:29: error: illegal start of expression
  public int nclasses() { return 2; }
  ^

...

100 errors

我的手术有问题吗?或者这是我的设置错误?有没有人目前可以编译GBM POJO?谢谢你的回复!

2 回答

  • 0

    解决:问题是POJO类名显然必须是一个有效的java类名;不允许使用纯数字名称 . 更改型号名称可解决此问题 .

  • 0

    [这不是这个问题的直接答案,但希望是一个有用的指针,指向发现这个问题的任何人...]

    自从提出这个问题以来,H2O还增加了导出MOJO并将其用于预测的能力 .

    H2O POJO是模型的代码表示,H2O MOJO是模型的数据表示 .

    MOJO可以与POJO一样使用,并且不需要编译MOJO(而是解释它们) . 这对于非常大的树模型尤其有用,在这些树模型中,尝试编译它们在大约几千兆字节的代码大小时会遇到各种技术挑战 . 因此,在许多情况下,解决编译问题的最佳方法是根本不编译 .

    可在此处找到H2O POJO和MOJO的在线文档:

    我希望人们觉得这个(延迟的)答案很有帮助 .

相关问题