【Sigmoid】操作对象(对数据结果进行验证)

every blog every motto: You can do more than you think.

0. 前言

本文是softmax/relu函数讲解的兄弟篇,主要用数据对经过sigmoid后,产生的结果进行验证,查看经过sigmoid后数据的变化情况

1. 正文

sigmoid公式:
在这里插入图片描述

import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

import tensorflow as tf
import numpy as np

1.1 一维

tensor = tf.constant(np.array([0, 1, 0, 2]), dtype=tf.float32)
print('原始数据:', tensor)

temp = tf.sigmoid(tensor)
print('结果数据:', temp)

结果:
在这里插入图片描述
在这里插入图片描述

1.2 二维

tensor = tf.constant(np.array([0, 1, 0, 2]).reshape(2, 2), dtype=tf.float32)
print('原始数据:', tensor)
print('----------------------------------')
temp = tf.sigmoid(tensor)
print('结果数据:', temp)

在这里插入图片描述

1.3 三维

1.3.1 第一种情况

tensor = tf.constant(np.array([0, 1, 0, 2]).reshape((2, 1,2)), dtype=tf.float32)
print('原始数据:', tensor)
print('----------------------------------')
temp = tf.sigmoid(tensor)
print('结果数据:', temp)

在这里插入图片描述

1.3.2 第二种情况

tensor = tf.constant(np.array([0, 1, 0, 2]).reshape((2, 2, 1)), dtype=tf.float32)
print('原始数据:', tensor)
print('----------------------------------')
temp = tf.sigmoid(tensor)
print('结果数据:', temp)

在这里插入图片描述

1.4 小结

  • 我们发现不论tensor的shape如何变化,最后的结果都是一样,即,结果不因shape变化而变化,更进一步说,直接将tensor中的每个值代码如公式计算即可。

以上,也是为什么sigmoid用于二分类的原因,我们举一例:
经网络后,模型最后输出特征图为(256,256,1),然后再经过激活函数sigmoid,特征图中的每个值都变成了一个概率值,再用这个结果与真值进行交叉熵计算。
另: sigmoid同relu都是对传进去的每个值计算,不受shape影响。

参考文献

[1] https://blog.csdn.net/weixin_39190382/article/details/108803650

猜你喜欢

转载自blog.csdn.net/weixin_39190382/article/details/109381000