示例#1
0
        unsafe public float[] RunRNN(float[] InputState, int size)
        {
            fixed(float *ISPtr = InputState)
            {
                float *results = ManagedWrapper.RunRNN(RNN_Chess_instance, ISPtr);

                float[] res = new float[size];

                for (int i = 0; i < size; i++)
                {
                    res[i] = *(results + i);
                    res[i] = (res[i] + 0.5f) * 7;
                }

                return(res);
            }
        }
示例#2
0
        unsafe public int InitializeVariables(float[][] InputWeights, float[][] RecurrentWeights, float[][] Biases)
        {
            float *[] InputWeightsPtr = new float *[InputWeights.Length];
            for (int i = 0; i < InputWeights.Length; i++)
            {
                fixed(float *ptr = &InputWeights[i][0])
                {
                    InputWeightsPtr[i] = ptr;
                }
            }

            float *[] RecurrentWeightsPtr = new float *[RecurrentWeights.Length];
            for (int i = 0; i < RecurrentWeights.Length; i++)
            {
                fixed(float *ptr = &RecurrentWeights[i][0])
                {
                    RecurrentWeightsPtr[i] = ptr;
                }
            }

            float *[] BiasesPtr = new float *[Biases.Length];
            for (int i = 0; i < Biases.Length; i++)
            {
                fixed(float *ptr = &Biases[i][0])
                {
                    BiasesPtr[i] = ptr;
                }
            }

            fixed(float **IWPtr = InputWeightsPtr)
            {
                fixed(float **RWPtr = RecurrentWeightsPtr)
                {
                    fixed(float **BPtr = BiasesPtr)
                    {
                        return(ManagedWrapper.InitializeVariables(RNN_Chess_instance, IWPtr, RWPtr, BPtr));
                    }
                }
            }
        }
示例#3
0
 public int InitializeConstants(float learningrate)
 {
     return(ManagedWrapper.InitializeConstants(RNN_Chess_instance, learningrate));
 }
示例#4
0
 public int FreeWorkSpace()
 {
     return(ManagedWrapper.FreeWorkSpace(RNN_Chess_instance));
 }
示例#5
0
 public ManagedObject(int[] Dimensions)
 {
     RNN_Chess_instance = ManagedWrapper.new_RNN_Chess(Dimensions);
 }
示例#6
0
 public int BackPropagation()
 {
     return(ManagedWrapper.BackPropagation(RNN_Chess_instance));
 }
示例#7
0
 public int ErrorCalculation(int color)
 {
     return(ManagedWrapper.ErrorCalculation(RNN_Chess_instance, color));
 }
示例#8
0
 public void UpdateDimensions(int[] Dimensions)
 {
     ManagedWrapper.UpdateDimensions(RNN_Chess_instance, Dimensions);
 }