Sigmoid Linear Unit (SiLU) 激活函数。实现位于 InfiniCore/python/infinicore/nn/functional.py。
def silu(
input: Tensor,
inplace: bool = False,
*,
out: Optional[Tensor] = None,
) -> Tensorinput:待激活张量。inplace:是否原地写回到input。out:可选输出张量,若提供需与input形状、dtype、device一致。
- 当
inplace=True时,直接调用_infinicore.silu_写回input并返回。 - 当未提供
out且infinicore.use_ntops=True且设备类型为"cuda"或"musa"时,会委托ntops.torch.silu以复用优化实现。 - 其他情况下调用
_infinicore.silu或_infinicore.silu_完成计算。
import infinicore as ic
from infinicore.nn import functional as F
device = ic.device("cuda:0")
x = ic.ones((4, 8), dtype=ic.float16, device=device)
y = F.silu(x) # 返回新张量
F.silu(x, inplace=True) # 原地更新