当前位置: 代码迷 >> 综合 >> plt画图(sigmoid、relu、softmax)
  详细解决方案

plt画图(sigmoid、relu、softmax)

热度:105   发布时间:2023-11-18 06:42:04.0

文章目录

  • 代码(总)

代码(总)

# -*- coding:utf-8 -*-
from matplotlib import pyplot as plt
import numpy as np
import mpl_toolkits.axisartist as axisartist
from matplotlib.pyplot import MultipleLocatordef 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 sigmoid(x):#直接返回sigmoid函数return 1. / (1. + np.exp(-x))
def softmax(x):return np.exp(x)/np.sum(np.exp(x), axis=0)def plot_sigmoid():# param:起点,终点,间距x = np.arange(-10, 10, 0.5)print(x)y = sigmoid(x)#plt.plot(x, label='sigmoid') # 添加label设置图例名称#plt.title("sigmoid",fontsize=20)plt.grid()plt.plot(x, y,label='sigmoid',color='r')plt.legend(fontsize=20)plt.xlabel("x",fontsize=20)plt.ylabel("f(x)",fontsize=20)# 设置刻度字体大小plt.xticks(fontsize=20)plt.yticks(fontsize=20)plt.xlim([-10, 10])plt.ylim([0, 1])x_major_locator = MultipleLocator(5)# 把x轴的刻度间隔设置为1,并存在变量里y_major_locator = MultipleLocator(0.2)# 把y轴的刻度间隔设置为10,并存在变量里ax = plt.gca()# ax为两条坐标轴的实例ax.xaxis.set_major_locator(x_major_locator)# 把x轴的主刻度设置为1的倍数ax.yaxis.set_major_locator(y_major_locator)# 把y轴的主刻度设置为10的倍数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.title("relu")plt.grid()plt.plot(x, y, label='relu', color='r')plt.legend(fontsize=20)plt.xlabel("x",fontsize=20)plt.ylabel("f(x)",fontsize=20)# 设置刻度字体大小plt.xticks(fontsize=20)plt.yticks(fontsize=20)plt.xlim([-10, 10])plt.ylim([0, 10])x_major_locator = MultipleLocator(5)# 把x轴的刻度间隔设置为1,并存在变量里y_major_locator = MultipleLocator(5)# 把y轴的刻度间隔设置为10,并存在变量里ax = plt.gca()# ax为两条坐标轴的实例ax.xaxis.set_major_locator(x_major_locator)# 把x轴的主刻度设置为1的倍数ax.yaxis.set_major_locator(y_major_locator)# 把y轴的主刻度设置为10的倍数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()def plot_softmax():x = np.arange(-10, 10, 0.1)y = softmax(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.title("softmax")plt.grid()plt.plot(x, y, label='softmax', color='r')plt.legend(fontsize=20)plt.xlabel("x",fontsize=20)plt.ylabel("f(x)",fontsize=20)plt.xlim([-10, 10])plt.ylim([0, 0.1])# 设置刻度字体大小plt.xticks(fontsize=20)plt.yticks(fontsize=20)x_major_locator = MultipleLocator(5)# 把x轴的刻度间隔设置为1,并存在变量里y_major_locator = MultipleLocator(0.02)# 把y轴的刻度间隔设置为10,并存在变量里ax = plt.gca()# ax为两条坐标轴的实例ax.xaxis.set_major_locator(x_major_locator)# 把x轴的主刻度设置为1的倍数ax.yaxis.set_major_locator(y_major_locator)# 把y轴的主刻度设置为10的倍数plt.show()
if __name__ == "__main__":#plot_sigmoid()#plot_tanh()#plot_relu()plot_softmax()#plot_prelu()
  相关解决方案