python中的深层神经网络库

pydnn的Python项目详细描述


pydnn是一个使用Theano(符号数学和优化编译器包)用python编写的深层神经网络库。我在2015年3月参加Kaggle’s National Data Science Bowl比赛时将其作为一个学习项目编写(在那里它在top 6%中完成了一个条目),并计划通过添加对最重要的深度学习技术(包括rnn)的支持来继续开发它。

设计目标

  • 简单性
    尽可能简化代码,使其成为底层深度学习算法的清晰表达。最小化认知开销,以便完成deeplearning.net tutorials的人很容易在下一步中获取此库,并轻松开始学习、使用和编码更高级的技术。
  • 完整性
    包括有效深入学习的所有重要且流行的技巧,以及not具有更多边际或模糊益处的技巧。
  • 易用性
    准备一个数据集,建立一个模型,并只训练几行代码,让用户能够使用numpy而不是theano。
  • 性能
    应该与其他的theano神经网络库大致相当,因此pydnn是计算密集型深度学习的可行选择。

功能

  • 高性能GPU培训(由Theano提供)
  • 快速入门工具,用于立即开始有关inexpensiveamazon ec2 gpu实例的培训。
  • 文献中最近报道的重要新技术的实现:
  • 标准深度学习技术的实施:
    • 具有动量的随机梯度下降
    • 辍学
    • 使用重叠窗口的最大池卷积
    • relu/tanh/sigmoid激活功能

用法

首先从某个地方下载并解压缩原始图像数据(例如kaggle)。然后:

import pydnn
import numpy as np
rng = np.random.RandomState(e.rng_seed)

# build data, split into training/validation sets, preprocess
train_dir = 'home\ubuntu\train'
data = pydnn.data.DirectoryLabeledImageSet(train_dir).build()
data = pydnn.preprocess.split_training_data(data, 64, 80, 15, 5)
resizer = pydnn.preprocess.StretchResizer()
pre = pydnn.preprocess.Rotator360(data, (64, 64), resizer, rng)

# build the neural network
net = pydnn.nn.NN(pre, 'images', 121, 64, rng, pydnn.nn.relu)
net.add_convolution(72, (7, 7), (2, 2))
net.add_dropout()
net.add_convolution(128, (5, 5), (2, 2))
net.add_dropout()
net.add_convolution(128, (3, 3), (2, 2))
net.add_dropout()
net.add_hidden(3072)
net.add_dropout()
net.add_hidden(3072)
net.add_dropout()
net.add_logistic()

# train the network
lr = pydnn.nn.Adam(learning_rate=pydnn.nn.LearningRateDecay(
            learning_rate=0.006,
            decay=.1))
net.train(lr)

从原始数据到训练网络(包括指定 网络架构)25行代码。

短期目标

  • 实现流行的rnn技术。
  • 与amazon ec2集群软件(如StarCluster)集成。
  • 与超参数优化框架(如Spearminthyperopt)集成。

作者

艾萨克·克里格曼

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java FloatingAction按钮与RecyclerView中的CardView重叠   java如何计算CardLayout中的卡数   从远程系统上传MySQL数据库并访问Java应用程序   java调用堆栈如何处理带或不带返回类型的递归?   Springboot中的java组计数聚集   java如何在javafx textarea中使用richtextfx   获取与Mockito相关的错误时出现Java问题   java如何将JaxRS响应转换为Wiremock响应   Hadoop集群java。net ConnectionException:连接被拒绝错误   java如何加载文件私有文件类型是pem   java在元空间中的提升和加载的类   如何将系统属性传递给从HTML启动的Java小程序   java如何从网页中获取值并在主类中使用它?安卓应用   java在春天,advisor和aspect之间有什么区别?   java如何检测文件是否已重命名?   java消息驱动Bean何时使用