UCI and ChessX
Hi guys, I was not familiar with UCI protocol, but I've tried to connect chess-zero with ChessX, and to make it worked, I had to change the parsing of the "position" command. It seems like this program is sending the extra token "fen". ChessX sends the command: position fen rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1
Once I fixed it it kind of work.
Another question, any reason why when starting chess-zero in UCI mode, it still used "MTCS", why not simply returning argmax of the CNN output? I'm asking because in my case (with my hardware), calculating a move by player_chess takes several seconds. Looking at it today, it seems like player_chess evaluate about 100 positions using CNN, and calling predict() takes 150-200ms on my computer.
Good catch on the "fen", I think the UCI protocol isn't supposed to have that but it can't hurt to check for it. (just patched now)
The raw NN policy would be really bad on its own, but if you really want to test it out just set the number of simulations to 2 in config.py (it would just expand the root node and then the action with highest probability).