It's day one! The world is shiny and new. The sea of possibility stretches out before me, seemingly endless. Some might say frighteningly so.
Because I came up with this project literally hours ago, I currently have zero ideas about what I'm going to be working on for the next 30 days and so I'm going to start by taking Practical Deep Learning For Coders over at http://course.fast.ai/.
Why this course? Well, last week I came across the blog of a guy who wrote a program to sort through two metric tons of Lego, and he had this to say:
And then several things happened in a very short time: about two months ago HN user greenpizza13 pointed me at Keras, rather than going the long way around and using TensorFlow directly (and Anaconda actually does save you from having to build TensorFlow). And this in turn led me to Jeremy Howard and Rachel Thomas' excellent starter course on machine learning.
Within hours (yes, you read that well) I had surpassed all of the results that I had managed to painfully scrounge together feature-by-feature over the preceding months, and within several days I had the sorter working in real time for the first time with more than a few classes of parts. To really appreciate this a bit more: approximately 2000 lines of feature detection code, another 2000 or so of tests and glue was replaced by less than 200 lines of (quite readable) Keras code, both training and inference.
Wow! I'm an impatient type - I want results in hours. I made a note of this glowing testimonial in my Evernote account and squirreled it away for later.
As it turns out, that later is now.
Okay! Let's get started.
Since this is a code-focused course, you need access to a computer with an Nvidia GPU, along with a python-based deep learning stack set up on it.
Shit. I specifically need an Nvidia GPU? I don't even know what I'm currently running, but someone removed my MacBook Pro from my backpack at a bar last week (San Francisco bar tip: TRUST NO ONE) and I have a sinking feeling that the Air I'm using at the moment won't be up to scratch.
A quick Google search seems to confirm this:
But maybe I should have kept reading, because in the very next line it says:
To make it easy, we've created a machine image on Amazon Web Services (AWS) along with a script to set it up—so your first step should be to watch our AWS deep learning setup video and follow along.
I would like to state for the record that the extent of my previous experience with AWS has been bumming free coffee from their (excellent) San Francisco Pop-Up Loft, but within several minutes I've submitted a request for an EC2 P2 instance, which is basically the aforementioned computer with an Nvidia GPU, provided by AWS and hosted in the cloud.
At this point the tutorial notes that it can take up to 24 hours for AWS to approve a P2 request but when I refresh the page I find my request approved, less than a minute after I'd submitted it.
Configuring and connecting to AWS takes another couple of minutes (using bash scripts for the first time is quite the power trip), then I test the instance by opening a notebook and importing Theano and Keras - two libraries that I would happily explain to you but for the fact that I don't quite know what it is that they do. Yet.
By the time I'm done, it's four past two in the morning. I crawl into bed and fall asleep to the Linear Digressions episode How to Lose at Kaggle.