欢送拜访我的GitHub
https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等;
对于DL4J
- DL4J是Deeplearning4j的简称,是基于Java虚拟机的深度学习框架,是用java和scala开发的,已开源,官网:https://deeplearning4j.org/
对于《DL4J实战》系列
- 《DL4J实战》是欣宸在深度学习畛域的原创,旨在通过一系列入手操作,由浅入深理解深度学习的基本知识,把握通用操作,并且对DL4J逐步纯熟,进而在学习和工作中解决理论问题
本篇概览
- 作为《DL4J实战》系列的开篇,本文为前面的文章和实战做好筹备工作,蕴含以下内容:
- 确定环境和版本信息
- 创立名为<font color="blue">dl4j-tutorials</font>的maven工程作为父工程,前面整个系列的代码都是dl4j-tutorial的子工程
- 创立名为<font color="blue">commons</font>的子工程,这外面是一些罕用的工具代码,例如下载数据集、绘图等
源码下载
- 本篇实战中的残缺源码可在GitHub下载到,地址和链接信息如下表所示(https://github.com/zq2599/blo...):
名称 | 链接 | 备注 |
---|---|---|
我的项目主页 | https://github.com/zq2599/blo... | 该我的项目在GitHub上的主页 |
git仓库地址(https) | https://github.com/zq2599/blo... | 该我的项目源码的仓库地址,https协定 |
git仓库地址(ssh) | git@github.com:zq2599/blog_demos.git | 该我的项目源码的仓库地址,ssh协定 |
- 这个git我的项目中有多个文件夹,《DL4J实战》系列的源码在<font color="blue">dl4j-tutorials</font>文件夹下,如下图红框所示:
版本信息
本系列实战都是在以下环境进行,这里列出来供您参考:
- 操作系统:win10 64位专业版
- JDK:1.8.0_281
- maven:3.6.2
- IEDA:2021.1.1 (Ultimate Edition)
- DL4J:1.0.0-beta7
《DL4J实战》系列源码的专用父工程
- 《DL4J实战》系列的源码都搁置在同一个父工程下,除了治理代码不便,还能够将各个子工程的依赖库版本对立治理,接下来创立这个父工程;
- 新建名为<font color="blue">dl4j-tutorials</font>的maven工程,该工程下只有pom.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bolingcavalry</groupId> <artifactId>dlfj-tutorials</artifactId> <version>1.0-SNAPSHOT</version> <modules> <module>commons</module> <module>classifier-iris</module> </modules> <packaging>pom</packaging> <properties> <java.version>1.8</java.version> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <dl4j-master.version>1.0.0-beta7</dl4j-master.version> <!-- Change the nd4j.backend property to nd4j-cuda-X-platform to use CUDA GPUs --> <!-- <nd4j.backend>nd4j-cuda-10.2-platform</nd4j.backend> --> <nd4j.backend>nd4j-native</nd4j.backend> <java.version>1.8</java.version> <maven-compiler-plugin.version>3.6.1</maven-compiler-plugin.version> <maven.minimum.version>3.3.1</maven.minimum.version> <exec-maven-plugin.version>1.4.0</exec-maven-plugin.version> <maven-shade-plugin.version>2.4.3</maven-shade-plugin.version> <jcommon.version>1.0.23</jcommon.version> <jfreechart.version>1.0.13</jfreechart.version> <logback.version>1.1.7</logback.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.29</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-common</artifactId> <version>4.1.48.Final</version> </dependency> <dependency> <groupId>org.nd4j</groupId> <artifactId>${nd4j.backend}</artifactId> <version>${dl4j-master.version}</version> </dependency> <dependency> <groupId>org.datavec</groupId> <artifactId>datavec-api</artifactId> <version>${dl4j-master.version}</version> </dependency> <dependency> <groupId>org.datavec</groupId> <artifactId>datavec-data-image</artifactId> <version>${dl4j-master.version}</version> </dependency> <dependency> <groupId>org.datavec</groupId> <artifactId>datavec-local</artifactId> <version>${dl4j-master.version}</version> </dependency> <dependency> <groupId>org.deeplearning4j</groupId> <artifactId>deeplearning4j-datasets</artifactId> <version>${dl4j-master.version}</version> </dependency> <dependency> <groupId>org.deeplearning4j</groupId> <artifactId>deeplearning4j-core</artifactId> <version>${dl4j-master.version}</version> </dependency> <dependency> <groupId>org.deeplearning4j</groupId> <artifactId>deeplearning4j-ui</artifactId> <version>${dl4j-master.version}</version> </dependency> <dependency> <groupId>org.deeplearning4j</groupId> <artifactId>deeplearning4j-zoo</artifactId> <version>${dl4j-master.version}</version> </dependency> <!-- ParallelWrapper & ParallelInference live here --> <dependency> <groupId>org.deeplearning4j</groupId> <artifactId>deeplearning4j-parallel-wrapper</artifactId> <version>${dl4j-master.version}</version> </dependency> <!-- Used in the feedforward/classification/MLP* and feedforward/regression/RegressionMathFunctions example --> <dependency> <groupId>jfree</groupId> <artifactId>jfreechart</artifactId> <version>${jfreechart.version}</version> </dependency> <dependency> <groupId>org.jfree</groupId> <artifactId>jcommon</artifactId> <version>${jcommon.version}</version> </dependency> <!-- Used for downloading data in some of the examples --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.5</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>org.datavec</groupId> <artifactId>datavec-data-codec</artifactId> <version>${dl4j-master.version}</version> </dependency> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.5.2</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.16</version> </dependency> </dependencies> </dependencyManagement></project>
子工程commons
- 前面的实战中,咱们罕用到下载文件、绘图等性能,因而新增一个子工程,将下载绘图等性能对应的工具类都在这外面给其余工程应用
- 在<font color="blue">dl4j-tutorials</font>下新增名为<font color="blue">commons</font>的子工程,其pom.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>dlfj-tutorials</artifactId> <groupId>com.bolingcavalry</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>commons</artifactId> <dependencies> <dependency> <groupId>org.datavec</groupId> <artifactId>datavec-api</artifactId> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </dependency> <dependency> <groupId>org.deeplearning4j</groupId> <artifactId>deeplearning4j-core</artifactId> </dependency> <dependency> <groupId>jfree</groupId> <artifactId>jfreechart</artifactId> </dependency> </dependencies></project>
- 目前commons子工程中有四个类,并非欣宸原创,而是来自DL4J的官网demo,其性能简介如下:
- DataUtilities:下载和解压指定地址对应的文件
- DownloaderUtility:DL4J为咱们筹备了丰盛的数据集(例如150个鸢尾花数据,带标签),这些内容保留在云端(AZURE),通过DownloaderUtility能够很不便的下载和解压这些数据集
- PlotUtil:绘制二维图形
- VAEPlotUtil:绘制变分自编码图形
- 上述四个类在工程中的地位如下图所示,限于篇幅就不贴出代码了,有需要的话请在github上获取:
- 至此,筹备工作就实现了,接下来的旅程会异样精彩,欣宸感谢您的一路相伴!
你不孤独,欣宸原创一路相伴
- Java系列
- Spring系列
- Docker系列
- kubernetes系列
- 数据库+中间件系列
- DevOps系列
欢送关注公众号:程序员欣宸
微信搜寻「程序员欣宸」,我是欣宸,期待与您一起畅游Java世界...
https://github.com/zq2599/blog_demos