My last post was all about creating a TensorFlowdocker image that would work with OpenCV, inside a Jupyter notebook, creating external windows, accessing the webcam, saving things using the current user from host, etc. All that hard work had a reason: use the newest version of TensorFlow for computer vision. So, let’s try it!
Without the hat and the measuring tape, it was 0.9 for mask.
Currently, I’m a last year Robotics / Artificial Intelligence Ph.D candidate (don’t be shy, have a look at my publications), father of a 7-yrs-old boy and I’m living abroad with my family since 2013. So, life is quite busy, a little bit stressful and it happens that, sometimes, I simply forget things. The other day, I was setting up a new Dell laptop (I’ve bought it really, really cheap from their UK outlet, free delivery and I even got an extra student discount!) that came with Windows 10 and, as always, I created a very hard to guess password. It was so hard to guess that I forgot it after a week! And that’s how the idea for this post began.
Around one week ago, I’d attended a CUDA workshop presented (or should I say conducted?) by my friend Anthony Morse and I’m still astounded by DIGITS. So, during the workshop, I had some interesting ideas to use on this post!
The first thing I thought when I read (or heard?) for the first time the name Convolutional Neural Network was a bunch of filters (Gimp would agree with me). I’m an Electrical Engineer and, for most of us (Electrical Engineers), convolutions start as nightmares and, gradually, become our almighty super weapon after a module like Signal and Systems.
Let’s start with something easy… a video! Below, you can observe, step-by-step, what happens when a 2D convolution (think about a filter that detects, or enhances, edges) is applied to an image:
When you start playing with cloud computing like Amazon Web Services, you will, sometimes, decide to launch a program that will take a while to run. If you simply close the connection before all processes are finished, the system will terminate bash (or whatever shell you were using) and, therefore, your program will be also terminated. Normally, when we are working on a terminal, we make use of the & (or ctrl+z and bg) to send things to the background freeing the terminal. If you sent your process to background, you will be able to use jobs to display information about processes that are sleeping (the ctrl+z thing) or running on the background.
This post is a personal reminder. I’m always forgetting Ubuntu (up to 16.04), doesn’t know how to mount exFAT - Extended File Allocation Table and then I need to Google for it. Why would you need exFAT? Among other things, it’s possible to have files bigger than 4GB.
Do you know what is a Jupyter Notebook? If you don’t, please, have a look at the previous link and come back later… just joking… ok, seriously, check the previous link because they will do a much better job explaining what is a Jupyter Notebook than me .
This is what I was doing just before start writing this post.
Deep learning… wow… this is “the” hot topic since, at least, some good years ago! I’ve attended a few seminars and workshops about deep learning, nevertheless I’ve never tried to code something myself - until now! - because I had always another priority. Also, I have to admit, I thought it was a lot harder and it would need much more time to be able to run anything that was not simply a sample code.
Example of classification results.
I’m always forgetting things, so I like to take notes as if I was teaching a toddler. Consequently, this post was designed to remember myself when I forget how to use Keras .
All the things I’ll explain below will only make sense if you know what is a Multilayer perceptron and Feedforward neural network as well. In case you don’t, no worries, Google is your friend .
Keras is a high-level neural networks library for TensorFlow and Theano. I would call it a Python wrapper that hides the extra details necessary to create neural networks... simplifying our life!