首页 > 解决方案 > 使用 NumPy 写下分段函数?

问题描述

我是 NumPy 的新手,想弄清楚如何写下分段定义的函数。我有一个使用 ReLU 作为激活函数的 MSE_Loss 函数的导数: 在此处输入图像描述

我有我需要的所有参数。我的问题是:如何使用 NumPy 处理分段函数(最好不使用循环)?

已编辑:例如,我可以使用 NumPy 以下方式写下以下函数: 在此处输入图像描述

def loss_derivative(X, y, w, b):
    n = len(y)
    sigma = sigmoid(X @ w + b)
    return (X.T @ ((sigma - y) * sigma * (1 - sigma))) / n

如何为上面的分段公式实现具有相同输入的函数?

标签: pythonnumpy

解决方案


我认为此示例最简单的方法是使用条件乘数,如下所示(并非函数中的所有元素都在您的问题中定义,所以我猜测它们。但是,如果不是这种情况,您可以轻松修复它):

def loss_derivative(X, y, w):
    n = len(y)
    return X.T @ (((X @ w - y) / n) * ((X @ w) > 0))

推荐阅读