第九章 激活函数
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)