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类。forName在尝试连接到MySQL数据库时不起作用   java如何实现适配器模式(或针对以下情况的更具说服力的解决方案)?   Java中的多态性问题   带有@SecondaryTable注释的java JPA/Hibernate映射   java是否有JList的延迟加载实现?   java在nTested列表中查找元素并按特定属性删除   java将多个标记设置为“我的应用”中的内置地图应用   如何在使用java使用WebDriver创建新的google帐户时读取图像框中的文本   java返回的hashmap值为空   java我可以在应用服务器之外使用JBoss JDBC适配器吗?   java如何检查正在执行的类   java如何在打印文本字符串时使用Thymeleaf忽略HTML标记?   java如何调用泛型类型为T[]的方法作为参数?   索引如何使用java api中的solr 7.7.2在windows中索引文件夹中的txt文件?   java Akka:在子演员完成后停止演员   java JavaFX:无效的属性错误   我们可以使用java从MySql数据库中获取添加的图像吗?   java Swagger示例参数值   java如何解决:没有类型可用的源代码。您是否忘记继承所需的模块?   java为什么有前缀/后缀++但没有前缀/后缀+=?