浅析PyTorch中nn.Linear的使用


Posted in Python onAugust 18, 2019

查看源码

Linear 的初始化部分:

class Linear(Module):
 ...
 __constants__ = ['bias']
 
 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()
 ...

需要实现的内容:

浅析PyTorch中nn.Linear的使用

计算步骤:

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

返回的是:input * weight + bias

对于 weight

weight: the learnable weights of the module of shape
  :math:`(\text{out\_features}, \text{in\_features})`. The values are
  initialized from :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})`, where
  :math:`k = \frac{1}{\text{in\_features}}`

对于 bias

bias:  the learnable bias of the module of shape :math:`(\text{out\_features})`.
    If :attr:`bias` is ``True``, the values are initialized from
    :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})` where
    :math:`k = \frac{1}{\text{in\_features}}`

实例展示

举个例子:

>>> import torch
>>> nn1 = torch.nn.Linear(100, 50)
>>> input1 = torch.randn(140, 100)
>>> output1 = nn1(input1)
>>> output1.size()
torch.Size([140, 50])

张量的大小由 140 x 100 变成了 140 x 50

执行的操作是:

[140,100]×[100,50]=[140,50]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python爬取读者并制作成PDF
Mar 10 Python
在Docker上开始部署Python应用的教程
Apr 17 Python
Python记录详细调用堆栈日志的方法
May 05 Python
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
python 接收处理外带的参数方法
Dec 03 Python
python实现动态数组的示例代码
Jul 15 Python
pyhton中__pycache__文件夹的产生与作用详解
Nov 24 Python
给 TensorFlow 变量进行赋值的方式
Feb 10 Python
解决pyCharm中 module 调用失败的问题
Feb 12 Python
pycharm 中mark directory as exclude的用法详解
Feb 14 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
详解Django的MVT设计模式
Apr 29 Python
Pytorch实现GoogLeNet的方法
Aug 18 #Python
PyTorch之图像和Tensor填充的实例
Aug 18 #Python
Pytorch Tensor的索引与切片例子
Aug 18 #Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 #Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 #Python
pytorch中的embedding词向量的使用方法
Aug 18 #Python
Pytorch加载部分预训练模型的参数实例
Aug 18 #Python
You might like
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
点球小游戏python脚本
2018/05/22 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
Python的UTC时间转换讲解
2019/02/26 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
导师评语大全
2014/04/26 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
幼儿园教师管理制度
2015/08/05 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js