1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-07-11 19:49:14 +00:00
BadFish/src
Tomasz Sobczyk 2e745956c0 Change trace with NNUE eval support
This patch adds some more output to the `eval` command. It adds a board display
with estimated piece values (method is remove-piece, evaluate, put-piece), and
splits the NNUE evaluation with (psqt,layers) for each bucket for the NNUE net.

Example:

```

./stockfish
position fen 3Qb1k1/1r2ppb1/pN1n2q1/Pp1Pp1Pr/4P2p/4BP2/4B1R1/1R5K b - - 11 40
eval

 Contributing terms for the classical eval:
+------------+-------------+-------------+-------------+
|    Term    |    White    |    Black    |    Total    |
|            |   MG    EG  |   MG    EG  |   MG    EG  |
+------------+-------------+-------------+-------------+
|   Material |  ----  ---- |  ----  ---- | -0.73 -1.55 |
|  Imbalance |  ----  ---- |  ----  ---- | -0.21 -0.17 |
|      Pawns |  0.35 -0.00 |  0.19 -0.26 |  0.16  0.25 |
|    Knights |  0.04 -0.08 |  0.12 -0.01 | -0.08 -0.07 |
|    Bishops | -0.34 -0.87 | -0.17 -0.61 | -0.17 -0.26 |
|      Rooks |  0.12  0.00 |  0.08  0.00 |  0.04  0.00 |
|     Queens |  0.00  0.00 | -0.27 -0.07 |  0.27  0.07 |
|   Mobility |  0.84  1.76 |  0.01  0.66 |  0.83  1.10 |
|King safety | -0.99 -0.17 | -0.72 -0.10 | -0.27 -0.07 |
|    Threats |  0.27  0.27 |  0.73  0.86 | -0.46 -0.59 |
|     Passed |  0.00  0.00 |  0.79  0.82 | -0.79 -0.82 |
|      Space |  0.61  0.00 |  0.24  0.00 |  0.37  0.00 |
|   Winnable |  ----  ---- |  ----  ---- |  0.00 -0.03 |
+------------+-------------+-------------+-------------+
|      Total |  ----  ---- |  ----  ---- | -1.03 -2.14 |
+------------+-------------+-------------+-------------+

 NNUE derived piece values:
+-------+-------+-------+-------+-------+-------+-------+-------+
|       |       |       |   Q   |   b   |       |   k   |       |
|       |       |       | +12.4 | -1.62 |       |       |       |
+-------+-------+-------+-------+-------+-------+-------+-------+
|       |   r   |       |       |   p   |   p   |   b   |       |
|       | -3.89 |       |       | -0.84 | -1.19 | -3.32 |       |
+-------+-------+-------+-------+-------+-------+-------+-------+
|   p   |   N   |       |   n   |       |       |   q   |       |
| -1.81 | +3.71 |       | -4.82 |       |       | -5.04 |       |
+-------+-------+-------+-------+-------+-------+-------+-------+
|   P   |   p   |       |   P   |   p   |       |   P   |   r   |
| +1.16 | -0.91 |       | +0.55 | +0.12 |       | +0.50 | -4.02 |
+-------+-------+-------+-------+-------+-------+-------+-------+
|       |       |       |       |   P   |       |       |   p   |
|       |       |       |       | +2.33 |       |       | +1.17 |
+-------+-------+-------+-------+-------+-------+-------+-------+
|       |       |       |       |   B   |   P   |       |       |
|       |       |       |       | +4.79 | +1.54 |       |       |
+-------+-------+-------+-------+-------+-------+-------+-------+
|       |       |       |       |   B   |       |   R   |       |
|       |       |       |       | +4.54 |       | +6.03 |       |
+-------+-------+-------+-------+-------+-------+-------+-------+
|       |   R   |       |       |       |       |       |   K   |
|       | +4.81 |       |       |       |       |       |       |
+-------+-------+-------+-------+-------+-------+-------+-------+

 NNUE network contributions (Black to move)
+------------+------------+------------+------------+
|   Bucket   |  Material  | Positional |   Total    |
|            |   (PSQT)   |  (Layers)  |            |
+------------+------------+------------+------------+
|  0         |  +  0.32   |  -  1.46   |  -  1.13   |
|  1         |  +  0.25   |  -  0.68   |  -  0.43   |
|  2         |  +  0.46   |  -  1.72   |  -  1.25   |
|  3         |  +  0.55   |  -  1.80   |  -  1.25   |
|  4         |  +  0.48   |  -  1.77   |  -  1.29   |
|  5         |  +  0.40   |  -  2.00   |  -  1.60   |
|  6         |  +  0.57   |  -  2.12   |  -  1.54   | <-- this bucket is used
|  7         |  +  3.38   |  -  2.00   |  +  1.37   |
+------------+------------+------------+------------+

Classical evaluation   -1.00 (white side)
NNUE evaluation        +1.54 (white side)
Final evaluation       +2.38 (white side) [with scaled NNUE, hybrid, ...]

```

Also renames the export_net() function to save_eval() while there.

closes https://github.com/official-stockfish/Stockfish/pull/3562

No functional change
2021-06-19 11:57:01 +02:00
..
incbin Embed default net, and simplify using non-default nets 2020-08-29 21:56:00 +02:00
nnue Change trace with NNUE eval support 2021-06-19 11:57:01 +02:00
syzygy Fix a rare case of wrong TB ranking 2021-06-14 17:28:30 +02:00
benchmark.cpp Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
bitbase.cpp Small cleanups (march 2021) 2021-03-24 17:11:06 +01:00
bitboard.cpp Small clean-up 2021-03-31 08:12:25 +02:00
bitboard.h Small clean-up 2021-03-31 08:12:25 +02:00
endgame.cpp Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
endgame.h Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
evaluate.cpp Change trace with NNUE eval support 2021-06-19 11:57:01 +02:00
evaluate.h Change trace with NNUE eval support 2021-06-19 11:57:01 +02:00
main.cpp Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
Makefile Fix for Cygwin's environment build-profile (fixed) 2021-06-19 11:22:30 +02:00
material.cpp Small cleanups (march 2021) 2021-03-24 17:11:06 +01:00
material.h Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
misc.cpp E2K: added support for MCST Elbrus 2000 CPU architecture 2021-05-11 19:45:14 +02:00
misc.h Read NNUE net faster 2021-06-13 09:39:03 +02:00
movegen.cpp Simplify promotion move generator 2021-06-08 20:16:20 +02:00
movegen.h Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
movepick.cpp Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
movepick.h Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
pawns.cpp Small cleanups (march 2021) 2021-03-24 17:11:06 +01:00
pawns.h Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
position.cpp Reduce the number of accumulator states 2021-06-14 11:22:08 +02:00
position.h Change trace with NNUE eval support 2021-06-19 11:57:01 +02:00
psqt.cpp Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
psqt.h Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
search.cpp Simplify reduction when best move doesn't change frequently. 2021-06-17 02:08:33 +02:00
search.h Limit double extensions 2021-06-11 20:33:24 +02:00
thread.cpp Small cleanups (march 2021) 2021-03-24 17:11:06 +01:00
thread.h Simplify reduction for consecutive fails 2021-05-22 19:02:36 +02:00
thread_win32_osx.h Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
timeman.cpp Remove Tempo 2021-05-19 20:34:37 +02:00
timeman.h Remove Tempo 2021-05-19 20:34:37 +02:00
tt.cpp Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
tt.h Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
tune.cpp Remove BoolConditions from tuning code 2021-05-15 09:40:40 +02:00
tune.h Remove BoolConditions from tuning code 2021-05-15 09:40:40 +02:00
types.h Remove Tempo 2021-05-19 20:34:37 +02:00
uci.cpp Change trace with NNUE eval support 2021-06-19 11:57:01 +02:00
uci.h Add Stockfish namespace. 2021-03-07 14:26:54 +01:00
ucioption.cpp Add Stockfish namespace. 2021-03-07 14:26:54 +01:00