Introduction
GitHub is much more than a software versioning tool, which it was originally meant to be. Now people from different backgrounds and not just software engineers are using it to share their tools / libraries they developed on their own, or even share resources that might be helpful for the community.
Following the best repos on GitHub can be an immense learning experience. You not only see what are the best open contributions, but also see how their code was written and implemented.
Being an avid data science enthusiast, I have curated a list of repositories that have been particularly famous in the year 2017. Enjoy and Keep learning!
Table of Contents
- Repositories for Learning Resources
- Awesome Data Science
- Machine Learning / Deep Learning Cheat Sheet
- Oxford Deep Natural Language Processing Course Lectures
- PyTorch – Tutorial
- Resources of NIPS 2017
- Open Source Softwares
- TensorFlow
- TuriCreate – A Simplified Machine Learning Library
- OpenPose
- DeepSpeech
- Mobile Deep Learning
- Visdom
- Deep Photo Style Transfer
- CycleGAN
- Seq2seq
- Pix2code
1. Learning Resources
1.1 Awesome Data Science
This GitHub repository is an ultimate resource guide to data science. It is built upon multiple contributions over the years with links to resources ranging from getting-started guides, infographics to people to follow on social networking sites like twitter, facebook, Instagram etc. There are plenty of resources waiting to be viewed, irrespective of whether you are a beginner or a veteran.
A look at table of contents of the repo says it all about the depth of resources in the repository:
Link to repository: https://github.com/bulutyazilim/awesome-datascience
1.2 Machine Learning / Deep Learning Cheat Sheet
This repository consists of the commonly used tools and techniques compiled in the form of cheatsheets. The cheatsheets range from very simple tools like pandas to techniques like Deep Learning. After giving a star or forking the repository, you won’t need to google the most commonly used tips and tricks.
To give you a glimpse, the different types of cheatsheets are pandas, numpy, scikit learn, matplotlib, ggplot, dplyr, tidyr, pySpark and Neural Networks .
Link to repository: https://github.com/kailashahirwar/cheatsheets-ai
1.3 Oxford Deep Natural Language Processing Course Lectures
Stanford NLP has always been a golden course for people wanting to venture out into the field of Natural Language Processing. But with the advent of Deep Learning, NLP has seen tremendous progress, all thanks to the capabilities of Deep Learning Architectures such as RNN and LSTMs.
This repository based on Oxford NLP Lectures take the education of NLP to next level. A practical course, these lectures covers the techniques and terminologies to advance material such as using RNNs for Language Modeling, Speech Recognition, Text to Speech etc. This repository is a one stop shop for all the materials of the Oxford Lectures providing Lecture materials to Practical assignments.
Link to repository: https://github.com/oxford-cs-deepnlp-2017/lectures
1.4 PyTorch – Tutorial
As of now, PyTorch is the sole competitor to Tensorflow and it is doing a good job of maintaining its reputation. With the ease of Pythonic style coding, Dynamic Computations, and faster prototyping, PyTorch has garnered enough attention of the Deep Learning Community.
This repository contains codes for Deep Learning tasks ranging from learning basic of creating a Neural Network in PyTorch to coding RNNs, GANs and Neural Style Transfers. Most of the models have been implemented with as few as 30 lines of code. This speaks volume about the abstraction provided by PyTorch so that researchers may focus on finding the right model quickly rather than getting entangled in the nitty gritty of programming language or tool choice.
Link to repository: https://github.com/yunjey/pytorch-tutorial
1.5 Resources of NIPS 2017
This repository is a list of resources and slides of all invited talks, tutorials, and workshops in NIPS 2017 conference. For those who do not know what NIPS is, it is an annual conference specifically for Machine learning and Computational Neuroscience.
Most of the breakthrough research that has happened in the data science industry in the last couple of years has been a result of the research that has been presented at this conference. If you want to stay ahead of the curve, this is the right resource to follow!
Link to repository: https://github.com/hindupuravinash/nips2017
2. Open Source Softwares
2.1 TensorFlow
It has been 2 years since the official release of TensorFlow, but it has maintained the status of being the top Machine Learning / Deep Learning library. Google Brain and the community behind the development of TensorFlow has been actively contributing and keeping it abreast with the latest developments especially in Deep Learning domain.
TensorFlow was originally built as a library for numerical computation using data flow graphs. But looking at its current state, it can be pretty much said to be a complete library for building Deep Learning models. Although TensorFlow majorly supports Python, it also provides support for languages such as C, C++, Java and many more. And a cherry on the cake, it can also be run on a mobile platform!
Link to Repository: https://github.com/tensorflow/tensorflow
2.2 TuriCreate – A Simplified Machine Learning Library
A recent open source contribution by Apple, TuriCreate is the talk of the day. It boasts of easy-to-use creation and deployment of machine learning models for complex tasks such as object detection, activity classification, and recommendation systems.
Being a data science enthusiast for some time now, I remember that void that had been created when Turi (the company that created GraphLab Create – an amazing machine learning library) was acquired by Apple. Everyone in the data science industry had been waiting for this kind of explosion to happen!
TuriCreate is developed specially for python. One of the best features that TuriCreate provides is its easy deployability of machine learning models to Core ML (another open source software by Apple) for use in iOS, macOS, watchOS, and tvOS apps
Link to repository: https://github.com/apple/turicreate
2.3 OpenPose
OpenPose is a multi-person keypoint detection library which helps you to detect positions of a person in an image or video at real-time speed. Developed by CMU’s perceptual computing lab, OpenPose is a fine example of how open sourced research can be easily inculcated in the industry.
One of the use cases that OpenPose helps to solve is activity detection. For example, an activity done by an actor can be captured in real time. Then these key points and their motions can be used to create animated films.
OpenPose has a C++ API which can be used to access the library. But it also has a simple command line interface to process images or videos.
Link to repository: https://github.com/CMU-Perceptual-Computing-Lab/openpose
2.4 DeepSpeech
DeepSpeech library is an open source implementation of the state-of-the-art technique for Speech-to-Text synthesis by Baidu Research. It is based on TensorFlow and can be used specifically for Python, but it also has bindings for NodeJS and can be used on the command line too.
Mozilla has been one of the main workforces for building DeepSpeech from scratch and open sourcing the library. “There are only a few commercial quality speech recognition services available, dominated by a small number of large companies. This reduces user choice and available features for startups, researchers or even larger companies that want to speech-enable their products and services, Together with a community of like-minded developers, companies, and researchers, we have applied sophisticated machine learning techniques and a variety of innovations to build a speech-to-text engine …” Sean White, vice president of technology strategy at Mozilla, wrote in a blog post.
I believe that the library is worth checking out. Do let me know if you use it in the comments below.
Link to repository: https://github.com/mozilla/DeepSpeech
2.5 Mobile Deep Learning
This repository brings about the state-of-the-art technique in data science to the mobile platform. Developed by Baidu Research, the repository aims to deploy Deep Learning models on mobile devices such as Android and IOS with low complexity and high speed.
A simple use case as explained in the repository itself is object detection. It can identify the exact location of an object such as mobile in an image. Pretty cool right?
Link to repository: https://github.com/baidu/mobile-deep-learning
2.6 Visdom
Visdom is a library that supports broadcasting of plots, images, and text among collaborators. You can organize your visualization space programmatically or through the UI to create dashboards for live data, inspect results of experiments, or debug experimental code.
The exact inputs into the plotting functions vary, although most of them take as input a tensor X than contains the data and an (optional) tensor Y that contains optional data variables (such as labels or timestamps). It supports all basic plot types to create visualizations that are powered by Plotly.
Visdom supports Torch and Numpy within Python.
Link to repository: https://github.com/facebookresearch/visdom
2.7 Deep Photo Style Transfer
This repository is based on a research paper that introduces a deep learning approach to photographic style transfer that handles a large variety of image content while faithfully transferring the reference style. The approach successfully suppresses distortion and yields satisfying photorealistic style transfers in a broad variety of scenarios, including the transfer of the time of day, weather, season, and artistic edits. This code is based on torch.
Link to Repository: https://github.com/luanfujun/deep-photo-styletransfer
2.8 CycleGAN
CycleGAN is a fun but powerful library which shows the potential of the state-of-the-art technique. Just to give an example, the image below is a glimpse of what the library can do – adjusting the depth perception of the image. The catch here is that you haven’t told the algorithm which part of the image to focus upon. It does this on its own!
The library is currently written in Lua, but it can be used in command line too.
Link to repository: https://github.com/junyanz/CycleGAN
2.9 Seq2seq
Seq2seq was initially built for Machine Translation, but have since been developed to be used for a variety of other tasks, including Summarization, Conversational Modeling, and Image Captioning. As long as a problem can be moulded as encoding input data in one format and decoding it into another format, this framework can be used. It is programmed using the all popular Tensorflow library for Python.
Link to Repository: https://github.com/google/seq2seq
2.10 Pix2code
This one is a really exciting project using deep learning that attempts to automatically generate code for a given GUI. When building a website or a mobile interface, front-end engineers typically have to write repetitive code that is time consuming and non-productive. This essentially prevent developers from dedicating the majority of their time to implement the actual functionality and logic of the software they are building. Pix2code intends to remedy this by automating the process. It is based on a novel approach allowing the generation of computer tokens from a single GUI screenshot as input.
Here is a video explaining the use case of pix2code.
Pix2code is written in python and can be used to convert image captures of both mobile and web interfaces to code. The project can be accessed in the link below.
Link to Repository: https://github.com/tonybeltramelli/pix2code
End Notes
I hope you got to know a few of the new open source tools/technologies that have been released on GitHub in the year 2017. I have also listed down resources that have been trending on GitHub. If you have seen more such useful repositories in the past, do let me know in the comments below!