中心:

与torch.Tensor相比,torch.Tensor()只是生成一个张量,
 而torch.nn.Parameter()可以将张量变为可以训练的参数,而不是一个不可变的张量

用法:

self.v = torch.nn.Parameter(torch.FloatTensor(hidden_size))

含义是将一个固定不可训练的tensor转换成可以训练的类型parameter,所以在参数优化的时候可以进行优化的。使用这个函数的目的也是想让某些变量在学习的过程中不断的修改其值以达到最优化。

torch.nn.Parameter是继承自torch.Tensor的子类,其主要作用是作为nn.Module中的可训练参数使用。它与torch.Tensor的区别就是nn.Parameter会自动被认为是module的可训练参数,即加入到parameter()这个迭代器中去;而module中非nn.Parameter()的普通tensor是不在parameter中的。
注意到,nn.Parameter的对象的requires_grad属性的默认值是True,即是可被训练的,这与torth.Tensor对象的默认值相反。
在nn.Module类中,pytorch也是使用nn.Parameter来对每一个module的参数进行初始化的。以nn.Linear为例:其中的权重和偏置(weight and bias)均是可训练的参数,其底层均是由torch.nn.Parameter()构成的。

    def __init__(self, in_features, out_features, bias=True):super(Linear, self).__init__()self.in_features = in_featuresself.out_features = out_featuresself.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()

总结:

所以训练网络的时候,可以使用nn.Parameter()来转换一个固定的权重数值(例如张量,torch.Tensor()、torch.FloatTensor()....),使的其可以跟着网络训练一直调优下去,学习到一个最适合的权重值。


torch.nn.Parameter理解_Stoneplay-CSDN博客_torch.nn.parameter

torch.nn.Parameter()_chenzy_hust的博客-CSDN博客_nn.parameter()

torch.nn.Parameter()相关推荐

  1. PyTorch里面的torch.nn.Parameter()

    在刷官方Tutorial的时候发现了一个用法self.v = torch.nn.Parameter(torch.FloatTensor(hidden_size)),看了官方教程里面的解释也是云里雾里, ...

  2. PyTorch中的torch.nn.Parameter() 详解

    PyTorch中的torch.nn.Parameter() 详解 今天来聊一下PyTorch中的torch.nn.Parameter()这个函数,笔者第一次见的时候也是大概能理解函数的用途,但是具体实 ...

  3. torch.nn.parameter.Parameter分析

    torch.nn.parameter.Parameter 作用 a kind of Tensor that is to be considered a module parameter. Parame ...

  4. torch.nn.parameter详解

    :-- 目录: 参考: 1.parameter基本解释: 2.参数requires_grad的深入理解: 2.1 Parameter级别的requires_grad 2.2Module级别的requi ...

  5. nn.Module、nn.Sequential和torch.nn.parameter学习笔记

    nn.Module.nn.Sequential和torch.nn.parameter是利用pytorch构建神经网络最重要的三个函数.搞清他们的具体用法是学习pytorch的必经之路. 目录 nn.M ...

  6. PySOT代码之SiamRPN++分析——基础知识:hanning、outer、tile、contiguous、flatten、meshgrid、torch.nn.Parameter

    基础知识扩充 感谢大佬们的工作,许多内容都是直接拿来用的,原地址附在参考文献板块 np.hanning(M) 汉宁窗是通过使用加权余弦形成的锥形 M:整数,输出窗口中的点数.如果为零或更小,则返回一个 ...

  7. Pytorch之深入理解torch.nn.Parameter()

    先看一段代码: import torch import torch.nn as nn a=torch.tensor([1,2],dtype=torch.float32) print(a) print( ...

  8. torch.nn.Module()

    torch.nn.Module() 如果自己想研究,官方文档 它是所有的神经网络的根父类! 你的神经网络必然要继承! 模块也可以包含其他模块,允许将它们嵌套在树结构中.所以呢,你可以将子模块指定为常规 ...

  9. nn.Parameter的作用

    torch.nn.Parameter是继承自torch.Tensor的子类,其主要作用是作为nn.Module中的可训练参数使用. 例如: self.weight=nn.Parameter(torch ...

最新文章

  1. 从Thread.start()方法看Thread源码,多次start一个线程会怎么样
  2. 中国无碳复写纸行业竞争现状与运行态势研究报告2022年
  3. NoSQL之Redis非关系数据库(redis概述,持久化,RDB持久化,AOF持久,内存碎片)
  4. ICML2020 | 一行代码就能实现的测试集上分技巧
  5. 探测活动主机的代码linux,Linux入侵痕迹检测方案【华为云技术分享】
  6. mysql ---- DQL(单表查询)
  7. Redis各个数据类型的使用场景
  8. AMD将统治2017年的PC及服务器市场?
  9. in-band(带内) and out-of-band(带外) management
  10. python 手机号码识别_python3库可以识别电话号码、姓名、电子邮件和地址
  11. Java架构师之路:从码农到年薪五十万的架构师
  12. 闲鱼搜索召回升级:向量召回个性化召回
  13. 微信小程序开发入门需要学什么?
  14. 安装包的时候出现:No such file or directory: google_pasta-0.2.0.dist-info\\METADATA
  15. 蓝桥杯NE555模块编程
  16. C# 数据库大作业-学生管理系统
  17. 05 Android 植物人大战僵尸-安放豌豆射手到图层
  18. 计算机音乐毕业论文范文,音乐型毕业论文范文
  19. 计算机网络工程投标书,校园网工程投标书范例
  20. Kotlin学习与实践 (三)fun 函数

热门文章

  1. Jeecg-P3 1.0版本发布,JAVA插件开发框架
  2. maven nexus 说明
  3. 2018 CVPR GAN 相关论文
  4. 《DeepLearning.ai 深度学习笔记》发布,黄海广博士整理
  5. 探讨 .NET 4 新增的 SortedSet 类
  6. 阿里云 推荐码   为自己省钱
  7. LVS+keepalived负载均衡 ??待续
  8. 【CSS+HTML】关于字体的说明
  9. sun java applet,Sun Java运行时环境字体解析Applet权限提升漏洞
  10. python反转列表不用切片_关于python:使用切片表示法反转列表