繁体   English   中英

如何在 OjAlgo 中序列化 Primitive64Matrix?

[英]How do I seralize Primitive64Matrix in OjAlgo?

我正在开发一个图像分类库,100% Java。 它不包括深度神经网络。 它使用 OjAlgo 的 Fisherfaces。 jFaces 的工作方式与常规机器学习软件非常相似。 训练 model 并验证它。 我想序列化 model 和 model 只包含Primitive64Matrix的对象

https://github.com/DanielMartensson/jFaces

如何在 OjAlgo 中序列化Primitive64Matrix

我有我的 class

public class Model implements Serializable{
    private String name;
    //private Primitive64Matrix D;
    private Primitive64Matrix W;
    private Primitive64Matrix P;
    //private long num_components;
    private Primitive64Matrix mu;
    private Primitive64Matrix y;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Primitive64Matrix getW() {
        return W;
    }
    public void setW(Primitive64Matrix w) {
        W = w;
    }
    public Primitive64Matrix getMu() {
        return mu;
    }
    public void setMu(Primitive64Matrix mu) {
        this.mu = mu;
    }
    public Primitive64Matrix getP() {
        return P;
    }
    public void setP(Primitive64Matrix p) {
        P = p;
    }
    public Primitive64Matrix getY() {
        return y;
    }
    public void setY(Primitive64Matrix y) {
        this.y = y;
    }

}

然后我尝试保存它:

static public void saveModel(Model model,String modelPath) {
    try {
         FileOutputStream fileOut = new FileOutputStream(modelPath);
         ObjectOutputStream out = new ObjectOutputStream(fileOut);
         out.writeObject(model);
         out.close();
         fileOut.close();
         logger.info("Model saved at " + modelPath);
      } catch (IOException e) {
         e.printStackTrace();
      }
}

我得到错误:

java.io.NotSerializableException: se.danielmartensson.fisherfaces.Model
    at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1185)
    at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
    at se.danielmartensson.fisherfaces.tools.SaveLoad.saveModel(SaveLoad.java:22)
    at se.danielmartensson.Main.main(Main.java:123)
Exception in thread "main" java.lang.NullPointerException
    at se.danielmartensson.Main.main(Main.java:127)

OjAlgo 是 100% Java,所以这必须有效吗? 正确的?

在 Java 中,只有实现Serializable接口的对象是可序列化的...

ojAlgo 类很少实现Serializable ,也没有定义的矩阵文件格式或类似格式。

你必须自己建造一些东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM