我正在尝试对矩阵采用标量函数的雅可比式
w = sym.MatrixSymbol('w',2,1)
g = sym.Matrix([sym.log(1 + sym.exp(sym.MatMul(w.T,w)))])
grad_g = g.jacobian(w)
这将返回错误的[0,0]
的雅可比向量。
我在这里尝试了非符号实现:
w1, w2 = sym.symbols('w_1, w_2')
w = sym.Matrix([w1, w2])
g = sym.Matrix([sym.log(sym.Matrix([1]) + sym.exp(w.T * w))])
grad_g = g.jacobian(w)
我收到一条错误消息:NotImplementedError:
,包含0个进一步的信息。
将竭诚为您服务!
将其作为非象征性案例:
w1, w2 = sym.symbols('w_1 w_2')
w = sym.Matrix([w1, w2])
g = sym.log(1 + sym.exp(w.T * w)[0])
grad_g = sym.Matrix([g]).jacobian(w)
必须通过sym.exp索引到矩阵返回中,而不是将1设为矩阵。
我很想知道是否可以用sym.MatrixSymbol做到这一点,所以让我知道