What is the purpose of getSymmetries?
I have read the commentary
symmForms: a list of [(board,pi)] where each tuple is a symmetrical form of the board and the corresponding pi vector. This is used when training the neural network from examples.
But how to implement that function? If my Chess game has 2d board, is just horizontal symmetry enough, or should I always return 8 tuples, each for one symmetry? I have observed this from implemented games, but is it a general rule?
In which order should be these symmetries coming? I am lacking these information. Do I understand it correctly, that vector pi incoming to the function has non-zero values at positions, that are "legal" moves?
@pavolkacej did you manage to figure this out?
Hi @TheMessik I took a look how did Othello implement this. And implemented it the same way. Maybe you can try to run current code from repository, and put breakpoint into the getSymmetries method. Do some debugging (Pycharm can do it). Take a look into inputs and outputs of the method. I guess getSymmetries is used to rotate existing board and pi, so you will have more training data to be provided to model.
I believe you can train without adding these symmetries to training data. Just use your original dataset if you want to avoid this. It just provides more samples for training. Good luck!
@pavolkacej I've seen in another thread that for chess I can just return the board passed as an argument. It seems to be working, but I haven't been able to write a network without spitting errors. I am basing my code on your fork.
Would you maybe like to hop on call or just have a look at my code to see where it might go wrong? This is my first experience with RL en NN in general, so I don't exactly know what precisely I'm doing atm...
Hi @TheMessik, yes I saw this chess repository, and I think it is okay if you return only the passed argument. I am not expert neither, but I can take a look if you want. Aren't you also from Slovakia? My email is [email protected] if you want.
@pavolkacej I'm presuming you meant [email protected]? [email protected] cannot be found.