深度学习中的变量类型——torch.Tensor和torch.Variable

一、torch.Tensor

torch.Tensor是PyTorch中表示张量的基础数据类型,也是PyTorch中最常用的数据类型之一。它是一个多维数组,而且可以在CPU或GPU内存中存储数据。

定义一个Tensor可以通过torch.Tensor函数或者torch.tensor函数,参数可以是list、tuple、ndarray或者标量。

import torch
a = torch.Tensor([1,2,3])
b = torch.tensor([[1, 2], [3, 4]])
c = torch.tensor(3)

Tensor的属性包括shape、dtype、device、layout等,可以通过这些属性对tensor进行操作。

print(a.shape)   #(3,)
print(b.dtype)   #torch.int64
print(c.device)  #cpu
a = a.to('cuda') #将a放到GPU上

二、torch.autograd.Variable与torch.Tensor的关系

在PyTorch 0.4版本之前,Variable是PyTorch中的一个重要组成部分,主要是为了方便定义需要求导的计算图,通过Variable记录Tensor的历史版本,从而支持反向传播计算梯度。

而从PyTorch 0.4版本开始,Variable被整合到了Tensor中,新版本中,用户可以使用requires_grad参数在创建Tensor时决定是否需要求导。

a = torch.tensor([1,2,3], requires_grad=True)
b = torch.tensor([4,5,6], requires_grad=True)

c = a + b
d = c.mean()

d.backward()
print(a.grad)
print(b.grad)

三、torch.nn.Parameter

torch.nn.Parameter是一种特殊的Tensor,它被设置为一个模型的可学习参数。与普通的Tensor不同,在计算图的生成中它是存在于nn.Module中的,并且默认有requires_grad=True属性。

创建一个nn.Parameter时,需要指定形状。通常在模型定义中调用这个函数创建需要学习的参数,例如权重和偏差。

import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.weight = nn.Parameter(torch.randn(3, 5))
        self.bias = nn.Parameter(torch.zeros(3))

    def forward(self, x):
        return torch.mm(x, self.weight) + self.bias

net = Net()
print(net)

四、总结

本文主要介绍了在PyTorch中三种重要的变量类型:torch.Tensor、torch.autograd.Variable和torch.nn.Parameter。Tensor是PyTorch中的基础数值类型,可以在CPU或GPU上存储数据;Variable是Tensor的历史版本,在0.4版本之后被整合到Tensor中,需要使用requires_grad属性来决定是否需要求导;Parameter是一种特殊的Tensor,是nn.Module中的可学习参数,通常在模型定义中被使用。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/312814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-06 15:17
下一篇 2025-01-06 15:17

相关推荐

  • int类型变量的细节与注意事项

    本文将从 int 类型变量的定义、声明、初始化、范围、运算和类型转换等方面,对 int 类型变量进行详细阐述和讲解,帮助读者更好地掌握和应用 int 变量。 一、定义与声明 int…

    编程 2025-04-29
  • Python3定义函数参数类型

    Python是一门动态类型语言,不需要在定义变量时显示的指定变量类型,但是Python3中提供了函数参数类型的声明功能,在函数定义时明确定义参数类型。在函数的形参后面加上冒号(:)…

    编程 2025-04-29
  • Python input参数变量用法介绍

    本文将从多个方面对Python input括号里参数变量进行阐述与详解,并提供相应的代码示例。 一、基本介绍 Python input()函数用于获取用户输入。当程序运行到inpu…

    编程 2025-04-29
  • Python基本数字类型

    本文将介绍Python中基本数字类型,包括整型、布尔型、浮点型、复数型,并提供相应的代码示例以便读者更好的理解。 一、整型 整型即整数类型,Python中的整型没有大小限制,所以可…

    编程 2025-04-29
  • Python匿名变量的使用方法

    Python中的匿名变量是指使用“_”来代替变量名的特殊变量。这篇文章将从多个方面介绍匿名变量的使用方法。 一、作为占位符 匿名变量通常用作占位符,用于代替一个不需要使用的变量。例…

    编程 2025-04-29
  • Python中的Bool类型判断

    本篇文章旨在讲解Python中的Bool类型判断。在Python中,Bool类型是经常使用的一种类型,因此掌握其用法非常重要。 一、True和False 在Python中,True…

    编程 2025-04-29
  • Python变量在内存中的存储

    该文章将从多个方面对Python变量在内存中的存储进行详细阐述,包括变量的声明和赋值、变量的引用和指向、内存地址的变化、内存管理机制等。 一、声明和赋值 在Python中,变量声明…

    编程 2025-04-29
  • 深度查询宴会的文化起源

    深度查询宴会,是指通过对一种文化或主题的深度挖掘和探究,为参与者提供一次全方位的、深度体验式的文化品尝和交流活动。本文将从多个方面探讨深度查询宴会的文化起源。 一、宴会文化的起源 …

    编程 2025-04-29
  • Python函数类型有哪些

    本文将从以下几个方面详细阐述Python函数类型。 一、内置函数 Python的内置函数是指在Python编程语言中提供的可以直接使用的函数,不需要通过导入模块等方式引入。 部分常…

    编程 2025-04-29
  • Python中的整数类型int类总览

    本文将从多个方面,对Python中的整数类型int类进行全面介绍和阐述。 一、数据类型及基本操作 在Python中,整数类型的数据类型为int。在Python3.x中,整数类型的范…

    编程 2025-04-28

发表回复

登录后才能评论