Share your work here ✅

Hello everyone,
I have started a repository where I try to implement as many papers as I can (fastai+pytorch) along with identifying tricks from the papers and noting them down.
It is a work in progress but I thought I would share :slight_smile: Please do have a look.

I think it would be a great start for those slightly advanced among you.

On a side note. I have implemented some papers that arent in the fastai library as of yet. (MobileNet, STN and others on the way)
Would they be of any help? @jeremy @sgugger

7 Likes

Let me be honest to you. I feel your project is wonderful. Keep it up. I suggest to put your dataset on kaggle to share it to everyone.

2 Likes

Hello everyone,
For those who are into Kaggle COVID-19 Global Forecasting Competition
or simply want to play around with prediction of confirmed coronavirus cases in the future, I wanted to share my baseline fast.ai V1 tabular model: Kaggle Notebook here which I created based on this course. As for tabular data we cannot expect fireworks, but the score one can get with a pretty vanilla model isn’t that bad. I tried to add many countrywise metadata features such as population, number of tests conducted, GDP but they don’t help much with getting a better score, if any.

These are sample predictions of a vanilla model (without metadata features) for a short time window between 26.03 and 04.04:


This is the time where model performs pretty well (if you notice any leakage, it wasn’t intended, please let me know :grinning:), but obviously it falls short for long-term predictions, like forecasting 300k cases (who knows?) for Poland on 07.05 (the last date to predict in the test set) which has about 4k now…

As I mentioned before, adding basically any metadata (mostly continuous variables) apparently doesn’t help the model (commit 3 vs commit 4 on Kaggle). I couldn’t manage to find any categorical variables which could be useful (maybe lockdown dates as categoricals?), maybe they would do a better job with embeddings. Why these seemingly important numerical features don’t help, this is another issue I don’t know how to explain.

Maybe we can’t go any further with a simple MLP architecture and one needs a RNN to make more sensible predictions (if you’ve heard about some RNN modules for fast.ai tabular data, let me know) or TabNet, which exists for fast.ai V2 but I have no clue about its performance on such time series. If you have any hints about what kind of neural network architecture should be used for this type of problem, I would appreciate any suggestions.

1 Like

I’m looking to build a Deep-voice-converter using the fast.ai library but I’m not sure where to start. any suggestions?

I finished lesson1 few days ago and I have been struggling with formats, functions and the untar_data functions. I have done a few things differently, and used a CIFAR_10 dataset which I downloaded in my colab machine and untared it using tarfile functions available in python. I finally got a few things straight and here is the project Ive done for week one.

Nice work. In relation to your open questions:

You can get good results with limited images, but it will depend on how similar, different your objects are. In deep learning the more images the better (accuracy increases with more ‘interesting/good/different’ iamges). It’s important to have a representative dataset (training and validation), that represents the input data your model will see in production…

So you can get good results with 20-50 images, and start adding more of the images your model predicts when deployed to retrain your model…

Did you also check duplicates? They might end up being in both your training and validation set, skewing your results…

But indeed, no real need to keep those weights. Another cool trick to improve your model:

A first hunch, percentage of total errors goes up, but for the ones it predicts correctly, the loss is very low…

If you need help deploying your model, you might want to check out our Quick Guide for SeeMe.ai: https://github.com/zerotosingularity/seeme-quick-guides/blob/master/seeme-quick-guide-fastai-v1.ipynb

1 Like

Hi Folk, Just completed Lesson 3 homework with a genre classification using IMDB posters.
The code works like a charm.

Here is a link to my notebook.

10 Likes

That’s really innovative. Great work!

Hi Folks,

I’ve just finished the first lesson and watching the second lesson video and was trying to experiment with different data like google images etc. etc. One dataset I came across was of x-ray images of covid-19 patients: https://github.com/ieee8023/covid-chestxray-dataset

I tried to train a resnet50 model on this dataset. I’ve created a fastpages post on this here: https://impactech.github.io/fastpages/deeplearning/fastai/jupyter/2020/04/08/covid_predictor.html

Here is the notebook: https://colab.research.google.com/drive/1GAn7BOlrcaMnZeDIb3Z6AV-j5giFGCHn

I would really appreciate ideas and inputs on how can I improve the accuracy and PR of this model. What are the things I can try out?
How can I split the initial dataset into train, valid and test sets. I guess by default Imagedatabunch splits the data into train and valid only
How can I then run my trained model on the test set and print out the metrics like PR and accuracy
What effect does batch size have on training, overfitting etc.

1 Like

@Nitron Cool work! I’m wondering how your custom loss function differs from the default loss implemented in fastai when using ResNet regression and PointsItemList dataloader?

This:
Screenshot from 2020-04-11 09-21-51
is this (p=yHat):
Screenshot from 2020-04-11 09-22-28
But it’s also this:
-math.log(1-abs(y-p))

As long as y is 0 or 1, the two are identical. But with the latter we can also say that y should be 0.8, for example. (And so the loss for 0.7 is the same as for 0.9 and is less than for 0.6 or 0.95)

My Work For Lesson 2(i): Dowloaded images from Image-net.net to differentiate between Leopards , Tigers and Snow-Leopards

Hey guys, after completing lesson 1 I created my own dataset and build a classifier out of it. So, I build a classifier called hindi_bengali_classifier which is used to classify between bengali and hindi poems. My dataset consist of hindi and bengali poems, consisting around 300 to 400 images for each class. I used resnet34 CNN model.

1 Like

Really enjoying this course so far. I’m going at it pretty slowly because I’m busy, but I’m learning.

After Lesson 1, went over to Kaggle and picked an American Sign Language dataset and went through the steps from Lesson 1 applied to that data. I saved that notebook here

https://github.com/dandoug/course-v3/blob/master/nbs/dl1/lesson1-ASL-DanDouglas.ipynb

Still taking baby steps, but getting used to the tools and platforms.

Thanks for making this resource available.

3 Likes

I wasn’t able to create a web app in colab sucessfully, If someone could help me out with that @jeremy, perhaps put out a blog post or link to an instructional to how to export your model into production or run it embedded within a web app.

Hey everyone. So I created a keras clone for pytorch using nbdev. https://sachinruk.github.io/keraTorch/

I’ve snuck in some fastai elements in there like lr_finder. Still some way to go but it works. Main thing is that it’s familiar to scikit-learn people by using numpy arrays, .fit and .predict.

Oh and it only took one weekend for me to get everything up, all thanks to how fast you can develop in nbdev. Second package I deployed to pip, again wouldn’t have had a clue how to do that one month ago.

4 Likes

Really cool! I made something similar with a slightly different use case. I spend a lot of time correcting wrongly labeled text data. Therefore I use an active learning approach, when iteratively integrating new annotated data into the existing model
Here is the (not at all new) idea:

  • Get predictions from the trained model of the previous iteration
  • Get all the cases where prediction is different from the annotated label
  • Correct the annotated label if wrongly labeled

Therefore I need a slightly different interface to integrate model predictions and probabilities .

Some neat features:

  • The options in the dropdown are ordered by probability. This makes it way easier to find/select the desired category.
  • High and low probability predictions are color coded , so you can see potential corrections in a glance.

I basically hacked the vision ImageCleaner to make this work. But will go on to do a more fancy implementation. Would you be interested to collaborate?

1 Like

Hey guys, i completed the first few lectures at fastai and finished creating a gender voice classifier. I trained it using spectrogram images of voice clips (male and female) of American people. I did not use the entire dataset. I used about 2000 images (1/4th of the entire dataset)and got an accuracy of about 99% . Then, when I tested the result with spectrogram images of Nepalese female voice, it shows surprisingly good results. A 100% accuracy on the 217 images I tested it on. If you are interested you can check the source code at github and give me some feedback. Is there anything i did wrong here or could have done better?https://github.com/SamratThapa120/Gender-Classifier-by-Voice/tree/master


2 Likes

Hello all!

After following the first lesson, I used ResNet-50 to predict gender from pictures in the CelebA dataset. I did not have to put any effort other than preparing the dataset and waiting (the dataset is ~200k images, so takes tens of minutes for the training to complete).

Not a deep learning project, but I have made a Github repository of fancy python tricks I have come across. Some of these are from the walkthrus that Jeremy did :slight_smile: Check them out here:


If you know more tricks that will make people’s lives easier feel free to submit a PR.

3 Likes