你好。谢邀。
没有理解清楚你的问题中效率的概念。问题1 可能是Deep Learning的训练加速推理加速?或者问题2可能是怎么快速上手Deep Learning?问题1可能不是那么一言两语才能回答完,回答2简单一些。
问题1 Deep Learning的训练加速推理加速?
启用框架fuse技术进行算子融合算子融合之后训练起来减少了无效的拷贝时间,计算组织更加紧密,所以性能更好。
启用集合通信框架Nvidia NCCL 等都提供这样的集合通信方法开启后,梯度的反向传播和平均等运算将大大加速。
配置多机多卡多机多卡训练会大大加速神经网络的计算。
启用垃圾回收等内存显存机制通过优化存储空间,使得更多计算在显存中或者内存中显然比在硬盘来回调度快的多。
通过tensorrt、openvino等进行推理针对英伟达和intel的计算单元进行了大量的软件优化,部署速度更快。官方也提供了相应的生态,部署起来按照文档也很容易操作。
问题1总结:用最先进的工具把最牛X的选项打开,把所有能利用的资源都利用了,自然训练速度和部署推理就会显著提高。
问题2 怎么快速入手Deep Learning?
首先上结论:唯一的总神器就是数学。
Deep Learning本质上要学的是特征表示,多层神经网络的组织实际上是特征组合和空间变换。学过线性代数的人都会知道向量空间的概念,如果仔细想想点的组合就是线,线的组合就是面,面的组合就是空间。我们所谓的输入特征,无非就是空间中一个点的多维表示方法。
第一神器线性代数矩阵运算部分矩阵计算了如指掌,你就能轻松理解各种线性变换的概念,大部分的算子比如卷积Conv,循环神经网络算子LSTM等都不难理解。学好矩阵理论,别说Deep Learning,你就是去搞GPU神经网络并行计算也不在话下。
第二神器高等数学梯度部分神经网络能训练出来的第一功臣应该是BP(反向传播)算法吧,应该说没有BP就没有深度神经网络什么事情了,学好梯度的运算别说训练神经网络,你就是写个性能不那么好的神经网络框架也不在话下,pytorch/mxnet不过就是矩阵的前向和反向计算组合成的一个经过优化的工具包罢了。
第三神器概率论如果连基本的概率论都不懂,那么我请问你怎么搞清楚贝叶斯,怎么搞HMM 隐马尔科夫模型,怎么搞条件随机场CRF,怎么搞Beam Search 剪枝,怎么搞CTC....一堆的怎么搞,头大了有木有。
高阶大神需要学的科目来了:离散数学图论大神必备科目,怎么才能让神经网络算的更快是架构师考虑的问题,这里面涉及大量的图优化问题,图论都没学过,怎么搞无依赖算子并行计算,这么搞算子合并优化,又是一堆的怎么搞?
问题2 总结了解清楚原理和背后的数学知识什么时候都不晚,当有一天数学知识精进了,什么pytorch,tensorflow2.0,mxnet,paddlepaddle都不在话下,猛然发现这些所谓的牛逼框架,大多就是大学水平。硕士水平怎么也得搞个复数域神经网络。如果实在不想学数学,先从numpy搞起,试试各种API是怎么回事儿,鼓弄一下记住答案直接上手pytorch也未尝不可。大部分AI工程师数学真的很差,整天假装搞Deep Learning,实际上连矩阵乘法都不会,被计算框架宠坏了。