在Python中使用Numpy实现Relu导数

我正在尝试实现一个函数,用于计算矩阵中每个元素的Relu导数,并将结果返回为一个矩阵。我使用的是Python和Numpy。

根据其他Cross Validation帖子,x的Relu导数在x > 0时为1,在x < 0时为0,当x == 0时为未定义或0。

目前,我已经有了以下代码:

def reluDerivative(self, x):    return np.array([self.reluDerivativeSingleElement(xi) for xi in x])def reluDerivativeSingleElement(self, xi):    if xi > 0:        return 1    elif xi <= 0:        return 0

不幸的是,xi是一个数组,因为x是一个矩阵。reluDerivativeSingleElement函数无法在数组上工作。所以我想知道是否有办法使用numpy将矩阵中的值映射到另一个矩阵,就像numpy中的exp函数那样?

非常感谢您的帮助。


回答:

我想这就是您要找的:

>>> def reluDerivative(x):...     x[x<=0] = 0...     x[x>0] = 1...     return x>>> z = np.random.uniform(-1, 1, (3,3))>>> zarray([[ 0.41287266, -0.73082379,  0.78215209],       [ 0.76983443,  0.46052273,  0.4283139 ],       [-0.18905708,  0.57197116,  0.53226954]])>>> reluDerivative(z)array([[ 1.,  0.,  1.],       [ 1.,  1.,  1.],       [ 0.,  1.,  1.]])

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注