|
io-chess
UCI chess engine
|
#include <Writers.hpp>
Public Member Functions | |
| ExpertDatasetWriter (const std::string &output_dir, size_t batch_capacity=10000) | |
| ~ExpertDatasetWriter () | |
| void | add (const ChessInput &features, const WDLOutput &wdl, const ExpertRouter::ExpertWeights &weights) |
| void | flush () |
| void | print_stats () const |
Private Attributes | |
| std::array< std::unique_ptr< DatasetWriter >, NUM_EXPERTS > | feature_writers |
| std::array< std::unique_ptr< WDLWriter >, NUM_EXPERTS > | label_writers |
| std::array< size_t, NUM_EXPERTS > | counts |
Static Private Attributes | |
| static constexpr int | NUM_EXPERTS = 6 |
| static constexpr float | AUX_GATE_THRESHOLD = 0.1f |
ExpertDatasetWriter - Writes separate feature/label files per expert
Creates 6 pairs of files: expert0_features.bin, expert0_labels.bin (Tactical) expert1_features.bin, expert1_labels.bin (Strategic) expert2_features.bin, expert2_labels.bin (Major Endgame) expert3_features.bin, expert3_labels.bin (Minor Endgame) expert4_features.bin, expert4_labels.bin (Survivor) expert5_features.bin, expert5_labels.bin (Killer)
Routing:
| ExpertDatasetWriter::ExpertDatasetWriter | ( | const std::string & | output_dir, |
| size_t | batch_capacity = 10000 ) |
| ExpertDatasetWriter::~ExpertDatasetWriter | ( | ) |

| void ExpertDatasetWriter::add | ( | const ChessInput & | features, |
| const WDLOutput & | wdl, | ||
| const ExpertRouter::ExpertWeights & | weights ) |
Add sample to appropriate expert(s) based on routing weights
| features | The input features |
| wdl | The WDL labels |
| weights | The expert routing weights from ExpertRouter |
| void ExpertDatasetWriter::flush | ( | ) |
Flush all buffers to disk

| void ExpertDatasetWriter::print_stats | ( | ) | const |
Print statistics about samples per expert
|
staticconstexprprivate |
|
private |
|
private |
|
private |
|
staticconstexprprivate |