⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nn.cs

📁 Computational Intelligence IRIS dataset Classification
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;

namespace CIProject
{
    class NN
    {
        double Slope = 0.5;
        double bias = -1;
        double[,] inputHiddenWeight;
        double[,] hiddenOutputWeight;
        int inputNeurons, hiddenNeurons, outputNeurons;
        public bool createNetwork(int inputSize, int hiddenSize, int outputSize, int Func)
        {
            inputNeurons = inputSize;
            hiddenNeurons = hiddenSize;
            outputNeurons = outputSize;
            inputHiddenWeight = new double[inputSize + 1, hiddenSize];
            hiddenOutputWeight = new double[hiddenSize + 1, outputSize];
            return true;

        }
        double Sigmoid(double SumOfProduct, double Slope)
        {
            double SigmoidVal = (double)(1 / (1 + Math.Exp(-Slope * SumOfProduct)));
            return SigmoidVal;
        }
        public bool assignWeights(double[] weightArray)
        {
            int k = 0;
            for (int i = 0; i < inputNeurons + 1; i++)
            {
                for (int j = 0; j < hiddenNeurons; j++)
                {
                    inputHiddenWeight[i, j] = weightArray[k];
                    k++;
                }
            }
            // k--;
            for (int i = 0; i < hiddenNeurons + 1; i++)
            {
                for (int j = 0; j < outputNeurons; j++)
                {
                    hiddenOutputWeight[i, j] = weightArray[k];
                    k++;
                }
            }
            return true;
        }
        public double[] NeuralOut(double[] input)
        {
            int l = input.Length;
            double sumofProduct = 0.0;
            double[] neuraloutPut = new double[outputNeurons];
            double[] hiddenVals = new double[hiddenNeurons + 1];
            for (int i = 0; i < hiddenNeurons; i++)
            {
                for (int j = 0; j < inputNeurons + 1; j++)
                {
                    double output = input[j] * inputHiddenWeight[j, i];
                    sumofProduct = sumofProduct + output;
                }
                hiddenVals[i] = Sigmoid(sumofProduct, Slope);
            }
            hiddenVals[hiddenNeurons] = -1; //bias
            sumofProduct = 0.0;
            for (int i = 0; i < outputNeurons; i++)
            {
                for (int j = 0; j < hiddenNeurons + 1; j++)
                {
                    double output = hiddenVals[j] * hiddenOutputWeight[j, i];
                    sumofProduct = sumofProduct + output;
                }
                neuraloutPut[i] = Sigmoid(sumofProduct, Slope);
            }
            return neuraloutPut;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -