Skip to content

Latest commit

 

History

History
134 lines (97 loc) · 4.27 KB

File metadata and controls

134 lines (97 loc) · 4.27 KB

Sigmoid

Sigmoid, 是一种常用的激活函数算子。其计算可被表述为:

$$ Sigmoid(x_{i}) = \frac {1}{1 + e^{-x_{i}}} $$

其中:

  • $x_{i}$: 输入张量第 i 个元素。

接口

计算

infiniStatus_t infiniopSigmoid(
    infiniopSigmoidDescriptor_t desc,
    void *workspace,
    size_t workspace_size,
    void *y,
    const void *x,
    void *stream
);
参数:
  • desc: 已使用 infiniopCreateSigmoidDescriptor() 初始化的算子描述符;
  • workspace: 指向算子计算所需的额外工作空间;
  • workspace_size: workspace 的大小,单位:字节;
  • y: 输出张量。张量限制见创建算子描述部分;
  • x: 输入张量。张量限制见创建算子描述部分;
  • stream: 计算流/队列;
返回值:

创建算子描述

infiniStatus_t infiniopCreateSigmoidDescriptor(
    infiniopHandle_t handle,
    infiniopSigmoidDescriptor_t *desc_ptr,
    infiniopTensorDescriptor_t y,
    infiniopTensorDescriptor_t x
);
参数:
  • handle: infiniopHandle_t 类型的硬件控柄。详情请看:InfiniopHandle_t
  • desc_ptr: infiniopSigmoidDescriptor_t 指针,指向将被初始化的算子描述符地址;
  • y - { dT | (d1,...,dn) | (...) }: 算子计算参数 y 的张量描述,支持原位计算。
  • x - { dT | (d1,...,dn) | (...) }: 算子计算参数 x 的张量描述,支持原位计算。

参数限制:

  • dT: (Float16, Float32, Float64) 之一。
  • 输入 x 的形状需与 y 相同。
  • 支持原位计算,即计算时 y 可以和 x指向同一地址。
  • 计算输出参数 y 不能进行广播(y 的步长不能涉及广播设置,即步长不能有 0)
返回值:

计算额外工作空间

infiniStatus_t infiniopGetSigmoidWorkspaceSize(
    infiniopSigmoidDescriptor_t desc,
    size_t *size
);
参数:
  • desc: 已使用 infiniopCreateSigmoidDescriptor() 初始化的算子描述符;
  • size: 额外空间大小的计算结果的写入地址;
返回值:

销毁算子描述符

infiniStatus_t infiniopDestroySigmoidDescriptor(
    infiniopSigmoidDescriptor_t desc
);
参数:
  • desc: 输入。 待销毁的算子描述符;
返回值:

已知问题