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生成随机验证码的两种方法
Dec 22 Python
你所不知道的Python奇技淫巧13招【实用】
Dec 14 Python
Python编程对列表中字典元素进行排序的方法详解
May 26 Python
python提取包含关键字的整行数据方法
Dec 11 Python
pyttsx3实现中文文字转语音的方法
Dec 24 Python
用Python读取几十万行文本数据
Dec 24 Python
Python Opencv实现图像轮廓识别功能
Mar 23 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
解决Django migrate不能发现app.models的表问题
Aug 31 Python
Python中zip()函数的简单用法举例
Sep 02 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
15个Pythonic的代码示例(值得收藏)
Oct 29 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
PHP连接SQLServer2005的方法
2015/01/27 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
一篇不错的Python入门教程
2007/02/08 Python
python实现简单的计时器功能函数
2015/03/14 Python
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
Django中信号signals的简单使用方法
2019/07/04 Python
Django中多种重定向方法使用详解
2019/07/17 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
Python实现动态循环输出文字功能
2020/05/07 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
优秀的导游求职信范文
2014/04/06 职场文书
学校团代会开幕词
2016/03/04 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python