我的编程空间,编程开发者的网络收藏夹
学习永远不晚

简单聊聊PyTorch里面的torch.nn.Parameter()

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

简单聊聊PyTorch里面的torch.nn.Parameter()

在刷官方Tutorial的时候发现了一个用法self.v = torch.nn.Parameter(torch.FloatTensor(hidden_size)),看了官方教程里面的解释也是云里雾里,于是在栈溢网看到了一篇解释,并做了几个实验才算完全理解了这个函数。首先可以把这个函数理解为类型转换函数,将一个不可训练的类型Tensor转换成可以训练的类型parameter并将这个parameter绑定到这个module里面(net.parameter()中就有这个绑定的parameter,所以在参数优化的时候可以进行优化的),所以经过类型转换这个self.v变成了模型的一部分,成为了模型中根据训练可以改动的参数了。使用这个函数的目的也是想让某些变量在学习的过程中不断的修改其值以达到最优化。

出现这个函数的地方

在concat注意力机制中,权值V是不断学习的所以要是parameter类型。

通过做下面的实验发现,linear里面的weight和bias就是parameter类型,且不能够使用tensor类型替换,还有linear里面的weight甚至可能通过指定一个不同于初始化时候的形状进行模型的更改。

做的实验

self.v被绑定到模型中了,所以可以在训练的时候优化

与torch.tensor([1,2,3],requires_grad=True)的区别,这个只是将参数变成可训练的,并没有绑定在module的parameter列表中。

总结

到此这篇关于PyTorch里面的torch.nn.Parameter()的文章就介绍到这了,更多相关PyTorch的torch.nn.Parameter()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

简单聊聊PyTorch里面的torch.nn.Parameter()

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

简单聊聊Python中的wraps修饰

在了解wraps修饰器之前,我们首先要了解partial和update_wrapper这两个函数,因为在wraps的代码中,用到了这两个函数。partial首先说partial函数,在官方文档的描述中,这个函数的声明如下:functools
2023-01-31

简单聊聊Vue中的ref,toRef与toRefs

这篇文章主要是想和大家来简单聊聊Vue中的ref、toRef、toRefs这三个函数的使用与区别,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2023-05-14

简单聊聊Java程序中的换行符

Java程序中的换行符一般使用“\n”表示,它是一个转义字符,表示换行符。根据操作系统的不同,换行符的实际表示可能不同,本文就来简单聊聊他们的区别与使用吧
2023-03-21

简单聊聊Go for range中容易踩的坑

for循环问题,在面试中经常都会被问到,并且在实际业务项目中也经常用到for循环,要是没用好,一不下心就掉坑,本文就来讲讲Go for range中容易踩的坑吧
2023-03-20

简单聊一聊redis过期时间的问题

目录1.多次修改一个Redis的String过期键,如何保证他仍然能保留第一次设置时的删除时间2.修改hash、set、Zset、list的值,会使过期时间重置吗?总结1.多次修改一个rephpdis的String过期键,如何保证他仍然能保
2023-04-14

简单聊一聊SQL中的union和union all

在写SQL的时候,偶尔会用到两个表的数据结合在一起返回的,就需要用到UNION和UNIONALL,这篇文章主要给大家介绍了关于SQL中union和union all的相关资料,需要的朋友可以参考下
2023-02-22

简单聊一聊SQL中的union和union all

目录概念基础语法使用技巧区别总结概念mysql UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。UNION 操作符选取不同的值,如果允许得到重复的值,可以使用
2023-02-22

python简单的多人聊天室

刚开始学习python,写了一个聊天室练练手。Server.pyimport socket,select,thread;host=socket.gethostname()port=5963addr=(host,port) input
2023-01-31

简单聊聊工作中常用的Java Lambda表达式

日常开发中,我们很多时候需要用到Java 8的Lambda表达式,它允许把函数作为一个方法的参数,让我们的代码更优雅、更简洁。所以整理了一波工作中常用的Lambda表达式。看完一定会有帮助的
2022-11-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录