zoukankan      html  css  js  c++  java
  • 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()
    

      

  • 相关阅读:
    WindowsForm:百科
    App-应用程式:百科
    ASP.NET:目录
    ASP.NET:百科
    操作平台:.NET
    DB-触发器:百科
    DB-DatabaseLink:百科
    5090 众数
    计数排序
    归并排序
  • 原文地址:https://www.cnblogs.com/wwxbi/p/8454441.html
Copyright © 2011-2022 走看看