About familiarizing with Keras models used in the Deep learning course

Dear all,

I have been ploughing through the Deep Learning Specialization over the past 2 months. For the most part, I think I have now built a preliminary understanding of what Deep Learning is and how CNNs and RNNs work in principle.

For the programming assignments that build models from scratch using numpy. I could see fairly clearly what’s being done and understand most of the steps being taken.

However, I am having moderate difficulty figuring out what’s going on in other programming assignments that are Keras-based. I managed to complete them by following the hints and instructions religiously. They pretty much hold your hand through the whole thing from start to finish (i.e. with instructions like “use a Dropout layer with rate set to 0.5”). However, even after finishing all 5 courses in the specialization, I wouldn’t have a clue on how to build a Keras model myself even if my life depended on it.

Am I doing something wrong and so I am not getting as much out of the course as I should? Or is it expected that I will need to take an additional Tensorflow/Keras course to build my skills in that area after completing the Deep Learning specialization?

Thanks a lot!

Keep in mind there are also actually three additional specializations offered here at DeepLearning.AI that you could consider that focus just on using Tensorflow so that might help.

If you prefer just to look at a text instead, personally I’d recommend Deep Learning with Python, Second Edition by François Chollet. He is actually one of the authors of Keras so you can be sure it is an informative resources, and it basically covers the materials in DLS, but in more detail just on the TF programming.

1 Like

In addition to Anthony’s excellent points, here are a few more thoughts:

TensorFlow is not the only platform out there. Another very popular one is PyTorch. Perhaps you’d find that more intuitive. Almost everything from DeepLearning.AI uses TF, but there is one specialization here that uses PyTorch, which is the GANs Specialization. It is very well done and presented by Prof Sharon Zhou. The material is very interesting in its own right and you get the beneficial “side effect” of getting a very nice introduction to PyTorch if you take that specialization. If your goal is to work professionally in ML, then knowing more platforms is always a good thing. Just like knowing more programming languages, it can’t hurt.

But staying with the TF/Keras side of the discussion, one other thing to do is to study some of the tutorials on the TF website about applying Keras. Also take a look at the list of pretrained models that are provided by Keras to get a sense for what is available as a basis for Transfer Learning. Here’s a thread with relevant links to get you started on both those topics.

But stepping back to the 10,000 ft level, maybe you just need to take a slightly wider view of what you’ve learned. Suppose you have a new problem that you are trying to solve and you believe that DL should be a good solution. The first thing to consider is what kind of a problem is it? E.g. is it image recognition, object detection, computer vision, medical image analysis or is it more like an NLP problem or yet something else? Of all the examples you’ve worked through in the various DLS assignments, have you seen any that are at least “in the ballpark” of this new problem you are trying to solve? Then you would start with the closest example you’ve seen and consider: how would I have to extend the example to cover my new problem?

I believe that’s how pretty anyone would approach a new problem: try to find a worked example that is as close as you can find and then think about what that method doesn’t cover and how you could add that. So maybe you really do already have more knowledge than you believe: you just have to frame it in the right way. :nerd_face: