我已经训练好了一个网络,我想保存它,以便以后可以加载它,而不需要重新训练…这不是显而易见的吗?
训练代码结束部分:
//保存网络 SerializeObject.save(new File("encognet"),network); Encog.getInstance().shutdown();
加载文件
BasicNetwork network = (BasicNetwork) EncogDirectoryPersistence.loadObject(new File("encognet"));
我得到了这个错误
线程 “main” 中的异常 org.encog.persist.PersistError: 不是有效的EG文件。
谁能告诉我如何解决这个问题?
回答:
我认为问题在于您没有将文件保存为 .eg
扩展名。如果这不是问题所在,我对 SerializeObject.save
不太确定,但我知道 EncogDirectoryPersistence
对我是有效的。
所以,尝试使用以下代码来保存
public static final String FILENAME = "test_load_net.eg"; EncogDirectoryPersistence.saveObject(new File(FILENAME), network);
然后像这样加载
public static final String FILENAME = "test_load_net.eg"; BasicNetwork network = (BasicNetwork)EncogDirectoryPersistence.loadObject(new File(FILENAME));