Today, I finished the UCI-LNN implementation which means that a net can now be loaded and used by Loki

Right after I did this, I played a game against it and got completely crushed

[pgn][Event "My Tournament"]
[Site "?"]
[Date "2021.06.05"]
[Round "1"]
[White "Loki LNN"]
[Black "Loki 3.0.0 64-bit"]
[Result "0-1"]
[ECO "B01"]
[GameDuration "00:01:45"]
[GameEndTime "2021-06-05T14:50:35.676 Rom, sommertid"]
[GameStartTime "2021-06-05T14:48:49.949 Rom, sommertid"]
[Opening "Scandinavian (center counter) defense"]
[PlyCount "104"]
[TimeControl "60+0.1"]
1. e4 {+0.28/7 2.1s} d5 {-0.22/9 2.1s} 2. exd5 {+0.39/7 2.0s} c6 {-0.55/10 2.0s}
3. c4 {+0.50/8 1.9s} Nf6 {-0.27/11 1.9s} 4. Nc3 {+0.58/7 1.9s}
cxd5 {-0.27/10 1.9s} 5. cxd5 {+0.46/8 1.8s} Nxd5 {-0.35/10 1.8s}
6. d4 {+0.42/7 1.8s} e6 {-0.27/9 1.7s} 7. Nf3 {+0.49/7 1.7s} Bb4 {-0.35/9 1.7s}
8. Bd2 {+0.47/7 1.6s} O-O {-0.62/9 1.6s} 9. Bc4 {+0.58/7 1.6s}
Bxc3 {-0.36/9 1.6s} 10. bxc3 {+0.37/8 1.5s} Qc7 {-0.56/9 1.5s}
11. Qe2 {+0.70/7 1.5s} Nc6 {-0.43/9 1.5s} 12. O-O-O {+0.61/6 1.5s}
a5 {+0.36/9 1.4s} 13. Rhe1 {+0.83/6 1.4s} a4 {+0.45/9 1.4s}
14. Qe4 {+0.67/6 1.4s} Ncb4 {+0.72/10 1.4s} 15. Ng5 {+0.68/7 1.3s}
Nf6 {+1.01/10 1.3s} 16. Qe2 {+0.20/8 1.3s} Nbd5 {+0.94/9 1.3s}
17. Nf3 {+0.21/7 1.2s} b5 {+1.26/10 1.2s} 18. Bxb5 {-0.09/8 1.2s}
Nxc3 {+3.45/12 1.2s} 19. Bxc3 {-1.23/8 1.2s} Qxc3+ {+4.03/12 1.2s}
20. Kb1 {-1.68/7 1.1s} Rb8 {+5.43/10 1.1s} 21. Rc1 {-3.59/7 1.1s}
Qa5 {+5.64/10 1.1s} 22. Ka1 {-3.71/6 1.1s} Rxb5 {+5.78/10 1.1s}
23. Ne5 {-4.38/6 1.0s} Bb7 {+6.33/9 1.0s} 24. g3 {-4.48/6 1.00s}
Rb4 {+6.39/8 0.99s} 25. Rc5 {-4.32/6 0.97s} Qd8 {+6.83/9 0.97s}
26. Rc4 {-4.76/6 0.94s} Ba6 {+6.72/11 0.94s} 27. Rxb4 {-3.79/8 0.91s}
Bxe2 {+7.89/11 0.91s} 28. Rxe2 {-3.96/7 0.88s} Qa8 {+8.02/10 0.88s}
29. a3 {-4.11/6 0.86s} Qh1+ {+8.53/10 0.86s} 30. Rb1 {-4.44/6 0.82s}
Qxh2 {+8.91/10 0.83s} 31. Rc1 {-4.90/6 0.80s} Qh5 {+9.01/10 0.81s}
32. Rb2 {-4.75/6 0.80s} Ne4 {+8.93/9 0.78s} 33. Re1 {-4.83/6 0.77s}
Qf5 {+9.26/9 0.76s} 34. Re3 {-5.02/6 0.74s} Rc8 {+10.02/10 0.74s}
35. Rf3 {-5.15/6 0.73s} Qh5 {+10.56/10 0.72s} 36. Ka2 {-6.23/7 0.70s}
h6 {+11.67/10 0.70s} 37. Rd3 {-5.85/7 0.68s} Nc3+ {+13.27/12 0.68s}
38. Rxc3 {-6.70/8 0.66s} Rxc3 {+13.28/11 0.66s} 39. Rb8+ {-7.20/7 0.64s}
Kh7 {+15.12/10 0.64s} 40. Kb2 {-7.45/7 0.61s} Rc7 {+16.65/11 0.62s}
41. g4 {-7.84/7 0.60s} Qh1 {+18.65/11 0.60s} 42. Nd3 {-10.42/6 0.58s}
Qd1 {+26.17/12 0.58s} 43. Ka2 {-15.18/8 0.57s} Qxd3 {+M9/8 0.57s}
44. Rb2 {-15.55/6 0.56s} Rc3 {+M7/8 0.55s} 45. Rb7 {-14.76/4 0.54s}
Rxa3+ {+M5/38 0.54s} 46. Kb2 {-M4/100 0.26s} Rb3+ {+28.04/11 0.53s}
47. Rxb3 {-17.52/7 0.52s} Qxb3+ {+28.30/9 0.51s} 48. Kc1 {-17.56/6 0.51s}
f5 {+18.72/9 0.50s} 49. gxf5 {-14.26/7 0.49s} a3 {+30.22/10 0.48s}
50. fxe6 {-13.78/6 0.48s} Qb2+ {+M5/100 0.25s} 51. Kd1 {-M4/100 0.10s}
a2 {+M3/100 0.030s} 52. Ke1 {-M2/100 0.016s} a1=Q# {+M1/100 0.005s, Black mates}
0-1
[/pgn]
Now, even though the network version lost, I think this is a very important milestone for Loki's LNN. This game wasn't really meant as a real test, but more to see if the network version could even play semi-descent chess... Which it did

What I need now, is to generate some more training data. I would ideally like to do this myself instead of using someone else's positions. Therefore I am thinking of the following plan:
All positions will be generated using fixed-depth self-play with the classical version of Loki. Then, I can set bounds on which scores to include (for example, not mate scores or +/- 900cp etc..), determine if I want drawn games to be included and so on. When a game is finished, all positions, their evaluations and the game result is appended to a list that will then be written to either an EPD-file or some kind of binary file (probably the latter though. It is both faster and more space-efficient). This will be made multi-threaded in such a way that an arbitrary amount of threads are launched, and they will each generate 1/N of the positions.
I hope to be finished with the generator soon. As soon as that is finished, I can begin training a real net. 3k elo, here I come
