- 授权协议: Apache
- 开发语言: Scala
- 操作系统: 跨平台
- 软件首页: https://github.com/ThoughtWorksInc/DeepLearning.scala
- 软件文档: https://github.com/ThoughtWorksInc/DeepLearning.scala/blob/v9/README.md
- 官方下载: https://github.com/ThoughtWorksInc/DeepLearning.scala/archive/v9.zip
软件介绍
DeepLearning.scala 是一个 DSL 创建的深度神经网络,Scala 语言编写。利用 DeepLearning.scala,普通程序员能够从简单的代码构建复杂的神经网络。 你可以像往常一样编写代码,唯一的区别是基于 DeepLearning.scala 的代码是可区分的,这使得这样的代码可以通过不断修改参数来改善。
特性
可区分的基础类型
像 Theano 和其他深度学习工具包一样,DeepLearning.scala 允许从数学公式构建神经网络。 它支持浮点数,双精度,GPU 加速的 N 维数组,并计算公式中权重的导数。
可区分的 ADT
Deep Learning.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"
}
