首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存encog网络c#

保存encog网络c#
EN

Stack Overflow用户
提问于 2014-02-21 17:49:52
回答 2查看 1.9K关注 0票数 4

我有一个关于如何在encog库c#中保存神经网络的问题。我想序列化隐藏层的权重以及输入和输出层的数据。此外,如果我想成功地反序列化网络结构,就必须保存它的某个结构。在代码的下面,我创建网络并序列化BasicNetwork对象,这当然是不正确的。我已经找到了很多关于如何使用java版本的信息,但是注意到了c#。

代码语言:javascript
复制
                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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-03 16:11:26

网络是可序列化的,所以您可以使用任何您想要的序列化程序。举个例子:

代码语言:javascript
复制
var serializer = new BinaryFormatter();
using (var ms = new MemoryStream())
{
    serializer.Serialize(ms, network);
    ms.Position = 0;
    byte[] serialized = ms.ToArray();
    return serialized;
}
票数 2
EN

Stack Overflow用户

发布于 2014-12-30 23:34:43

Encog还有保护程序/加载程序:

代码语言:javascript
复制
EncogDirectoryPersistence.SaveObject(new System.IO.FileInfo(txtSaveFile.Text), _network);

_network = (BasicNetwork)EncogDirectoryPersistence.LoadObject(new FileInfo(txtSaveFile.Text));
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21941611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档