PyTorch里面的torch.nn.Parameter()详解

yipeiwu_com6年前Python基础

在看过很多博客的时候发现了一个用法self.v = torch.nn.Parameter(torch.FloatTensor(hidden_size)),首先可以把这个函数理解为类型转换函数,将一个不可训练的类型Tensor转换成可以训练的类型parameter并将这个parameter绑定到这个module里面(net.parameter()中就有这个绑定的parameter,所以在参数优化的时候可以进行优化的),所以经过类型转换这个self.v变成了模型的一部分,成为了模型中根据训练可以改动的参数了。

使用这个函数的目的也是想让某些变量在学习的过程中不断的修改其值以达到最优化。

出现这个函数的地方

在concat注意力机制中,权值V是不断学习的所以要是parameter类型,不直接使用一个torch.nn.Linear()可能是因为学习的效果不好。

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

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

以上这篇PyTorch里面的torch.nn.Parameter()详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python警察与小偷的实现之一客户端与服务端通信实例

本文实例讲述了Python警察与小偷的实现之一客户端与服务端通信,分享给大家供大家参考。具体方法分析如下: 该实例来源于ISCC 2012 破解关第四题 目的是通过逆向police,实...

对python中基于tcp协议的通信(数据传输)实例讲解

对python中基于tcp协议的通信(数据传输)实例讲解

阅读目录 tcp协议:流式协议(以数据流的形式通信传输)、安全协议(收发信息都需收到确认信息才能完成收发,是一种双向通道的通信) tcp协议在OSI七层协议中属于传输层,它上承用户层的数...

Python中unittest用法实例

本文实例讲述了Python中unittest的用法,分享给大家供大家参考。具体用法分析如下: 1. unittest module包含了编写运行unittest的功能,自定义的test...

Python 初始化多维数组代码

    Python中初始化一个5 x 3每项为0的数组,最好方法是:multilist = [[0 for col i...

Python日志模块logging基本用法分析

本文实例讲述了Python日志模块logging基本用法。分享给大家供大家参考,具体如下: 1. 基础用法 python提供了一个标准的日志接口,就是logging模块。日志级别有DEB...