Pytorch01-Tensor

1.初始化一个Tensor

Tensors可以用不同的方式去初始化。

  1. 可以直接从数据中创建张量。数据类型会自动推断。

1

  1. 可以从 NumPy 数组创建张量(反之亦然)。
    numpy‘np_array’和tensor‘x_np’在这里共享内存位置,因此更改一个的值将更改另一个。

2

  1. 从另一个tensor创建。除非明确重载,否则新tensor将保留参数tensor的属性(形状、数据类型)。
    下面x_one保留tensor的属性,x_rand重载tensor的属性。

3

2.随机值或恒定值:

shape 是tensor维度的元组。在下面的函数中,它决定了输出tensor的维度。
4

3.tensor的属性

tensor属性描述它们的形状、数据类型以及存储它们的设备。

5

有100多种张量运算,包括算术、线性代数、矩阵运算(如转置、索引和切片)。对于采样和审查,您可以在此处找到全面的描述。
这些操作中的每一个都可以在GPU上运行(通常比在CPU上更高的速度)。
CPU最多有16个内核。核心是进行实际计算的单元。每个核心按顺序处理任务(一次处理一个任务)。
GPU有1000个内核。GPU核心处理并行处理中的计算。任务在不同的核心之间进行划分和处理。这就是为什么在大多数情况下GPU比CPU更快的原因。GPU在处理大数据时比处理小数据时性能更好。GPU通常用于图形或神经网络的高强度计算(我们稍后将在神经网络单元中了解更多信息)。
PyTorch可以使用英伟达CUDA库来利用他们的GPU卡。
显示cpu和gpu之间工作负载的图表。

默认情况下,张量是在CPU上创建的。张量也可以计算为GPU;要做到这一点,您需要使用.to方法(在检查GPU可用性后)移动它们。请记住,在设备之间复制大张量在时间和内存方面可能会很昂贵!
6

  1. 类似于 numpy 的标准索引和切片:
    7
  2. 连接张量

可以使用torch.cat沿给定维度连接张量序列。torch.stack是一个相关的张量连接选项,它将一系列张量沿着一个新的维度连接起来。

8

  1. 算术运算

9

  1. 单元素张量
    如果您有一个单元素张量,例如,通过将张量的所有值聚合为一个值,您可以使用item()将其转换为Python数值:
    10

  2. in-place(就地)操作

将结果存储到操作数中的操作会就地调用。它们用_后缀表示。例如:x.copy_(y),x.t_()将更改x。
注意:就地操作可以节省一些内存,但在计算导数时可能会出现问题,因为它们会立即丢失历史记录。因此,不鼓励使用它们。

11

  1. 与 NumPy 的桥接

CPU 上的张量和 NumPy 阵列可以共享底层内存位置,改变其中一个就会改变另一个。

tensor到numpy数组
12
tensor的变化映射到numpy数组中

13
numpy数组到tensor
14
numpy数组中的变化会映射到tensor
15

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值