Exemplo n.º 1
0
        private NnueParameters ReadHiddenParameters(BinaryReader reader, uint inputDimensions, uint outputDimensions, NnueArchitecture architecture)
        {
            var parameters = new NnueParameters();

            parameters.Biases  = new int[outputDimensions];
            parameters.Weights = new sbyte[outputDimensions * inputDimensions];

            for (var i = 0; i < parameters.Biases.Length; i++)
            {
                parameters.Biases[i] = reader.ReadInt32();
            }

            if (architecture == NnueArchitecture.Avx2)
            {
                permute_biases(parameters.Biases);
            }

            for (uint i = 0; i < outputDimensions; i++)
            {
                for (uint j = 0; j < inputDimensions; j++)
                {
                    var index = GetWeightIndex(i, j, inputDimensions, architecture);
                    parameters.Weights[index] = reader.ReadSByte();
                }
            }

            return(parameters);
        }
Exemplo n.º 2
0
        private NnueParameters ReadOutputParameters(BinaryReader reader, int inputDimensions, int outputDimensions)
        {
            var parameters = new NnueParameters();

            parameters.Biases  = new int[outputDimensions];
            parameters.Weights = new sbyte[outputDimensions * inputDimensions];

            for (var i = 0; i < parameters.Biases.Length; i++)
            {
                parameters.Biases[i] = reader.ReadInt32();
            }

            for (int i = 0; i < parameters.Weights.Length; i++)
            {
                parameters.Weights[i] = reader.ReadSByte();
            }

            return(parameters);
        }