深度学习--激活函数

一、阶跃函数

python 复制代码
import numpy as np
# 阶跃函数
def binary_step0(x):
    if x>0:
        return 1
    return 0

# 阶跃函数-numpy
def binary_step(x):
    return np.array(x > 0,dtype=int)

二、Sigmoid函数

python 复制代码
import numpy as np
# Sigmoid函数
def sigmoid(x):
    return 1/(1+np.exp(-x))

三、Tanh函数

python 复制代码
import numpy as np
# Tanh函数
def tanh(x):
    return np.tanh(x)

四、ReLu函数

python 复制代码
import numpy as np
# ReLu函数
def relu(x):
    return np.maximum(0,x)

# leaky ReLu函数
def leaky_relu(x,alpha=0.01):
    return np.maximum(alpha*x,x)

# pReLu 函数(alpha 可训练)   RReLu(alpha 在训练时在一个均匀分布中随机选取)
def pReLu(x,alpha):
    return np.maximum(alpha*x,x)

# ELu
def EReLu(x,alpha):
    return np.maximum(alpha*(np.exp(x)-1),x)

五、softmax函数

python 复制代码
import numpy as np
# softmax 函数
def softmax(x):
    # 二维
    if x.ndim==2:
        # 溢出处理   keepdims保持维度一致
        x=x-np.max(x,axis=1,keepdims=True)
        # 二维axis有0 1   0表示高维  1表示次维   [高维][次维]    因为对行求  那么就是次维发生变化即 axis=1
        return np.exp(x)/np.sum(np.exp(x),axis=1,keepdims=True)
    # 三维
    if x.ndim==3:
        # 对行操作  则变化最低维    对列求操作变化最高维
        return np.exp(x)/np.sum(np.exp(x),axis=2,keepdims=True)
    # 一维的axis只有0
    # 溢出处理
    x=x-np.max(x)
    return np.exp(x) / np.sum(np.exp(x), axis=0)

六、其他激活函数

七、激活函数的选择

八、整体代码

python 复制代码
import numpy as np
# 阶跃函数
def binary_step0(x):
    if x>0:
        return 1
    return 0

# 阶跃函数-numpy
def binary_step(x):
    return np.array(x > 0,dtype=int)

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

# Tanh函数
def tanh(x):
    return np.tanh(x)

# ReLu函数
def relu(x):
    return np.maximum(0,x)

# leaky ReLu函数
def leaky_relu(x,alpha=0.01):
    return np.maximum(alpha*x,x)

# pReLu 函数(alpha 可训练)   RReLu(alpha 在训练时在一个均匀分布中随机选取)
def pReLu(x,alpha):
    return np.maximum(alpha*x,x)
# ELu
def EReLu(x,alpha):
    return np.maximum(alpha*(np.exp(x)-1),x)
# Swish (SiLu)
def Swish(x):
    return x/1+(np.exp(-x))


# softmax 函数
def softmax(x):
    # 二维
    if x.ndim==2:
        # 溢出处理   keepdims保持维度一致
        x=x-np.max(x,axis=1,keepdims=True)
        # 二维axis有0 1   0表示高维  1表示次维   [高维][次维]    因为对行求  那么就是次维发生变化即 axis=1
        return np.exp(x)/np.sum(np.exp(x),axis=1,keepdims=True)
    # 三维
    if x.ndim==3:
        # 对行操作  则变化最低维    对列求操作变化最高维
        return np.exp(x)/np.sum(np.exp(x),axis=2,keepdims=True)
    # 一维的axis只有0
    # 溢出处理
    x=x-np.max(x)
    return np.exp(x) / np.sum(np.exp(x), axis=0)

# softplus
def softplus(x):
    return np.log(1+np.exp(x))

# 恒等函数
def identity(x):
    return x



if __name__ == '__main__':
    arr=np.array([1,2,3,4,5,-1,-2,-3,-4,-5])
    print(binary_step(arr))
    print(sigmoid(arr))
    print(tanh(arr))
    print(relu(arr))
    print(softmax(arr))

    X = np.array([[1,2,3,4,5],[-1,-2,-3,-4,-5]])
    print(softmax(X))
相关推荐
c_lb72885 小时前
最新AI量化练习,小策略更适合练流程感
人工智能·python
留白_5 小时前
【决策树】泰坦尼克号生存预测
算法·决策树·机器学习
腾讯云大数据5 小时前
腾讯云TBDS面向AI时代的多模态智算平台,助力企业AI转型
人工智能·云计算·腾讯云·tbds
金智维科技官方5 小时前
AI驱动的应付账款自动化,落地时要拆解哪些流程?
运维·人工智能·自动化
蓝速科技5 小时前
蓝速科技 AI 数字人渲染显卡选型与部署指南
人工智能·科技
电化学仪器白超5 小时前
低阻域 ADC 与参考源选型理论分析
人工智能·python·单片机·嵌入式硬件·自动化
AI科技星5 小时前
超复数全域经济周期场与信息谱场——金融与密码学底层理论重构《0·1·∞三元一体全域超复数统一场论》系列全集(六一字不漏完整合订终版)
人工智能·算法·金融·密码学·拓扑学·乖乖数学·全域数学
开发者如是说5 小时前
Vibe Code 了产品却无人下载?我写了个工具来帮你
人工智能·程序员·产品
AI科技星5 小时前
《01无穷全域信息场论:算子G与宇宙本体高维完备公理大典》
人工智能·python·算法·金融·乖乖数学·全域数学
战场小包5 小时前
AI 写代码越来越快,慢下来的那个人变成了我
人工智能·agent