TensorKart
TensorKart copied to clipboard
Made a number of changes
I was able to get this all working on a fresh install of mint 18.1, it was kind of a pain with the dependencies (for wx especially), so included are step by step instructions. Once it was working, I noticed there was no way of using validation data, so made the modifications to allow for that. Right now it is set up so that train and validation are separate recordings, another approach would be to split up a single dataset, which I did not implement.
Also, I noticed the AI did not like turning strong enough although the direction of the turn was often correct. For that reason I decided to multiply the x-axis values by 2 (arbitrary, this can be tuned), which greatly improved driving performance (interestingly, this was also reported by Nvidia[1]). Another thing is that the button presses were being determined by rounding a value (roughly...) between 0-1, I thought it would be better to make this stochastic so that the value represented the probability of pushing the button when viewing a given scene. I didn't set a pRNG seed, so each race will be different (at least slightly).
NB I am new to linux, python, and tensorflow, so if you see anything strange say something. I probably did it wrong.
[1] "To remove a bias towards driving straight the training data includes a higher proportion of frames that represent road curves." https://arxiv.org/pdf/1604.07316.pdf
Can you please address the comments and then split this PR up into 3 different pull requests.
Sure, but I am not clear on how to go about splitting up these changes. Is the usual way to just restart with a new branch identical to yours, then modify it piece by piece and PR after each? This seems unwieldy. Can I select certain modifications to PR (I didn't see this option, but may have missed it)? Sorry, learning github as well...
I usually try and commit each logical change as a single commit and then I can use git cherry-pick
to move code around to different PRs. In this case though you're probably going to have to do it manually like you suggested. I've done this before and I open a new branch locally and then copy code from this PR to build the smaller one.
Thanks!
I did a full install of mint 18.1 to an internal drive (earlier I had only tested running it from a flash drive). There were a few odd differences that make me think those instructions need more testing, or narrowing of scope. For example, the default size of the mupen64plus window was much smaller for some reason (about 1/2 the expected size), so this should be hard coded. There were some other things about my set up that I changed as well (eg monitors), so that could be involved, but anyway the guide shouldn't depend on the exact hardware set up. However, overall it did go pretty smoothly.
I wanted to look into creating a start script for the emulator that set the window position and the size but didn't get around to it. Probably some cross platform concerns there as well.