Building your net from scratch is very interesting , it becomes part of you , almost like a family , and I have written shell scripts now to automate the process as best as I can. And today , my baby net made poppa proud.
[pgn]
[Event "Computer Chess Game"]
[Site "VM-894787"]
[Date "2021.03.08"]
[Round "-"]
[White "Stockfish 13"]
[Black "Zappa Mexico II"]
[Result "1-0"]
[TimeControl "60+1"]
[Annotator "1. -0.35 1... +0.03"]
1. d3 {-0.35/19} d5 {+0.03/12 9} 2. b3 {+0.39/16 2.9} e5 {+0.54/12 7} 3.
Nf3 {+0.32/16 7} Nc6 {+0.55/12 5} 4. Bb2 {+0.26/15 2.8} Qf6 {+0.48/12 11}
5. Nbd2 {+0.31/16 2.5} Bg4 {+0.46/11 4} 6. e3 {+0.28/17 1.7} O-O-O
{+0.43/10 2.2} 7. a3 {+0.29/17 1.9} Bd6 {+0.37/9 0.9} 8. b4 {+0.36/17 1.7}
Nge7 {+0.11/9 1.9} 9. b5 {+0.35/18 1.0} Nb8 {+0.07/11 2.6} 10. c4
{+0.31/18 4} Nd7 {-0.14/10 1.6} 11. cxd5 {+0.35/17 0.7} Nxd5 {-0.18/10 1.8}
12. Be2 {+0.31/19 2.8} Qg6 {-0.22/9 1.7} 13. O-O {+0.32/18 2.3} h5
{-0.38/9 1.6} 14. Qc2 {+0.35/19 1.5} f6 {-0.14/9 0.9} 15. Ne4
{+0.35/19 1.7} Be7 {-0.16/9 0.8} 16. Rfc1 {+0.31/21 8} h4 {-0.09/10 0.9}
17. a4 {+0.28/20 5} h3 {+0.29/10 1.0} 18. g3 {+0.33/20 0.7} Qh5
{+0.25/9 0.7} 19. Ned2 {+0.35/21 1.0} Nc5 {-0.11/9 1.7} 20. Ba3
{+0.34/19 1.0} Ne6 {-0.37/11 2.0} 21. a5 {+0.33/21 2.7} Bxa3 {-0.30/9 1.4}
22. Rxa3 {+0.34/19 0.9} Kb8 {-0.64/10 3} 23. Ra4 {+0.32/19 3} f5
{-0.14/9 0.8} 24. a6 {+0.32/16 0.8} f4 {-0.31/9 0.8} 25. axb7
{+4.24/18 1.1} fxe3 {-1.09/9 4} 26. Rxa7 {+9.11/20 1.2} c5 {-2.12/8 1.7}
27. bxc6 {+11.39/20 1.1} exf2+ {-2.76/8 1.7} 28. Kxf2 {+11.94/21 1.1} Qh6
{-3.09/9 1.6} 29. Nc4 {+12.86/20 1.6} Nd4 {-3.62/8 2.4} 30. Nxd4
{+15.59/21 1.3} exd4 {-6.11/8 2.0} 31. Bxg4 {+18.40/20 1.5} Rde8
{-12.47/9 3} 32. Bc8 {+35.86/19 1.1} Rxc8 {-17.23/9 2.9} 33. bxc8=Q+
{+1000.09/31 1.1} Kxc8 {-1000.08/12 1.0} 34. Qb2 {+1000.08/44 1.3} Rf8+
{-1000.07/14 0.3} 35. Kg1 {+1000.07/79 1.2} Qxc1+ {-1000.06/13 0.1} 36.
Qxc1 {+1000.06/86 0.5} Nc7 {-1000.05/13 0.1} 37. Qa3 {+1000.05/113 1.2}
Rf1+ {-1000.04/47 0.2} 38. Kxf1 {+1000.04/245 0.5} Kd8 {-1000.03/61 0.1}
39. Qf8+ {+1000.03/245 0.4} Ne8 {-1000.02/63 0.1} 40. Rd7+
{+1000.02/245 0.4} Kc8 {-1000.01/23 0.2} 41. Qxe8# {+1000.01/245 0.4}[/pgn]
{Xboard adjudication: Checkmate} 1-0
[d]1k1r3r/pPp3p1/4n3/1P1np2q/R5b1/3PpNPp/2QNBP1P/2R3K1 w - - 0 26
bm Rxa7
This was the first instance that i have seen make it kind of move like this - for world class engines this is a very easy move , but this is still a baby net, still working on sub depth 10 fens.
Code: Select all
dep score nodes time (not shown: tbhits knps seldep)
32 +18.83! 583.2M 3:55.89 Rxa7!
31 +18.75 564.3M 3:48.96 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nc5 Qa2 Qxc6 Nfxe5 Nxd3+ Nxd3 Rdf8+ Ke1 Rf1+ Bxf1 Re8+ Kd2 Qh6+ Kc2 Qc6 Ra8+ Kc7 Rxe8 Ne3+ Rxe3 Kxb7 Re7+ Kc8 Rxg7 Qh1 Rxg4 Qxh2+ Nd2
31 +19.02! 556.7M 3:46.31 Rxa7!
31 +18.46! 518.8M 3:31.20 Rxa7!
31 +18.02! 486.3M 3:17.76 Rxa7!
31 +17.70! 455.6M 3:06.27 Rxa7!
31 +17.56? 403.6M 2:44.70 Rxa7 c5?
31 +17.74? 399.8M 2:43.18 Rxa7 c5?
31 +17.86? 398.2M 2:42.56 Rxa7 c5?
31 +17.94? 396.9M 2:42.01 Rxa7 c5?
30 +18.02 388.2M 2:38.93 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nc5 Qa2 Qxc6 Nfxe5 Nxd3+ Nxd3 Rdf8+ Ke1 Bxe2 Ra8+ Kc7 Qa5+ Nb6 b8=Q+ Rxb8 Qe5+ Kd8 Qxb8+ Ke7 Qe5+ Kf7 Ra7+ Nd7 Nd6+ Qxd6 Qxd6 Rd8 Rxd7+ Kg8 Rxd8+ Kh7 Kxe2 g6 Qd7+ Kh6 Qxh3+ Kg7
30 +17.89! 382.6M 2:36.59 Rxa7!
30 +17.33! 369.2M 2:31.42 Rxa7!
30 +16.90! 357.7M 2:26.78 Rxa7!
30 +16.57! 347.3M 2:22.57 Rxa7!
30 +16.33! 335.0M 2:17.68 Rxa7!
30 +16.15! 321.3M 2:12.06 Rxa7!
30 +16.02! 304.8M 2:05.87 Rxa7!
30 +15.94! 281.1M 1:57.07 Rxa7!
29 +15.86 251.8M 1:44.73 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nc5 Qa2 Qxc6 Nfxe5 Nxd3+ Nxd3 Rdf8+ Ke1 Bxe2 Ra8+ Kc7 Qa5+ Nb6 b8=Q+ Rxb8 Qe5+ Kd8 Qxb8+ Nc8 Nce5 Qxc1+ Nxc1 Ke7 Ng6+ Kf6 Nxh8 Bg4 Ra6+ Ke7 Qc7+ Bd7 Nd3 Ke8 Qe5+ Kf8 Ng6+ Kg8 Qd5+ Kh7 Qxd7
29 +15.71! 241.1M 1:39.98 Rxa7!
29 +15.53! 231.1M 1:36.20 Rxa7!
29 +15.41! 217.4M 1:31.31 Rxa7!
29 +15.33! 197.1M 1:22.85 Rxa7!
28 +15.50! 188.3M 1:18.99 Rxa7!
28 +15.25! 181.3M 1:16.16 Rxa7!
28 +15.07! 171.6M 1:12.00 Rxa7!
28 +14.95! 159.9M 1:06.89 Rxa7!
28 +14.87! 140.5M 0:59.72 Rxa7!
27 +14.78 132.5M 0:56.33 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nc5 Qa2 Qxc6 Nfxe5 Nxd3+ Nxd3 Rdf8+ Ke1 Bxe2 Ra8+ Kc7 Qa5+ Nb6 b8=Q+ Rxb8 Qe5+ Kd8 Qxb8+ Nc8 Nce5 Qxc1+ Nxc1 Ke7 Ng6+ Kf6 Nxh8 Bg4 Qb2+ Kf5 Ra5+ Ke6 Qe5+ Kd7 Qxg7+ Kc6 Qxg4
27 +14.95! 132.4M 0:56.25 Rxa7!
27 +14.62! 128.3M 0:54.79 Rxa7!
27 +14.37! 124.4M 0:53.23 Rxa7!
27 +14.20! 120.0M 0:51.37 Rxa7!
27 +14.07! 114.9M 0:49.16 Rxa7!
27 +13.99! 104.8M 0:44.66 Rxa7!
26 +13.91 100.2M 0:42.49 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nc5 Qa2 Qxc6 Nfxe5 Nxd3+ Nxd3 Rdf8+ Ke1 Bxe2 Ra8+ Kc7 Qa5+ Nb6 b8=Q+ Rxb8 Qe5+ Kd8 Qxb8+ Nc8 Nce5 Qxc1+ Nxc1 Ke7 Ng6+ Kf6 Nxh8 Bf3 Ra6+ Ke7 Qxc8
26 +14.64! 100.0M 0:42.38 Rxa7!
26 +14.21! 96.7M 0:40.93 Rxa7!
26 +13.88! 93.7M 0:39.65 Rxa7!
26 +13.63! 91.4M 0:38.59 Rxa7!
26 +13.46! 88.7M 0:37.50 Rxa7!
26 +13.33! 85.3M 0:36.22 Rxa7!
26 +13.25! 80.2M 0:34.26 Rxa7!
25 +13.17 77.3M 0:33.15 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nc5 Qa2 Qxc6 Nfxe5 Nxd3+ Nxd3 Rhf8+ Ke1 Nb6 Ra8+ Kc7 Nxb6 Qxc1+ Nxc1 Rxa8 bxa8=Q Rxa8 Nxa8+ Kd6 Bxg4
25 +13.87! 77.0M 0:33.03 Rxa7!
25 +13.55! 74.6M 0:32.16 Rxa7!
25 +13.30! 72.3M 0:31.34 Rxa7!
25 +13.12! 69.1M 0:29.90 Rxa7!
25 +13.00! 65.0M 0:28.39 Rxa7!
25 +12.92! 57.7M 0:25.47 Rxa7!
24 +12.84 50.6M 0:22.36 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nd4 Nxd4 exd4 Bxg4 Qxc6 Ra8+ Kc7 Bc8 Qxb7 Bxb7 Rxa8 Bxd5 Raf8+ Kg1 Rc8 Ne5+ Kd6 Nf7+ Ke7 Qxc8 Rxc8 Rxc8 Kf6 Rf8 Kf5 Nd6+ Kg5
24 +12.71! 47.6M 0:21.08 Rxa7!
24 +11.99! 42.8M 0:18.97 Rxa7!
24 +11.42! 39.5M 0:17.49 Rxa7!
24 +11.06? 38.5M 0:17.00 Rxa7 c5?
24 +11.39? 37.7M 0:16.63 Rxa7 c5?
24 +11.94! 37.5M 0:16.52 Rxa7!
24 +11.76! 35.7M 0:15.69 Rxa7!
24 +11.63! 33.2M 0:14.51 Rxa7!
24 +11.55! 27.8M 0:12.01 Rxa7!
23 +11.47 25.0M 0:10.91 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nc5 Qa2 Qxc6 Nfxe5 Nxd3+ Nxd3 Nb6 Ra8+ Kc7 b8=Q+ Rxb8 Qa7+ Rb7 Na5 Rf8+ Rxf8 Rxa7 Rxc6+ Kd7 Rf7+ Ke8 Rxa7 Bxe2 Kxe2
23 +11.57! 24.9M 0:10.88 Rxa7!
23 +11.25! 24.2M 0:10.61 Rxa7!
23 +11.00! 23.3M 0:10.27 Rxa7!
23 +10.82! 22.1M 0:09.79 Rxa7!
23 +10.70! 20.5M 0:09.16 Rxa7!
23 +10.62! 18.5M 0:08.38 Rxa7!
22 +10.53 16.1M 0:07.37 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nd4 Nxd4 exd4 Bxg4 Qxc6 Ra8+ Kc7 Bc8 Qxb7 Bxb7 Nb4 Qe2 Nxd3+ Qxd3 Rxa8 Bf3 Ra2+ Kg1 Ra7
22 +10.61! 15.9M 0:07.32 Rxa7!
22 +10.17! 14.6M 0:06.78 Rxa7!
22 +9.85! 13.7M 0:06.41 Rxa7!
22 +9.57? 13.1M 0:06.15 Rxa7 c5?
22 +9.94! 12.9M 0:06.10 Rxa7!
22 +9.82! 12.5M 0:05.93 Rxa7!
22 +9.74! 12.0M 0:05.68 Rxa7!
21 +9.65 9.49M 0:04.34 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nd4 Nxd4 exd4 Bxg4 Qxc6 Qb2 Rdf8+ Kg1 Nc3 Bf3 Qb5 Ra8+ Kc7 Qxb5 Nxb5 Na3+ Nc3 Nb5+ Kd7 Rxf8 Rxf8 Nxd4 Rxf3
21 +9.75? 8.75M 0:03.94 Rxa7 c5?
21 +9.99? 8.70M 0:03.91 Rxa7 c5?
21 +10.17? 8.58M 0:03.85 Rxa7 c5?
21 +10.42! 8.49M 0:03.80 Rxa7!
21 +10.34! 6.86M 0:03.10 Rxa7!
20 +10.25 5.84M 0:02.68 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nd4 Nxd4 exd4 Bxg4 Qxc6 Qb2 Kxa7 b8=Q+ Rxb8 Ra1+ Qa6 Qxd4+ Kb7 Qxg7+ Kc6 Rxa6+ Kb5
19 +9.03 3.42M 0:01.66 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Bxf3 Qa2 Qxc1 Bxf3 Qxc4 dxc4 Nb6 Qa5 Rd2+ Qxd2 Kxa7
18 +7.77 3.00M 0:01.47 Rxa7 c5 bxc6 exf2+ Kxf2 Qh6 Nc4 Nd4 Nxd4 exd4 Bxg4 Qxc6 Ra8+ Kc7 b8=Q+ Rxb8 Ra7+ Kd8 Rd7+ Qxd7 Bxd7 Kxd7 Qe2 Rhc8 Qe5 Rxc4 Qxd5+ Ke7 Qxc4
17 +8.28 1.69M 0:00.87 Rxa7 c5 bxc6 Qh6 Nc4 Bxf3 Bxf3 Nd4 c7+ Kxc7 b8=Q+ Kxb8 Rb1+ Kxa7 Ra1+ Kb7
16 +6.84 1.15M 0:00.61 Rxa7 c5 bxc6 Qh6 Nc4 exf2+ Kxf2 Bxf3 Bxf3 Nc5 c7+ Kxc7 Rb1 Rb8 Bxd5 Rhf8+ Ke2 Qf6
15 +5.59 583662 0:00.32 Rxa7 c5 bxc6 Qh6 Nc4 Ng5 c7+ Nxc7 Ra8+ Nxa8 bxa8=Q+ Kxa8 Qa2+ Kb8 Qb2+ Kc7
14 +3.37 351115 0:00.20 Rxa7 exf2+ Kxf2 Nb4 Qa4 Nxd3+ Bxd3
13 +1.27 258289 0:00.15 Rca1 Bxf3 Bxf3 exf2+ Kxf2 Rhf8 Rxa7 Nd4
12 +0.12 162888 0:00.10 Rca1 Bxf3 Bxf3 exf2+ Kxf2 Rhf8 Rxa7 Nd4 Qd1 Nxf3 Ra8+ Kxb7 R8a7+ Kb6
11 +0.12 59038 0:00.04 fxe3 Bxf3 Nxf3 Qh6 Re4 Nb6 Rxe5 Kxb7 Rxe6 Qxe6 e4
10 +0.13 33541 0:00.02 fxe3 Bxf3 Nxf3 Qh6 Rca1 Nxe3 Qb2 Nc5
9 -0.13 25202 0:00.02 fxe3 Qh6 Nxe5 Qxe3+ Kh1 Qxe5 Bxg4 Rd6
8 +0.14 11142 0:00.01 fxe3 Nxe3 Qc3 Kxb7 Kf2 c5 bxc6+ Kb6 Kxe3
7 -0.14 7470 0:00.01 b6 cxb6 fxe3 g6 Qb2 Nxe3
6 -0.13 4443 0:00.00 Bd1 exd2 Nxd2 Nd4 Bxg4 Qxg4
5 -0.12 2591 0:00.00 Nc4 Nd4 Nxd4 exd4 Bxg4
4 +0.14 974 0:00.00 Rxa7 c5 bxc6 exd2
3 +1.75 445 0:00.00 Rxa7 Kxa7 fxe3
2 +0.14 335 0:00.00 Rxa7 exf2+ Kxf2
1 NNUE evaluation using C:\Users\MichaelB7\home\nnue-gui.1.5\reinforce-network\final\nn-5bc138893ae9.nnue enabled
1 -0.14 147 0:00.00 b6 exf2+ Kxf2 axb6
0 #
Below is my shell script how i have now automated nnue training. I alternate between pure and combo and between lambda=10.5 and lambda =0.5 and run training sessions repeatedly. I have found the best results for me in reinforcement training is to use a small batch size of 200000. This one script will kick off 80 consecutive learn sessions in a row and takes about 20 minutes to run on 3970x. After which , it will be time to generate new positions with the final nn.bin which is the time consuming part and I have simple script for that as well. With the scripts I am now able to make much better progress, the first week I spent most of time just trying how to figure out how to make progress in period. As my script runs, I will just grab the latest nn.bin abd see how it does against Zappa in Winboard at tc 1 min 1 sec with single thread.
call this by using "source whatyounameit.sh" on mingw
Code: Select all
########################################################################
# Reinforcement Training #
########################################################################
for p in `seq 1 $bigloop`;
do
########################################################################
# #
# Cycle Through Pure and Combo #
NT=( "pure" "combo" ) #
########################################################################
# #
# Cycle Through Lammda 1.0 and 0.5 #
LA=( "0.5" "1.0" ) #
########################################################################
## rm outpul directories from previous run
let ntcycle=2 ## set to zero to skip
for k in `seq 1 $ntcycle`;
do
let lacycle=2 ## set to zero to skip
for m in `seq 1 $lacycle`;
do
let loops=2 ## set to zero to skip
z=0
for i in `seq 1 $loops`;
do
z=$((z+1))
echo -e "\n Cycle: $p\n NNUE Value: ${NT[${k}-1]}\n Lamda: ${LA[${m}-1]}\n Round: $z\n"
cd "/c/Users/MichaelB7/home/nnue-gui.1.5/reinforce-network/final/"
nnbin=nn.bin
name=nn-$(sha256sum ${nnbin} | cut -c1-12).nnue
echo ${name}
mv ${nnbin} ${name}
cp ${name} ../../
cd ../../
sleep 3 # to pause
threads=50
valfile=M1_D8
options="uci
setoption name Use NNUE value ${NT[${k}-1]}
setoption name Hash value 10240
setoption name Threads value $threads
setoption name EvalSaveDir value reinforce-network
setoption name SkipLoadingEval value false
setoption name EvalFile value $name
setoption name SyzygyPath value c:/syzygy
isready
learn targetdir training validation_set_file_name validation/$valfile.binpack set_recommended_uci_options use_draw_in_training 1 use_draw_in_validation 1 eval_limit 32000 epochs 1000 lr 1 lambda ${LA[${m}-1]} nn_batch_size 1000 batchsize 200000 eval_save_interval 200000 loss_output_interval 200000 newbob_decay 0.5 newbob_num_trials 4
quit"
printf "$options" | ./stockfish
done
done
done
done