Conversation
|
Note that this doesn't work at all, because it never seems to get out of draw in self play phase. |
|
I will close this pull request as I refine the code further first, but curious to hear if you have any thoughts already. Thanks and sorry for the noise. |
|
Hi Nada Thanks so much for taking the time to take a deep dive into the code and writing up a chess implementation. It would definitely be a super useful addition to the repository. The API change seems fine, the only caveat is that files for other games will need to be modified to add that method (should be just 2-3 lines). Would be worth testing it to see if it gets out of the draws in self-play. If it doesn't, it might be due to a bug either in the game logic or in the neural network architecture or training. Good luck and I'm looking forward to the chess implementation! |
|
|
||
| print('NEW/PREV WINS : %d / %d ; DRAWS : %d' % (nwins, pwins, draws)) | ||
| if pwins+nwins == 0 or float(nwins)/(pwins+nwins) < self.args.updateThreshold: | ||
| if (not (pwins+nwins == 0)) and (float(nwins)/(pwins+nwins) < self.args.updateThreshold): |
Hi,
Thanks for this great work. I love how everything is pluggable.
I don't claim this is ready as is for merging, but just wanted to let you know that I am interested in contributing a small chess implementation.
API changes:
toArrayin theGameinterface so that the board representation can be more general for self play and just converted to an array for the neural network.getGameEndedpassing player 1 instead of the current player. This seems OK, but just wanted to amend the documentation.Chess:
import chess...(The changes to main.py are FYI, not to be merged.)
Thanks again for this work. It's been so much fun and enlightening to play with it.