需要实现对卷积层的重参数化reparameterization

但是代码里卷积前weight并没有hook,很难在原本的卷积类上用pure oo的方式实现

目前的解决方案是继承原本的卷积,挂载一个weight module替代原本的weight parameter。需要hack一下getattr

大致代码:

class ReparamLayer(nn.module):
def __init__(self, weight:nn.Parameter):
self.weight = weight def forward(self):
reparam = self.weight
# do something
# reparam = fn(reparam)
return reparam @property
def data(self):
return self.forward() # hack class ReparamConv2d(nn.Conv2d):
def __init__(self, *args, **kwargs):
self._inited = False
super().__init__
w = self.weight
self._inited = True
self._weight = ReparamLayer(w) # reparam weights here
del self._parameters['weight'] def __getattr__(self, item):
if self._inited and item == 'weight':
return self._weight # hack
else:
return super().__getattr__(item)

最新文章

  1. 不用画线 设置UITableView的全屏分隔线
  2. HDU 1686 & KMP
  3. Origin的图片导出问题
  4. BZOJ3672 : [Noi2014]购票
  5. JavaWEB入门
  6. 无法向会话状态服务器发出会话状态请求请。确保 ASP.NET State Service (ASP.NET 状态服务)已启动
  7. JNDI绑定数据库
  8. Java第一阶段总结
  9. opencar二次开发常用代码
  10. mysql commit 和 rollback
  11. [ABP]浅谈工作单元 在整个 ABP 框架当中的应用
  12. Node.js安装及环境配置之Windows篇---完美,win7已测
  13. 分布式队列神器 Celery
  14. 百度编辑器UEditor 点击上传图片选择框会延迟几秒才会显示 反应很慢(转)
  15. Java:ConcurrentHashMap支持完全并发的读
  16. Mybatis学习——resultMap使用
  17. 背水一战 Windows 10 (61) - 控件(媒体类): InkCanvas 涂鸦编辑
  18. JFreeChart 之饼图
  19. 开源ckplayer 网页播放器去logo去广告去水印修改
  20. bzoj 4919 [Lydsy1706月赛]大根堆 set启发式合并+LIS

热门文章

  1. python学习8 文件的操作
  2. django 自带的用户系统
  3. python3表格数据处理
  4. Java学习之this关键字的使用
  5. windows一些知识
  6. 计划任务统一集中管理系统cronsun(替代crontab)
  7. [BFS]骑士旅行
  8. 在ASP.NET Core中使用ViewComponent
  9. Unity 背包系统的完整实现(基于MVC框架思想)
  10. 电梯也能无为而治——oo第二单元作业总结