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激活函数的实现的主要内容,如果未能解决你的问题,请参考以下文章

12个用得着的 JQuery 代码片段

激活函数汇总,包含公式求导过程以及numpy实现,妥妥的万字干货

TensorFlow学习笔记之 PReLU激活函数原理和代码

出现异常:片段已激活

片段已激活 - 尝试 setArguments 时

SQLite 片段函数实现不会在 TextView 中将文本格式化为 HTML