• Tensorflow--激活函数


    一些常见激活函数(维基百科)

    代码:

    # -*- coding: UTF-8 -*-
    
    import numpy as np
    import matplotlib.pyplot as plt
    import tensorflow as tf
    
    # 创建输入数据
    x = np.linspace(-7, 7, 180)  # (-7, 7) 之间等间隔的 180 个点
    
    
    # 激活函数的原始实现
    def sigmoid(inputs):
        y = [1 / float(1 + np.exp(-x)) for x in inputs]
        return y
    
    
    def relu(inputs):
        y = [x * (x > 0) for x in inputs]
        return y
    
    
    def tanh(inputs):
        y = [(np.exp(x) - np.exp(-x)) / float(np.exp(x) - np.exp(-x)) for x in inputs]
        return y
    
    
    def softplus(inputs):
        y = [np.log(1 + np.exp(x)) for x in inputs]
        return y
    
    
    # 经过 TensorFlow 的激活函数处理的各个 Y 值
    y_sigmoid = tf.nn.sigmoid(x)
    y_relu = tf.nn.relu(x)
    y_tanh = tf.nn.tanh(x)
    y_softplus = tf.nn.softplus(x)
    
    # 创建会话
    sess = tf.Session()
    
    # 运行
    y_sigmoid, y_relu, y_tanh, y_softplus = sess.run([y_sigmoid, y_relu, y_tanh, y_softplus])
    
    # 创建各个激活函数的图像
    plt.figure(1, figsize=(8, 6))
    
    plt.subplot(221)
    plt.plot(x, y_sigmoid, c='red', label='Sigmoid')
    plt.ylim((-0.2, 1.2))
    plt.legend(loc='best')
    
    plt.subplot(222)
    plt.plot(x, y_relu, c='red', label='Relu')
    plt.ylim((-1, 6))
    plt.legend(loc='best')
    
    plt.subplot(223)
    plt.plot(x, y_tanh, c='red', label='Tanh')
    plt.ylim((-1.3, 1.3))
    plt.legend(loc='best')
    
    plt.subplot(224)
    plt.plot(x, y_softplus, c='red', label='Softplus')
    plt.ylim((-1, 6))
    plt.legend(loc='best')
    
    # 显示图像
    plt.show()
    
    # 关闭会话
    sess.close()

    运行结果:

  • 相关阅读:
    管道及有名管道(pipe与FIFO)
    详细介绍Linux重定向的使用
    Emacs文件和目录操作模式Dired
    exec家族函数
    Seven file types of Unix system(4.3)
    va_list、va_start、va_arg、va_end的原理与使用
    const int*和int const*的区别
    asp.net 文件加载错误
    终于有了属于自己的家,哈哈,很高兴~~
    难得的一场雪
  • 原文地址:https://www.cnblogs.com/SCCQ/p/12332899.html
Copyright © 2020-2023  润新知