LRN¶
计算输入张量上每个元素的局部响应归一化 (LRN) 并输出到输出张量。
给定形状为 \([D_0,...,D_n]\) 的输入张量和参数 \(w, \alpha, \beta, \text{and }k\),归一化计算如下
\[\huge{output_{a_0,...,a_{n-2},a_{n-1},a_{n}} = \frac{input_{a_0,...,a_{n-2},a_{n-1},a_{n}}}{(k+\alpha \sum_{j=max(0, a_{n-2}-w)}^{min(D_{n-2}-1, a_{n-2}+w)}input_{a_0,...,j,a_{n-1},a_{n}}^2)^\beta}}\]
属性¶
\(w\) 交叉通道窗口的大小。 \(w \in {\{1,3,5,7,9,11,13,15\}}\)。
\(\alpha\) 归一化参数。 \(\alpha \in {[-1 \cdot 10^{20}, 1 \cdot 10^{20}]}\)。
\(\beta\) 归一化参数。 \(\beta \in {[0.01, 1 \cdot 10^{5}]}\)。
\(k\) 归一化参数。 \(k \in {[1 \cdot 10^{5}, 1 \cdot 10^{10}]}\)。
输入¶
input: T1
类型的张量。
输出¶
output: T1
类型的张量。
数据类型¶
T1: float32
形状信息¶
input 是形状为 \([a_0,...,a_n]\) 的张量。
output 具有与 input 相同的形状。
体积限制¶
input 和 output 最多可以有 \(2^{31}-1\) 个元素。
DLA 支持¶
支持 DLA FP16。
w
\(w \in {\{3,5,7,9\}}\)。
示例¶
LRN
in1 = network.add_input("input1", dtype=trt.float32, shape=(1, 5, 2, 2))
layer = network.add_lrn(in1, window=3, alpha=1, beta=1, k=0.1)
network.mark_output(layer.get_output(0))
inputs[in1.name] = np.array(
[[[[0, 0], [0, 0]], [[1, 1], [1, 1]], [[2, 2], [2, 2]], [[3, 3], [3, 3]], [[4, 4], [4, 4]]]]
)
outputs[layer.get_output(0).name] = layer.get_output(0).shape
expected[layer.get_output(0).name] = np.array(
[
[
[[0.0, 0.0], [0.0, 0.0]],
[[0.56603765, 0.56603765], [0.56603765, 0.56603765]],
[[0.4195804, 0.4195804], [0.4195804, 0.4195804]],
[[0.3071672, 0.3071672], [0.3071672, 0.3071672]],
[[0.47430828, 0.47430828], [0.47430828, 0.47430828]],
]
],
)
C++ API¶
有关 C++ ILRNLayer 运算符的更多信息,请参阅 C++ ILRNLayer 文档。
Python API¶
有关 Python ILRNLayer 运算符的更多信息,请参阅 Python ILRNLayer 文档。