我有一个关于如何在 encog 库 c# 中保存神经网络的问题。我想序列化隐藏层的权重以及来自输入和输出层的数据。如果我想成功反序列化,也有必要保存网络结构的某个地方。 在我创建网络并序列化 BasicNetwork 对象的代码部分下方,当然它是不正确的。我找到了很多关于如何使用 Java 版本执行此操作的信息,但注意到有关 C# 的信息。
BasicNetwork network = CreateNet(nettype,res11[i],1,2);
INeuralDataSet trainingSet = new BasicNeuralDataSet(masStudyInput, masStudyOutput);
INeuralDataSet TestingSet = new BasicNeuralDataSet(masTestInput, mastestOutput);
ITrain train = new ResilientPropagation(network, trainingSet);
int epoch = 1;
//network.Structure.Layers.
MessageBox.Show("Start");
do
{
train.Iteration();
mist = GetMistake(ref network, ref TestingSet);
chart1.Invoke((Action)(() =>
{
chart1.Series[0].Points.AddY(train.Error);
chart1.Series[1].Points.AddY(mist);
}));
network.
if (mist < 0.8)
{
string XMLfilename = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + @"\" + mist + ".xml";
System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(BasicNetwork));
TextWriter writerr = new StreamWriter(XMLfilename);
writer.Serialize(writerr, network);
writerr.Close();
}
epoch++;
}
while ((epoch < 1000));SS
最佳答案
Encog 也有保存器/加载器:
EncogDirectoryPersistence.SaveObject(new System.IO.FileInfo(txtSaveFile.Text), _network);
_network = (BasicNetwork)EncogDirectoryPersistence.LoadObject(new FileInfo(txtSaveFile.Text));
关于c# - 保存 encog 网络 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21941611/