Having used TensorFlow on GCP via Compute Engine instances (usually pre-built Ubuntu images with K80’s/P4/T4’s) for image processing work I realized that some guidance in best practices would be quite useful as there may have been areas that I had missed – additionally given the wide range of GCP ML products was very keen to understand the other technologies.
There are currently very few courses for TensorFlow (and/or GCP) certification, however, it seems Coursera has offerings that are delivered straight from the horses mouth (i.e. Google) , specifically one Certification path grandly entitled Advanced Machine Learning with TensorFlow on Google Cloud Platform Specialization (which sounded impressive at least if nothing else). So, with that in mind, and the fact it was the best I could see available, enrolled, although I must confess that my enrolment coincided directly into the middle of the overall Certification programme rather than undertake the basic courses which were introductory TensorFlow, hoping I could find useful tips with image processing on the GCP platform that may be useful in the future. In practice the omission of the earlier courses aren’t a problem if you can follow Python and know some basic DL/CNN concepts.
So undertook the module “Image Understanding with TensorFlow on GCP” which in total took me about 15 hours of self-study.
The good parts.
- helped to understand how to integrate GCP into the image processing model workflow (outside of Compute Engine).
- a basic review of Convolutional methods including best practices for Image Processing.
- hands on GCP with some of the offerings such as AutoML, so a little exposure to Googles offerings in Image ML.
The not so good parts
- TensorFlow 1.X (not TensorFlow 2) although hands-on coding is minimal
- The Python (3) code often failed when processing the GCP components (such as job submission) this however still (thankfully) resulted in passing the “assignment” although no results were obtained, this was due seemingly to back-end GCP issues when submitting the bash jobs.
- No examples of a JSON program in sending and receiving to the introduced Image processing API. Yes, trivial but an example would have been nice.
- Seemed a bit disjointed in delivery with theoretical components not smoothly integrating with the practicals.
- Despite being part of the Advanced Machine Learning with TensorFlow on Google Cloud Platform Specialization I am loathe to call any part of the course I undertook “advanced” or anywhere near it, however, that isn’t to say it is not of value, I found it was.
- Signed by the ubiquitous John Doe for some obscure reason
The Long and short.
So in summary useful to get to grips quickly with the use of CNN’s with GCP, but whilst you are introduced to code fragments (mostly bash) that do the real integration these are not explained fully (but in fairness saving these fragments and later mind parsing them would assist in getting more benefit from the course). Also the course doesn’t cover setting up Compute Engine instances with GPU’s (my preferred mode of operation) although you can figure this out pretty quickly independently.
On course completion, and with a bit of further focus on TensorFlow GCP integration, especially bash job submission syntax (which can be complex with all sorts of arguments and flags), general GCP interface navigation (it can be daunting when starting out) and further study of Googles (usually excellent) documentation – this will help prepare you integrating GCP into your image analysis workflow.
Note: I can actually see why they left out Compute Engine, given that none of the technology is proprietary to Google, a CE instance with a GPU on GCP is much like an instance anywhere else – these are skills transferable outside of the Google empire, hence, not covered!