在Deeplearning4j中使用cuDNN
2018-01-10 21:59
101 查看
在Deeplearning4j中使用cuDNN
Deeplearning4j支持cuda,但是也支持使用cuDNN实现更进一步的加速。自从版本0.9.1之后,CNNs和LSTMs网络都支持cuDNN加速。注意: cuDNN并不支持
GravesLSTM网络层,请考虑使用
LSTM网络层进行替代。为了使用cuDNN,你首先需要切换Nd4j的后端至CUDA后端。这个可以通过在你项目中的
pom.xml将
nd4j-native替换为
nd4j-cuda-7.5或者
nd4j-cuda-8.0的方式来实现。理论上,将后端替换为
nd4j-cuda-7.5或者
nd4j-cuda-8.0将会自动添加全平台依赖:
<dependency> <groupId>org.nd4j</groupId> <artifactId>nd4j-cuda-7.5-platform</artifactId> <version>${nd4j.version}</version> </dependency>
或者
<dependency> <groupId>org.nd4j</groupId> <artifactId>nd4j-cuda-8.0-platform</artifactId> <version>${nd4j.version}</version> </dependency>
使得DL4J可以加载cuDNN,唯一需要我们做的事情就是将
nd4j-cuda-7.5或者
nd4j-cuda-8.0加入到我们的依赖文件中,例如:
<dependency> <groupId>org.nd4j</groupId> <artifactId>nd4j-cuda-7.5-platform</artifactId> <version>${nd4j.version}</version> </dependency>
或者
<dependency> <groupId>org.nd4j</groupId> <artifactId>nd4j-cuda-8.0-platform</artifactId> <version>${nd4j.version}</version> </dependency>
而cuDNN实际需要的库文件没有打包在里面,所以你需要去英伟达官网下载并且安装适合你平台的包:
NVIDIA cuDNN
注意,现在只支持cuDNN 6.0。要安装,只需将库提取到本地库使用的系统路径中找到的目录。 最简单的方法是将其与CUDA中的其他库一起放在默认目录中(/usr/local/cuda/lib64/ on Linux, /usr/local/cuda/lib/ on Mac OS X, and C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin\ or C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin\ on Windows).
再次提示,在默认情况下,Deeplearning4j会根据cuDNN使用速度最快的算法,但是内存使用可能会过多,导致一些奇怪的启动异常。当这种情况发生时,尝试使用这种方式来降低内存的使用量,使用
NO_WORKSPACE(查看更多模式配置)来替代默认的
ConvolutionLayer.AlgoMode.PREFER_FASTEST,例如:
// ... new ConvolutionLayer.Builder(h, w) .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE) // ...
原文地址:https://deeplearning4j.org/cudnn
更多文档可以查看 https://github.com/sjsdfg/deeplearning4j-issues。
欢迎star
相关文章推荐
- caffe安装,编译(包括CUDA和cuDNN的安装),并训练,测试自己的数据(caffe使用教程)
- 非root用户暴力法解决选择性使用两个cudnn
- 使用DeepLearning4J进行K-Means聚类
- DeepLearning4J入门——使用LSTM进行大盘回归
- faster rcnn 中如何使用高版本的cudnn
- 【python】Redis介绍及简单使用
- Mac OS使用技巧之十六:系统失去响应怎么办?
- 使用xampp安装组合服务的问题
- 使用javascript开发windows phone应用的相关问题
- 使用LumiSoft.Net收取邮件
- 使用Forms Authentication实现用户注册、登录 (二)用户注册与登录
- (zz)针对不同网页使用不同代理 —— IE自动配置脚本
- [转]如何有效的使用C#读取文件
- 在vs调试时使用jquery调用webservice返回的xml而发生的错误
- unity使用IDragHandler实现拖拽
- 【51单片机实验】中断嵌套--IP引脚的使用
- Android AM命令及使用
- 嵌入式 Linux下mysql的基本使用方法
- Silverlight中使用MVVM(1)--基础
- CreateTextFile 文件的使用