CSE 450 - Machine Learning

Module 05 — Self Driving Cars, Project

Overview

After a few more meetings, your team has been assigned to address the following issues asked by the stakeholders:

Emma, CEO of GehirnWagen

I think everyone is agreed on what we need — a neural network that can recognize street signs here in Germany.

Karl, Head of AI

Yes, and just as a technical note, our other smart car products integrate tightly with Apple's CarKit.

So whenever you feel like you have a decent model, please save it in a format that we can import into Apple's MLKit framework.

Johnny, the data science intern

Given how many variables there are in building convolutional neural networks, and how long it takes to train and test them, we probably need everyone on the team working on building and testing convolutional neural networks.

I'd suggest that you coordinate how to tackle that in a smart way.

More Tips from Johnny

keras vs tf.keras

Don't forget the warning from the last module, about how Keras used to be a standalone library, but as of September 2019, it is part of Google's TensorFlow 2.0 library.

Keep that in mind if you're looking at any tutorial that was written prior to that date. Most of the API and functions will be the same, but your import statements will likely be different.

For more information, see this article on the change.

Data Dictionary

Use this data dictionary to help explain how the data set is structured.

Starter Code

Loading image data can be tricky, but this Colab notebook should be helpful.

There may be better ways to handle the data than what that notebook is doing, but it will at least get you started.

Saving Models

There are multiple ways to save a Keras model.

Since the AI team is planting to integrate this model into a techstack based on Apple's frameworks, be sure to see what Apple's requirements are for user defined machine learning models.

Note that you don't have to actually convert the model using Apple's tools, just save it in a format that the AI team can use to convert it later.

Preexisting Architectures

If you want to try using a pre-existing CNN architecture instead of building your own, you can see a list of options here.

Note that with each of these, there are two options:

  1. You can load just the architecture and train it from scratch using the road sign training data. (By setting the weights parameter to None).

  2. You can load the pretrained model and use Transfer Learning techniques (see below) to adapt it to the road sign training data. (By setting the weights parameter to imagenet).

Transfer Learning with Pretrained Models

If you're going to try and use a pretrained model to try and solve this problem, you might want to read through this guide to see how you can fine tune a pre-existing model for a new problem.

TensorBoard

If you're looking for a good individual above and beyond topic, you might want to check out TensorBoard, a tool created by Google to make it easier to see a visual representation of what's happening in your network.

Note that just throwing TensorBoard into a notebook doesn't count as going above and beyond. You need to dive into that documentation and really understand what it's doing and how it can help you.

Johnny, the Data Science Intern, catches you after work:

Hey, I know you're probably busy, I was going to put together some hints and sample code for you like I usually do, but the best example code I can provide is what you see in those CNN tutorials from the reading assignment. So, be sure to read over those.


  1. CEO photo by Amy Hirschi on Unsplash 

  2. Head of AI photo by Ameer Basheer on Unsplash 

  3. Data Science Intern photo by Fábio Lucas on Unsplash