mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-22 10:06:26 +08:00
Merged the training data generator and the machine learning logic from YaneuraOu.
This commit is contained in:
@@ -80,6 +80,9 @@ typedef std::unique_ptr<std::deque<StateInfo>> StateListPtr;
|
||||
/// traversing the search tree.
|
||||
class Thread;
|
||||
|
||||
// pack<63><6B><EFBFBD>ꂽsfen
|
||||
struct PackedSfen { uint8_t data[32]; };
|
||||
|
||||
class Position {
|
||||
public:
|
||||
static void init();
|
||||
@@ -187,6 +190,29 @@ public:
|
||||
const Eval::EvalList* eval_list() const { return &evalList; }
|
||||
#endif // defined(EVAL_NNUE)
|
||||
|
||||
#if defined(EVAL_LEARN)
|
||||
// <20><><EFBFBD>ǖʂŎw<C58E><77><EFBFBD>肪<EFBFBD>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD><EFBFBD><EFBFBD>e<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD>w<EFBFBD><77><EFBFBD>萶<EFBFBD><E890B6><EFBFBD><EFBFBD><EFBFBD>[<5B>`<60><><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD>̂ő<CC82><C591><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>B<EFBFBD>T<EFBFBD><54><EFBFBD><EFBFBD><EFBFBD>ɂ͎g<CD8E><67><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD>ƁB
|
||||
bool is_mated() const;
|
||||
|
||||
// -- sfen<65><6E><EFBFBD>w<EFBFBD><77><EFBFBD>p
|
||||
|
||||
// pack<63><6B><EFBFBD>ꂽsfen<65><EFBFBD><F093BE82>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD>Ɏw<C98E>肵<EFBFBD><E882B5><EFBFBD>o<EFBFBD>b<EFBFBD>t<EFBFBD>@<40>ɕԂ<C995><D482>B
|
||||
// gamePly<6C><79>pack<63>Ɋ܂߂Ȃ<DF82><C882>B
|
||||
void sfen_pack(PackedSfen& sfen);
|
||||
|
||||
// <20><>sfen<65><6E><EFBFBD>o<EFBFBD>R<EFBFBD><52><EFBFBD><EFBFBD><EFBFBD>ƒx<C692><78><EFBFBD>̂Œ<CC82><C592><EFBFBD>pack<63><6B><EFBFBD>ꂽsfen<65><6E><EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D690><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||||
// pos.set(sfen_unpack(data),si,th); <20>Ɠ<EFBFBD><C693><EFBFBD><EFBFBD>B
|
||||
// <20>n<EFBFBD><6E><EFBFBD>ꂽ<EFBFBD>ǖʂɖ<CA82><C996>肪<EFBFBD><E882AA><EFBFBD><EFBFBD><EFBFBD>āA<C481>G<EFBFBD><47><EFBFBD>[<5B>̂Ƃ<CC82><C682>͔<EFBFBD>0<EFBFBD><30><EFBFBD>Ԃ<EFBFBD><D482>B
|
||||
// PackedSfen<65><6E>gamePly<6C>͊܂܂Ȃ<DC82><C882>̂ŕ<CC82><C595><EFBFBD><EFBFBD>ł<EFBFBD><C582>Ȃ<EFBFBD><C882>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݒ肵<DD92><E882B5><EFBFBD><EFBFBD><EFBFBD>̂ł<CC82><C582><EFBFBD><EFBFBD>Έ<EFBFBD><CE88><EFBFBD><EFBFBD>Ŏw<C58E>肷<EFBFBD>邱<EFBFBD>ƁB
|
||||
int set_from_packed_sfen(const PackedSfen& sfen, StateInfo* si, Thread* th, bool mirror = false);
|
||||
|
||||
// <20>ՖʂƎ<CA82><C68E><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>Ԃ<EFBFBD><D482>^<5E><><EFBFBD>āA<C481><41><EFBFBD><EFBFBD>sfen<65><6E><EFBFBD>Ԃ<EFBFBD><D482>B
|
||||
//static std::string sfen_from_rawdata(Piece board[81], Hand hands[2], Color turn, int gamePly);
|
||||
|
||||
// c<><63><EFBFBD>̋ʂ̈ʒu<CA92><75><EFBFBD>Ԃ<EFBFBD><D482>B
|
||||
Square king_square(Color c) const { return pieceList[make_piece(c, KING)][0]; }
|
||||
#endif // EVAL_LEARN
|
||||
|
||||
private:
|
||||
// Initialization helpers (used while setting up a position)
|
||||
void set_castling_right(Color c, Square rfrom);
|
||||
|
||||
Reference in New Issue
Block a user