TensorFlow实现的激活函数可视化
书上的代码:
# coding: utf-8 # In[1]: import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
from pylab import * # In[19]: def show_activation(activation,y_lim=5):
x=np.arange(-10., 10., 0.01)
ts_x = tf.Variable(x)
ts_y =activation(ts_x )
with tf.Session() as sess:
init = tf.global_variables_initializer()
sess.run(init)
y=sess.run(ts_y)
ax = gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
lines=plt.plot(x,y)
plt.setp(lines, color='b', linewidth=3.0)
plt.ylim(y_lim*-1-0.1,y_lim+0.1)
plt.xlim(-10,10) plt.show() # In[20]: show_activation(tf.nn.sigmoid,y_lim=1) # In[4]: show_activation(tf.nn.softsign,y_lim=1) # In[5]: show_activation(tf.nn.tanh,y_lim=1) # In[6]: show_activation(tf.nn.relu,y_lim=10) # In[7]: show_activation(tf.nn.softplus,y_lim=10) # In[8]: show_activation(tf.nn.elu,y_lim=10) # In[14]: a = tf.constant([[1.0,2.0],[1.0,2.0],[1.0,2.0]])
sess = tf.Session()
print(sess.run(tf.sigmoid(a))) # In[ ]:
sigmoid激活函数:
S(x)=1/(1+e-x)
优点在于输出映射在0-1内,单调连续,适合做输出层,求导容易。
缺点在于软饱和性,即当x趋于无穷大时,一阶导数趋于0,容易产生梯度消失,神经网络的改善缓慢或消失。
softsign激活函数:
tanh激活函数:
tanh(x)=(1-e-2x)/(1+e-2x)
也具有软饱和性,收敛速度比sigmoid快,但是仍无法解决梯度消失的问题。
relu激活函数:
f(x)=max(x,0)
缺点:当relu在x<0时硬饱和,即在负半轴,激活函数的一阶导数等于0。
优点:由于x>0时导数为1,所以relu能在正半轴保持梯度的不衰减,缓解梯度消失的问题。
但是随着训练的进行,部分落入硬饱和区,权重无法更新。
softplus激活函数:
relu的平滑版本f(x)=log(1+exp(x))
此外还有的激活函数如下数张图:
等等..............................................................................................
......................................................................................................
输入数据特征相差明显时,tanh效果较好,不明显时,sigmoid较好。二者在使用时需要对输入进行规范化,减少进入平坦区的可能。
relu是比较流行的激活函数,不需要输入量的规范化等...
TensorFlow实现的激活函数可视化的更多相关文章
- Tensorboard教程:Tensorflow命名空间与计算图可视化
Tensorflow命名空间与计算图可视化 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 强烈推荐Tensorflow实战Google深度学习框架 实验平台: Tensorflow ...
- 吴裕雄 python 神经网络——TensorFlow 训练过程的可视化 TensorBoard的应用
#训练过程的可视化 ,TensorBoard的应用 #导入模块并下载数据集 import tensorflow as tf from tensorflow.examples.tutorials.mni ...
- tensorflow(3)可视化,日志,调试
可视化 添加变量 tf.summary.histogram( "weights1", weights1) # 可视化观看变量 还有添加图像和音频. 常量 tf.summary.sc ...
- Tensorflow 之模型内容可视化
TensorFlow模型保存和提取方法 1. tensorflow实现 卷积神经网络CNN:Tensorflow实现(以及对卷积特征的可视化) # 卷积网络的训练数据为MNIST(28*28灰度单色图 ...
- 【tensorflow基础】ubuntu-tensorflow可视化工具tensorboard-No dashboards are active for the current data set.
前言 今天基于tensorflow训练一个检测模型,本应看到训练曲线的,却只见到一个文件events.out.tfevents.1570520647.hostname,后来发现这个文件可以查看训练曲线 ...
- TensorFlow(八):tensorboard可视化
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data from tensorflow.c ...
- Deep Learning基础--26种神经网络激活函数可视化
在神经网络中,激活函数决定来自给定输入集的节点的输出,其中非线性激活函数允许网络复制复杂的非线性行为.正如绝大多数神经网络借助某种形式的梯度下降进行优化,激活函数需要是可微分(或者至少是几乎完全可微分 ...
- tensorflow中常用激活函数和损失函数
激活函数 各激活函数曲线对比 常用激活函数: tf.sigmoid() tf.tanh() tf.nn.relu() tf.nn.softplus() tf.nn.softmax() tf.nn.dr ...
- Tensorflow机器学习入门——网络可视化TensorBoard
一.在代码中标记要显示的各种量 tensorboard各函数的作用和用法请参考:https://www.cnblogs.com/lyc-seu/p/8647792.html import tensor ...
随机推荐
- apache 多并发测试
进入到apache的bin目录打开 temp.bat 如果没有,新建temp.bat,打开输入 命令:ab -c 一次并发的数量 -n 总共请求的数量 请求的地址 例:ab -c 10 -n 100 ...
- 第十一章 串 (a)ADT
- 51nod 1163 最高的奖励
链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1163 1163 最高的奖励 基准时间限制:1 秒 空间限制:13 ...
- layui复选框
效果图 layui复选框,一个主的复选框控制多个从复选框,主复选框和从复选框的颜色不一样 layui复选框的样式,都是在选然后才会有的,所以直接通过css设置就实现不了了.只可以通过js动态设置 ht ...
- 抛弃WebService,在.NET4中用 jQuery 调用 WCF
在我们之前的开发中,对于ajax程序,都是通过jQuery调用标记为[System.Web.Script.Services.ScriptService]的WebService,然后在WebServic ...
- Codeforces Beta Round #54 (Div. 2)
Codeforces Beta Round #54 (Div. 2) http://codeforces.com/contest/58 A 找子序列 #include<bits/stdc++.h ...
- C#后台对密码框不能直接赋值
当页面密码框 为 textmode="textpassword"时候,使用 txtpwd.text="XXX",是不会显示的, 应该使用txtpass.Attr ...
- JS判断变量类型
typeof v 只能用于识别基础类型,不能识别对象 v instanceof MyClass 判断类型 Object.prototype.toString.call(v.p) === "[ ...
- 《centos系列》git的安装
centos 6.5安装git 1.安装编译git时需要的包 # yum install curl-devel expat-devel gettext-devel openssl-devel zlib ...
- ztree-持续更新中
版本v3快速入门: 1,官网下载https://gitee.com/zTree/zTree_v3 2,zTree-zTree_v3-master\zTree_v3下复制css和js文件夹到项目下 3, ...