Matlab:如何广播向量的Hessian推导?
在Matlab中,可以使用Matlab:如何广播向量的Hessian推导?,matlab,Matlab,在Matlab中,可以使用Hessian(x,v)得到Hessian矩阵,其中x是标量函数,v是向量,输出是矩阵 但如何将Hessian从向量函数转换为张量或叠加Hessian 比如说 输入:[x1x2x3,…xn] 输出:[Hessian(x1);Hesian(x2);…;Hessian(xn)] 显然,通过使用循环可以轻松完成: for i=1:n Hess = [Hess; hessian(x(n), x)] end 但如何才能更有效地工作呢?就像Python中的广播方式一样,T
Hessian(x,v)
得到Hessian矩阵,其中x
是标量函数,v
是向量,输出是矩阵
但如何将Hessian从向量函数转换为张量或叠加Hessian
比如说
输入:[x1x2x3,…xn]
输出:[Hessian(x1);Hesian(x2);…;Hessian(xn)]
显然,通过使用循环可以轻松完成:
for i=1:n
Hess = [Hess; hessian(x(n), x)]
end
但如何才能更有效地工作呢?就像Python中的广播方式一样,Tensorflow?我没有要测试的
hessian
,但我想您可能可以使用{:}作为标量函数矩阵,类似于{hessian(x{:},x)}。它可能不起作用,但可能会给你一个方向。因为hessian
要求第一个输入参数是标量,我认为你不能做任何比你建议的循环更有效的事情。我没有hessian
要测试,但我想你可能可以使用{:}作为标量函数矩阵,类似于{hessian(x{:},x)}的东西。它可能不起作用,但可能会给你一个方向。因为hessian
要求第一个输入参数是标量,我认为你不能做任何比你建议的循环更有效的事情。