NullReferenceException 时尝试从 EG 文件加载 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)"

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

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

最新更新