sigmodtanhReLU激活函数的实现
Posted peixu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sigmodtanhReLU激活函数的实现相关的知识,希望对你有一定的参考价值。
import torch import torch.nn.functional as F import matplotlib.pyplot as plt import numpy as np x = torch.linspace(-10,10,60) fig = plt.figure(figsize=(14,4)) ae = fig.add_subplot(131) #sigmod激活函数 ax = plt.gca() ax.spines[‘top‘].set_color(‘none‘) ax.spines[‘right‘].set_color(‘none‘) ax.xaxis.set_ticks_position(‘bottom‘) ax.spines[‘bottom‘].set_position((‘data‘,0)) ax.yaxis.set_ticks_position(‘left‘) ax.spines[‘left‘].set_position((‘data‘,0)) y = torch.sigmoid(x) plt.plot(x.numpy(),y.numpy()) plt.ylim((0,1)) ae = fig.add_subplot(132) #tanh激活函数 ax = plt.gca() ax.spines[‘top‘].set_color(‘none‘) ax.spines[‘right‘].set_color(‘none‘) ax.xaxis.set_ticks_position(‘bottom‘) ax.spines[‘bottom‘].set_position((‘data‘,0)) ax.yaxis.set_ticks_position(‘left‘) ax.spines[‘left‘].set_position((‘data‘,0)) y1 = torch.tanh(x) plt.plot(x.numpy(),y1.numpy()) plt.ylim((-1,1)) ae = fig.add_subplot(133) # ReLU激活函数 ax = plt.gca() ax.spines[‘top‘].set_color(‘none‘) ax.spines[‘right‘].set_color(‘none‘) ax.xaxis.set_ticks_position(‘bottom‘) ax.spines[‘bottom‘].set_position((‘data‘,0)) ax.yaxis.set_ticks_position(‘left‘) ax.spines[‘left‘].set_position((‘data‘,0)) y2 = F.relu(x) plt.plot(x.numpy(),y2.numpy()) plt.ylim((-1,5)) plt.show()
输出:
sigmod公式:
一般会造成梯度消失。
tanh公式:
tanh是以0为中心点,如果使用tanh作为激活函数,能够起到归一化(均值为0)的效果。
Relu(Rectified Linear Units)修正线性单元
导数大于0时1,小于0时0。
以上是关于sigmodtanhReLU激活函数的实现的主要内容,如果未能解决你的问题,请参考以下文章
激活函数汇总,包含公式求导过程以及numpy实现,妥妥的万字干货