├── .gitignore ├── README.md ├── cron.sh ├── find_duplicates.sh ├── list.txt ├── list2md.multiprocess.py └── list2md.py /.gitignore: -------------------------------------------------------------------------------- 1 | config.py 2 | .idea 3 | __pycache__ 4 | 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Top Deep Learning Projects 2 | A list of popular github projects related to deep learning (ranked by stars automatically). 3 | 4 | Please update list.txt (via pull requests) 5 | 6 | | Project Name| Stars | Description 7 | | ------- | ------ | ------ 8 | | [tensorflow](https://github.com/tensorflow/tensorflow) | 68684 | Computation using data flow graphs for scalable machine learning | 9 | | [caffe](https://github.com/BVLC/caffe) | 19958 | Caffe: a fast open framework for deep learning. | 10 | | [keras](https://github.com/fchollet/keras) | 19190 | Deep Learning library for Python. Runs on TensorFlow, Theano, or CNTK. | 11 | | [neural-style](https://github.com/jcjohnson/neural-style) | 14432 | Torch implementation of neural style algorithm | 12 | | [CNTK](https://github.com/Microsoft/CNTK) | 12240 | Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit | 13 | | [incubator-mxnet](https://github.com/apache/incubator-mxnet) | 10944 | Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more | 14 | | [deepdream](https://github.com/google/deepdream) | 10496 | | 15 | | [data-science-ipython-notebooks](https://github.com/donnemartin/data-science-ipython-notebooks) | 10021 | Data science Python notebooks: Deep learning (TensorFlow, Theano, Caffe, Keras), scikit-learn, Kaggle, big data (Spark, Hadoop MapReduce, HDFS), matplotlib, pandas, NumPy, SciPy, Python essentials, AWS, and various command lines. | 16 | | [RocAlphaGo](https://github.com/Rochester-NRT/RocAlphaGo) | 8348 | An independent, student-led replication of DeepMind's 2016 Nature publication, "Mastering the game of Go with deep neural networks and tree search" (Nature 529, 484-489, 28 Jan 2016), details of which can be found on their website https://deepmind.com/publications.html. | 17 | | [convnetjs](https://github.com/karpathy/convnetjs) | 7879 | Deep Learning in Javascript. Train Convolutional Neural Networks (or ordinary ones) in your browser. | 18 | | [torch7](https://github.com/torch/torch7) | 7225 | http://torch.ch | 19 | | [deeplearning4j](https://github.com/deeplearning4j/deeplearning4j) | 7100 | Deep Learning for Java, Scala & Clojure on Hadoop & Spark With GPUs - From Skymind | 20 | | [pytorch](https://github.com/pytorch/pytorch) | 7037 | Tensors and Dynamic neural networks in Python with strong GPU acceleration | 21 | | [gym](https://github.com/openai/gym) | 6907 | A toolkit for developing and comparing reinforcement learning algorithms. | 22 | | [Theano](https://github.com/Theano/Theano) | 6855 | Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. It can use GPUs and perform efficient symbolic differentiation. | 23 | | [tflearn](https://github.com/tflearn/tflearn) | 6581 | Deep learning library featuring a higher-level API for TensorFlow. | 24 | | [char-rnn](https://github.com/karpathy/char-rnn) | 6539 | Multi-layer Recurrent Neural Networks (LSTM, GRU, RNN) for character-level language models in Torch | 25 | | [caffe2](https://github.com/caffe2/caffe2) | 5547 | Caffe2 is a lightweight, modular, and scalable deep learning framework. | 26 | | [playground](https://github.com/tensorflow/playground) | 5398 | Play with neural networks! | 27 | | [Paddle](https://github.com/PaddlePaddle/Paddle) | 5350 | PArallel Distributed Deep LEarning | 28 | | [Swift-AI](https://github.com/Swift-AI/Swift-AI) | 4919 | The Swift machine learning library. | 29 | | [Machine-Learning-Tutorials](https://github.com/ujjwalkarn/Machine-Learning-Tutorials) | 4749 | machine learning and deep learning tutorials, articles and other resources | 30 | | [neuraltalk](https://github.com/karpathy/neuraltalk) | 4359 | NeuralTalk is a Python+numpy project for learning Multimodal Recurrent Neural Networks that describe images with sentences. | 31 | | [TensorFlow-Tutorials](https://github.com/nlintz/TensorFlow-Tutorials) | 4091 | Simple tutorials using Google's TensorFlow Framework | 32 | | [TopDeepLearning](https://github.com/aymericdamien/TopDeepLearning) | 3944 | A list of popular github projects related to deep learning | 33 | | [tensorflow_tutorials](https://github.com/pkmital/tensorflow_tutorials) | 3675 | From the basics to slightly more interesting applications of Tensorflow | 34 | | [tiny-dnn](https://github.com/tiny-dnn/tiny-dnn) | 3244 | header only, dependency-free deep learning framework in C++14 | 35 | | [neon](https://github.com/NervanaSystems/neon) | 3197 | Intel® Nervana™ reference deep learning framework committed to best performance on all hardware | 36 | | [chainer](https://github.com/chainer/chainer) | 2883 | A flexible framework of neural networks for deep learning | 37 | | [PaintsChainer](https://github.com/pfnet/PaintsChainer) | 2532 | line drawing colorization using chainer | 38 | | [tensorlayer](https://github.com/zsdonghao/tensorlayer) | 2176 | TensorLayer: Deep Learning and Reinforcement Learning Library for Researcher and Engineer. | 39 | | [dl-docker](https://github.com/floydhub/dl-docker) | 2128 | An all-in-one Docker image for deep learning. Contains all the popular DL frameworks (TensorFlow, Theano, Torch, Caffe, etc.) | 40 | | [deepframeworks](https://github.com/zer0n/deepframeworks) | 1969 | Evaluation of Deep Learning Frameworks | 41 | | [speech-to-text-wavenet](https://github.com/buriburisuri/speech-to-text-wavenet) | 1733 | Speech-to-Text-WaveNet : End-to-end sentence level English speech recognition based on DeepMind's WaveNet and tensorflow | 42 | | [DeepLearningZeroToAll](https://github.com/hunkim/DeepLearningZeroToAll) | 1352 | TensorFlow Basic Tutorial Labs | 43 | | [Tensorflow-101](https://github.com/sjchoi86/Tensorflow-101) | 1322 | TensorFlow Tutorials | 44 | | [tensorflow-deepq](https://github.com/siemanko/tensorflow-deepq) | 1092 | A deep Q learning demonstration using Google Tensorflow | 45 | | [DeepRL-Agents](https://github.com/awjuliani/DeepRL-Agents) | 712 | A set of Deep Reinforcement Learning Agents implemented in Tensorflow. | 46 | | [word-rnn-tensorflow](https://github.com/hunkim/word-rnn-tensorflow) | 592 | Multi-layer Recurrent Neural Networks (LSTM, RNN) for word-level language models in Python using TensorFlow. | 47 | | [DeepLearningStars](https://github.com/hunkim/DeepLearningStars) | 207 | Top Deep Learning Projects based on their Stars! | 48 | | [dlami](https://github.com/ritchieng/dlami) | 185 | A Deep Learning Amazon Web Service (AWS) AMI that is open, free and works. Run in less than 5 minutes. TensorFlow, Keras, PyTorch, Theano, MXNet, CNTK, Caffe and all dependencies. | 49 | 50 | Last Automatic Update: Mon Sep 4 14:03:33 2017 51 | 52 | Inspired by https://github.com/aymericdamien/TopDeepLearning -------------------------------------------------------------------------------- /cron.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | git pull 3 | python3 list2md.py 4 | git commit -m"Auto update" -a 5 | git push origin 6 | -------------------------------------------------------------------------------- /find_duplicates.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | FILEPATH=list.txt 3 | 4 | sort $FILEPATH | uniq --count --repeated -------------------------------------------------------------------------------- /list.txt: -------------------------------------------------------------------------------- 1 | https://github.com/aymericdamien/TopDeepLearning 2 | https://github.com/hunkim/DeepLearningZeroToAll 3 | https://github.com/nlintz/TensorFlow-Tutorials/ 4 | https://github.com/tensorflow/tensorflow 5 | https://github.com/BVLC/caffe 6 | https://github.com/jcjohnson/neural-style 7 | https://github.com/google/deepdream 8 | https://github.com/fchollet/keras 9 | https://github.com/Rochester-NRT/RocAlphaGo 10 | https://github.com/karpathy/char-rnn 11 | https://github.com/hunkim/word-rnn-tensorflow 12 | https://github.com/karpathy/neuraltalk 13 | https://github.com/tflearn/tflearn 14 | https://github.com/tensorflow/playground 15 | https://github.com/pkmital/tensorflow_tutorials 16 | https://github.com/openai/gym 17 | https://github.com/hunkim/DeepLearningStars 18 | https://github.com/ujjwalkarn/Machine-Learning-Tutorials 19 | https://github.com/ritchieng/tensorflow-aws-ami 20 | https://github.com/nivwusquorum/tensorflow-deepq 21 | https://github.com/sjchoi86/Tensorflow-101 22 | https://github.com/donnemartin/data-science-ipython-notebooks 23 | https://github.com/karpathy/convnetjs 24 | https://github.com/taizan/PaintsChainer 25 | https://github.com/pytorch/pytorch 26 | https://github.com/baidu/Paddle 27 | https://github.com/zsdonghao/tensorlayer 28 | https://github.com/Theano/Theano 29 | https://github.com/Microsoft/CNTK 30 | https://github.com/torch/torch7 31 | https://github.com/dmlc/mxnet 32 | https://github.com/awjuliani/DeepRL-Agents 33 | https://github.com/tiny-dnn/tiny-dnn 34 | https://github.com/caffe2/caffe2 35 | https://github.com/NervanaSystems/neon 36 | https://github.com/pfnet/chainer 37 | https://github.com/zer0n/deepframeworks 38 | https://github.com/floydhub/dl-docker 39 | https://github.com/deeplearning4j/deeplearning4j 40 | https://github.com/Swift-AI/Swift-AI 41 | https://github.com/buriburisuri/speech-to-text-wavenet 42 | -------------------------------------------------------------------------------- /list2md.multiprocess.py: -------------------------------------------------------------------------------- 1 | """ 2 | Multiprocess version of list2md.py 3 | 4 | Examples 5 | ---------- 6 | 7 | $ python list2md.multiprocess.py 8 | 9 | """ 10 | import requests 11 | import time 12 | import config 13 | from multiprocessing.pool import Pool 14 | 15 | 16 | def write_md(dict_list, filepath="README.md"): 17 | """Given a list of dict, write a markdown file 18 | 19 | Parameters 20 | ---------- 21 | dict_list : list 22 | Each element is an dictionary of 23 | {"name": "Tensorflow", 24 | "url": "https://github.com/tensorflow/tensorflow", 25 | "stars": 55359, 26 | "description": "Computation using data flow graph ..."} 27 | 28 | filepath : str 29 | Readme path 30 | 31 | Returns 32 | ---------- 33 | bool 34 | Returns True If everything went smooth 35 | """ 36 | 37 | HEAD = """# Top Deep Learning Projects 38 | 39 | A list of popular github projects related to deep learning (ranked by stars automatically). 40 | 41 | 42 | Please update list.txt (via pull requests) 43 | 44 | 45 | |Project Name| Stars | Description | 46 | | ---------- |:-----:| ----------- | 47 | """ 48 | 49 | TAIL = f""" 50 | 51 | Last Automatic Update: {time.strftime("%c")} 52 | 53 | Inspired by https://github.com/aymericdamien/TopDeepLearning 54 | """ 55 | 56 | # sort descending by n_stars 57 | dict_list = sorted(dict_list, key=lambda x: x['stars'], reverse=True) 58 | 59 | # each data is a string (see `dict2md`) 60 | data_list = list(map(dict2md, dict_list)) 61 | 62 | with open(filepath, 'w') as out: 63 | 64 | out.write(HEAD) 65 | out.write("\n".join(data_list)) 66 | out.write(TAIL) 67 | 68 | return True 69 | 70 | 71 | def dict2md(dict_): 72 | """Convert a dictionary to a markdown format""" 73 | return "| [{name}]({url}) | {stars} | {description} |".format(**dict_) 74 | 75 | 76 | def get_url_list(filepath="list.txt"): 77 | """Read list.txt and returns a list of API urls""" 78 | 79 | def preprocess_url(url): 80 | """Returns an API url""" 81 | return "https://api.github.com/repos/" + url[19:].strip().strip("/") 82 | 83 | with open(filepath, 'r') as f: 84 | data = f.readlines() 85 | 86 | return list(map(preprocess_url, data)) 87 | 88 | 89 | def grab_data(url): 90 | """Go to the URL and grab a data 91 | 92 | Parameters 93 | ---------- 94 | url : str 95 | URL to a github repo 96 | 97 | Returns 98 | ---------- 99 | dict 100 | dict_keys(['name', 101 | 'description', 102 | 'forks', 103 | 'created', 104 | 'updated', 105 | 'url', 106 | 'stars']) 107 | """ 108 | params = { 109 | "access_token": config.ACCESS_TOKEN 110 | } 111 | 112 | try: 113 | data_dict = requests.get(url, params=params).json() 114 | 115 | return {'name': data_dict['name'], 116 | 'description': data_dict['description'], 117 | 'forks': data_dict['forks_count'], 118 | 'created': data_dict['created_at'], 119 | 'updated': data_dict['updated_at'], 120 | 'url': data_dict['html_url'], 121 | 'stars': data_dict['stargazers_count']} 122 | 123 | except KeyError: 124 | raise Exception(f"{data_dict}") 125 | 126 | 127 | def main(): 128 | url_list = get_url_list() 129 | 130 | pool = Pool(processes=config.N_WORKERS) 131 | result = pool.map_async(grab_data, url_list) 132 | 133 | write_md(result.get()) 134 | 135 | 136 | if __name__ == '__main__': 137 | main() 138 | -------------------------------------------------------------------------------- /list2md.py: -------------------------------------------------------------------------------- 1 | import cgitb 2 | import requests 3 | import time 4 | import config as cf 5 | 6 | cgitb.enable(format='text') 7 | 8 | result=[] 9 | 10 | head = '# Top Deep Learning Projects\n' \ 11 | 'A list of popular github projects related to deep learning (ranked by stars automatically).\n\n'\ 12 | 'Please update list.txt (via pull requests)\n\n' \ 13 | '| Project Name| Stars | Description \n' \ 14 | '| ------- | ------ | ------ \n' 15 | 16 | tail = '\nLast Automatic Update: ' + time.strftime("%c") + \ 17 | '\n\nInspired by https://github.com/aymericdamien/TopDeepLearning' 18 | 19 | with open("list.txt") as f: 20 | list = f.readlines() 21 | for url in list: 22 | if url.startswith("https://github.com/"): 23 | api_url = "https://api.github.com/repos/" + url[19:].strip().strip("/") 24 | api_url = api_url + '?access_token=' + cf.ACCESS_TOKEN 25 | print(api_url) 26 | r = requests.get(url=api_url) 27 | r_json = r.json() 28 | if 'name' in r_json: 29 | result.append({'name': r_json['name'], 30 | 'description': r_json['description'], 31 | 'forks': r_json['forks_count'], 32 | 'created': r_json['created_at'], 33 | 'updated': r_json['updated_at'], 34 | 'url': r_json['html_url'], 35 | 'stars': r_json['stargazers_count']}) 36 | 37 | 38 | sorted_result = sorted(result, key=lambda repos: repos['stars'], reverse=True) 39 | print(sorted_result) 40 | 41 | def xstr(s): 42 | if s is None: 43 | return '' 44 | return str(s) 45 | 46 | with open("README.md", 'w') as out: 47 | out.write(head) 48 | for repos in sorted_result: 49 | out.write('| [' + 50 | repos['name'] + '](' + repos['url'] + ') | ' + 51 | xstr(repos['stars']) + ' | ' + xstr(repos['description']) + ' | ' + 52 | # xstr(repos['updated']) + ' / ' + xstr(repos['created']) + 53 | ' \n') 54 | out.write(tail) 55 | --------------------------------------------------------------------------------