Pytorch 实现自定义参数层的例子


Posted in Python onAugust 17, 2019

注意,一般官方接口都带有可导功能,如果你实现的层不具有可导功能,就需要自己实现梯度的反向传递。

官方Linear层:

class Linear(Module):
  def __init__(self, in_features, out_features, bias=True):
    super(Linear, self).__init__()
    self.in_features = in_features
    self.out_features = out_features
    self.weight = Parameter(torch.Tensor(out_features, in_features))
    if bias:
      self.bias = Parameter(torch.Tensor(out_features))
    else:
      self.register_parameter('bias', None)
    self.reset_parameters()

  def reset_parameters(self):
    stdv = 1. / math.sqrt(self.weight.size(1))
    self.weight.data.uniform_(-stdv, stdv)
    if self.bias is not None:
      self.bias.data.uniform_(-stdv, stdv)

  def forward(self, input):
    return F.linear(input, self.weight, self.bias)

  def extra_repr(self):
    return 'in_features={}, out_features={}, bias={}'.format(
      self.in_features, self.out_features, self.bias is not None
    )

实现view层

class Reshape(nn.Module):
  def __init__(self, *args):
    super(Reshape, self).__init__()
    self.shape = args

  def forward(self, x):
    return x.view((x.size(0),)+self.shape)

实现LinearWise层

class LinearWise(nn.Module):
  def __init__(self, in_features, bias=True):
    super(LinearWise, self).__init__()
    self.in_features = in_features

    self.weight = nn.Parameter(torch.Tensor(self.in_features))
    if bias:
      self.bias = nn.Parameter(torch.Tensor(self.in_features))
    else:
      self.register_parameter('bias', None)
    self.reset_parameters()

  def reset_parameters(self):
    stdv = 1. / math.sqrt(self.weight.size(0))
    self.weight.data.uniform_(-stdv, stdv)
    if self.bias is not None:
      self.bias.data.uniform_(-stdv, stdv)

  def forward(self, input):
    x = input * self.weight
    if self.bias is not None:
      x = x + self.bias
    return x

以上这篇Pytorch 实现自定义参数层的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中运行并行任务技巧
Feb 26 Python
Python开发如何在ubuntu 15.10 上配置vim
Jan 25 Python
Python多进程同步简单实现代码
Apr 27 Python
Python使用pymysql小技巧
Jun 04 Python
TF-IDF算法解析与Python实现方法详解
Nov 16 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
对python自动生成接口测试的示例讲解
Nov 30 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
Jun 03 Python
Python小程序之在图片上加入数字的代码
Nov 26 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
python实现飞船游戏的纵向移动
Apr 24 Python
python自然语言处理之字典树知识总结
Apr 25 Python
Python中PyQt5/PySide2的按钮控件使用实例
Aug 17 #Python
画pytorch模型图,以及参数计算的方法
Aug 17 #Python
pytorch 共享参数的示例
Aug 17 #Python
Pytorch卷积层手动初始化权值的实例
Aug 17 #Python
pytorch自定义初始化权重的方法
Aug 17 #Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 #Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 #Python
You might like
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
PHP概率计算函数汇总
2015/09/13 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
firefo xml 读写实现js代码
2009/06/11 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
JavaScript中yield实用简洁实现方式
2010/06/12 Javascript
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
2012/10/12 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
浅谈python数据类型及类型转换
2017/12/18 Python
Python分支结构(switch)操作简介
2018/01/17 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
有关pycharm登录github时有的时候会报错connection reset的问题
2020/09/15 Python
Python常用外部指令执行代码实例
2020/11/05 Python
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
计算机专业推荐信范文
2013/11/27 职场文书
会计岗位职责范本
2014/03/07 职场文书
继承权公证书范本
2015/01/23 职场文书
庆六一开幕词
2015/01/29 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
走进毛泽东观后感
2015/06/04 职场文书
Java 关于String字符串原理上的问题
2022/04/07 Java/Android