Scala、Spark与Deeplearning4j
希望构建深度学习解决方案的Scala程序员可以使用Deeplearning4j的Scala API ScalNet,或者借助Builder
模式来使用该Java框架。Skymind的数值运算库ND4J(面向JVM的N维数组)自带名为ND4S的Scala API。
Scala
Scala是21世纪发明的最令人激动的编程语言之一。它是一种完全支持函数式、对象导向式、命令式和并发式编程的多范式语言。Scala属于强类型语言,而在我们看来,强类型系统是一种便利的自文档化代码。
Scala与JVM兼容,可以利用Java生态系统中的丰富资源,同时也比Java更为精简。我们在ND4J中采用该语言,其语法与广受众多数据科学家青睐的Python语言惊人地相似。Scala可以像Python那样让程序员皆大欢喜,但同时它的速度也相当快,就和Java一样。
最后,Apache Spark是用Scala编写的,而任何宣称支持分布式运行时的库都至少应该能够与Spark对接。Deeplearning4j和ND4J则更上一层楼,因为它们在Spark集群中运行,并且分别拥有名为ScalNet和ND4S的Scala API。
我们相信Scala将凭借众多优势在数值运算以及深度学习领域占据主导地位。我们认为这将会在Spark上实现。我们也已在努力开发相关工具,促使这一天早日到来。
另请参见
- 文档:基于Spark的Deeplearning4j
- 课程:Scala编程思想(Atomic Scala)-推荐的入门课程
- Martin Odersky在Coursera上的Scala课程
- 书籍:Scala的数据科学应用(Scala for Data Science)
- 视频课程:用Scala解决问题
- 学习:Scala编程语言
- 面向Java程序员的Scala教程(PDF)
- Scala示例解析(Scala By Example),Martin Odersky著(PDF)
- ND4J的Scala介绍
- 我们的早期Scala API:(Github上的一个示例)
- SF Spark讲座:基于Spark的Deeplearning4j和基于JVM的数据科学(借助ND4J实现)
- Adam Gibson的Spark访谈,由Alexy Khrabrov主持
- 我们的Spark集成
- ND4J:面向JVM的科学计算
- 面向Python开发人员的Scala基础教程
- Coursera为何中意Scala
部分采用Scala的企业:
- AirBnB
- 亚马逊
- Apple
- Ask.com
- 美国电话电报公司
- Autodesk
- 美国银行
- 彭博
- 瑞信
- eBay
- Foursquare
- 卫报
- IBM
- Klout
- 领英
- NASA
- Netflix
- precog
- 西门子
- 索尼
- Tumblr
- 瑞银
- The Weather Channel
- 施乐
- Yammer