// NNUE評価関数で用いる入力特徴量とネットワーク構造の定義 #ifndef HALFKP_CR_EP_256X2_32_32_H #define HALFKP_CR_EP_256X2_32_32_H #include "../features/feature_set.h" #include "../features/half_kp.h" #include "../features/castling_right.h" #include "../features/enpassant.h" #include "../layers/input_slice.h" #include "../layers/affine_transform.h" #include "../layers/clipped_relu.h" namespace Eval { namespace NNUE { // 評価関数で用いる入力特徴量 using RawFeatures = Features::FeatureSet< Features::HalfKP, Features::CastlingRight, Features::EnPassant>; // 変換後の入力特徴量の次元数 constexpr IndexType kTransformedFeatureDimensions = 256; namespace Layers { // ネットワーク構造の定義 using InputLayer = InputSlice; using HiddenLayer1 = ClippedReLU>; using HiddenLayer2 = ClippedReLU>; using OutputLayer = AffineTransform; } // namespace Layers using Network = Layers::OutputLayer; } // namespace NNUE } // namespace Eval #endif // HALFKP_CR_EP_256X2_32_32_H