From 20728208fc7cb9cc40b45b6430c2c0ce194d4ee6 Mon Sep 17 00:00:00 2001 From: dblue Date: Fri, 7 Oct 2022 13:21:59 +0800 Subject: [PATCH] Fix the incorrect weight scale used in NNUEReader --- serialize.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/serialize.py b/serialize.py index fc5c4893..c060555e 100644 --- a/serialize.py +++ b/serialize.py @@ -190,8 +190,12 @@ def read_feature_transformer(self, layer, num_psqt_buckets): layer.weight.data = torch.cat([weights, psqt_weights], dim=1) def read_fc_layer(self, layer, is_output=False): - kWeightScale = self.model.weight_scale_out if is_output else self.model.weight_scale_hidden - kBiasScale = self.model.weight_scale_out * self.model.nnue2score if is_output else self.model.weight_scale_hidden * self.model.quantized_one + kWeightScaleHidden = self.model.weight_scale_hidden + kWeightScaleOut = self.model.nnue2score * self.model.weight_scale_out / self.model.quantized_one + kWeightScale = kWeightScaleOut if is_output else kWeightScaleHidden + kBiasScaleOut = self.model.weight_scale_out * self.model.nnue2score + kBiasScaleHidden = self.model.weight_scale_hidden * self.model.quantized_one + kBiasScale = kBiasScaleOut if is_output else kBiasScaleHidden kMaxWeight = self.model.quantized_one / kWeightScale # FC inputs are padded to 32 elements by spec.