chipiron.players.boardevaluators.neural_networks package

Subpackages

Submodules

chipiron.players.boardevaluators.neural_networks.NNModelType module

class chipiron.players.boardevaluators.neural_networks.NNModelType.ActivationFunctionType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: str, Enum

ParametricRelu = 'parametric_relu'
Relu = 'relu'
TangentHyperbolic = 'hyperbolic_tangent'
class chipiron.players.boardevaluators.neural_networks.NNModelType.NNModelType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: str, Enum

MultiLayerPerceptron = 'multi_layer_perceptron'
Transformer = 'transformer'

chipiron.players.boardevaluators.neural_networks.NNModelTypeArgs module

chipiron.players.boardevaluators.neural_networks.board_to_tensor module

Module to transform the board into a tensor representation.

chipiron.players.boardevaluators.neural_networks.board_to_tensor.get_tensor_from_tensors(tensor_white: Tensor, tensor_black: Tensor, tensor_castling_white: Tensor, tensor_castling_black: Tensor, color_to_play: bool) Tensor[source]

Get the final tensor representation from individual tensors.

Parameters:
  • tensor_white (torch.Tensor) – The tensor representation for white pieces.

  • tensor_black (torch.Tensor) – The tensor representation for black pieces.

  • tensor_castling_white (torch.Tensor) – The tensor representation for white castling.

  • tensor_castling_black (torch.Tensor) – The tensor representation for black castling.

  • color_to_play (chess.Color) – The color to play.

Returns:

The final tensor representation.

Return type:

torch.Tensor

chipiron.players.boardevaluators.neural_networks.board_to_tensor.transform_board_pieces_one_side(board: IBoard, requires_grad_bool: bool) Tensor[source]

Transform the board pieces for one side into a tensor representation.

Parameters:
  • board (BoardChi) – The chess board.

  • requires_grad_bool (bool) – Whether the tensor requires gradient.

Returns:

The transformed board pieces tensor.

Return type:

torch.Tensor

chipiron.players.boardevaluators.neural_networks.board_to_tensor.transform_board_pieces_two_sides(board: IBoard, requires_grad_bool: bool) Tensor[source]

Transform the board pieces for both sides into a tensor representation.

Parameters:
  • board (BoardChi) – The chess board.

  • requires_grad_bool (bool) – Whether the tensor requires gradient.

Returns:

The transformed board pieces tensor.

Return type:

torch.Tensor

chipiron.players.boardevaluators.neural_networks.factory module

Module for creating neural networks and neural network board evaluators.

class chipiron.players.boardevaluators.neural_networks.factory.NeuralNetModelsAndArchitecture(model_weights_file_name: str | PathLike[str], nn_architecture_args: NeuralNetArchitectureArgs)[source]

Bases: object

Class to hold the neural network models and architecture. :ivar model_weights_file_name: The file name of the model weights. :vartype model_weights_file_name: path :ivar nn_architecture_args: The neural network architecture arguments.

classmethod build_from_folder_path(folder_path: str | PathLike[str]) NeuralNetModelsAndArchitecture[source]

Build an instance of NeuralNetModelsAndArchitecture from the given folder path.

Parameters:

folder_path (Path) – Path to the folder containing ‘architecture.yaml’ and model weights.

Returns:

An initialized instance.

Return type:

NeuralNetModelsAndArchitecture

model_weights_file_name: str | PathLike[str]
nn_architecture_args: NeuralNetArchitectureArgs
chipiron.players.boardevaluators.neural_networks.factory.create_nn(nn_type_args: MultiLayerPerceptronArgs | TransformerArgs) ChiNN[source]

Create a neural network.

chipiron.players.boardevaluators.neural_networks.factory.create_nn_board_eval_from_architecture_args(nn_architecture_args: NeuralNetArchitectureArgs) NNBoardEvaluator[source]
chipiron.players.boardevaluators.neural_networks.factory.create_nn_board_eval_from_folder_path_and_existing_model(path_to_nn_folder: str | PathLike[str]) tuple[chipiron.players.boardevaluators.neural_networks.nn_board_evaluator.NNBoardEvaluator, chipiron.players.boardevaluators.neural_networks.neural_net_board_eval_args.NeuralNetArchitectureArgs][source]

Create a neural network board evaluator.

Parameters:

path_to_nn_folder (path) – the path to the folder where the model is defined.

Returns:

The created neural network board evaluator.

Return type:

NNBoardEvaluator

chipiron.players.boardevaluators.neural_networks.factory.create_nn_board_eval_from_nn_and_architecture_args(nn_architecture_args: NeuralNetArchitectureArgs, nn: ChiNN) NNBoardEvaluator[source]
chipiron.players.boardevaluators.neural_networks.factory.create_nn_board_eval_from_nn_parameters_file_and_existing_model(model_weights_file_name: str | PathLike[str], nn_architecture_args: NeuralNetArchitectureArgs) NNBoardEvaluator[source]
chipiron.players.boardevaluators.neural_networks.factory.create_nn_from_folder_path_and_existing_model(folder_path: str | PathLike[str]) tuple[chipiron.utils.chi_nn.ChiNN, chipiron.players.boardevaluators.neural_networks.neural_net_board_eval_args.NeuralNetArchitectureArgs][source]
chipiron.players.boardevaluators.neural_networks.factory.create_nn_from_param_path_and_architecture_args(model_weights_file_name: str | PathLike[str], nn_architecture_args: NeuralNetArchitectureArgs) tuple[chipiron.utils.chi_nn.ChiNN, chipiron.players.boardevaluators.neural_networks.neural_net_board_eval_args.NeuralNetArchitectureArgs][source]
chipiron.players.boardevaluators.neural_networks.factory.get_architecture_args_from_file(architecture_file_name: str | PathLike[str]) NeuralNetArchitectureArgs[source]
chipiron.players.boardevaluators.neural_networks.factory.get_architecture_args_from_folder(folder_path: str | PathLike[str]) NeuralNetArchitectureArgs[source]
chipiron.players.boardevaluators.neural_networks.factory.get_nn_architecture_file_path_from(folder_path: str | PathLike[str]) str[source]

Get the file path for the architecture parameters.

Parameters:

folder_path (str) – The folder path for the architecture parameters.

Returns:

The file path for the architecture parameters.

Return type:

str

chipiron.players.boardevaluators.neural_networks.factory.get_nn_param_file_path_from(folder_path: str | PathLike[str], file_name: str | None = None) tuple[str, str][source]

Get the file path for the neural network parameters.

Parameters:

folder_path (str) – The folder path for the neural network parameters.

Returns:

The file path for the neural network parameters.

Return type:

str

chipiron.players.boardevaluators.neural_networks.neural_net_board_eval_args module

Module that contains the NeuralNetBoardEvalArgs class.

class chipiron.players.boardevaluators.neural_networks.neural_net_board_eval_args.NeuralNetArchitectureArgs(model_type_args: chipiron.players.boardevaluators.neural_networks.models.multi_layer_perceptron.MultiLayerPerceptronArgs | chipiron.players.boardevaluators.neural_networks.models.transformer_one.TransformerArgs, model_input_representation_type: chipiron.players.boardevaluators.neural_networks.input_converters.ModelInputRepresentationType.ModelInputRepresentationType, model_output_type: chipiron.players.boardevaluators.neural_networks.output_converters.model_output_type.ModelOutputType)[source]

Bases: object

filename() str[source]
model_input_representation_type: ModelInputRepresentationType
model_output_type: ModelOutputType
model_type_args: MultiLayerPerceptronArgs | TransformerArgs
class chipiron.players.boardevaluators.neural_networks.neural_net_board_eval_args.NeuralNetBoardEvalArgs(nn_type: NNModelType, nn_param_folder_name: str)[source]

Bases: object

Represents the arguments for a neural network board evaluator.

Variables:
  • nn_type (str) – The type of the neural network.

  • nn_param_folder_name (str) – The name of the folder containing the neural network parameters.

nn_param_folder_name: str
nn_type: NNModelType

chipiron.players.boardevaluators.neural_networks.nn_board_evaluator module

Module for the Neural Network Board Evaluator

class chipiron.players.boardevaluators.neural_networks.nn_board_evaluator.NNBoardEvaluator(net: ChiNN, output_and_value_converter: OutputValueConverter, board_to_input_convert: BoardToInputFunction)[source]

Bases: object

The Generic Neural network class for board evaluation

Variables:
board_to_input_convert: BoardToInputFunction
evaluate(input_layer: Tensor, color_to_play: bool) FloatyBoardEvaluation[source]

Evaluate the board position

Parameters:
  • input_layer (torch.Tensor) – The input tensor representing the board position

  • color_to_play (chess.Color) – The color to play

Returns:

The evaluation of the board position

Return type:

FloatyBoardEvaluation

net: ChiNN
output_and_value_converter: OutputValueConverter
value_white(board: IBoard) float[source]

Evaluate the value for the white player

Parameters:

board (BoardChi) – The chess board

Returns:

The value for the white player

Return type:

float

Module contents

Module for neural network board evaluators.

class chipiron.players.boardevaluators.neural_networks.NNBoardEvaluator(net: ChiNN, output_and_value_converter: OutputValueConverter, board_to_input_convert: BoardToInputFunction)[source]

Bases: object

The Generic Neural network class for board evaluation

Variables:
board_to_input_convert: BoardToInputFunction
evaluate(input_layer: Tensor, color_to_play: bool) FloatyBoardEvaluation[source]

Evaluate the board position

Parameters:
  • input_layer (torch.Tensor) – The input tensor representing the board position

  • color_to_play (chess.Color) – The color to play

Returns:

The evaluation of the board position

Return type:

FloatyBoardEvaluation

net: ChiNN
output_and_value_converter: OutputValueConverter
value_white(board: IBoard) float[source]

Evaluate the value for the white player

Parameters:

board (BoardChi) – The chess board

Returns:

The value for the white player

Return type:

float

class chipiron.players.boardevaluators.neural_networks.NeuralNetBoardEvalArgs(nn_type: NNModelType, nn_param_folder_name: str)[source]

Bases: object

Represents the arguments for a neural network board evaluator.

Variables:
  • nn_type (str) – The type of the neural network.

  • nn_param_folder_name (str) – The name of the folder containing the neural network parameters.

nn_param_folder_name: str
nn_type: NNModelType