0

こんにちは、現在、テキストファイルのすべての値を含む配列があり、現在、実行時にファイルを読み戻していますが、実行時に配列内の各値の出力を生成したいと考えています。現在、すべての値が読み戻された後にプログラムを実行すると、最後に 1 つの出力が生成されますが、プログラムが出力する各値の横に出力のリストを生成したいと考えています。出力は、トレーニング アルゴリズムを使用して作成されています。これが私のコードです:

これは、配列とその他の変数を定義する場所です。

       `double[] x = new double [3501];`
        double output = 1;

        double netSum;
        double input = 0;            
        double[] x_P = new double[3501];
        double error = input - output;

        Random r = new Random();
        double[] weights = { r.NextDouble(), r.NextDouble(), r.NextDouble() };
        double learningrate = 0.1;
        double delta;    enter code here

これは、テキスト ファイルを配列に配置する場所です。

try
        {
            using (StreamReader sr = new StreamReader("test.txt"))
            {
                for (int y = 0; y < 3501; y++)
                {
                   String line = sr.ReadLine();
                   x[y] = Double.Parse(line);
                   Console.WriteLine(line);

                }


            }

出力を作成するために使用するアルゴリズムは次のとおりです。

while (error != 0.01)
            {

                error = 1;

                foreach (double x_value in x)
                {

                    netSum = 0.01;
                    double i = 1;
                    for (i = 1; i < 3501; i++)
                    {

                        netSum =  x[1] * weights[1] + x[2] * weights[2];

                    }

                    x_P[2] = Sigmoid(netSum);
                    output = x_P[2];


                    if (output >= error)
                    {
                        for (i = 1; i < 3501; i++)
                        {


                            delta = x_value - output;
                            error = x[2] - x_P[2];
                            weights[(int)i] += learningrate * delta * x_value;

                            error += Math.Abs(error);


                        }
                    }
                }

                Console.WriteLine(output);

                Console.ReadLine();

            }
        }



        catch (Exception e)
        {
            // Log the exception and quit...                
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.Message);

        }



    }

    public static double Sigmoid(double x)
    {
        return 1 / (1 + Math.Exp(-x));
    }


    public double Derivative(double x)
    {

        double s = Sigmoid(x);
        return s * (1 - s);

    }

だから私は基本的に、値が出力されるときに x の各値の出力を出力したいのですが、誰かが私を助けることができますか?

4

1 に答える 1

0

ループのConsole.WriteLine中に入れるだけです:foreach

foreach (double x_value in x)
{
    ...
    Console.WriteLine(output);
}

Console.ReadLine();
于 2013-04-23T23:15:16.200 に答える