I know I can retrain Inception to label images, but can I just provide an image to an untrained Inception and get a label back? Is there an API for this? If there is, then why does Google open source this if they're trying to make money off of google cloud vision?
can I just provide an image to an untrained Inception and get a label back?
You will get a random output from the network because it hasn't been trained and has been initialized with random values for the weights.
Is there an API for this?
Cloud Vision is an API with already trained models. If you want to train your own model you can use tensorflow, theano, caffe... there are several frameworks for it. None of them is easy.
why does Google open source this if they're trying to make money off of google cloud vision?
Open sourcing tools and models gives to the community a lot of knowledge, in exchange the researchers community use the Google tools to improve the models, more people use the models, so it is easier for Google to hire Machine-Learning developers and, most important, because the real value of machine learning today is in the data and the infrastructure you have. The more data you have the better your models. The better the infrastructure the faster and cheaper you can train and deploy your models. And people will pay you to use your infrastructure.