DeepLearning.scala DSL 创建的深度神经网络开源项目

我要开发同款
匿名用户2016年11月30日
91阅读
开发技术Scala
所属分类人工智能
授权协议Apache

作品详情

DeepLearning.scala是一个DSL创建的深度神经网络,Scala语言编写。利用DeepLearning.scala,普通程序员能够从简单的代码构建复杂的神经网络。你可以像往常一样编写代码,唯一的区别是基于DeepLearning.scala的代码是可区分的,这使得这样的代码可以通过不断修改参数来改善。

特性

可区分的基础类型

像 Theano 和其他深度学习工具包一样,DeepLearning.scala允许从数学公式构建神经网络。它支持浮点数,双精度,GPU加速的N维数组,并计算公式中权重的导数。

可区分的ADT

DeepLearning.scala创建的神经网络支持 ADT 数据结构(例如 HList 和 Coproduct),并通过这些数据结构计算导数。

可区分控制流

由DeepLearning.scala创建的神经网络可能包含像常规语言中的if/else/match/case这样的控制流。结合ADT数据结构,您可以在神经网络中实现任意算法,并且仍然保留在算法中使用的一些变量可区分和可训练。

可组合性

DeepLearning.scala创建的神经网络是可组合的。您可以通过组合较小的网络来创建大型网络。如果两个较大的网络共享一些子网络,则用一个网络训练的共享子网络中的权重影响另一个网络。

静态类型系统

所有上述功能都是静态类型检查。

配置:

{  "sudo": false,  "addons": {    "apt": {      "packages": [        "graphviz"      ]    }  },  "language": "scala",  "jdk": "oraclejdk8",  "before_cache": [    "find $HOME/.sbt -name '*.lock' -delete",    "find $HOME/.ivy2 -name 'ivydata-*.properties' -delete"  ],  "cache": {    "directories": [      "$HOME/.ivy2/cache",      "$HOME/.sbt/boot/"    ]  },  "script": [    "sbt +test"  ],  "before_deploy": null,  "group": "stable",  "dist": "precise",  "os": "linux"}
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论