- 授权协议: 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"
}
C++ API设计
[美] Martin Reddy / 刘晓娜、臧秀涛、林健 / 人民邮电出版社 / 2013-8 / 89.00
现代软件开发中的一大难题就是如何编写优质的API。API负责为某个组件提供逻辑接口并隐藏该模块的内部细节。多数程序员依靠的是经验和冒险,从而很难达到健壮、高效、稳定、可扩展性强的要求。Martin Reddy博士在自己多年经验基础之上,对于不同API风格与模式,总结出了API设计的种种最佳策略,着重针对大规模长期开发项目,辅以翔实的代码范例,从而有助于设计决策的成功实施,以及软件项目的健壮性及稳定......一起来看看 《C++ API设计》 这本书的介绍吧!
