mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
52 lines
1.4 KiB
Markdown
52 lines
1.4 KiB
Markdown
# `pgn_to_plain`
|
|
This script converts pgn files into text file to apply `learn convert_bin` command. You need to import [python-chess](https://pypi.org/project/python-chess/) to use this script.
|
|
|
|
|
|
pip install python-chess
|
|
|
|
|
|
# Example of Qhapaq's finetune using `pgn_to_plain`
|
|
|
|
## Download data
|
|
You can download data from [here](http://rebel13.nl/index.html)
|
|
|
|
## Convert pgn files
|
|
|
|
**Important : convert text will be superheavy (approx 200 byte / position)**
|
|
|
|
python pgn_to_plain.py --pgn "pgn/*.pgn" --start_ply 1 --output converted_pgn.txt
|
|
|
|
|
|
`--pgn` option supports wildcard. When you use pgn files with elo >= 3300, You will get 1.7 GB text file.
|
|
|
|
|
|
## Convert into training data
|
|
|
|
|
|
### Example build command
|
|
|
|
make nnue-learn ARCH=x86-64
|
|
|
|
See `src/Makefile` for detail.
|
|
|
|
|
|
### Convert
|
|
|
|
./stockfish
|
|
learn convert_bin converted_pgn.txt output_file_name pgn_bin.bin
|
|
learn shuffle pgn_bin.bin
|
|
|
|
You also need to prepare validation data for training like following.
|
|
|
|
python pgn_to_plain.py --pgn "pgn/ccrl-40-15-3400.pgn" --start_ply 1 --output ccrl-40-15-3400.txt
|
|
./stockfish
|
|
learn convert_bin ccrl-40-15-3400.txt ccrl-40-15-3400_plain.bin
|
|
|
|
|
|
### Learn
|
|
|
|
./stockfish
|
|
setoption name Threads value 8
|
|
learn shuffled_sfen.bin newbob_decay 0.5 validation_set_file_name ccrl-40-15-3400_plain.bin nn_batch_size 50000 batchsize 1000000 eval_save_interval 8000000 eta 0.05 lambda 0.0 eval_limit 3000 mirror_percentage 0 use_draw_in_training 1
|
|
|
|
|