Tensorflow中神经网络的激活函数
Posted 智能先行者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
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()
以上是关于Tensorflow中神经网络的激活函数的主要内容,如果未能解决你的问题,请参考以下文章
吴裕雄 python 神经网络——TensorFlow训练神经网络:不使用激活函数
tensorflow学习-------激活函数(activation function)