张量 Tensor 存储

  • 存储区是由数字数据组成的一维数组,即包含给定类型的数字的连续内存块
  • 实例,使用偏移量每个维度的步长对该存储区进行索引
  • 多个张量可以索引同一存储区,但是它们索引到的数据可以不同
    • 例如,索引同一个存储区: 4 1 5 3 1 2
    • 可以得到 2 个不同的张量
tensor = ([[4 1 5], 
          [3 1 2]])
tensor = ([[4 1],
           [5 3],
           [1 2]])

image

  • 张量只是个索引,底层的存储区本质上是一个连续数组,其布局始终是一维的
  • 改变一个存储区的值,会导致与其关联的张量的内容发生变化
  points = torch.tensor([[4.0, 1.0], [5.0, 3.0], [2.0, 1.0]])
  points_storage = points.storage()
  points_storage[0] = 2.0
  points

  # Out:
  tensor([[2., 1.],
          [5., 3.],
          [2., 1.]])

张量元数据:大小、偏移量和步长

  • 大小(形状)
    • 一个元组,表示张量在每个维度上有多少个元素
  • 偏移量
    • 是指存储区中某元素相对张量中的第 1 个元素的索引
  • 步长
    • 是指存储区中为了获得下一个元素需要跳过的元素数量
      image
posted on 2026-01-06 09:39  中年二班  阅读(3)  评论(0)    收藏  举报