Top Deep Learning Projects

A list of popular github projects related to deep learning (ranked by stars).

Last Update: 2016.08.09

项 目 名 称 Stars 项目介绍
TensorFlow 29622 使用数据流图计算可扩展机器学习问题
Caffe 11799 Caffe是一个高效的开源深度学习框架
Neural Style 10148 Torch实现的神经网络算法
Deep Dream 9042 Deep Dream,一款图像识别工具
Keras 7502 一款Python实现的深度学习库,包括卷积神经网络、递归神经网络等。运行在Theano和TensorFlow之上。
Roc AlphaGo 7170 学生主导的一个独立项目,从新实现了 DeepMind在2016 Nature发表的内容, 《用深度神经网络和树搜索学习围棋》 (Nature 529, 484-489, 28 Jan 2016).
TensorFlow Models 6671 基于TensorFlow开发的模型
Neural Doodle 6275 运用深度神经网络将涂鸦变为优雅的艺术品,从照片生成无缝纹理,转变图片风格,进行基于实例的提升,等等…还有更多!(语义风格传递的实现)
CNTK 5957 计算网络工具(Computational Network Toolkit,CNTK)
TensorFlow Examples 5872 初学者的TensorFlow教程和代码示例。
ConvNet JS 5231 基于Javascript的深度学习库。在浏览器中训练卷积神经网络模型(或者普通模型)。
Torch 5133 Torch7,深度学习库。
OpenFace 4855 基于深度学习网络的面部识别。
MXNet 4685 轻巧、便携、灵活的分布式/移动深度学习框架,支持Python, R, Julia, Scala, Go, Javascript等等语言。
Nupic 4364 智能计算的Numenta平台:一个脑启发式的计算智能和机器智能平台,基于皮层学习算法的生物精确神经网络模型。
Theano 4286 Theano 是一个 Python 库,用来定义、优化和模拟数学表达式计算,用于高效的解决多维数组的计算问题。
Leaf 4281 黑客的开源机器智能框架。
Char RNN 3820 多层递归神经网络的字符级别语言模型,基于Torch开发。
Neural Talk 3694 NeuralTalk是一个Python+numpy项目,用多模式递归神经网络描述图像。
deeplearning4j 3673 基于Hadoop和Spark的Java, Scala & Clojure深度学习工具。
TFLearn 3368 深度学习库,包括高层次的TensorFlow接口。
TensorFlow Playground 3352 神经网络模型示例。
OpenAI Gym 3020 一种用于开发和比较强化学习算法的工具包。
Magenta 2914 Magenta: 音乐和艺术的生成与机器智能
Colornet 2798 用神经网络模型给灰度图上色。
Synaptic 2666 基于node.js和浏览器的免架构神经网络库。
Neural Talk 2 2550 Torch开发的图像简介生成代码,运行在GPU上。
Image Analogies 2540 使用神经匹配和融合生成相似图形。
TensorFlow Tutorials 2413 Tensorflow,从基础原理到应用。
Lasagne 2355 基于Theano训练和构建神经网络的轻型函数库。
PyLearn2 2153 基于Theano的机器学习库。
LISA-lab Deep Learning Tutorials 2134 深度学习教程笔记和代码。详情参见wiki页面。
Neon 2121 Nervana™开发的一款快速、可扩展、易上手的Python深度学习框架.
Matlab Deep Learning Toolbox 2032 Matlab/Octave的深度学习工具箱。包括深度信念网络、自动编码机、卷积神经网络、卷积自动编码机和vanilla神经网络等。每种方法都有入门示例。
Deep Learning Flappy Bird 1721 使用深度强化学习破解Flappy Bird游戏(深度 Q-学习).
Chainer 1573 一款灵活的深度学习神经网络框架。
Neural Story Teller 1514 看图讲故事的递归神经网络模型。
DIGITS 1353 深度学习GPU训练系统。
Deep Jazz 1229 基于Keras和Theano生成jazz的深度学习模型!
Brainstorm 1143 快速、灵活、有趣的神经网络。
Darknet 937 C语言版本的开源神经网络。
Theano Tutorials 904 基于Theano的机器学习入门教程,从线性回归到卷积神经网络。
RNN Music Composition 904 一款生成古典音乐的递归神经网络工具。
Blocks 866 用于构建和训练神经网络模型的Theano框架。
TDB 860 TensorFlow的交互式、节点调试和可视化的工具。
Scikit Neural Net 849 深度神经网络入门工具,类似scikit-learn的分类器和回归模型。
Veles 760 分布式机器学习平台(Python, CUDA, OpenCL)
Deep Detect 759 基于C++11的深度学习接口和服务器,与Python绑定并支持Caffe。
TensorFlow DeepQ 759 基于Google Tensorflow的深度Q学习演示。
Caffe on Spark 724 基于Spark的Caffe。
Nolearn 702 神经网络库的抽象,著名的Lasagne。
DCGAN TensorFlow 568 基于tensorflow实现的深度卷积生成对抗网络。
DeepCL 413 用于训练深度卷积神经网络模型的OpenCL库。

 

> 英文原版

Project Name St ars Description
TensorFlow 29622 Computation using data flow graphs for scalable machine learning.
Caffe 11799 Caffe: a fast open framework for deep learning.
Neural Style 10148 Torch implementation of neural style algorithm.
Deep Dream 9042 Deep Dream.
Keras 7502 Deep Learning library for Python. Convnets, recurrent neural networks, and more. Runs on Theano and TensorFlow.
Roc AlphaGo 7170 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).
TensorFlow Models 6671 Models built with TensorFlow
Neural Doodle 6275 Turn your two-bit doodles into fine artworks with deep neural networks, generate seamless textures from photos, transfer style from one image to another, perform example-based upscaling, but wait… there’s more! (An implementation of Semantic Style Transfer.)
CNTK 5957 Computational Network Toolkit (CNTK).
TensorFlow Examples 5872 TensorFlow tutorials and code examples for beginners.
ConvNet JS 5231 Deep Learning in Javascript. Train Convolutional Neural Networks (or ordinary ones) in your browser.
Torch 5133 Torch7, Deep Learning Library.
OpenFace 4855 Face recognition with deep neural networks.
MXNet 4685 Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more.
Nupic 4364 Numenta Platform for Intelligent Computing: a brain-inspired machine intelligence platform, and biologically accurate neural network based on cortical learning algorithms.
Theano 4286 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.
Leaf 4281 Open Machine Intelligence Framework for Hackers.
Char RNN 3820 Multi-layer Recurrent Neural Networks (LSTM, GRU, RNN) for character-level language models in Torch.
Neural Talk 3694 NeuralTalk is a Python+numpy project for learning Multimodal Recurrent Neural Networks that describe images with sentences.
deeplearning4j 3673 Deep Learning for Java, Scala & Clojure on Hadoop, Spark.
TFLearn 3368 Deep learning library featuring a higher-level API for TensorFlow.
TensorFlow Playground 3352 Play with neural networks!
OpenAI Gym 3020 A toolkit for developing and comparing reinforcement learning algorithms.
Magenta 2914 Magenta: Music and Art Generation with Machine Intelligence
Colornet 2798 Neural Network to colorize grayscale images.
Synaptic 2666 architecture-free neural network library for node.js and the browser
Neural Talk 2 2550 Efficient Image Captioning code in Torch, runs on GPU.
Image Analogies 2540 Generate image analogies using neural matching and blending.
TensorFlow Tutorials 2413 From the basics to slightly more interesting applications of Tensorflow.
Lasagne 2355 Lightweight library to build and train neural networks in Theano.
PyLearn2 2153 A Machine Learning library based on Theano.
LISA-lab Deep Learning Tutorials 2134 Deep Learning Tutorial notes and code. See the wiki for more info.
Neon 2121 Fast, scalable, easy-to-use Python based Deep Learning Framework by Nervana™.
Matlab Deep Learning Toolbox 2032 Matlab/Octave toolbox for deep learning. Includes Deep Belief Nets, Stacked Autoencoders, Convolutional Neural Nets, Convolutional Autoencoders and vanilla Neural Nets. Each method has examples to get you started.
Deep Learning Flappy Bird 1721 Flappy Bird hack using Deep Reinforcement Learning (Deep Q-learning).
Chainer 1573 A flexible framework of neural networks for deep learning.
Neural Story Teller 1514 A recurrent neural network for generating little stories about images.
DIGITS 1353 Deep Learning GPU Training System.
Deep Jazz 1229 Deep learning driven jazz generation using Keras & Theano!
Brainstorm 1143 Fast, flexible and fun neural networks.
Darknet 937 Open Source Neural Networks in C
Theano Tutorials 904 Bare bones introduction to machine learning from linear regression to convolutional neural networks using Theano.
RNN Music Composition 904 A recurrent neural network designed to generate classical music.
Blocks 866 A Theano framework for building and training neural networks.
TDB 860 Interactive, node-by-node debugging and visualization for TensorFlow.
Scikit Neural Net 849 Deep neural networks without the learning cliff! Classifiers and regressors compatible with scikit-learn.
Veles 760 Distributed machine learning platform (Python, CUDA, OpenCL)
Deep Detect 759 Deep Learning API and Server in C++11 with Python bindings and support for Caffe.
TensorFlow DeepQ 759 A deep Q learning demonstration using Google Tensorflow.
Caffe on Spark 724 Caffe On Spark.
Nolearn 702 Abstractions around neural net libraries, most notably Lasagne.
DCGAN TensorFlow 568 A tensorflow implementation of Deep Convolutional Generative Adversarial Networks
MatConvNet 479 MATLAB CNN toolbox for computer vision applications.
DeepCL 413 OpenCL library to train deep convolutional neural networks.

对象存储的正确使用方法(小文件)

根据使用对象存储的经验,得出以下正确使用的方法。

1.所有的存储逻辑,包括对文件和数据库的增删改操作,都要基于对本地操作,也就是不需要使用任何的对象存储API。

2.所有的读取操作,也就是查操作,都直接使用对象存储服务,启用其镜像存储服务即可,这样所有本地的资源在被第一次访问时都会被自动同步到对象存储服务器中。

3.在本地的存储逻辑中,当对文件进行新增操作后,可以加一次对对象存储服务器相应新资源的访问逻辑,这样就自动实现了即时同步,而不用等第一个用户去访问,导致一定的体验损失(由于一般情况下,前后台的文件新增操作后,都自然会进行一次显示,所以这一步本质上天然由文件的上传者完成了,也即不需要编写额外的访问逻辑)。

4.对于删改逻辑,由于业务代码都只对本地操作,所以如果业务中删改逻辑很多(例如图片应用),那么对象存储服务器上等于会对任何文件做永久备份,如果成本太高,则可以在本地删改逻辑后,同步调用对象存储的API,对相应远程文件进行删改操作。如果仍旧想备份,可以将这个文件另行拷贝到备份文件夹。

5.需要的情况下启用图片自动压缩功能。

人人店上使用七牛云

由于服务器带宽问题,客户的人人店分销系统加载图片的速度一直非常的慢,系统虽然自带阿里云OSS和七牛云存储的功能,但是用的时候却有诸多问题。

1.在”系统选项”->”附件设置”下配置好”远程附件”中的七牛云相关信息后,页面返回为空白的问题。

这个问题是因在framework/model/attachment.mod.php中第30行,系统根据配置上传一个文件用于测试相关参数是否正确设置,而上传的这个本地文件不存在导致的,把这个*.ico文件改为一个本地存在的文件就好。

2.如果选用七牛云华南区的服务器,则配置无法通过上传测试的问题。

由于人人店系统版本的原因,可能选用的七牛云的SDK版本较旧(我们使用的系统上为7.0.6版),一些老版本的SDK是不包含华南等之后增加的服务器处理逻辑的,这里要给七牛云的SDK工程师一个差评,难道没想过公司会做大吗?低级错误。这个问题的解决只需要下载最新的七牛云SDK,并解压到framework/library下,取代原有的qiniu文件夹就好。

3.一切都配置成功了,似乎原有的商城仍旧没有使用相关配置的问题。

人人店有双重设置,这里需要进到相应公众号下的人人店管理系统中,在右上角的”系统设置”中,编辑组件信息,先启用七牛存储组件,然后在”公众号权限”中找到要授权七牛云存储的公众号并赋予七牛存储的组件使用权。最后,在上方的”数据”栏目里,就可以看到”七牛存储”的工具了,把之前的配置信息再在这里设置一遍就好了。注意,这里旧版的人人店系统会有存储区域选项,而且里面会只有华东和华北两个地区,由于我们已经更新了相关的七牛SDK,并且我们检查了新的SDK中的服务器选择代码,确认这个参数的传入是不会影响新的SDK的行为的,所以这里我们不用去选择他,新的SDK会根据我们的参数自动选择相应的服务器区域。

这一步配置好后,人人店往后新增的图片就都是使用的七牛云存储的相关空间了。如果之前系统已经有使用过,并且上传过一些图片资源的话,这个时候系统实际上在使用两套图片逻辑,既存量的图片将使用本地attachment目录下的文件,而增量的新图片将使用七牛云存储中的图片,并且增删改查都是这两套逻辑。

4.平滑迁移旧图片到七牛云

系统建议说直接将attachment文件夹上传到七牛云,当然,这是一种迁移的办法,如果想平滑迁移,可以使用七牛云的镜像存储功能,但是其使用文档写得有些错误,比如文档中说,要使用镜像存储,要求之前系统中的图片必须有一个单独的域名,这一点实际是错误的。人人店系统并没有给图片数据设置单独域名的功能,这里我们找到了一个解决方法,实际上只要原系统的图片都放在同一个目录下,并且使用src引用时都是用某个变量或者逻辑控制绝对地址,都可以比较方便的修改。(如果是相对地址或者绝对地址是写死到每一个src,需要对所有文件进行正则替换,替换成七牛中配置的新地址)

首先,在七牛云的镜像存储中设置好镜像源,直接使用原系统的图片目录地址就好,人人店的类似这样:http://www.yourdomain.com/attachment/,如果有多个目录,则可能需要建立多个存储空间,设立多个镜像存储。

然后,我们替换整个系统的图片地址头,在data/config.php文件中,我们并未找到相应的域名头配置变量,但是我们找到了$config[‘upload’][‘attachdir’] = ‘attachment’;,这说明,系统确实可以对图片的本地目录做统一的配置,进一步,全局搜索attachdir关键字,在framework/function/global.func.php下的第453行,找到了相应的设置,

TIM图片20170716160731

这个就是人人店系统对图片地址的控制逻辑,可以看到它有检查一个文件是否在本地存在,如果存在就会返回本地的链接,如果不存在,则会返回$_W[‘attachurl_remote’] . $src,这里我们猜测$_W[‘attachurl_remote’] 就是我们配置的七牛云的URL。

这里实现平滑迁移的方式很简单,将这一整段逻辑注释掉,直接使用七牛云的地址,即要求系统强制访问七牛云的空间,由于镜像存储的逻辑是,如果七牛空间没有图片,则到之前配置的镜像源下载图片到七牛云的空间,所以,将上面那段代码直接换成这样就好:$src = ‘你绑定使用的七牛云域名’ . $src;

设置好以后,不论是在前台的微信端,还是后台的管理端,人人店系统统一都会调用七牛云的资源了,每个资源被访问一次,就会被自动掉入到七牛云中,之后再访问就速度超快了。

最后,关于这个小技巧的一点思考,如果希望用户上传的新图片,都先在本地存一份,然后在七牛云也存一份,以保证系统可以不依赖七牛云运行,可以不对系统进行七牛的配置,只是更改第四个问题中的代码,这样,文件的上传实际上就到了本地(增删改查都将都是对本地的文件和数据库进行操作),但是读取的时候就被镜像存储功能自动拉到了七牛云,这样设置的话,有一个问题,就是无法删除掉七牛云上的文件,七牛云上的文件会越来越多,不过带来的好处就是可以随时切断客户的七牛云服务,或者更换对象存储服务商,方法就是把第四步的代码还原,或者切换到其他对象存储服务商的服务器即可(进一步的思考是,可以在这里加控制逻辑,根据不同服务商的收费方式或者负载能力,自动选择不同的对象存储服务商)。

 

Mac下App Store安装xcode太慢问题的解决

  • 在 App Store 中点击下载 Xcode
  • 通过 Spotlight 打开 活动监视器,输入 storedownloadd 并点击 ❗️ 按钮

    Paste_Image.png
  • 通过 command+F 查找 .pkg 并复制文件路径
    如果有多个文件,请选择路径中包含 497799835 的文件路径

  • 打开 Finder 并通过 shift+command+G 快捷键打开前往文件夹,粘贴文件地址后,点击 前往

    Paste_Image.png
  • 打开文件所在路径的父文件夹。并打开 mainfest.plist 文件。
  • 复制文件内的 App 下载地址。随后,您就可以通过常用的下载工具或者网盘开启下载模式了。

    然后找一台阿里云的服务器,最好是国内的,用wget下载该文件(注意:这个地址用迅雷下载仍旧很慢)
    wget -c –limit-rate=10000k 下载地址
    这里最好是要限速,不限速的情况下可能速度太快会被关黑洞,-c是断点续传。
    大概10分钟就能下好4G多的xcode,然后加大这台服务器的带宽,用迅雷下回本地就可以了。