What exactly am I supposed to upload?

You can, actually! Well, sort of. I explained in this post about my machine learning attempt how to get a Keras neural net with a Tensorflow backend up and running on the live servers (it adds quite a few mB to your algo, but even with all my other code I can stay below 30 mB).

I’m guessing you’ll run into 1 of two scenarios with this:

a) You’re trying to have your algo learn from match to match and improve over time. This is more or less unsupported, as you won’t be able to change the state of your algo between matches. AFAIK your algo as you originally submitted it gets played each match, so any changes you write in a match don’t get saved.

b) You have a trained neural net that you just want to forward propagate on. This is much more feasible, and can be accomplished with the methods in the link I provided.

We’re hoping that dependencies for Python algos get added eventually, but that might be a while. You may notice that there’s a workaround to get a) working, but I’m guessing that workaround will be removed more or less when dependencies are added. The workaround would also probably take just as long to get working as the method in the first link, but has the downside of being less “sustainable.”