Tensorflow中神经网络的激活函数

激励函数的目的是为了调节权重和误差。

 

relu

    max(0,x)

 

relu6

    min(max(0,x),6)

 

sigmoid

    1/(1+exp(-x))

 

tanh

  ((exp(x)-exp(-x))/(exp(x)+exp(-x))

    双曲正切函数的值域是(-1,1)

 

softsign

    x/(abs(x)+1)

 

softplus

  log(exp(x)+1)

  

elu

  (exp(x)+1)if x<0 else x

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import math
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
 
x = np.linspace(-10, 10, 500)
 
relu = list(map(lambda m: max(0, m), x))
relu6 = list(map(lambda m: min(max(0, m), 6), x))
sigmoid = 1 / (np.exp(-x) + 1)
tanh = (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))
softsign = x / (np.abs(x) + 1)
softplus = np.log(np.exp(x) + 1)
elu = list(map(lambda m: math.exp(m) + 1 if m < 0 else m, x))
 
 
data = {
    'relu': relu,
    'relu6': relu6,
    'sigmoid': sigmoid,
    'tanh': tanh,
    'softsign': softsign,
    'softplus': softplus,
    'elu': elu
}
df = pd.DataFrame(data, index=x)
# print(df)
 
 
df[["relu", "relu6"]].plot(
    kind="line", grid=True,
    style={"relu": "y-", "relu6": "r:"},
    yticks=np.linspace(-1, 8, 10),
    xlim=[-10, 10], ylim=[-1, 8])
 
df[["softplus", "elu"]].plot(
    kind="line", grid=True,
    style={"softplus": "y-", "elu": "m:"},
    yticks=np.linspace(-1, 8, 10),
    xlim=[-10, 10], ylim=[-1, 8])
 
df[["sigmoid", "tanh", "softsign"]].plot(
    kind="line", grid=True,
    yticks=np.linspace(-1.5, 1.5, 7),
    xlim=[-10, 10], ylim=[-1.5, 1.5])
 
plt.show()

  

 

posted @   智能先行者  阅读(898)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
点击右上角即可分享
微信分享提示