深度学习
文章平均质量分 72
jacob_wjj
领英主页:https://www.linkedin.com/in/jiang-bo-a56771ba/
展开
-
Swig实现将C、C++编译成Python动态链接库
转载:http://cering.github.io/2015/12/08/%E4%BD%BF%E7%94%A8SWIG%E5%AE%9E%E7%8E%B0Python%E8%B0%83%E7%94%A8C-C-%E4%BB%A3%E7%A0%81/转载 2017-03-13 13:46:59 · 505 阅读 · 1 评论 -
基于CuDNN如何实现自动选取最优卷积算法?
何为最优最优并不是绝对的,而是需要针对具体的应用场景而言.在深度学习应用中,训练时我们往往对训练速度有要求,希望越快越好,也就意味着能够在更短的时间训练完我们的模型,更小的调整参数的成本;而对于随着网络模型的深度加大,模型本身训练时所占用的显存空间很大,这时候就要求我们的选取的卷积算法能够竟可能的少占用临时显存空间.综上,这是一个时间与空间的权衡,本文会结合当前最新的CuDNN分析如何实现...原创 2018-02-23 16:35:25 · 2453 阅读 · 0 评论 -
Mixed-precision(混合精度训练)
混合精度训练最近刚好在做相关工作,所以花点时间对混合精度进行模型训练进行一下理解与总结.详细数据请参考百度与nvidia联合放在arxiv上的论文:https://arxiv.org/pdf/1710.03740.pdf 概述深度学习模型的计算任务分为训练和推理.训练往往是放在云端或者超算集群中,利用GPU强大的浮点计算能力,来完成网络模型参数的学习过程.一般来说训练时,计算资源往...原创 2018-02-12 19:59:56 · 11590 阅读 · 1 评论 -
TensorFlow计算图优化代码剖析
代码路径:tensorflow/core/grappler/optimizers 其中meta_optimizer.cc中的RunMetaOptimizer方法的调用触发对图的不同类型的优化操作.优化操作分为一下几类: 1. pruning.裁剪,比如移除一些无用的操作(一旦图建立之后不再使用的stop gradient节点以及Identity节点),优化梯度计算. 2. constfo原创 2017-11-20 16:52:05 · 4769 阅读 · 0 评论 -
tensorflow内存分配器剖析
tensorflow基于Doug Lea的malloc实现了自己的一套内存分配器.(简易版本的dlmalloc)通过合并的方式减少内存碎片.前提是假设使用这个分配器的进程拥有很大的内存,并且所有的内存分配请求都是通过这个接口. 代码路径: core/common_runtime/bfc_allocator.h关键数据结构以及变量含义: Chunk:指向一块内存,prev/next指针组成了一个原创 2017-11-24 14:59:46 · 1222 阅读 · 1 评论 -
tensorflow分布式运行时组件剖析
本节主要研读core/distributed_runtime目录.集中为分布式多节点之间通信,全局资源分配/管理,资源调度等问题.mgr: base_rendezvous_mgr: rendezvous_mgr_interface.h cluster_function_library_runtimegraph_mgr partial_run_mgr session_mgrmaster_se原创 2017-11-23 20:31:43 · 1911 阅读 · 0 评论 -
Tensorflow中Device实例的生成和管理
关键术语描述kernel在神经网络模型中,每个node都定义了自己需要完成的操作,比如要做卷积、矩阵相乘等。而实现这个操作的算法,我们单独抽象出来,叫做kernel。 可以将kernel看做是一段能够跑在具体硬件设备上的算法程序,所以即使同样的2D卷积算法,我们有基于gpu的Convolution 2D kernel实例、基于cpu的Convolution 2D kernel实例。device负原创 2017-11-15 19:55:42 · 2510 阅读 · 0 评论 -
slurm提交Tensorflow任务实现
主要目的目前tensorflow单机多卡模式可以参考tutorial很容易使用,但是如果想在集群多节点搭建分布式tensorflow训练任务部署,官方没有一个很好的示例代码,只能通过很naive的方法,指定ps node/worker node,在不同的节点分别执行对应的程序来实现多机协同训练模型的效果.这种方式对于集群环境,存在大量节点的情况就显得非常的不方便.本文是基于slurm集群资源管理工具原创 2017-11-21 14:07:34 · 3154 阅读 · 0 评论 -
Tensorflow MPI Enable Intro
TensorFlow MPI Enable Intro如何编译并使用支持MPI的tensorflow官方提供的readme.md中说只需要执行configure时选择MPI Support.但是笔者通过配置openmpi-1.8.15-cuda-8.0也就是cuda aware的mpi,编译过程并不顺利,会出现"fatal error: openmpi/ompi/mpi/cxx/mpicxx.h:原创 2017-10-13 18:05:54 · 3194 阅读 · 1 评论 -
TensorFlow 1.0源码编译安装
CUDA/cudnn安装pythonTF源码下载bazel安装bazel是通过自行在github上下载release的zip源码包然后编译,将生成的二进制文件拷贝到PATH路径上即可。 注意:tensorflow配置时会提示找不到bazel这个命令,而实际上我们已经编译并配置到PATH,需要在/usr/bin/目录中新建一个指向bazel的软连接bazel-real在安装的cuda 8.0, te原创 2017-07-04 11:38:20 · 1423 阅读 · 0 评论 -
深度学习caffe编译安装记录
从官方GitHub中下载Caffe源码。提前安装Caffe的相关依赖。大部分都能够通过yum安装。blas,cblas需要下载源码进行编译安装。修改Makefile.in文件中的选项进入build,执行cmake ..,然后make all -j4.安装完成原创 2016-12-28 23:20:29 · 493 阅读 · 0 评论 -
Cudnn v5.1与V 6.0的特性
V5.1新增特性针对3*3以及5*5de 卷积核,添加了新的Winograd卷积算法,提供前向和后向计算。可以通过使用CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED,CUDNN_CONVOLUTION_BWD_DATA_ALGO_WINOGRAD_NONFUSED以及CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD_NO原创 2017-07-13 17:02:20 · 5391 阅读 · 0 评论 -
OpenCV 2.4.13.16 + cuda 9 + centos7 编译
OpenCV 2.4.13.16 + cuda 9 + centos7 编译获取源码 wget https://github.com/opencv/opencv/archive/2.4.13.6.tar.gz解压 tar xvf 2.4.13.6.tar.gz && cd opencv-2.4.13.6/构建编译脚本 mkdir ...原创 2018-03-22 15:58:42 · 1914 阅读 · 1 评论