fix math-equal bug in deployment (#448)

Co-authored-by: hangangqiang <hangangqiang2@huawei.com>
This commit is contained in:
hangangqiang
2023-03-31 15:41:11 +08:00
committed by GitHub
parent 2d67effd58
commit 89a1128ed8
2 changed files with 2 additions and 2 deletions

View File

@@ -42,7 +42,7 @@ $$\pmb{Y_{bn}}=\gamma\frac{\pmb{X_{bn}}-\mu_{\mathcal{B}}}{\sqrt{{\sigma_{\mathc
同样这里不需要理解Batchnorm中的所有参数的含义只需要了解式 :eqref:`ch08-equ-bn_equation`是$\pmb{Y_{bn}}$关于$\pmb{X_{bn}}$的,其他符号均表示常量。
如 :numref:`ch08-fig-conv_bn_fusion`当Convlution算子的输出作为Batchnorm输入时最终Batchnorm算子的计算公式也就是要求$\pmb{Y_{bn}}$关于$\pmb{X_{conv}}$的计算公式,我们将$\pmb{Y_{conv}}$代入到$\pmb{X_{bn}}$,然后将常数项合并提取后,可以得到公式 :eqref:`equ:conv-bn-equation-3`
如 :numref:`ch08-fig-conv_bn_fusion`当Convlution算子的输出作为Batchnorm输入时最终Batchnorm算子的计算公式也就是要求$\pmb{Y_{bn}}$关于$\pmb{X_{conv}}$的计算公式,我们将$\pmb{Y_{conv}}$代入到$\pmb{X_{bn}}$,然后将常数项合并提取后,可以得到公式 :eqref:`ch08-equ-conv_bn_equation_3`
$$\pmb{Y_{bn}}=\pmb{A}*\pmb{X_{conv}}+\pmb{B}$$
:eqlabel:`ch08-equ-conv_bn_equation_3`

View File

@@ -167,6 +167,6 @@ Winograd算法的整个计算过程在逻辑上可以分为4步如 :numref:`c
:width:`500px`
:label:`ch08-fig-winograd`
针对任意的输出大小,要使用\textit{\textbf{F}}(2$\times$23$\times$3)的Winograd算法需要将输出切分成2$\times$2的块找到对应的输入按照上述的四个步骤就可以求出对应的输出值。当然Winograd算法并不局限于求解\textit{\textbf{F}}(2$\times$23$\times$3),针对任意的\textit{\textbf{F}}($m$$\times$$m$$r$$\times$$r$),都可以找到适当的常量矩阵\textit{\textbf{A}}\textit{\textbf{B}}\textit{\textbf{G}},通过间接计算的方式减少乘法次数。但是随着$m$、$r$的增大输入、输出涉及的加法以及常量权重的乘法次数都在增加那么乘法次数带来的计算量下降会被加法和常量乘法所抵消。因此在实际使用场景中还需要根据Winograd的实际收益来选择。
针对任意的输出大小,要使用$\textit{\textbf{F}}(2\times23\times3)$的Winograd算法需要将输出切分成$2\times2$的块找到对应的输入按照上述的四个步骤就可以求出对应的输出值。当然Winograd算法并不局限于求解$\textit{\textbf{F}}(2\times23\times3)$,针对任意的$\textit{\textbf{F}}(m\times mr\times r)$,都可以找到适当的常量矩阵$\textit{\textbf{A}}$、$\textit{\textbf{B}}$、$\textit{\textbf{G}}$,通过间接计算的方式减少乘法次数。但是随着$m$、$r$的增大输入、输出涉及的加法以及常量权重的乘法次数都在增加那么乘法次数带来的计算量下降会被加法和常量乘法所抵消。因此在实际使用场景中还需要根据Winograd的实际收益来选择。
本小节主要介绍了模型推理时的数据处理和性能优化手段。选择合适的数据处理方法,可以更好地提取输入特征,处理输出结果。并行计算以及算子级别的硬件指令与算法优化可以最大限度的发挥硬件的算力。除此之后,内存的占用及访问速率也是影响推理性能的重要因素,因此推理时需要设计合理的内存复用策略,内存复用的策略已经在编译器后端章节已经做了阐述。