Python中ReLU函数的导数
ReLU 代表 Rectified Linear Activation Function,它是深度学习范围内最流行的激活函数替代方案。 ReLU 是线性函数的一部分,如果输入值为正,则输出相同的输入; 如果不是,它将使输出为零。
本文介绍如何使用 Python 编程语言对 ReLU 函数进行派生。
在 Python 中实现 ReLU 函数
作为一个数学函数,我们可以定义 ReLU 函数如下:
f(x) = max(0,x)
此函数关于 x 是线性的,并且对于所有负值输出零。
以下伪代码表示 ReLU 函数。
if input > 0:
return input
else:
return 0
正如上面的伪代码,我们可以构建我们的 ReLU 函数的实现如下:
import numpy as nm
def relu_func(x):
return(nm.maximum(0,x))
print(relu_func(2))
print(relu_func(0))
print(relu_func(0.1))
print(relu_func(-3))
考虑到这个例子,它定义了带有参数 x 的函数 relu_func。 此函数返回考虑 ReLU 函数的输出。
我们一次将一个整数作为参数传递给 relu_func 函数。
maximum()
函数返回最大值。 如果整数大于0,它将打印与输入相同的整数; 如果不是,它打印零。
因此,我们在上面的代码中实现的 ReLU 函数将适用于任何单个整数; 也有 numpy 数组。
我们可以得到如下输出:
Python中 ReLU 函数的导数
否则,ReLU 函数的导数称为 ReLu 的梯度。 函数的导数是斜率。
如果我们创建一个图,例如,y= ReLu(x)
,并且 x 大于零,则梯度为 1。
如果 x 小于零,则梯度为 0。如果 x = 0,则导数不存在。
ReLu函数的数学导数可以定义如下:
f'(x) = 1, x >= 0
= 0, x < 0
我们可以将 ReLu 函数的导数应用于图形。 那么,让我们看看下面的例子。
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
#define relu function
def relu_func(z):
return np.maximum(0,z)
z = np.arange(-3,5,1)
print (z)
Y = relu_func(z)
print(Y)
plt.plot(z,Y,'o-')
plt.xlabel('X')
plt.ylabel('F(x)')
plt.grid()
考虑到上面的代码,它被定义为传递 z 参数的 relu_func。 在这个函数下,我们返回relu函数和定义的z变量来获取x轴的范围。
还定义了 Y 变量定义为传递带有参数的 relu_func。 relu_func(Z)
函数计算所有 z 值的 reLU。
因此,所有负值都表示零。 x 轴图是 X,y 轴图是 F(x)。
下图是我们从上面的代码中得到的输出。
如前所述,导数是指图形在某一点的斜率。 所以,x=1 的斜率为 1。
所有其他大于 0 的点的斜率为 1。但是,x=-3 的斜率是多少?
我们可以看到该点没有斜率。
所有其他小于 0 的点都得到 slope none,这意味着斜率为 0。所以这被称为 ReLu 函数的导数,内置 Python 编程语言。
总结
本文介绍如何在Python中实现ReLu函数,主要讨论如何实现ReLu导数函数。 ReLU 函数在深度学习中经常使用。
但它有一些问题。 例如,如果输入值小于 0,则输出将为 0。
因此,神经网络无法继续其某些工作。 作为解决方案,它主要使用 Leaky ReLU 函数。
相关文章
计算 Python 中一个句子的平均字长
发布时间:2023/06/16 浏览次数:62 分类:Python
-
本篇文章将介绍用 Python 计算句子中的平均字长。在 Python 中使用 split()、sum() 和 len() 计算句子中的平均字长
Python 中的可选链
发布时间:2023/06/16 浏览次数:80 分类:Python
-
本文描述了我们在适应 Python 中的可选链接时可以遵循的方法。 适应以下方法之一将使在 Python 而不是 JavaScript 中使用可选链接变得容易。
Python中另一个函数调用的模拟补丁一个函数
发布时间:2023/06/16 浏览次数:122 分类:Python
-
本篇文章介绍模拟对象及其重要性,并使用 patch() 作为装饰器、上下文管理器和手动启动/停止来演示如何模拟补丁由另一个函数调用的一个函数。
Python 四舍五入到最接近的十位
发布时间:2023/06/16 浏览次数:124 分类:Python
-
本篇文章将讨论使用 Python 的 ceil() 函数将数字四舍五入到最接近的十。Python 整数到最接近的十 Python 具有三个内置函数 round()、floor() 和 ceil(),可用于对数字进行舍入。
Python 中的模拟函数
发布时间:2023/06/16 浏览次数:127 分类:Python
-
Mock 是为与 unittest 一起使用而创建的,它基于操作到断言模式而不是大多数模拟框架中使用的记录到重播。 对于以前版本的 Python,有一个 unittest.mock 的反向移植。
基于 Python 中输入的模拟返回值
发布时间:2023/06/16 浏览次数:171 分类:Python
-
本文将介绍如何在 Python 中创建一个根据输入返回不同值的模拟函数。 我们还将向您展示如何测试我们的模拟函数。最后,我们将向您展示一些更高级的模拟函数的技术。
Python 模拟导入
发布时间:2023/06/16 浏览次数:129 分类:Python
-
在这篇 Python 文章中,我们将研究 mock 库并学习如何有效地使用它。 我们将从简单的示例开始,然后查看更高级的用法。Python 模拟导入 我们将学习模拟对象和模拟的用途和陷阱。
在 Python 中计算和显示凸包
发布时间:2023/06/16 浏览次数:142 分类:Python
-
因此,凸包是指围绕凸物体形状的边界。 本教程将教您在 Python 中计算和显示一组随机点的凸包。在 Python 中计算并显示一个凸包
Python 密码哈希
发布时间:2023/06/16 浏览次数:90 分类:Python
-
我们将了解密码散列以及如何使用名为 bcrypt 的第三方库加密 salt 和 hash 密码。 我们还研究了 Python 中 hashlib 库中的不同哈希算法。Python 中使用 bcrypt 库的 Salt 和 Hash 密码