I'm new to the whole world of AI and neural networks, and I'm looking to get started with training a CNN on a cloud service like AWS or GCP but I'm totally overwhelmed by the choices for VM instances. In GCP, there are options that seem to have the same amount of memory but are classifed as standard, highmem, or highcpu -- what's the difference? As well what would be some reasons to opt for having a GPU as well?
I can't do a better job at explaining than Jeremy Howard's team did.
Follow carefully and systematically all the steps put together here.
Follow the fastai course too. I can't emphasize how good is it. You can find the lessons in the left panel.
I would recommend you use Colab for experiments as it has a Tesla-K80 and the cloud computing for something that requires more power.
Hope it helped!
In general, if you want to get a decent machine for training a neural network you need two things:
1) A modern GPU
2) A big pile of RAM
The GPU is particularly important as it can greatly speed up the matrix calculations required for the training process. Your training will be between 10 -> 100x faster with a GPU instance. GCP also offer TPU instances, which allege to be even faster than GPU instances. If you get a GPU machine, you will need to make sure that you are using a GPU-enabled version of your machine learning library. For example, Tensorflow comes in two flavours - CPU-only and GPU. See the Tensorflow docs for more.
Assuming that you have some experience with Jupyter Notebooks then you might find Google Colaboratory does what you need. You can select a CPU, GPU or TPU instance to process your model.