deep-learning - pytorch中检查点之间的线性插值 - 批量标准化
问题描述
我想在两个 PyTorch 训练的模型检查点之间进行线性插值。对于除批量归一化之外的所有层,我加载指定的 dict 并简单地进行线性整合,如下所示:
def interpolate_state_dicts(state_dict_1, state_dict_2, weight):
return {key: (1 - weight) * state_dict_1[key] + weight * state_dict_2[key]
for key in state_dict_1.keys()}
我不知道我们是否可以简单地对 BN 层参数(权重、偏差、运行均值、运行标准)做同样的事情?我想这并不是那么简单,因为平均值和标准是针对特定批次计算的。
解决方案
推荐阅读
- recursion - Pygame 中的递归曲面
- javascript - 使用范围滑块更改 SVG 圆的半径
- python - 如何在 pandas 中对不同的数据框进行分组和聚合
- c++ - SFML 即使在覆盖虚拟绘图功能后也无法绘制对象
- php - 在 PHP 中搜索 MySQL 查询
- cassandra - Cassandra:使用强制转换函数错误将整数转换为十进制值
- c# - 微服务未在 LaunchSettings.JSON 设置的端口上启动
- c# - 为什么这个代码在我打开它后会改变我的主窗体背景颜色?
- java - 为什么迭代器中的修改在迭代期间不可见?
- reactjs - React native 获取和使用 usestate 来获取依赖的数据项