예제 #1
0
        public override string ToString()
        {
            var strValue = $"|Type:{LearnerType} |LRate:{LearningRate.ToString(CultureInfo.InvariantCulture)} " +
                           $"|Momentum:{Momentum.ToString(CultureInfo.InvariantCulture)} |Loss:{LossFunction}" +
                           $"|Eval:{EvaluationFunction}" + $"|L1:{L1Regularizer}" + $"|L2:{L2Regularizer}";

            return(strValue);
        }
예제 #2
0
        public ProcessConfiguration GetConfiguration(PipelineContext context)
        {
            var pc = new ProcessConfiguration();

            pc["LearningAlgorithm"] = LearningAlgorithm.ToString();
            pc["Iterations"]        = Iterations.ToString();
            pc["Dimensions"]        = Dimensions;
            pc["LearningRate"]      = LearningRate.ToString();
            pc["TrainFile"]         = context.GetAsString("TrainFile");
            pc["TestFile"]          = context.GetAsString("TestFile");
            pc["AdditionalArgs"]    = _additionalArgs;

            return(pc);
        }
예제 #3
0
        public void SaveNetworkAsXML(string path)
        {
            XmlWriterSettings setting = new XmlWriterSettings();

            setting.Indent = true;
            Stream stream;

            path += ".xml";

            stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);

            using (XmlWriter writer = XmlWriter.Create(stream, setting))
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("NeuralNetwork");
                writer.WriteAttributeString("learningRate", LearningRate.ToString());
                writer.WriteAttributeString("name", Name.ToString());
                foreach (Layer layer in Layers)
                {
                    writer.WriteStartElement("Layer");
                    writer.WriteAttributeString("activationFunction", layer.activationFunction.ToString());
                    foreach (Neuron neuron in layer.Neurons)
                    {
                        writer.WriteStartElement("Neuron");
                        writer.WriteAttributeString("bias", neuron.Bias.ToString());
                        foreach (Dendrite dendrite in neuron.Dendrites)
                        {
                            writer.WriteStartElement("InputDendrite");
                            writer.WriteAttributeString("weight", dendrite.Weight.ToString());
                            writer.WriteEndElement();
                        }
                        writer.WriteEndElement();
                    }
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                writer.WriteEndDocument();
            }
        }
예제 #4
0
        public void SaveNetworkToFile(string path)
        {
            List <string> tmp = new List <string>();

            for (int i = 1; i < Layers.Count; i++)
            {
                foreach (Neuron neuron in Layers[i].Neurons)
                {
                    foreach (Synapse synapse in neuron.Inputs)
                    {
                        tmp.Add(synapse.Weight.ToString(CultureInfo.InvariantCulture));
                    }
                }
            }

            string build = $"{LearningRate.ToString()} {Functions.Alpha.ToString()} {Synapse.MinInitWeight} {Synapse.MaxInitWeight}";

            foreach (Layer layer in Layers)
            {
                build += " " + layer.Neurons.Count.ToString();
            }
            tmp.Insert(0, build);
            File.WriteAllLines(path, tmp);
        }