deeplearning4j 教程
视频教程列表:Deeplearning4j - 入门视频
哔哩哔哩直达地址:https://space.bilibili.com/327018681/#/
交流群: 289058486
DeepLearning4J(DL4J)是一套基于Java语言的神经网络工具包,可以构建、定型和部署神经网络。DL4J与Hadoop和Spark集成,支持分布式CPU和GPU,为商业环境(而非研究工具目的)所设计。Skymind是DL4J的商业支持机构。
Deeplearning4j拥有先进的技术,以即插即用为目标,通过更多预设的使用,避免多余的配置,让非企业也能够进行快速的原型制作。DL4J同时可以规模化定制。DL4J遵循Apache 2.0许可协议,一切以其为基础的衍生作品均属于衍生作品的作者。
因为使用的maven管理项目,所以第一次使用的时候更改maven配置。更改仓库地址为国内的阿里云
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
mvn dependency:copy-dependencies -DoutputDirectory=target/lib
- dl4j快速索引:网络层,功能和类
- dl4j-example 概览
- dl4j 神经网络评估
- dl4j 版本发布日志
- Java api文档
- skymind 官方博客
- Quickstart with Deeplearning4J
- 旧版本官网github
- skymind ai wiki
- skymind开源数据集集合
参考资料:
参考资料:
参考资料:
参考资料:
参考资料:
参考资料:
- 关于深度学习之CNN经典论文原文(1950~2018)简介
- Visualizing and Understanding CNNs.pdf
- Deeplearning4j-使用Cuda 9.1和 Cudnn7.1 加速模型训练
- 在Deeplearning4j中使用cuDNN
- Using Deeplearning4j with cuDNN
- deep learning for computer vision with python(3 本) 密码:vr0r
参考资料
- 理解LSTM网络:https://www.jianshu.com/p/9dc9f41f0b29
- 循环网络和LSTM教程:https://deeplearning4j.org/cn/recurrentnetwork
- DL4J中的循环网络:https://deeplearning4j.org/cn/usingrnns
- DeepLearning4j: LSTM Network Example
参考资料:
参考资料:
参考资料:
- 比赛地址:http://dianshi.baidu.com/dianshi/pc/competition/22/rule
- 防止比赛结束,数据寻回链接:https://pan.baidu.com/s/1_M0yPejFTvxDFOn4780OPA
- Baseline 0.83 得分模型:https://pan.baidu.com/s/1i-v02HnMPQwjtm32fPp67A (已经保存 Updater 信息,可用于增量训练)
- 内存管理官方文档:https://deeplearning4j.org/docs/latest/deeplearning4j-config-memory
- 迁移学习官方文档:https://deeplearning4j.org/docs/latest/deeplearning4j-nn-transfer-learning
- 迁移学习推荐阅读博客:https://blog.csdn.net/wangongxi/article/details/75127131
- 早停法训练模型官方文档:https://deeplearning4j.org/docs/latest/deeplearning4j-nn-early-stopping
- 百度点石-“探寻地球密码”天宫数据利用大赛.md
- 百度点石-“探寻地球密码”天宫数据利用大赛.pdf
用于在模型训练过程中,指定最好模型保存的位置:
- InMemoryModelSaver:用于保存到内存中
- LocalFileModelSaver:用于保存到本地目录中,只能保存
MultiLayerNetwork类型的网络结果 - LocalFileGraphSaver:用于保存到本地目录中,只能保存
ComputationGraph类型的网络结果
- epochTerminationConditions:训练结束条件
- evaluateEveryNEpochs:训练多少个epoch 来进行一次模型评估
- scoreCalculator:模型评估分数的计算者 i. org.deeplearning4j.earlystopping.scorecalc.RegressionScoreCalculator 用于回归的分数计算 ii. ClassificationScoreCalculator 用于分类任务的分数计算
- modelSaver:模型的存储位置
- iterationTerminationConditions:在每一次迭代的时候用于控制
//Conduct early stopping training:
EarlyStoppingResult result = trainer.fit();
System.out.println("Termination reason: " + result.getTerminationReason());
System.out.println("Termination details: " + result.getTerminationDetails());
System.out.println("Total epochs: " + result.getTotalEpochs());
System.out.println("Best epoch number: " + result.getBestModelEpoch());
System.out.println("Score at best epoch: " + result.getBestModelScore());
//Print score vs. epoch
Map<Integer,Double> scoreVsEpoch = result.getScoreVsEpoch();
List<Integer> list = new ArrayList<>(scoreVsEpoch.keySet());
Collections.sort(list);
System.out.println("Score vs. Epoch:");
for( Integer i : list){
System.out.println(i + "\t" + scoreVsEpoch.get(i));
} // 构造数据模型
ZooModel zooModel = VGG16.builder().build();
ComputationGraph vgg16 = (ComputationGraph) zooModel.initPretrained();- updater
- 学习率
- 随机数种子:用于模型的复现
FineTuneConfiguration fineTuneConf = new FineTuneConfiguration.Builder()
.updater(new Nesterovs(0.1, 0.9))
.seed(123)
.build();
用于指定那个层以下为非 frozen 层,非冻结层。
- 一般只有不同网络层之间才会出现 shape 异常:需要根据异常信息调整我们的网络层结构和参数
removeVertexKeepConnections和addLayer或者是addVertex进行网络结构的更改
参考资料:
根据GRU前向公式推导反向公式,并在dl4j中实现。
参考资料:
- 博文地址:https://my.oschina.net/u/1778239/blog/1648854
- 源码地址:https://gitee.com/lxkm/dl4j-demo/tree/master/digitalrecognition
参考资料:
- 视频地址:https://tianchi.aliyun.com/forum/videoStream.html#postsId=5312
- 视频代码所在github:https://github.com/awaymeet/tesseract
参考资料:
参考资料:
配置 pom.xml 文件
<repositories>
<repository>
<id>snapshots-repo</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy> <!-- Optional, update daily -->
</snapshots>
</repository>
</repositories>自动获取 skymind 所提供的 jar 包编译更新
