Lesson 11 wiki

Yes, @brendan, same here. Like I can see every single bit developing into a mid-size to large project. Thanks for sharing your feelings on this. I must say this class is so demanding and so incredibly rewarding. For lack of a better metaphor it feels like surfing the event horizon of a nuclear detonation. Make that a supernova. A live science fiction.
This is the birth of the 21st century - what it is going to be known for in the future. You don’t get the chance to be part of something like this many times in life.


I’d rather Jeremy went faster and provide material for self-study. i.e. it’s better to have too much to do, rather than too little. Personally the best part of the course was pointers to how to keep up w/ the community at large. (wildml, import ai, arxiv-sanity, twitter, r/ML)


That’s the idea - you can always pick a subset to study, if I cover more stuff than you have the time to look at. And there’s no need (or expectation) to understand everything within the brief time period of the course; the forums and resources stick around afterwards and hopefully people will continue their own studies (perhaps along with some of their team).

That’s what teaching it feels like too! :open_mouth:


Same here :slight_smile: It is a fantastic learning experience. But one side effect of awesome content and eagerness to do it all is that it can feel like you are doing so little as compared to what you want to do, even if you are already doing a lot. Uff, I guess we can benefit from prioritization 101 :slight_smile:


Regarding prioritization, each day I try to ask myself: what is the highest leverage activity I can complete today? With the flurry of new material and so many possibilities I’m finding it difficult to answer this question.

I want to get up to speed as fast as possible, but I also imagine there is a logical order in which to tackle this material? I’ve also been thinking a lot about how to balance different types of activities: side projects, Kaggle, theory, blog posts, papers, networking. How should we apportion our time?

Example activities:

  • Learning pytorch or Keras
  • Reimplementing all of Jeremy’s notebooks
  • Revisiting Kaggle competitions from part I
  • Studying CNN, GAN, RNN theory
  • Deep diving into neural style

I don’t mean any of this as a critique. Just some musings. This course continues to amaze me and by providing so much material it does allow each student to focus on areas of personal interest.


I’m not sure it matters too much how you prioritize - you have the rest of your life to fill up with things you’re interested in! :slight_smile: So just keep doing what you’re doing - follow up on what seems interesting and relevant to you today.

Whatever you work on, I very very strongly recommend (as you all know!) that you spend most of your time writing code to solve some problem. Whether it’s winning a kaggle comp, reimplementing a notebook, implementing a paper, working on your personal or work project, etc, is entirely up to you.

As you try to implement something, you’ll discover specific areas where you need to understand things better in order to solve your problem. So then you can do as deep a dive as necessary to figure that out. Using these “pull” approach means that you’re always studying things that you know are useful.


Hi @jeremy!
I think the last three links on CNN improvements are the same. I think the last two would be

Hi @jeremy, the Powerpoint link http://www.platform.ai/part2/lesson11/lesson11.pptx returns a 403 Forbidden error “You don’t have permission to access /part2/lesson11/lesson11.pptx on this server”

Is the babi-memnn.ipynb also going to be posted? I couldn’t find it in the lesson11 download folder. Thanks!

1 Like

Thanks @aifish - both those issues should be fixed now.

Thanks @analytics20132333 - since this is a wiki thread, you can fix problems like this yourself! (I see in fact someone has already fixed it :slight_smile: )

1 Like

I found this beautiful, interactive journal called Distill which publishes machine learning content with interactive visuals. Here’s an article on Attention & Augmented RNNs that clarify how the “attention” mechanism really works:

1 Like

You spoke the words out of my mouth. I’d rather have more material than less as long as I can understand. As Jeremy pointed out, you have a long time to play with this. One of the most interesting things I picked up in this course is reading/scanning papers and linking it back to what we already know. For example, There was a paper from adobe on adding photo style (not painting style) from one photo to another. It was very similar to our style transfer exercise.

Thank you very very much for teaching this Jeremy. I feel like a kid in a candy store with too many choices.


Embedding #1

Embedding #2

Embedding #3

I used tensorboard to visualize the embeddings using PCA for the babi-memnn notebook. I could not get this to work with t-SNE and can’t understand why.

As you can see from the pictures, you can clearly see that for embedding #1, the names are far apart, but everything else clustered close to each other with numbers being spread out.

For the question embedding, you can see that “where is ?” is clustered together and far from others and the names are as far apart as possible. You can see the reverse in the question #3 where bathroom, bedroom, etc are far apart.

The code export the embedding to tensorboard is simple, but took me a few tries.

import tensorflow as tf
saver = tf.train.Saver()

LOG_DIR = ‘/home/surya/tensorboard_log’
os.makedirs(LOG_DIR, exist_ok=True)
saver.save(keras.backend.get_session(), os.path.join(LOG_DIR, “model.ckpt”))

metadata_file = open(os.path.join(LOG_DIR, ‘metadata.tsv’), ‘w’)
for key, value in word_idx.items():
metadata_file.write(’%06d\t%s\n’ % (value, key))

In your log directory, create a file called projector_config.pbtxt with the following content.

embeddings {
tensor_name: “embedding_1_W”
metadata_path: “/home/surya/tensorboard_log/metadata.tsv”
embeddings {
tensor_name: “embedding_2_W”
metadata_path: “/home/surya/tensorboard_log/metadata.tsv”
embeddings {
tensor_name: “embedding_3_W”
metadata_path: “/home/surya/tensorboard_log/metadata.tsv”

start the tensorboard with tensorboard --logdir=~/tensorboard_log and explore the embedding tab (look for embedding_*)

Question: If someone can play with this, can you please help me understand why the t-SNE is not as stable/reliable for this short data (32 words, size-20 embedding) when PCA does just fine?


transcribed the video, it is in https://drive.google.com/open?id=0BxXRvbqKucuNaFN2V09LcUozSU0

let me know if there should be changes


Question about kmeans library. Are you using sklearn, or python3.5/site-packages for importing kmeans in Lesson 11, and 12? if so, they do not have plot_data function…

Neither - I’m using kmeans.py from our github; the pytorch and tensorflow versions we showed in class.


Sorry I couldn’t manage to edit the first thread; (it required some weird Title must be of length 15 characters minimum).

Well I wanted to append these papers to the list. @jeremy quoted them in the beginning of lesson 11, although they refer to this image/text space from lesson 10.

(Deepening Lesson 10) Multi-modal image and text space

1 Like