If you have less than 30 seconds, here’s the core of this article!


  1. For the love of God, always use tmux (https://github.com/tmux/tmux)


If I’m not on a call with someone telling them to either use headphones or mute themselves when they’re not speaking, I spend a lot of my time at work using the terminal. Whether I’m training a model, writing code, or something else, my screen is usually filled with a black rectangle with text on it.

This is not me. I wish I were this cute.
Photo by Hello I'm Nik 🎞 on Unsplash

If you stumbled by accident upon this article, I strongly suggest you to start from the first part of this series, for very obvious reasons.

This is it, the end of the journey as they (who?) say. The plan was to keep a kind of log of the activities required to go from an idea to a product, albeit a simple and limited in scope one, and so we did. And I respected the schedule!

Don’t thank me, true heroes don’t need that.

The other articles in this series

The number five. Or, according to every classifier trained on MNIST ever, a six. Or maybe an eight, or Batman’s symbol, because why not. Photo by Ryan Johns on Unsplash

All right, this is the one article that you really cared about, where GPUs heat up and loss curves are flatlined: today we’ll discuss the two core parts of the project, that is how to identify which of the nine digits is present in each one of the Sudoku cells, which we identified and separated beforehand (check the second article of this series for details about that), and from there proceed to solve the puzzle. Oh, and we’ll use the 2020 equivalent of magic: AI.

But first, a quick recap of how we got to this point.

Previously (and next week), in this series

In data preprocessing you make adjustments to the input image so that it can be used in the following steps. In case you don’t feel ready and are afraid to screw things up, remember that this happened.
Ecce Home, Before, After, and After the After“ by Cea. is licensed under CC BY 2.0

Welcome to the second of a series of articles dedicated to how to use Data Science as an excuse to annoy an unpleasant relative!


This article is part of a series:

In Part 1 we went through project planning, that is making a list of all the tasks required to complete the project by iteratively splitting them into smaller, more manageable subtasks. …

Part 1: Introduction and Project Design

This is _exactly_ how you will look and feel at the end of this series. No promises on the goatee though.
Photo by Minh Pham on Unsplash

Back when I was young and stupid (I have retained only one of those two features) I imagined that working with AI consisted in spending a lot of time designing and implementing a software that showed some kind of intelligence, whatever that might mean. The Matrix came out in 1999, I was 15 and easily impressed by those visuals: it is fair to say that that movie had quite an impact on my future life’s direction.

And on my wardrobe, but that’s a story for another time.

I have been working as a data scientist for around 7 years at…

The black plague decimated the population of Europe in the 14th century. Still better than using MNIST.

All right, all right, it’s not that bad. But still.

Everyone who has approached the magical world of data science, including me, at some point went through the same initiation ritual: fire up a jupyter notebook, import pytorch or keras (your choice of poison), implement a simple CNN and train it on the almighty MNIST dataset for a few epochs. And then rejoice at the sight of those sweet, sweet figures near the words “validation accuracy” in the output cell.

Matteo Barbieri

Data scientist, Deep Learning enthusiast, Python lover. Also problem solver, things misplacer and synthwave listener. Advancing humankind @ Peltarion.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store