我是靠谱客的博主 平常学姐,这篇文章主要介绍Tensorflow:Tanh和Sigmoid之间的关系(前端移植的一个坑)1. 问题描述2. 解决方法3. Toy example,现在分享给大家,希望可以做个参考。

1. 问题描述

LZ在使用tensorflow训练好对应的模型,并转成caffemodel后,将模型交由前端同事的时候,前端同事转成wk文件后,发现推断结果与caffemodel结果相差很大,后来经过逐层排查后发现海思芯片的tanh与caffe或者tf中的实现有一定差异,会导致结果相差很大,于是LZ准备使用Sigmoid的进行替代,

2. 解决方法

但是因为网络物理含义的需求,需要经过激活函数后,feature map的值要在(-1, 1)之间,显然单纯Sigmoid是不满足这一要求的,于是,我们可以通过两者的公式进行等价

t a n h ( x ) = 2 ∗ σ ( 2 x ) − 1 tanh(x) = 2*sigma(2x)-1 tanh(x)=2σ(2x)1

其中
σ ( x ) = e x / ( 1 + e x ) sigma(x)=e^x/(1+e^x) σ(x)=ex/(1+ex)

也和前端同事确认了海思在sigmoid上的误差很小,于是使用上述的等式进行替换。

3. Toy example

我们可以进行一个小测试!

复制代码
1
2
3
4
5
6
import tensorflow as tf import numpy as np inputs = np.random.rand(5, 5)-0.5 print(inputs)
复制代码
1
2
3
4
5
6
[[-0.07570021 -0.22391657 0.12031656 -0.07412661 0.02280513] [ 0.43490949 0.05654585 0.30623752 -0.43225458 0.41053218] [-0.29675026 0.02783143 -0.13659314 -0.34200988 0.11406029] [ 0.11330576 0.21211356 0.14819943 0.44995595 0.23811879] [-0.08725294 -0.1411123 -0.15858117 0.26021318 -0.33454138]]
复制代码
1
2
3
4
tanh_res = tf.nn.tanh(inputs) sess=tf.Session() print(sess.run(tanh_res))
复制代码
1
2
3
4
5
6
[[-0.07555594 -0.22024784 0.11973933 -0.07399113 0.02280118] [ 0.40941606 0.05648566 0.29701037 -0.40720377 0.38892446] [-0.28833585 0.02782425 -0.13574993 -0.32927055 0.11356822] [ 0.11282336 0.20898864 0.14712391 0.42186279 0.23371809] [-0.08703219 -0.14018306 -0.15726508 0.25449491 -0.32259549]]
复制代码
1
2
3
sigmoid_res = 2*tf.nn.sigmoid(inputs*2)-1 print(sess.run(sigmoid_res))
复制代码
1
2
3
4
5
6
[[-0.07555594 -0.22024784 0.11973933 -0.07399113 0.02280118] [ 0.40941606 0.05648566 0.29701037 -0.40720377 0.38892446] [-0.28833585 0.02782425 -0.13574993 -0.32927055 0.11356822] [ 0.11282336 0.20898864 0.14712391 0.42186279 0.23371809] [-0.08703219 -0.14018306 -0.15726508 0.25449491 -0.32259549]]

表明了Tanh函数和Sigmoid之间的转换关系!

最后

以上就是平常学姐最近收集整理的关于Tensorflow:Tanh和Sigmoid之间的关系(前端移植的一个坑)1. 问题描述2. 解决方法3. Toy example的全部内容,更多相关Tensorflow:Tanh和Sigmoid之间的关系(前端移植的一个坑)1.内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部