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); }
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); }