August 21, 2017
I’ve come across various tools used for machine and deep learning, both good and bad. I decided to write a quick little blog post on some of the tools machine and deep learning you should be using.
Tensorflow is an abstraction library that allows you to build machine learning programs with an easy to use API. It was developed by researchers and engineers working on the Google Brain Team. Tensorflow comes with various low and high level API’s like dropout and max pooling that make it easy to build artifical neural networks. You can also extend Tensorflow to add additional features.
Keras is a high-level neural networks API that interacts with TensorFlow, CNTK, or Theano. It was originally developed as part of the research effort of project ONEIROS. Overall, Keras is much easier to use in regard to other frameworks. It has a simple and easy to use API that allows you to rapidly create deep learning programs like Convolutional Neural Networks (CNNs) and Recurrent Neural Networks (RNNs).
We don’t all have powerful machines with GPUs available but Floydhub solves that problem for us. Floydhub is a PAAS for training and deploying your deep learning models in the cloud with just a few commands. Floydhub supports various CPU and GPU environments like Tensorflow, Keras and Torch. It’s also relatively cheap and you only pay for what you need.
One of the problems I had was finding high-quality data to train, test, and validate on. Kaggle is the solution to that problem. In Kaggle, you can find open datasets on everything from government, health, and science to popular games and dating trends. Kaggle also offers challenges posted by dataset publishers.
I first learned about Jupyter Notebook when learning deep learning, they quickly became my favorite thing. Jupyter Notebook is a web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. It is great for experimentation and rapid prototyping.
Have any experience with any other tools? Feel free to comment.
Software Engineer @Pluralsight. Interested in distributed systems, machine learning, and the web. Follow me on Twitter.