这是确定是否foo
相同或从类型派生的最简单方法T
bool Derives<T>(object foo)
{
return foo is T;
}
Run Code Online (Sandbox Code Playgroud)
并且完全匹配
bool ExactMatch<T>(object foo)
{
return foo.GetType() == typeof(T);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现一个函数来计算矩阵中每个元素的Relu导数,然后将结果返回到矩阵中.我正在使用Python和Numpy.
基于其他交叉验证帖子,当x> 0时,x的Relu导数为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
Run Code Online (Sandbox Code Playgroud)
不幸的是,xi是一个数组,因为x是一个矩阵.reluDerivativeSingleElement函数不适用于数组.所以我想知道有没有办法使用numpy将矩阵中的值映射到另一个矩阵,就像numpy中的exp函数一样?
非常感谢提前.
Savitzky-Golay平滑滤波器可用于计算系数,以便通过将系数应用于相邻值来计算平滑的y值.平滑的曲线看起来很棒.
根据论文,系数也可用于计算高达5阶的导数.系数计算参数ld需要设置为导数的顺序.对于一阶导数,适当的设置是ld = 1,导数的值是累加的和除以采样间隔h.
我的问题是:如何使用获得的系数来计算累计和?衍生物是如何计算的?任何示例代码?
输入:
Xf
= 和保存点的 x 值的数组
Yf
= 保存点方法的 y 值的数组 = 2 点前向差、2 点后向差、3 点中心差、5 点中心差
输出:
X
= 包含有效 x 值的数组,其中选择的方法实际上可以使用(例如,您不能在Xf
数组的上限使用前向差分方法,因为它后面没有值)
DF
= 在这些点的导数
我需要为脚本提供一组点,然后使用 4 种不同的方法计算这些点的导数,而不使用像 diff
. 我需要一些帮助来编写其中一个代码,然后我想我应该能够弄清楚如何完成其余的工作。
我的尝试:
[a, minidx] = min(Xf);
[b, maxidx] = max(Xf);
n = 10;
h = (b-a)/n;
f = (x .^3) .* e.^(-x) .* cos(x);
If method = "forward" #Input by user
X = [min(Xf), Xf(maxidx-1)];
for k = min(Xf):n # not sure if this is …
Run Code Online (Sandbox Code Playgroud) import numpy as np
a = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
b = np.array([[1,2,3]]).T
c = a.dot(b) #function
jacobian = a # as partial derivative of c w.r.t to b is a.
Run Code Online (Sandbox Code Playgroud)
我正在阅读有关jacobian Matrix的文章,试图构建一个Matrix,从到目前为止的内容来看,此python代码应被视为jacobian。我了解这个权利吗?
是否有可能将function_handle的衍生物作为另一个function_handle?
喜欢:
fun1 = @(x) x^2;
% do that ...
disp(fun2);
@(x) x*2
Run Code Online (Sandbox Code Playgroud)
我知道如何找到符号函数的导数但我无法将function_handle转换为符号函数.
我是matlab的新手,我找不到任何办法.提前致谢.
我正在尝试重现一篇论文的结果,其中他们将图像与高斯核的水平偏导数进行卷积。我还没有找到任何方法可以用 OpenCV 来实现这一点。那可能吗 ?
我是否必须获得高斯滤波器,然后手动计算偏导数?
如何获得以下功能的衍生物?
g <- expression(x^2)
derivg <- D(g, 'x')
derivg
# 2 * x
g1 <- derivg(2)
# Error: could not find function "derivg"
Run Code Online (Sandbox Code Playgroud)
我想在x = 2处找到导数.
我想了解如何在xgboost示例脚本中计算logloss函数的梯度和粗糙度.
我已经简化功能采取numpy的阵列,以及产生y_hat
和y_true
其在脚本中使用的值的样品.
这是一个简化的例子:
import numpy as np
def loglikelihoodloss(y_hat, y_true):
prob = 1.0 / (1.0 + np.exp(-y_hat))
grad = prob - y_true
hess = prob * (1.0 - prob)
return grad, hess
y_hat = np.array([1.80087972, -1.82414818, -1.82414818, 1.80087972, -2.08465433,
-1.82414818, -1.82414818, 1.80087972, -1.82414818, -1.82414818])
y_true = np.array([1., 0., 0., 1., 0., 0., 0., 1., 0., 0.])
loglikelihoodloss(y_hat, y_true)
Run Code Online (Sandbox Code Playgroud)
方程式如何相等?
在下面的程序中,SymPy似乎并不理解被积函数是产品的衍生物.有没有办法让它回归u*v
?
import sympy
x = sympy.symbols('x', real=True)
u = sympy.Function('u')
v = sympy.Function('v')
print((u(x) * v(x)).diff(x).integrate(x))
Run Code Online (Sandbox Code Playgroud)
打印:
> Integral(u(x)*Derivative(v(x), x) + v(x)*Derivative(u(x), x), x)
Run Code Online (Sandbox Code Playgroud)