Sigmoid, 是一种常用的激活函数算子。其计算可被表述为:
其中:
-
$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: 计算流/队列;
返回值:
INFINI_STATUS_SUCCESS,INFINI_STATUS_BAD_PARAM,INFINI_STATUS_INSUFFICIENT_WORKSPACE,INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED,INFINI_STATUS_INTERNAL_ERROR,INFINI_STATUS_BAD_TENSOR_DTYPE.
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)
返回值:
INFINI_STATUS_SUCCESS,INFINI_STATUS_BAD_PARAM,INFINI_STATUS_BAD_TENSOR_SHAPE,INFINI_STATUS_BAD_TENSOR_DTYPE,INFINI_STATUS_BAD_TENSOR_STRIDES,INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED.
infiniStatus_t infiniopGetSigmoidWorkspaceSize(
infiniopSigmoidDescriptor_t desc,
size_t *size
); 参数:
desc: 已使用infiniopCreateSigmoidDescriptor()初始化的算子描述符;size: 额外空间大小的计算结果的写入地址;
返回值:
infiniStatus_t infiniopDestroySigmoidDescriptor(
infiniopSigmoidDescriptor_t desc
); 参数:
desc: 输入。 待销毁的算子描述符;
返回值:
无