Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modification for a different game #2

Open
jasondaming opened this issue Sep 21, 2020 · 5 comments
Open

Modification for a different game #2

jasondaming opened this issue Sep 21, 2020 · 5 comments

Comments

@jasondaming
Copy link

I have taken the Checkers repo and made one that looks very similar for Bobail. This is a different game but I think it will be easily "solved" by this system. I have looked at the ImparaAI MCTS library and this one and I think the easiest thing to do to get the system working for Bobail would be to fork this repo do you agree? Any tips on what is working here and what I should avoid?

@sdsomma
Copy link
Contributor

sdsomma commented Sep 22, 2020

Hey @jasondaming thanks for interest in this project. It has been a while since we worked on this repo but I think your correct that you should be able to fork this repo and have it work for a new game. The most important things you will need to change surrounds the model. Your input/output/action space will have to modeled to your specific game. Also you will want to play around with how many hidden layers you train with, lessons per training session and total training time. I would play around with these locally first and once you have confidence ramp up in a cloud environment. On our project, we ran the nvidia.Dockerfile in a google cloud environment and saw decent results in a 24 hour training window.

@janhartigan
Copy link
Contributor

Yep as @sdsomma said, the key thing (as with most things ML) is the shape of the inputs and outputs. Everything else is essentially a shrunken-down version of AlphaZero (because we're not google rich). Most of our compute time was taken up by the actual simulation of the games rather than the training, so optimizing your game simulation code is probably the most important thing if you want to get good training sessions without spending tons of money or time.

It also might be worth poking around the latest research papers to see if there are some newer/better NN layer architectures. When we first began this project we didn't really know where to start, but looking through the DeepMind papers (and really understanding them) was probably the biggest key in unlocking the knowledge around the NN side of things. The MCTS stuff should be pretty straightforward using the library we made.

@jasondaming
Copy link
Author

I am having a lot of version issues building the docker files (I am mainly trying to get cpu to work right now). I noticed you didn't include version numbers so I am not exactly sure what it installed when you built. I am not an expert or anything on this process. I wonder if debian:strectch-slim is limiting us? I have got errors about needing tensorflow2.2, the pip version that installed was 9 which limited that, and now I can't get a semi recent version of python on there and circus says it needs >3.4

@jasondaming
Copy link
Author

So I changed the CPU dockerfile to use the Python 3.8 slim buster. It now only gets hung up on not being able to "find /usr/lib/python" any idea how to fix this or if this is even the best path to go down?

@jasondaming
Copy link
Author

I was able to get past the above problem by removing that line. Things at least run now but it looks like it can't find the prediction.db do I need to manually create it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants