- Script to play against the NN
- UCI interface?
- Duels against Stockfish for Benchmarking?
- Have a helper class to organize models and training data?
- Add proper resume function
- Add arguments for mixed precision training:
- enable=True/False
- arguments for GradScaler
- Save GradScaler state
- Save more infos in model_dict, such as
- batchsize for each checkpoint
- learning rate for each checkpoint
- save hyperparams (model params) for automated model loading
- Support to change batchsize and learning rate over time (+ resume)
- Training script will have lots of args. Might need YAML config or so.
- Add support for old DataLoader
- In speedtest.py and hf_trainer(_multi).py, add:
- argparse launch args for
- CPU or CUDA + optional device IDs
- batchsize
- num workers
- print timestamp of run and params used for easier eyeballing and separation of runs
- optional logging of ^ and what not
- argparse launch args for
- Add code to find best combined values for batchsize, device ids (1-vs-m), num_workers
- Add code to compare and find best activation function wrt model accuracy, maybe also check best convergence rates?
- Test relation between width, depth and speed. Best combo for tree search?
- BatchNorm instead of LayerNorm?
- Predict scores for all legal moves at once.
- Cleaner embedding style for convolutional architecture.
- Bitboards to get legal moves.
- Tree search (maybe slow one in Python first is ok?)
- Test standard fully-connected transformer on longer training run?