从0开始学Pytorch——Tensor基础

文章目录

  • 一、张量是什么
  • 二、张量的相关知识
    • 1.空张量
      • (1)一维空张量
      • (2)二维空张量
      • (3)三维空张量
    • 2.初始化张量
    • (1)使用给定数据来创建
    • (2)使用随机值或常量值来创建
    • 3.张量的算术运算
      • (1)加法
      • (2)减法
      • (3)乘法
      • (4)除法
    • 4.张量的属性
      • (1)形状(shape)
      • (2)数据类型(dtype)
      • (3)存储的设备(device)
    • 5.张量的切片
    • 6.张量的重塑
  • 总结

一、张量是什么

张量(Tensor)是一种特殊的数据结构,与数组和矩阵十分相似。

在这里插入图片描述

二、张量的相关知识

1.空张量

空张量(Empty Tensor)是指没有存储数据的张量,也可以理解为只有形状(shape)属性的张量。

(1)一维空张量

eg:
import torch  
x1 = torch.empty(2)
print(x1)

输出结果为:
在这里插入图片描述

(2)二维空张量

eg:
import torch 
x2 = torch.empty(2,3)
print(x2)

输出结果为:
在这里插入图片描述

(3)三维空张量

eg:
import torch 
x3 = torch.empty(2,2,3)
print(x3)

输出结果为:
在这里插入图片描述

2.初始化张量

(1)使用给定数据来创建

eg:
import torch     
x3 = torch.empty(2,2,3)
print(x3)

输出结果为:
在这里插入图片描述

(2)使用随机值或常量值来创建

eg:
# 随机值
x = torch.rand(2,3)
# 常量0
y = torch.zeros(2,3)
# 常量1
z = torch.ones(2,3)
print(x)
print(y)
print(z)

输出结果为:
在这里插入图片描述

3.张量的算术运算

(1)加法

eg:
import torch                                           
x = torch.rand(2,2)
y = torch.rand(2,2)
print(x)
print(y)
z1 = x + y
z2 = torch.add(x,y)
# 加了_的函数会执行就地操作,因此会修改它所应用的变量
y.add_(x)
print(z1)
print(z2)
print(y)

输出结果为:
在这里插入图片描述
注:
就地操作:将结果存储到操作数中的操作称为就地操作。用 _ 后缀表示。例如:x.t_() ,将更改 x 。
就地操作优点:可以节省一些内存。
就地操作缺点:在计算导数时可能会出现问题,会立即丢失历史记录。

(2)减法

eg:
import torch                        
x = torch.rand(2,2)
y = torch.rand(2,2)
print(x)
print(y)
z1 = x - y
z2 = torch.sub(x,y)
y.sub_(x)
print(z1)
print(z2)
print(y)

输出结果为:
在这里插入图片描述

(3)乘法

eg:
import torch  
x = torch.rand(2,2)
y = torch.rand(2,2)
print(x)
print(y)
z1 = x * y
z2 = torch.mul(x,y)
y.mul_(x)
print(z1)
print(z2)
print(y)

输出结果为:
在这里插入图片描述

(4)除法

eg:
import torch     
x = torch.rand(2,2)
y = torch.rand(2,2)
print(x)
print(y)
z1 = x / y
z2 = torch.div(x,y)
y.div_(x)              
print(z1)
print(z2)
print(y)

输出结果为:
在这里插入图片描述

4.张量的属性

(1)形状(shape)

格式:张量名.shape()

eg:
import torch           
x = torch.rand(2,2,dtype = torch.float)   
print(x.size())

输出结果为:
在这里插入图片描述

(2)数据类型(dtype)

格式:张量名.dtype

eg:
import torch           
x = torch.rand(2,2,dtype = torch.float)
print(x.dtype)

输出结果为:
在这里插入图片描述

(3)存储的设备(device)

格式:张量名.device

eg:
import torch                     
x = torch.rand(2,2,dtype = torch.float)        
print(x.device) 

输出结果为:
在这里插入图片描述

5.张量的切片

eg:
import torch                                                                                    
x = torch.rand(5,3)
print(x)
# 输出张量的第三行
print(x[2,:])
# 输出张量的第二列
print(x[:,1])
# 的第四行第三个单元素张量
print(x[3,2])
# 输出单元素张量的实际值
print(x[3,2].item())

输出结果为:
在这里插入图片描述

6.张量的重塑

通过view()函数来进行张量的重塑。-1表示不确定的数,如果已确定重塑的行数或列数中的一个,不确定重塑的行数或列数的另一个,那么不确定的地方就写-1。
注:重塑的行数和列数不能都写为-1。

eg:
import torch                                  
x = torch.rand(4,4)
print(x)
# 重塑为一维
y = x.view(16)
print(y)
# 重塑为二维
y = x.view(8,-1) 
print(y.size())
print(y)
y1 = x.view(-1,8)
print(y1.size())
print(y1)

输出结果为:
在这里插入图片描述

总结

以上就是今天要讲的内容,本文简要介绍了张量以及张量的相关知识。

相关推荐

  1. 0开始前端第一天

    2024-04-22 19:08:01       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 19:08:01       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 19:08:01       97 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 19:08:01       78 阅读
  4. Python语言-面向对象

    2024-04-22 19:08:01       88 阅读

热门阅读

  1. Scala详解(4)

    2024-04-22 19:08:01       28 阅读
  2. Scala 第二篇 算子篇

    2024-04-22 19:08:01       31 阅读
  3. Scala 复习笔记

    2024-04-22 19:08:01       29 阅读
  4. 跨境电商爬数据

    2024-04-22 19:08:01       33 阅读
  5. Scala详解(6)

    2024-04-22 19:08:01       27 阅读
  6. Rust常用特型之Sized特型

    2024-04-22 19:08:01       37 阅读
  7. BusyBox是何方神圣?

    2024-04-22 19:08:01       31 阅读
  8. Linux根据进程ID查看进程的文件路径

    2024-04-22 19:08:01       38 阅读
  9. 深度学习中图像标注框的作用是什么

    2024-04-22 19:08:01       38 阅读
  10. C# 工具类

    2024-04-22 19:08:01       31 阅读