在PyTorch中使用PReLU()和ELU()
原文英文,约700词,阅读约需3分钟。
📝
内容提要
PReLU()函数可以从1D或更高维的张量中计算出的零个或多个值中获取1D或更高维的张量。ELU()函数可以从0D或更高维的张量中计算出的零个或多个值中获取0D或更高维的张量。
🔎
延伸解读
PReLU 的 num_parameters 与权重形状
PReLU 的 num_parameters 决定可学习参数的数量,默认为 1。当输入为 2D 张量且 num_parameters=4 时,权重形状为 [4],每个参数对应一个通道;若 num_parameters=2,则权重形状为 [2]。这影响参数共享方式,需根据输入维度合理设置。
ELU 的 alpha 与 inplace 参数
ELU 的 alpha 默认为 1.0,作用于负输入值,控制负半轴的饱和值。inplace 默认为 False,文章建议保持 False,因为设为 True 可能引发问题。使用时需注意这两个参数对输出和内存的影响。
PReLU 与 ELU 的输入维度差异
PReLU 要求输入至少为 1D 张量,而 ELU 可接受 0D 或更高维张量。这意味着 ELU 能处理标量输入,而 PReLU 不能。选择激活函数时需根据输入数据的维度决定。
❓
Q&A
PReLU()函数的主要作用是什么?
PReLU()函数用于从1D或更高维的张量中计算出零个或多个值。
PReLU()函数的初始化参数有哪些?
PReLU()的初始化参数包括num_parameters、init、device和dtype。
ELU()函数的默认参数是什么?
ELU()函数的默认参数是alpha为1.0,inplace为False。
如何在PyTorch中使用PReLU()?
可以通过创建PReLU对象并传入输入张量来使用PReLU(),例如:prelu(input=my_tensor)。
PReLU()和ELU()的主要区别是什么?
PReLU()用于1D或更高维张量,而ELU()用于0D或更高维张量。
PReLU()的num_parameters参数有什么意义?
num_parameters参数表示可学习参数的数量,默认为1。
🏷️