PyTorch中的偏导数

PyTorch中的偏导数,pytorch,derivative,Pytorch,Derivative,假设f(x)是一个权重为w的神经网络。如果我这样做 那么这与沿着f’(f(x))df(x)/dw+df/dw(f(x))的方向走是一样的。但是,如果我想忽略第二部分,只朝着f’(f(x))df(x)/dw的方向移动,那么在PyTorch中,有什么简单的方法可以做到这一点呢?据我所知,一个可能的解决方案就是建立一个目标网络: f_target.load_state_dict(f.state_dict()) f_target.eval() loss = -f_target(f(x)) loss.ba

假设f(x)是一个权重为w的神经网络。如果我这样做


那么这与沿着f’(f(x))df(x)/dw+df/dw(f(x))的方向走是一样的。但是,如果我想忽略第二部分,只朝着f’(f(x))df(x)/dw的方向移动,那么在PyTorch中,有什么简单的方法可以做到这一点呢?

据我所知,一个可能的解决方案就是建立一个目标网络:

f_target.load_state_dict(f.state_dict())
f_target.eval()
loss = -f_target(f(x))
loss.backward()
self.optim.step()

我怀疑你真的不想这么做。你为什么认为这是必要的?@aryamcarthy这是我想解决的优化问题的一部分。我在这里只举了一个简单的例子。但从数学上讲,我问题中的右梯度不应该包含df/dw(f(x))
f_target.load_state_dict(f.state_dict())
f_target.eval()
loss = -f_target(f(x))
loss.backward()
self.optim.step()