基础概念
此处个人选择 Deeplearning4j。用什么框架区别并不大,静下心来学习原理才是重要的。
Deeplearning4j
Deeplearning4j 是第一个为 Java 和 Scala 编写的商业级开源分布式深度学习库。
DL4J 集成了 Hadoop 和 Spark,旨在在分布式 GPU 和 CPU 上用于商业环境中。
可应用于以下深度学习领域:
-
人脸/图像识别
-
语音搜索
-
语音转文字(Speech to text)
-
垃圾信息过滤(异常侦测)
-
电商欺诈侦测
快速开始
先决条件
-
Java(开发者版本)1.7 或更高版本(仅支持 64 位版本)
-
Apache Maven(自动化构建和依赖管理)
-
Git
-
IntelliJ IDEA 或 Eclipse
本机测试
- Jdk
houbinbindeMacBook-Pro:003_condition houbinbin$ java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
- Maven
houbinbindeMacBook-Pro:003_condition houbinbin$ mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/local/maven/maven3.3.9
Java version: 1.8.0_91, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.3", arch: "x86_64", family: "mac"
- Git
houbinbindeMacBook-Pro:003_condition houbinbin$ git --version
git version 2.8.1
- IDE
本机使用IDEA。
DL4J Examples
一、下载和安装
$ git clone https://github.com/deeplearning4j/dl4j-examples.git
$ cd dl4j-examples/
$ mvn clean install
- 下载
如果发现命令行安装速度较慢,您也可以直接下载。
- pom.xml
为了在您自己的项目中运行 DL4J,我们强烈建议 Java 用户使用 Maven,Scala 用户可以使用类似 SBT 的工具。下面是一组基本的依赖项及其版本。这包括:
-
deeplearning4j-core,其中包含神经网络实现
-
nd4j-native-platform,支持 DL4J 的 ND4J 库的 CPU 版本
-
datavec-api - Datavec 是我们用于向量化和加载数据的库
这些Demo里面已经有了,无需再次引入。
- 安装
Book-Pro:dl4j-examples houbinbin$ pwd
/Users/houbinbin/IT/learn/DL/dl4j-examples-master/dl4j-examples
houbinbindeMacBook-Pro:dl4j-examples houbinbin$ mvn clean install
[INFO] Scanning for projects...
....
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:05 min
[INFO] Finished at: 2017-04-16T13:37:47+08:00
[INFO] Final Memory: 89M/897M
[INFO] ------------------------------------------------------------------------
- 运行
根据官方推荐。运行 MLPClassifierLinear
里面的 Main() 即可。
日志:
o.n.l.f.Nd4jBackend - Loaded [CpuBackend] backend
o.n.n.NativeOpsHolder - Number of threads used for NativeOps: 4
o.n.n.Nd4jBlas - Number of threads used for BLAS: 4
o.n.l.a.o.e.DefaultOpExecutioner - Backend used: [CPU]; OS: [Mac OS X]
o.n.l.a.o.e.DefaultOpExecutioner - Cores: [8]; Memory: [3.6GB];
o.n.l.a.o.e.DefaultOpExecutioner - Blas vendor: [OPENBLAS]
o.d.o.l.ScoreIterationListener - Score at iteration 0 is 0.6082896423339844
...
o.d.o.l.ScoreIterationListener - Score at iteration 10 is 0.5995052337646485
Evaluate model....
Examples labeled as 0 classified by model as 0: 100 times
Examples labeled as 1 classified by model as 1: 100 times
==========================Scores========================================
Accuracy: 1
Precision: 1
Recall: 1
F1 Score: 1
========================================================================
****************Example finished********************