激活

输入张量 A 应用激活函数,并生成具有相同维度的输出张量 B。

另请参阅

PRelu, SoftMax

属性

type 激活函数可以是以下之一:

  • RELU \(output=max(0, input)\)

  • SIGMOID \(output=\frac{1}{1+e^{-input}}\)

  • TANH \(output=\frac{1-e^{-2 \cdot input}}{1+e^{-2 \cdot input}}\)

  • LEAKY_RELU \(output=input \text{ 如果 } input\geq0 \text{ 否则 } \alpha \cdot input\)

  • ELU \(output=input \text{ 如果 } input\geq0 \text{ 否则 } \alpha \cdot (e^{input} -1)\)

  • SELU \(output=\beta \cdot input \text{ 如果 } input\geq0 \text{ 否则 } \beta \cdot (\alpha \cdot e^{input} - \alpha)\)

  • SOFTSIGN \(output=\frac{input}{1+|input|}\)

  • SOFTPLUS \(output=\alpha \cdot log(e^{\beta \cdot input} + 1)\)

  • CLIP \(output=max(\alpha, min(\beta, input))\)

  • HARD_SIGMOID \(output=max(0, min(1, \alpha \cdot input +\beta))\)

  • SCALED_TANH \(output=\alpha \cdot tanh(\beta \cdot input)\)

  • THRESHOLDED_RELU \(output=max(0, input - \alpha)\)

alpha 参数,当激活函数为以下之一时使用:LEAKY_RELU, ELU, SELU, SOFTPLUS, CLIP, HARD_SIGMOID, SCALED_TANH, THRESHOLDED_RELU

beta 参数,当激活函数为以下之一时使用:SELU, SOFTPLUS, CLIP, HARD_SIGMOID, SCALED_TANH

输入

input: T1 类型的张量

输出

output: T1 类型的张量

数据类型

T1: int8, float16, float32, bfloat16

  • 注意:int32int64 仅在 RELU 中受支持。

形状信息

输出具有与输入相同的形状。

DLA 支持

支持 DLA FP16 和 DLA INT8。

DLA 支持以下激活类型

  • CLIP 其中 \(\alpha=0\)\(\beta\leq127\)

  • RELU

  • SIGMOID

  • TANH

  • LEAKY_RELU

示例

激活
in1 = network.add_input("input1", dtype=trt.float32, shape=(2, 3))
layer = network.add_activation(in1, type=trt.ActivationType.RELU)
network.mark_output(layer.get_output(0))

inputs[in1.name] = np.array([[-3.0, -2.0, -1.0], [0.0, 1.0, 2.0]])

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, 1.0, 2.0]])

C++ API

有关 C++ IActivationLayer 算子的更多信息,请参阅 C++ IActivationLayer 文档

Python API

有关 Python IActivationLayer 算子的更多信息,请参阅 Python IActivationLayer 文档