python人工智能tensorflow常用激活函数Activation Functions

Python人工智能TensorFlow常用激活函数Activation Functions

在神经网络中,激活函数是非常重要的组成部分,它可以将输入信号转换为输出信号,从而实现非线性映射。TensorFlow提供了多种常用的激活函数,本文将详细讲解Python人工智能TensorFlow常用激活函数Activation Functions,并提供两个示例说明。

Sigmoid函数

Sigmoid函数是一种常用的激活函数,它可以将输入信号转换为0到1之间的输出信号。Sigmoid函数的公式如下:

$$
f(x) = \frac{1}{1 + e^{-x}}
$$

以下是使用Sigmoid函数的示例代码:

import tensorflow as tf

# 定义输入
x = tf.placeholder(tf.float32, [None, 784])

# 定义权重和偏置
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

# 定义模型
y = tf.nn.sigmoid(tf.matmul(x, W) + b)

在这个示例中,我们首先定义了输入x,它是一个大小为[None, 784]的张量,其中None表示可以接受任意数量的输入。接着,我们定义了权重W和偏置b,并使用tf.nn.sigmoid()方法定义了模型输出y

ReLU函数

ReLU函数是一种常用的激活函数,它可以将输入信号转换为大于0的输出信号。ReLU函数的公式如下:

$$
f(x) = \max(0, x)
$$

以下是使用ReLU函数的示例代码:

import tensorflow as tf

# 定义输入
x = tf.placeholder(tf.float32, [None, 784])

# 定义权重和偏置
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

# 定义模型
y = tf.nn.relu(tf.matmul(x, W) + b)

在这个示例中,我们首先定义了输入x,它是一个大小为[None, 784]的张量,其中None表示可以接受任意数量的输入。接着,我们定义了权重W和偏置b,并使用tf.nn.relu()方法定义了模型输出y

Softmax函数

Softmax函数是一种常用的激活函数,它可以将输入信号转换为0到1之间的输出信号,并且所有输出信号的和为1。Softmax函数的公式如下:

$$
f(x_i) = \frac{e^{x_i}}{\sum_{j=1}^{n} e^{x_j}}
$$

以下是使用Softmax函数的示例代码:

import tensorflow as tf

# 定义输入
x = tf.placeholder(tf.float32, [None, 784])

# 定义权重和偏置
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

# 定义模型
y = tf.nn.softmax(tf.matmul(x, W) + b)

在这个示例中,我们首先定义了输入x,它是一个大小为[None, 784]的张量,其中None表示可以接受任意数量的输入。接着,我们定义了权重W和偏置b,并使用tf.nn.softmax()方法定义了模型输出y

示例1:使用Sigmoid函数训练模型

以下是使用Sigmoid函数训练模型的示例代码:

import tensorflow as tf

# 定义输入
x = tf.placeholder(tf.float32, [None, 784])
y_ = tf.placeholder(tf.float32, [None, 10])

# 定义权重和偏置
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

# 定义模型
y = tf.nn.sigmoid(tf.matmul(x, W) + b)

# 定义损失函数
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))

# 定义优化器
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

# 训练模型
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(1000):
        batch_xs, batch_ys = mnist.train.next_batch(100)
        sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
    correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
    print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

在这个示例中,我们首先定义了输入x和标签y_,并定义了权重W和偏置b。接着,我们使用Sigmoid函数定义了模型输出y,并使用交叉熵损失函数和梯度下降优化器训练模型。最后,我们计算了模型的准确率。

示例2:使用ReLU函数训练模型

以下是使用ReLU函数训练模型的示例代码:

import tensorflow as tf

# 定义输入
x = tf.placeholder(tf.float32, [None, 784])
y_ = tf.placeholder(tf.float32, [None, 10])

# 定义权重和偏置
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

# 定义模型
y = tf.nn.relu(tf.matmul(x, W) + b)

# 定义损失函数
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))

# 定义优化器
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

# 训练模型
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(1000):
        batch_xs, batch_ys = mnist.train.next_batch(100)
        sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
    correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
    print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

在这个示例中,我们首先定义了输入x和标签y_,并定义了权重W和偏置b。接着,我们使用ReLU函数定义了模型输出y,并使用交叉熵损失函数和梯度下降优化器训练模型。最后,我们计算了模型的准确率。

结语

以上是Python人工智能TensorFlow常用激活函数Activation Functions的详细攻略,包含了Sigmoid函数、ReLU函数和Softmax函数的公式和示例说明。在神经网络中,选择合适的激活函数可以提高模型的性能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python人工智能tensorflow常用激活函数Activation Functions - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • tensorflow学习一

    1.用图(graph)来表示计算任务 2.用op(opreation)来表示图中的计算节点,图有默认的计算节点,构建图的过程就是在其基础上加节点。 3.用tensor表示每个op的输入输出数据,可以使用feed,fetch可以为任意操作设置输入和获取输出。 4.通过Variable来维护状态。 5.整个计算任务放入session的上下文来执行。     te…

    tensorflow 2023年4月8日
    00
  • TensorFlow在win10上的安装与使用(三)

    本篇博客介绍最经典的手写数字识别Mnist在tf上的应用。 Mnist有两种模型,一种是将其数据集看作是没有关系的像素值点,用softmax回归来做。另一种就是利用卷积神经网络,考虑局部图片像素的相关性,显然第二种方法明显优于第一种方法,下面主要介绍这两种方法。 softmax回归  mnist.py import tensorflow as tf impo…

    2023年4月8日
    00
  • tensorflow实现siamese网络 (附代码)

    转载自:https://blog.csdn.net/qq1483661204/article/details/79039702   Learning a Similarity Metric Discriminatively, with Application to Face Verification 这个siamese文章链接。 本文主要讲解siamese网…

    tensorflow 2023年4月6日
    00
  • Tensorflow环境搭建的方法步骤

    TensorFlow 环境搭建的方法步骤 TensorFlow 是一个广泛使用的深度学习框架,它可以在各种平台上运行。本文将详细讲解 TensorFlow 环境搭建的方法步骤,并提供两个示例说明。 步骤1:安装 Python 在安装 TensorFlow 之前,需要先安装 Python。TensorFlow 支持 Python 3.5、3.6 和 3.7 版…

    tensorflow 2023年5月16日
    00
  • TensorFlow(1):使用docker镜像搭建TensorFlow环境

    TensorFlow 随着AlphaGo的胜利也火了起来。 google又一次成为大家膜拜的大神了。google大神在引导这机器学习的方向。 同时docker 也是一个非常好的工具,大大的方便了开发环境的构建,之前需要配置安装。 看各种文档,现在只要一个 pull 一个 run 就可以把环境弄好了。 同时如果有写地方需要个性化定制,直接在docker的镜像上…

    2023年4月8日
    00
  • 《转》tensorflow学习笔记

    from http://m.blog.csdn.net/shengshengwang/article/details/75235860 1. RNN结构 解析: (1)one to one表示单输入单输出网络。这里的但输入并非表示网络的输入向量长度为1,而是指数据的长度是确定 的。比如输入数据可以是一个固定类型的数,可以是一个固定长度的向量,或是一个固定大小…

    2023年4月8日
    00
  • tensorflow2.0 squeeze出错

    用tf.keras写了自定义层,但在调用自定义层的时候总是报错,找了好久才发现问题所在,所以记下此问题。 问题代码 u=tf.squeeze(tf.expand_dims(tf.expand_dims(inputs,axis=1),axis=3)@self.kernel,axis=3) 其中inputs的第一维为None,这里的代码为自定义的前向传播。我是想…

    2023年4月8日
    00
  • TensorFlow安装常见问题和解决办法

    TensorFlow安装常见问题和解决办法 https://blog.csdn.net/qq_44725872/article/details/107558250 https://blog.csdn.net/MSJ_nb/article/details/117462928 刚好最近在看一些关于深度学习的书,然后就想着安装tensorflow跑跑代码加深一下印…

    2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部