首页 > 解决方案 > 如何保存神经元训练数据?

问题描述

我写了一个学习转换值的神经元。但我希望它保存学习结果。怎么做?

这是神经元的源代码:

public class Neuron
        {
            private decimal weight = 0.5m;
            public decimal Errors { get; private set; }
            public decimal Smooth { get; set; } = 0.0000001m;
            public decimal InputData(decimal input)
            {
                return input * weight;
            }
            public decimal RestoreInputData(decimal output)
            {
                return output / weight;
            }
            public void Training(decimal input, decimal expResult)
            {
                var mainResult = input * weight;
                Errors = expResult - mainResult;
                var correction = (Errors / mainResult) * Smooth;
                weight += correction;
            }
        }

        static void Main(string[] args)
        {
            decimal uk = 100;
            decimal eu = 3.34m;

            Neuron neuron = new Neuron();

            int i = 0;
            do
            {
                i++;
                neuron.Training(uk, eu);
                if (i % 700000 == 0)
                {
                    Console.WriteLine($"Iteration: {i}\tIssue:\t{neuron.Errors}");
                }
            } while (neuron.Errors > neuron.Smooth || neuron.Errors < -neuron.Smooth);

            Console.WriteLine("Training the end!");
            Console.WriteLine("Enter your value: ");
        decimal res = Convert.ToDecimal(Console.ReadLine());
        Console.WriteLine($"{neuron.InputData(res)}");
        Console.ReadLine();

我从 Internet 上的一个示例创建了这个神经元,以了解它是如何工作的。

标签: c#neural-network

解决方案


推荐阅读