pytorch - PyTorch 中的偏导数
问题描述
假设f(x)是一个权重为w的神经网络。如果我做
loss = -f(f(x))
loss.backward()
self.optim.step()
那么这与朝着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()
推荐阅读
- elasticsearch - elasticsearch 2.1中的聚合分页
- pa11y - 无论如何要将 HTML 发送到 Pa11y 以登录页面?
- java - 如何在带有 Maven 的 OSGi 应用程序中使用 MySQL?
- datagrip - 为什么 Data Grip 一直连接到数据库?
- eclipse - Eclipse在内容辅助变量初始化时添加@NotNull注解
- grails - Grails 3 / GORM 从结果中剔除单个记录
- java - Maven Central 和 JCenter 是否容易被域名抢注?
- computer-science - 记录状态机——来自状态或转换?
- python - 为什么 glob 会从此文件目录返回一个空列表?
- ios - UIView layoutConstraint 奇怪的行为,粘在上面