干货:怎样从体系层面优化深度进修计较?
1)差异的压缩要领。好比,是按照模子的参数值是否趋近于零,照旧将其转换成某种孝顺值之后趋近于零?压缩时是不是思量必然的布局化(假如是面向GPU,也许必要压缩成块状稀少矩阵来进步运行服从)?量化的值点是按照值域均匀分别照旧基于某种聚类来分别? 2)差异的压缩水平。要思量在哪些层的神经元参数上做压缩,由于并不是全部层对压缩后模子结果的敏感水平是一样的;选择差异的压缩率或量化的比特数。 3)为了保持在大的压缩率下如故取得好的模子结果,压缩进程也许必要是渐进的,好比一次压缩10%,然后从头实习,一再此进程直到取得方针的压缩率。那么每次渐进进程的压缩率就是一个必要调解的参数。 显然,这样一个繁琐的进程必要一个好的器材来使之变得利便。这也是我们组正在存眷的一个题目。我们正在实行扩展TensorFlow的API来行使户可以在模子剧本中直接节制量化和压缩的要领、工具、水和善进程。 压缩和量化凡是是用来办理模子陈设时的机能和内存资源不敷的题目,而办理模子实习时内存不足的题目的思绪之一是用计较来换内存。好比,假如数据流图中某一个操纵节点的计较劲很小,可是输出的中间功效数据量很大,一个更好的处理赏罚方法是不在内存中生涯这此中间功效,而在后头必要用到它的时辰再从头执行这个操纵节点的计较。虽然,从头计较照旧引入了必然的特殊开销。 究竟上,还存在其它一种办理这个题目的思绪,就是将大的输入数据就生涯在CPU端的主存里,并将操纵节点实现成流式的处理赏罚,将大的输入数据分段拷贝进GPU的装备内存,并通过异步的拷贝使得对每一分段的计较时刻和下一分段的拷贝时刻可以或许重叠起来,从而掩挡住数据拷贝的开销。对付矩阵乘法这样的操纵,因为计较伟大度相对付访存伟大度较高,当分段较大的时辰,计较时刻和拷贝时刻是可以到达美满重叠的。然而,假如所要举办的操纵不是矩阵乘法,而是一些简朴的pointwise操纵,计较的伟大度就没有步伐和内存拷贝的开销相抵消。以是这种做法还必要跟内核融合相团结。好比将矩阵乘法和后续的pointwise操纵相融合,每一个分段的计较城市把该分段的矩阵乘和pointwise操纵都做完,然后再处理赏罚下一个分段。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |