java - 如何在 OjAlgo 中序列化 Primitive64Matrix?
问题描述
我正在开发一个 100% Java 的图像分类库。它不包括深度神经网络。它使用 OjAlgo 的 Fisherfaces。jFaces 的工作方式与常规机器学习软件非常相似。训练模型并验证它。我想序列化模型,模型只包含Primitive64Matrix
https://github.com/DanielMartensson/jFaces
如何Primitive64Matrix
在 OjAlgo 中进行序列化?
我有我的课
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
,也没有定义的矩阵文件格式或类似的。
你必须自己建造一些东西。
推荐阅读
- android - 如何在活动的角落放置圆形图像关闭按钮
- python - 检查一个可以是持续时间或时间增量的变量是否大于 0?
- clojure - Clojure 是否具有在调用时执行主体功能的“不断”形式?
- jsf - 如何在jsf中格式化double
- parsing - 如果没有换行符,如何从 reader.ReadString 获取最后一行
- angular - 角度 - 如何处理重定向
- flutter - Flutter 不加载第一次加载失败的图片
- entity-framework-6 - 没有必填字段的 Code First 更新字段
- spring - 在 Jboss 6.4 中部署时,找不到带有 URI [] in DispatcherServlet 的 HTTP 请求的映射,名称为“dispatcherServlet”错误
- c++ - boost::asio 取消或关闭在 async_handle 上不起作用