详解TensorFlow的 tf.nn.sigmoid 函数:sigmoid 激活函数

yizhihongxing

sigmoid 函数是人工神经网络中最常用的非线性激活函数之一,其定义为:$$ \sigma(x) = \frac{1}{1+e^{-x}} $$

在 TensorFlow 中,sigmoid 函数的实现为 tf.nn.sigmoid

作用

sigmoid 函数在人工神经网络中被广泛应用,可用于处理分类、回归等任务。特别地,sigmoid 函数在二分类问题中应用最为广泛,其在输出层用于将神经网络的输出映射为相应的概率。

使用方法

基本使用

在 TensorFlow 中,实现 sigmoid 函数的方式有多种,最常见的是调用 tf.nn.sigmoid 函数。使用示例如下:

import tensorflow as tf

# 创建输入张量
data = tf.constant([-1, 0, 1, 2], dtype=tf.float32)

# 计算sigmoid
result = tf.nn.sigmoid(data)

# 打印结果
with tf.Session() as sess:
    print(sess.run(result))

输出结果为:

[0.26894143 0.5        0.7310586  0.880797  ]

实际应用

下面,我们通过两个实际的应用例子,说明 sigmoid 函数的更多用法。

应用1: 使用sigmoid函数进行二分类

import tensorflow as tf
import numpy as np

# 创建输入和标签
x_data = np.random.randn(100)
y_data = np.random.randint(0, 2, 100)

# 创建模型
x = tf.placeholder(dtype=tf.float32, shape=[1])
w = tf.Variable(initial_value=tf.random_normal(shape=[1], mean=0, stddev=1.0))
b = tf.Variable(initial_value=tf.zeros([1]))
y = tf.nn.sigmoid(w * x + b)

# 定义损失函数和梯度下降算法
y_ = tf.placeholder(dtype=tf.float32, shape=[1])
loss = tf.reduce_mean(tf.square(y - y_))
optimizer = tf.train.GradientDescentOptimizer(0.1)
train_op = optimizer.minimize(loss)

# 训练模型
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())

    for i in range(1000):
        for j in range(100):
            _, loss_val = sess.run([train_op, loss], feed_dict={x: [x_data[j]], y_: [y_data[j]]})
            if j % 10 == 0:
                print('Epoch %d, mini-batch %d, loss: %.2f' % (i, j, loss_val))

在这个例子中,我们使用 sigmoid 函数将神经网络的输出转化为二分类概率,然后使用梯度下降算法训练模型。

应用2: 使用sigmoid函数进行多标签分类

import tensorflow as tf
import numpy as np

# 创建输入和标签
x_data = np.random.randn(100, 10)
y_data = np.random.randint(0, 2, [100, 5])

# 创建模型
x = tf.placeholder(dtype=tf.float32, shape=[None, 10])
w = tf.Variable(initial_value=tf.random_normal(shape=[10, 5], mean=0, stddev=1.0))
b = tf.Variable(initial_value=tf.zeros([5]))
y = tf.nn.sigmoid(tf.matmul(x, w) + b)

# 定义损失函数和梯度下降算法
y_ = tf.placeholder(dtype=tf.float32, shape=[None, 5])
loss = tf.reduce_mean(tf.square(y - y_))
optimizer = tf.train.GradientDescentOptimizer(0.1)
train_op = optimizer.minimize(loss)

# 训练模型
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())

    for i in range(1000):
        _, loss_val = sess.run([train_op, loss], feed_dict={x: x_data, y_: y_data})
        if i % 50 == 0:
            print('Epoch %d, loss: %.2f' % (i, loss_val))

在这个例子中,我们使用 sigmoid 函数将神经网络的输出转化为多个二分类概率,然后使用梯度下降算法训练模型。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解TensorFlow的 tf.nn.sigmoid 函数:sigmoid 激活函数 - Python技术站

(0)
上一篇 2023年3月23日
下一篇 2023年3月23日

相关文章

  • 详解TensorFlow的 tf.image.random_flip_left_right 函数:随机左右翻转图像

    TensorFlow 中的 tf.image.random_flip_left_right 函数 函数作用 TensorFlow 中的 tf.image.random_flip_left_right 函数用于随机地将图片进行左右翻转。 使用方法 import tensorflow as tf # 读取待处理的图像 image = tf.io.read_fil…

    tensorflow-function 2023年4月4日
    00
  • 详解TensorFlow的 tf.nn.bias_add 函数:添加偏置项

    TensorFlow中tf.nn.bias_add函数作用与使用方法 tf.nn.bias_add(value, bias, data_format=None, name=None) 函数是TensorFlow中的一个计算函数,它的作用是将偏置加到给定的张量中。具体来说,它将偏置张量添加到给定的value张量中的矩阵/向量的最后一维。 在卷积神经网络(CNN…

    tensorflow-function 2023年3月30日
    00
  • 详解TensorFlow的 tf.get_collection 函数:获取指定名称的集合

    TensorFlow的tf.get_collection函数介绍 TensorFlow中的tf.get_collection用于根据集合名称获取相关的全部变量引用列表。 集合(collection)是TensorFlow中的一种管理与使用变量的方式,它类似于一个键值对,其中键表示变量的作用(比如保存模型的变量、计算损失函数的变量等),值则是保存相关变量的列表…

    tensorflow-function 2023年4月4日
    00
  • 详解TensorFlow的 tf.image.rgb_to_grayscale 函数:将 RGB 图像转化为灰度图像

    TensorFlow中tf.image.rgb_to_grayscale函数的作用与使用方法 作用 tf.image.rgb_to_grayscale函数主要用于将RGB图像转换为灰度图像。 使用方法 tf.image.rgb_to_grayscale函数的使用方法如下: tf.image.rgb_to_grayscale( images, name=Non…

    tensorflow-function 2023年4月4日
    00
  • 详解TensorFlow的 tf.nn.rnn_cell.BasicRNNCell 函数:基本 RNN 单元

    TensorFlow中tf.nn.rnn_cell.BasicRNNCell函数的作用与使用方法 作用 tf.nn.rnn_cell.BasicRNNCell函数是根据来自前一时间步的输入和当前时间步的状态(输出)计算隐藏状态和输出的RNN基本单元。 使用方法 函数原型 tf.nn.rnn_cell.BasicRNNCell(num_units, activ…

    tensorflow-function 2023年3月23日
    00
  • 详解TensorFlow的 tf.placeholder 函数:创建一个占位符张量

    在 TensorFlow 中,tf.placeholder() 函数的作用是声明一个占位符(placeholder),用于后面填充数据。就是我们在定义模型时,还不确定所需要的数据,就可以先通过占位符表示,最后再动态赋值。占位符本身不存储数值,其主要作用在于接收后面传递的数据,并协助程序构建计算图的形状。 语法格式 tf.placeholder(dtype, …

    tensorflow-function 2023年3月23日
    00
  • 详解TensorFlow的 tf.nn.softmax 函数:softmax 激活函数

    什么是softmax函数 在机器学习的过程中,很多训练算法都是基于概率论的基础理论进行的。softmax函数是一种用于归一化多维向量的函数,通常作为神经网络的输出层的激活函数,可以将任意实数值向量转换为概率分布。 softmax函数的数学定义 对于给定的一个包含m个元素的向量 $\boldsymbol{z}=(z_1,z_2,…,z_m)$,softma…

    tensorflow-function 2023年3月23日
    00
  • 详解TensorFlow的 tf.Session 函数:创建一个会话

    概述 在TensorFlow中,tf.Session()函数用于执行图中的操作。单个图可以拥有多个会话,但是会话不共享状态,由此可以更好地控制实现的方案。会话将操作运行在设备上,并执行同步和异步计算。对于CPU、GPU或TPU等不同类型的设备可以使用不同的会话。 基本语法 在使用tf.Session()函数前,需要先构建一个表示计算的数据流图。使用tf.Se…

    tensorflow-function 2023年3月23日
    00
合作推广
合作推广
分享本页
返回顶部