io-chess
UCI chess engine
Loading...
Searching...
No Matches
ExpertDatasetWriter Class Reference

#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_EXPERTSfeature_writers
std::array< std::unique_ptr< WDLWriter >, NUM_EXPERTSlabel_writers
std::array< size_t, NUM_EXPERTScounts

Static Private Attributes

static constexpr int NUM_EXPERTS = 6
static constexpr float AUX_GATE_THRESHOLD = 0.1f

Detailed Description

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:

  • Base experts (0-3): Sample goes to argmax(base_weights)
  • Aux experts (4-5): Sample goes if gate > 0.1

Constructor & Destructor Documentation

◆ ExpertDatasetWriter()

ExpertDatasetWriter::ExpertDatasetWriter ( const std::string & output_dir,
size_t batch_capacity = 10000 )

◆ ~ExpertDatasetWriter()

ExpertDatasetWriter::~ExpertDatasetWriter ( )
Here is the call graph for this function:

Member Function Documentation

◆ add()

void ExpertDatasetWriter::add ( const ChessInput & features,
const WDLOutput & wdl,
const ExpertRouter::ExpertWeights & weights )

Add sample to appropriate expert(s) based on routing weights

Parameters
featuresThe input features
wdlThe WDL labels
weightsThe expert routing weights from ExpertRouter

◆ flush()

void ExpertDatasetWriter::flush ( )

Flush all buffers to disk

Here is the caller graph for this function:

◆ print_stats()

void ExpertDatasetWriter::print_stats ( ) const

Print statistics about samples per expert

Member Data Documentation

◆ AUX_GATE_THRESHOLD

float ExpertDatasetWriter::AUX_GATE_THRESHOLD = 0.1f
staticconstexprprivate

◆ counts

std::array<size_t, NUM_EXPERTS> ExpertDatasetWriter::counts
private

◆ feature_writers

std::array<std::unique_ptr<DatasetWriter>, NUM_EXPERTS> ExpertDatasetWriter::feature_writers
private

◆ label_writers

std::array<std::unique_ptr<WDLWriter>, NUM_EXPERTS> ExpertDatasetWriter::label_writers
private

◆ NUM_EXPERTS

int ExpertDatasetWriter::NUM_EXPERTS = 6
staticconstexprprivate

The documentation for this class was generated from the following files: