diff options
| author | tslil clingman <tslil@posteo.de> | 2021-03-17 23:10:53 -0400 |
|---|---|---|
| committer | tslil <tslil@posteo.de> | 2026-08-28 19:37:41 +0100 |
| commit | c9823c76dd43aa40bef3f67fa0940a78cb40bf05 (patch) | |
| tree | e4049f1271876c40ffa264bee9c1cb69dc6efcf6 /src | |
| parent | 00a04c2929bdc8f8f4bf7d5d8cf413ebfb3cd006 (diff) | |
Corrected generation of training data for 6s
Diffstat (limited to 'src')
| -rw-r--r-- | src/cnn_train.py | 2 | ||||
| -rw-r--r-- | src/pptdb.c | 16 |
2 files changed, 9 insertions, 9 deletions
diff --git a/src/cnn_train.py b/src/cnn_train.py index 111aa76..4ba0a0b 100644 --- a/src/cnn_train.py +++ b/src/cnn_train.py @@ -1,4 +1,4 @@ -# train5.py, train a small CNN to recognise winning Tak positions +# cnn_train.py, train a small CNN to recognise winning Tak positions # # Copyright (C) 2021, tslil clingman # diff --git a/src/pptdb.c b/src/pptdb.c index 8684c47..79f60c5 100644 --- a/src/pptdb.c +++ b/src/pptdb.c @@ -29,8 +29,6 @@ uint64_t heights[16]; FILE *training_fh = NULL; float max_flats, outcome_black; -const int max_depth = 6; - static void write_input(const int dx, const int dy, const uint8_t swap) { // Two numbers for flats remaining @@ -41,7 +39,7 @@ write_input(const int dx, const int dy, const uint8_t swap) { // Write the board layers float val; int col, row; - for (uint8_t depth = 0; depth < max_depth; depth++) { + for (uint8_t depth = 0; depth < board_size + 1; depth++) { row = (dy>0)?-1:board_size; for (int i = 0; i < board_size; i++) { row += dy; @@ -134,11 +132,13 @@ parse_line(const char *pt, const ssize_t read) { } } } - // Generate training data, not too early in the game, all - // orientations - if (generate && ply + 3 >= total_plies) { -#define RANDPM1 ((rand()&1)?-1:+1) - write_input(RANDPM1, RANDPM1, rand()&1); + // Generate training data, not too early in the game and not at + // the end, under all eight symmetries of the board + if (generate && ply < total_plies && ply + 2 >= total_plies) { + write_input(+1, +1, 1); write_input(+1, +1, 0); + write_input(+1, -1, 1); write_input(+1, -1, 0); + write_input(-1, +1, 1); write_input(-1, +1, 0); + write_input(-1, -1, 1); write_input(-1, -1, 0); } // Parse next action while (idx<read && pt[idx++]!=','); |
