cuDNN采用一些约定俗成的参数符号描述方式,尤其是在API中,变量的定义就可以比较统一,上一篇介绍卷积的时候,对单纯针对卷积的参数定义进行了介绍,这里说一下其他的参数定义符号。
针对层(神经元组成)输入输出的符号如下:
| 层参数 | 定义描述 |
|---|---|
| w | 运算每一层使用的filter的权重 |
| x | 推理运算过程中,上一层传过来的输入数据 |
| y | 推理运算过程中,传给下一层的数据 |
| b | 卷积算子:偏置 |
注: 反向传播参考正向传播定义
相应的,dx,dy,dw,db 通常代表神经网络中最终输出的网络损失函数对应的各种参数的梯度。尤其是,反向传播路径中的dy通常表示损失的梯度。引申来说,dMeans 或 dBnBias 都可用于表示类似的含义。
函数描述的惯例通常如下:
正向推理:
y = layerFunction(x, otherParams)
反向传播:
(dx, dOtherParams) = layerFunctionGradient(x,y,dy,otherParams)
在API中,w用于x张量和卷积滤波器矩阵的宽度。为了解决这种模糊性,允许对卷积滤波器权重矩阵交替使用w和滤波器表示法。由于层宽度始终在其高度附近被引用,因此从上下文中可以清楚地看出其含义。在Darknet代码中,通常会使用weight和wide等直接进行区分描述,但是在使用cudnn时,通常根据约定俗成的习惯设置加速代码的参数。
版权声明:本文为qq_41736617原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。