第九章 激活函数

9.8 激活函数实践

以经典的Sigmoid型函数为例,其在PyTorch中的调用方式为:

1# Sigmoid (PyTorch)

2import torch

3import torch.nn as nn

4

5sigmoid = nn.Sigmoid()

6inputs = torch.randn(2)

7output = sigmoid(inputs)

在MindSpore中的调用方式为:

1# Sigmoid (MindSpore)

2import mindspore as ms

3import mindspore.nn as nn

4import numpy as np

5

6x = ms.Tensor(np.array([-1, -2, 0, 2, 1]), ms.float16)

7sigmoid = nn.Sigmoid()

8output = sigmoid(x)

其他常用激活函数如ReLU、PReLU和Leaky ReLU(其式中代表当x≤0时斜率的超参数一般为0.1)的PyTorch调用方式分别为:

1# ReLU (PyTorch)

2relu = nn.ReLU()

3inputs = torch.randn(2)

4output = relu(inputs)

1# PReLU (PyTorch)

2prelu = nn.PReLU()

3inputs = torch.randn(2)

4output = prelu(inputs)

1# Leaky ReLU (PyTorch)

2leaky_relu = nn.LeakyReLU(negative_slope=0.1)

3inputs = torch.randn(2)

4output = leaky_relu(inputs)

在MindSpore中的调用方式分别为:

1# ReLU (MindSpore)

2x = ms.Tensor(np.array([-1, -2, 0, 2, 1]), ms.float16)

3relu = nn.ReLU()

4output = relu(x)

1# PReLU (MindSpore)

2x = ms.Tensor(np.array([-1, -2, 0, 2, 1]), ms.float16)

3prelu = nn.PReLU()

4output = prelu(x)

1# Leaky ReLU (MindSpore)

2x = ms.Tensor(np.array([-1, -2, 0, 2, 1]), ms.float16)

3leaky_relu = nn.LeakyReLU(0.1)

4output = leaky_relu(x)