## 02 PyTorch基础:Tensor操作


前言

  在深度学习的编程实践中,Tensor是一个不可或缺的基本数据结构。PyTorch作为一个强大的深度学习框架,提供了丰富的Tensor操作功能,使得数据的处理、模型的构建和训练变得更加高效和直观。本文将介绍Tensor的基本概念、创建方式、常见操作以及属性,以帮助初学者快速掌握PyTorch的核心组成部分。
在这里插入图片描述

什么是Tensor?

 在PyTorch中,Tensor可以被看作是一个多维数组,它是标量、向量、矩阵等数学对象的高维推广。Tensor支持高效的科学计算,并且是构建和训练神经网络的基石。与NumPy的ndarray类似,但Tensor具有在GPU上运行的能力,从而提供更快的计算速度。

创建Tensor

Tensor的创建非常灵活,可以通过多种方式进行:

  • 从数据直接创建

    import torch
    data = [[1, 2], [3, 4]]
    x_data = torch.tensor(data)
    
  • 从NumPy数组创建

    import numpy as np
    np_array = np.array(data)
    x_np = torch.from_numpy(np_array)
    
  • 通过现有Tensor创建

    x_ones = torch.ones_like(x_data) # 保持x_data的属性,创建全1的同形状Tensor
    x_rand = torch.rand_like(x_data, dtype=torch.float) # 重写dtype,创建同形状的随机Tensor
    
  • 使用指定的数据类型

    shape = (2,3,)
    rand_tensor = torch.rand(shape)
    ones_tensor = torch.ones(shape)
    zeros_tensor = torch.zeros(shape)
    

Tensor的操作

 Tensor支持多种操作,包括算术、线性代数、选择和切片等。这些操作可以在CPU或GPU上执行,且大多数Tensor操作都支持自动广播和复杂的优化。

  • 索引与切片

    tensor = torch.rand(3, 4)
    print(tensor[:, 1])  # 第二列
    print(tensor[1:, :])  # 第二行及之后的所有行
    
  • 改变形状

    y = tensor.view(12)
    z = tensor.view(-1, 6)  # -1 表示自动计算维度
    
  • 算术运算

    x = torch.tensor([1, 2])
    y = torch.tensor([3, 4])
    z = x + y
    

Tensor属性

Tensor的属性定义了其形状、数据类型和存储的设备(CPU或GPU)。

  • 形状tensor.shape —— 表示Tensor的维度。
  • 数据类型tensor.dtype —— 表示Tensor中元素的数据类型,如torch.float32
  • 设备tensor.device —— 表示Tensor存储在CPU还是GPU上。

总结

 本文介绍了Tensor在PyTorch中的基本使用方法,包括Tensor的创建、操作和属性。掌握这些基本知识将有助于深入学习和应用PyTorch进行更复杂的深度学习任务。随着对Tensor的深入理解,你将能更高效地处理数据和构建模型,从而在深度学习的旅程上更进一步。

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值