浅析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实现代理服务功能实例
Nov 15 Python
python图片验证码生成代码
Jul 02 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
python 计算概率密度、累计分布、逆函数的例子
Feb 25 Python
Java多线程实现四种方式原理详解
Jun 02 Python
Python新手学习装饰器
Jun 04 Python
keras 实现轻量级网络ShuffleNet教程
Jun 19 Python
Python应用实现处理excel数据过程解析
Jun 19 Python
Keras 中Leaky ReLU等高级激活函数的用法
Jul 05 Python
Python faker生成器生成虚拟数据代码实例
Jul 20 Python
Python如何定义有默认参数的函数
Aug 10 Python
python如何实时获取tcpdump输出
Sep 16 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 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
php查询ip所在地的方法
2014/12/05 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
jquery $.ajax入门应用二
2008/11/19 Javascript
javascript 闭包
2011/09/15 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
js实现数字滚动特效
2019/12/16 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
python numpy元素的区间查找方法
2018/11/14 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
物业门卫岗位职责
2013/12/28 职场文书
八年级英语教学反思
2014/01/09 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
三好学生竞选稿
2015/11/21 职场文书
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers
详解JS数组方法
2021/11/20 Javascript