Share your work here ✅

Transfer-Learning - Image Classification

Transfer-Learning - Image Classification

Please check out my work on Optimizing Image-Classification using Transfer-Learning! This is an image classifier of 4 different types of Arctic Dogs! This medium blog tells you step by step of how I finally bring down the error rate at the end after a few tips and tricks from our previous lesson 3 lecture.

Thanks!

Awesome to see an example using categorical embedding w/ a tabular dataset ; )

I think your final line is my favorite in the whole starter pack. I had never thought of putting this directly into the notebook and it’s amazing:

!kaggle competitions submit -c quickdraw-doodle-recognition -f subs/{name}.csv.gz -m "{name}"
11 Likes

I like the idea that you are incorporating users feedback into your next training iteration. However, you do want to put manual inspection in between because feedback is not always right :slightly_smiling_face:

1 Like

Talking about collaborative filtering, I’ve created a small post when was watching the previous version of the course. The code from the post is written in PyTorch but probably could be interesting for someone who wants to dig deeper into the topic.

One of the gists from the post that shows writing of a small custom nn.Module with embeddings:


Update 1: Not sure why the link to Medium is not rendered properly, here is a plain address:

https://medium.com/@iliazaitsev/how-to-implement-a-recommendation-system-with-deep-learning-and-pytorch-2d40476590f9

Otherwise, you probably could find it via @iliazaitsev username on Medium.


Update 2: Ok, Medium support responded that my account was blocked automatically by their spam filter. Probably they need try some Deep Learning methods to reduce the number of false positives :smile:

4 Likes

looks like that medium link is broken tho :frowning:

1 Like

Great project! It’s good to finally get to see your work after you talked about the idea in our previous meetings.

Are you pointing to this study group run by Assoc. Prof Kan Min-Yen?

I am looking forward to your detailed blog post. Thanks.

1 Like

Hm, thank you for letting know! Not sure why but Medium shows it suspended :frowning:

@ttgm Would you mind sharing your notebook please?

@bholmer interesting work! How did you separate out and visualize the different areas of the painting that appear to belong to different artists?

Hi Jon. The latest update to the API is quite different from the code in my post :smile: so I’ll hopefully refactor it this weekend and link to the new notebook at the bottom.

I used facial keypoint detection dataset from kaggle. (CNN+regression)

It’s a challenging problem. Mainly for two reasons.

  1. Only 1/3 of the training images have data of all the 15 facial keypoints.
  2. And, most of them are erroneous (see below).

As you can see, the training data is not very accurate.
trainind_pics

Rmse Loss

tran_val_loss_facekey

Predictions

What I learnt…

  • The dataset was created using some software, or maybe a camera/device that gives out these key points. Whatever maybe, there must be a underlying mathematical model(fn) for that (camera/device/software). So, that’s what the neural network is trying to approximate, instead of the finding the actual key points. What I mean to say is, here the neural network is not trying to find exactly where is the mouth, eyes or nose; because we haven’t explicitly mentioned it in our dataset. Yoshua Bengio and team created this dataset, I would like to know if there was any intention of such sorts.
  • if that’s the case, even if we predict the actual facial keypoints for the test set, we can expect a higher error.

Also, I have re-structured the original dataset into jpeg images. https://www.kaggle.com/sharwon/facialkeypointsdetectionimg. I think this will be helpful for beginners.

Notebook is still a work in progress. I’ll share a clean version soon.
Also, The submission file is a bit weird. I’m not sure why they are not evaluating on the basis of all the points.

To do:

  • Clean the notebook.
  • Submit to the competition.
  • Use the whole data for training.
10 Likes

Where are you guys hosting your starlette API?

I’ve been using ZEIT but it’s slow as heck when waking up the app from a frozen state. Impressed by how responsive your emoji app is and so interested on what you all are doing.

1 Like

I’ve made lynx classifier (it classifies which lynx species is given lynx).
https://which-lynx-is-it.now.sh/
Error is something 20%ish (lost the notebook, because of issue with gcp). Considering the fact that the dataset was noisy it think it’s good. Interesting thing is it really has problem classifying baby lynxes for some reason.

Hopefully I will have time this week to write a blog post about it.

It’s just a small ec2 instance (behind an ELB to terminate the SSL which is required for WebRTC to work).

I was really surprised at how much throughput we could get during fastai inference. The fact that we were sending smaller cropped images from the client really helped.

1 Like

As in “Elastic Load Balancer”?

I’ve written the following short Medium post doing some theory review of the concepts we deepened into during Lesson 3, like the learning rate and activation functions.

2 Likes

Yes. Another group used fastai for sentiment analysis on market news to perform Forex market prediction.

If you use the production guide we provided then it won’t go to sleep, so you won’t have that problem :slight_smile:

2 Likes

Thanks for the 411!