python实现激活函数

  • Post category:Python

激活函数是神经网络中一个重要的组成部分,其作用是为神经网络的输出提供非线性化的转换。在Python中,实现激活函数可以通过numpy库和math库来完成。

首先是使用numpy库实现激活函数,以下是sigmoid函数和ReLU函数的示例代码:

import numpy as np

# sigmoid函数的实现
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# ReLU函数的实现
def relu(x):
    return np.maximum(0, x)

# 使用示例
x = np.array([1, 2, 3])
sigmoid_x = sigmoid(x)
relu_x = relu(x)
print('sigmoid(x):', sigmoid_x)
print('relu(x):', relu_x)

以上代码中,sigmoid函数采用了numpy库的exp函数,能够快速地完成指数运算,ReLU函数通过numpy库的maximum函数实现了与0的取max操作,能够快速计算激活后的输出。

除了使用numpy库外,还可以使用math库来实现激活函数,以下是tanh函数和LeakyReLU函数的示例代码:

import math

# tanh函数的实现
def tanh(x):
    return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))

# LeakyReLU函数的实现
def leaky_relu(x, alpha=0.01):
    return np.maximum(alpha * x, x)

# 使用示例
x = 1
tanh_x = tanh(x)
leaky_relu_x = leaky_relu(x)
print('tanh(x):', tanh_x)
print('leaky_relu(x):', leaky_relu_x)

以上代码中,tanh函数使用了numpy库的exp函数,并使用了numpy库中的加减法运算,能够快速计算tanh函数的输出。LeakyReLU函数使用了numpy库的maximum函数,并通过函数参数alpha控制x<0时的斜率,来解决x<0时ReLU函数失效的问题。

以上是在Python中实现激活函数的完整攻略及示例代码。