updated: 2/17/2017


A curated list of the most cited deep learning papers (since 2012)

We believe that there exist classic deep learning papers which are worth reading regardless of their application domain. Rather than providing overwhelming amount of papers, We would like to provide a curated list of the awesome deep learning papers which are considered as must-reads in certain research domains.


Before this list, there exist other awesome deep learning lists, for example, Deep Vision and Awesome Recurrent Neural Networks. Also, after this list comes out, another awesome list for deep learning beginners. called Deep Learning Papers Reading Roadmap, has been created and loved by many deep learning researchers.

Although the Roadmap List includes lots of important deep learning papers, it feels overwhelming for me to read them all. As I mentioned in the introduction, I believe that seminal works can give us lessons regardless of their application domain. Thus, I would like to introduce top 100 deep learning papers here as a good starting point of overviewing deep learning researches.

Awesome list criteria

  1. A list of top 100 deep learning papers published from 2012 to 2016 is suggested.
  2. If a paper is added to the list, another paper (usually from *More Papers from 2016" section) should be removed to keep top 100 papers. (Thus, removing papers is also important contributions as well as adding papers)
  3. Papers that are important, but failed to be included in the list, will be listed in More than Top 100 section.
  4. Please refer to New Papers and Old Papers sections for the papers published in recent 6 months or before 2012.

(Citation criteria)

  • < 6 months : New Papers (by discussion)
  • 2016 : +60 citations or "More Papers from 2016"
  • 2015 : +200 citations
  • 2014 : +400 citations
  • 2013 : +600 citations
  • 2012 : +800 citations
  • ~2012 : Old Papers (by discussion)

Please note that we prefer seminal deep learning papers that can be applied to various researches rather than application papers. For that reason, some papers that meet the criteria may not be accepted while others can be. It depends on the impact of the paper, applicability to other researches scarcity of the research domain, and so on.

We need your contributions!

If you have any suggestions (missing papers, new papers, key researchers or typos), please feel free to edit and pull a request.
(Please read the contributing guide for further instructions, though just letting me know the title of papers can also be a big contribution to us.)

Table of Contents

(More than Top 100)

Understanding / Generalization / Transfer

Optimization / Training Techniques

Unsupervised / Generative Models

Convolutional Neural Network Models

Image: Segmentation / Object Detection

Image / Video / Etc

Recurrent Neural Network Models

Natural Language Process

Speech / Other Domain

Reinforcement Learning

More Papers from 2016

New papers

Newly published papers (< 6 months) which are worth reading

Old Papers

Classic papers published before 2012

HW / SW / Dataset

Book / Survey / Review

Video Lectures / Tutorials / Blogs




Appendix: More than Top 100




Read More


OS X Yosemite and later

Use the following Terminal command to reset the DNS cache in OS X v10.10.4 or later:

sudo killall -HUP mDNSResponder

Use the following Terminal command to reset the DNS cache in OS X v10.10 through v10.10.3:

sudo discoveryutil mdnsflushcache

OS X Mavericks, Mountain Lion, and Lion

Use the following Terminal command to reset the DNS cache in OS X v10.9.5 and earlier:

sudo killall -HUP mDNSResponder

Mac OS X Snow Leopard

Use the following Terminal command to reset the DNS cache in OS X v10.6 through v10.6.8:

sudo dscacheutil -flushcache

Published Date: Aug 25, 2016

  1. 简单直白的版本
import requests 

def download_file(url):
    r = requests.get(url) 
    with open("test.zip", "wb") as f:
  1. 大文件的下载
import requests 

def download_file(url):
    local_filename = url.split('/')[-1]
    # NOTE the stream=True parameter
    r = requests.get(url, stream=True)
    with open(local_filename, 'wb') as f:
        for chunk in r.iter_content(chunk_size=1024): 
            if chunk: # filter out keep-alive new chunks
    return local_filename
  1. 更 robust 的版本

  1. 修改 root 密码

    ubuntu@VM-46-251-ubuntu:~$ sudo passwd root
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
  2. sudo 权限修改 /etc/ssh/sshd_config

    ubuntu@VM-46-251-ubuntu:~$ su
    root@VM-46-251-ubuntu:/home/ubuntu# vi /etc/ssh/sshd_config

    然后进入 sshd_config 中,/为查找命令,找到 PermitRootLogin prohibit-password# 注释掉
    紧接着加入 PermitRootLogin yes,方法为 i 进入编辑模式,加入设置,:wq 写入退出

  3. 重启 SSH 服务,使配置生效

    root@VM-46-251-ubuntu:/home/ubuntu# service ssh restart


为没使用过 Linux 的同学推荐 TLCL