浅析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的Django框架中从url中捕捉文本的方法
Jul 20 Python
Python文件操作,open读写文件,追加文本内容实例
Dec 14 Python
详解python之简单主机批量管理工具
Jan 27 Python
Python针对给定列表中元素进行翻转操作的方法分析
Apr 27 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
Django Rest framework三种分页方式详解
Jul 26 Python
Python使用进程Process模块管理资源
Mar 05 Python
python对XML文件的操作实现代码
Mar 27 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 Python
深入解析NumPy中的Broadcasting广播机制
May 30 Python
Python基础教程,Python入门教程(超详细)
Jun 24 Python
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
Jun 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 ob_flush,flush在ie中缓冲无效的解决方法
2010/05/09 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
thinkPHP框架实现的简单计算器示例
2018/12/07 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
vue3.0自定义指令(drectives)知识点总结
2020/12/27 Vue.js
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
基于python实现学生信息管理系统
2019/11/22 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
启动仪式策划方案
2014/06/14 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
高一语文教学反思
2016/02/16 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书