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 27 Python
Python Trie树实现字典排序
Mar 28 Python
Python统计列表中的重复项出现的次数的方法
Aug 18 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
python爬虫实战之最简单的网页爬虫教程
Aug 13 Python
Python实现曲线点抽稀算法的示例
Oct 12 Python
python OpenCV学习笔记实现二维直方图
Feb 08 Python
Python numpy 提取矩阵的某一行或某一列的实例
Apr 03 Python
python tkinter基本属性详解
Sep 16 Python
Pytorch 实现权重初始化
Dec 31 Python
从多个tfrecord文件中无限读取文件的例子
Feb 17 Python
python ConfigParser库的使用及遇到的坑
Feb 12 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类的自动载入机制
2016/09/16 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
angular-cli修改端口号【angular2】
2017/04/19 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
微信小程序通过一个json实现分享朋友圈图片
2019/09/03 Javascript
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
简单使用Python自动生成文章
2014/12/25 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
2020/01/19 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
《九寨沟》教学反思
2014/04/08 职场文书
学习型党组织心得体会
2014/09/12 职场文书
个人授权委托书
2014/09/15 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
新学期感想
2015/08/10 职场文书
初二数学教学反思
2016/02/17 职场文书