zoukankan      html  css  js  c++  java
  • python实现并绘制 sigmoid函数,tanh函数,ReLU函数,PReLU函数

    Python绘制正余弦函数图像

    
    # -*- coding:utf-8 -*-
    from matplotlib import pyplot as plt
    import numpy as np
    import mpl_toolkits.axisartist as axisartist
     
     
    def sigmoid(x):
        return 1. / (1 + np.exp(-x))
     
     
    def tanh(x):
        return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))
     
     
    def relu(x):
        return np.where(x<0,0,x)
     
     
    def prelu(x):
        return np.where(x<0,0.5*x,x)
     
    def plot_sigmoid():
        x = np.arange(-10, 10, 0.1)
        y = sigmoid(x)
        fig = plt.figure()
        # ax = fig.add_subplot(111)
        ax = axisartist.Subplot(fig,111)
        ax.spines['top'].set_color('none')
        ax.spines['right'].set_color('none')
        # ax.spines['bottom'].set_color('none')
        # ax.spines['left'].set_color('none')
        ax.axis['bottom'].set_axisline_style("-|>",size=1.5)
        ax.spines['left'].set_position(('data', 0))
        ax.plot(x, y)
        plt.xlim([-10.05, 10.05])
        plt.ylim([-0.02, 1.02])
        plt.tight_layout()
        plt.savefig("sigmoid.png")
        plt.show()
     
     
    def plot_tanh():
        x = np.arange(-10, 10, 0.1)
        y = tanh(x)
        fig = plt.figure()
        ax = fig.add_subplot(111)
        ax.spines['top'].set_color('none')
        ax.spines['right'].set_color('none')
        # ax.spines['bottom'].set_color('none')
        # ax.spines['left'].set_color('none')
        ax.spines['left'].set_position(('data', 0))
        ax.spines['bottom'].set_position(('data', 0))
        ax.plot(x, y)
        plt.xlim([-10.05, 10.05])
        plt.ylim([-1.02, 1.02])
        ax.set_yticks([-1.0, -0.5, 0.5, 1.0])
        ax.set_xticks([-10, -5, 5, 10])
        plt.tight_layout()
        plt.savefig("tanh.png")
        plt.show()
     
     
    def plot_relu():
        x = np.arange(-10, 10, 0.1)
        y = relu(x)
        fig = plt.figure()
        ax = fig.add_subplot(111)
        ax.spines['top'].set_color('none')
        ax.spines['right'].set_color('none')
        # ax.spines['bottom'].set_color('none')
        # ax.spines['left'].set_color('none')
        ax.spines['left'].set_position(('data', 0))
        ax.plot(x, y)
        plt.xlim([-10.05, 10.05])
        plt.ylim([0, 10.02])
        ax.set_yticks([2, 4, 6, 8, 10])
        plt.tight_layout()
        plt.savefig("relu.png")
        plt.show()
     
     
    def plot_prelu():
        x = np.arange(-10, 10, 0.1)
        y = prelu(x)
        fig = plt.figure()
        ax = fig.add_subplot(111)
        ax.spines['top'].set_color('none')
        ax.spines['right'].set_color('none')
        # ax.spines['bottom'].set_color('none')
        # ax.spines['left'].set_color('none')
        ax.spines['left'].set_position(('data', 0))
        ax.spines['bottom'].set_position(('data', 0))
        ax.plot(x, y)
        plt.xticks([])
        plt.yticks([])
        plt.tight_layout()
        plt.savefig("prelu.png")
        plt.show()
     
     
    if __name__ == "__main__":
        plot_sigmoid()
        plot_tanh()
        plot_relu()
        plot_prelu()
    
    
  • 相关阅读:
    LeetCode 842. Split Array into Fibonacci Sequence
    LeetCode 1087. Brace Expansion
    LeetCode 1219. Path with Maximum Gold
    LeetCode 1079. Letter Tile Possibilities
    LeetCode 1049. Last Stone Weight II
    LeetCode 1046. Last Stone Weight
    LeetCode 1139. Largest 1-Bordered Square
    LeetCode 764. Largest Plus Sign
    LeetCode 1105. Filling Bookcase Shelves
    LeetCode 1027. Longest Arithmetic Sequence
  • 原文地址:https://www.cnblogs.com/qixidi/p/10189796.html
Copyright © 2011-2022 走看看