Share your work here ✅

Dragonborns vs Tieflings

My son’s favorite activity since he started high school a few months ago is his afterschool board game club, and his favorite game is a Dungeons and Dragons campaign they play at the club. I sometimes get to hear of funny and heroic acts or complex strategies when he returns home late at night. Although the story telling is engaging, I don’t understand much of the subtle character details, their personalities, and abilities. It turns out, until two weeks ago I couldn’t even tell an Orc from a Goblin most of the time (Orcs are bigger, and Goblins are sometimes green…) or a Dragonborn from a Tiefling; I didn’t even know what a Tiefling was.

The weekend after the second fastai lecture, I became good at telling Tieflings apart from other races. Dragonborns, at advanced levels, can get wings and start to look a lot like Dragons, but, they are much smaller, they stand on two legs, they wear human-like clothes and use weapons in a human way; Dragons on the other hand are huge and very wise, think of the dragon in the Hobbit. To make things more complicated, Halflings still really look like Humans to me, but they tend to be merry and small, though reasonably easy to tell apart from Dwarfs. Since all of these creatures were invented by creative minds, their exact characteristics differ a lot more in the wild than the characteristics of well-defined cat or dog breeds, so the weekend project became an adventure involving data collection, hacking minor tools (sha1sum, FileDeleter mods), and help from my expert son. Here is a neural net that is better than I am at telling the D&D character race from an image:

My vacation pictures suggest I’m a Halfling, but my son managed to change his expression enough to pass as a dragon!


Lots of the feedback I had from the satellite app recognizing the city from the satellite image revolved around the same question: “what is it looking at in the image of my neighborhood that makes it look like it is from my country?”

I tried to implement a couple of interpretation methods I found linked on the forums (see further discussion in this thread).

The results are a little mixed, but I went ahead and added the feature to the app; let me know what you think:

Example output - you can see here that it avoids the parks and is very interested in the shape of the blocks:


I tried a similar approach with the dataset from Freesound General-Purpose Audio Tagging Challenge( using the data preparation script from AudioNet(, but my results were not good on all 41 classes (17% accuracy). Could you please share your notebook?


I used the data preparation script from AudioNet ( How did you generate spectrogram images from audio files?


Thanks! I’ll look into it.

I haven’t found anything concrete yet. For OCR I found the “Khatt Database” - I contacted the authors to get a download link and they haven’t replied yet.

The other data sets I found are not OCR - mostly Wikipedia articles, tweets, and text-messaging dumps for sentiment analysis and other NLP applications. It seems that Stanford, Concordia University.

I want to dig deeper and decide on a project to work on, it’d be awesome to work together.

1 Like


Managed to produce GradCAM activation maps (with kind support from @henripal)! Unfortunately, I have problems to incorporate them into the Flask app atm so the app is not updated yet.

Anyways, this is the interesting result for a double classification challenge (the model goes for the right guitar in it’s prediction)…

Seems like:

  • a telecaster is associated with bright fingerboards
  • a Stratocaster feature is the body horn and the tone knobs
  • a gibson Les Paul is identified by the body contour


The notebook is here:


I have been successfully converting 2D LIDAR data into images. I am using a rotating lidar inside of pipes to look for defects in the pipe. The lidar itself provides 1 measurement every 1/4 of a degree for 270 degrees. So each “row” is 1080 points of data and each data represents the distance at that angle.

A single scan of the data looks like this:

I am squeezing 200 scans on top of each other and normalizing and getting out data that looks like this:


I am doing some more math on top to get better results from my models. This math is to do a vertical diff row by row.

I’m not a huge fan of doing the extra math on top of the raw data before sending into my models for training but i have been getting better results on basic classification.

If anyone wants more information or just to chat about LIDAR please feel free to ping me.


This is awesome, thank you for sharing!

Yes! The validation set was from a separate set of recordings conducted on a different date with the same experiment. The plants were kept in sealed chambers too so there is very little likelihood that ones labeled as infected are non-infected.

I’ll do a write up as soon as possible and share. It would be interesting to get some feedback.

Hello, guys. I’d like to share my simple baseline for Human Protein Atlas Competition on Kaggle.

1 Like

@bjcmit I moved the pre-processing of audio (the steps that download, generate spectrogram, stores in google drive) into a separate notebook, here is the a blog post that goes through everything link. Sorry I should have done/shared this earlier.

1 Like

Yes, it is referred to as the alpha channel

Abnormal robotic arm!

A small utility for the lazy practitioners!


I’ve made a web app to identify the species of a tree based on a photo of its bark (source code)

It’s currently trained on very small dataset I collected from eight trees in the local park. As such it only knows about London plane, Sweet chestnut, European oak and Field maple and its accuracy is ~70% (see update below).

Importantly, it also uploads the submitted photo to AWS S3 then asks you if the classification was correct. Based on your feedback it labels the uploaded image which means the more people use it, the better it will get. It doesn’t yet retrain itself automatically though.

A recent paper, Tree Species Identification from Bark Images Using Convolutional Neural Networks got 94% accuracy over 20 different tree species using a much larger data set of >20k images. Their 30GB corpus is available to download and I plan to pretrain a network on it before fine tuning for my smaller data set.

UPDATE: after collecting photos of more trees and training at multiple resolutions, I’ve got accuracy up to 93% and expanded the set of tree species to six.


I’ve trained a CNN Regression model to count the number of people in a crowd using the UCF-QNRF dataset.

Even though the model is underfit, it’s within a factor of 3 and often much better than that. This is pretty useful, it’s better than I can guess.

This graph shows the ratio of prediction:actual vs actual counts.


See the notebook for details.


Hi there! I wrote a short post on using the data block API. Any feedback, corrections, or suggestions greatly appreciated :smiley:


I used the CelebA dataset from Kaggle for a regression model.

list_landmarks_align_celeba.csv in the dataset contains image landmarks and their respective coordinates. There are 5 landmarks: left eye, right eye, nose, left mouth, right mouth

This notebook attempts to make a learner to predict those five points. I used a 50,000 subset of the 200,000 images in this dataset and got good results:


I have extended the last week’s (lesson 3) planet notebook to add support on creating a submission.csv file where we can upload to kaggle for grading.

Here’s how I did it.


I also used the same CelebA dataset for a multi-class classification in this notebook.

This was the result for a picture of me!