尝试从EG文件加载Encog网络时出现NullReferenceException

时间:2017-06-14 23:46:59

标签: neural-network persistence encog

我试图在C#代码中加载Encog创建的网络:

private void buttonImportNetwork_Click(object sender, EventArgs e)
{
    NeuralNetworkEffect.Network =
        (BasicNetwork) EncogDirectoryPersistence.LoadObject(new FileInfo(_networkFilePath));
}

我收到System.NullReferenceException。这是调用堆栈:

"at Encog.Neural.Networks.PersistBasicNetwork.Read(Stream mask0)
at Encog.Persist.EncogDirectoryPersistence.LoadObject(Stream mask0)
at Encog.Persist.EncogDirectoryPersistence.LoadObject(FileInfo file)"

我尝试了多次使用各种文件和路径,结果相同。 我做错了什么,是否有人遇到过这个并解决了这个问题?

1 个答案:

答案 0 :(得分:1)

好的,我找到了原因。包含由Encog Workbench生成的网络定义的EG文件包含用于激活功能的无效类型,可能与Java版本的Encog包兼容,但不与.Net版本兼容。 在EG文件中它是: "org.encog.engine.network.activation.ActivationTANH" 但它应该是: "ActivationTANH"。 删除Java名称空间后,网络加载时没有问题。