renegade-net-36

This is a neural network for evaluating chess positions, used in versions 1.3.0 and 1.3.1 of the Renegade chess engine.

The architecture is a shallow NNUE with shape (768x14hm -> 1600)x2 -> 1x8, which allows for incremental operations and extremely fast CPU inference. The input features are tuples of (king bucket, friend/opponent, piece, square), and each one correspond to a 1600-dimensional vector. The output is a single integer which describes the evaluation of the board.

Note that due to how chess engines rely on their search algorithms to uncover tactics, the neural network works best for evaluating positions where there are no possible winning captures.

Net architecture

  • Single hidden layer perspective net
  • 14 input buckets based on the position of the king
  • 8 output buckets based on the number of pieces on the board
  • Horizontal mirroring of pieces
  • Weights quantized to int16

Usage

network = ChessNeuralNet("model.safetensors")
score = network.evaluate_position("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1")
print(f"Evaluation for the starting position: {round(score)} units")
Evaluation for the starting position: 94 units

Scores are relative to the side to move: positive values signal an advantage, while negative values imply a losing position. Outputs in the high triple digits and above typically represent a won game, whereas near-zero values indicate a drawish position.

Other information

  • Parameter count: 17.2 million
  • Training data size: 8.4 billion positions (post-filtering)
  • Training time: few hours
  • Training script: here
Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
17.2M params
Tensor type
I16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train pkrisz/renegade-net-36