📄 nn.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 + -