📌  相关文章
📜  如何正确访问 3D Pytorch 张量中的元素?

📅  最后修改于: 2022-05-13 01:54:25.462000             🧑  作者: Mango

如何正确访问 3D Pytorch 张量中的元素?

在本文中,我们将讨论如何在 Pytorch 中访问 3D 张量中的元素。 PyTorch 是一个优化的张量库,主要用于使用 GPU 和 CPU 的深度学习应用程序。它是广泛使用的机器学习库之一,其他还有 TensorFlow 和 Keras。 Python支持 torch 模块,因此首先我们将模块导入到工作区中。

语法

我们可以使用 torch.tensor()函数创建一个向量

句法:



示例 1:创建 3D 张量并显示的Python代码

Python3
# import torch module
import torch
  
# create an 3 D tensor with 8 elements each
a = torch.tensor([[[1, 2, 3, 4, 5, 6, 7, 8],
                   [10, 11, 12, 13, 14, 15, 16, 17]],
                  [[71, 72, 73, 74, 75, 76, 77, 78],
                   [81, 82, 83, 84, 85, 86, 87, 88]]])
  
# display actual  tensor
print(a)


Python3
# import torch module
import torch
  
# create an 3 D tensor with 8 elements each
a = torch.tensor([[[1, 2, 3, 4, 5, 6, 7, 8], 
                   [10, 11, 12, 13, 14, 15, 16, 17]], 
                  [[71, 72, 73, 74, 75, 76, 77, 78], 
                   [81, 82, 83, 84, 85, 86, 87, 88]]])
  
# display actual  tensor
print(a)
  
# access  all the tensors of 1  dimension 
# and get only 7 values in that dimension
print(a[0:1, 0:1, :7])


Python3
# import torch module
import torch
  
# create an 3 D tensor with 8 elements each
a = torch.tensor([[[1, 2, 3, 4, 5, 6, 7, 8],
                   [10, 11, 12, 13, 14, 15, 16, 17]], 
                  [[71, 72, 73, 74, 75, 76, 77, 78], 
                   [81, 82, 83, 84, 85, 86, 87, 88]]])
  
# display actual  tensor
print(a)
  
# access  all the tensors of all dimensions
# and get only 3 values in each dimension
print(a[0:1, 0:2, :3])


Python3
# import torch module
import torch
  
# create an 3 D tensor with 8 elements each
a = torch.tensor([[[1, 2, 3, 4, 5, 6, 7, 8], 
                   [10, 11, 12, 13, 14, 15, 16, 17]], 
                  [[71, 72, 73, 74, 75, 76, 77, 78], 
                   [81, 82, 83, 84, 85, 86, 87, 88]]])
  
# display actual  tensor
print(a)
  
# access 8 elements in 1 dimension on all tensors
print(a[0:2, 1, 0:8])


输出:

tensor([[[ 1,  2,  3,  4,  5,  6,  7,  8],
        [10, 11, 12, 13, 14, 15, 16, 17]],
       [[71, 72, 73, 74, 75, 76, 77, 78],
        [81, 82, 83, 84, 85, 86, 87, 88]]])

要访问 3-D 张量中的元素,可以使用切片。切片意味着使用“:”切片运算符选择张量中存在的元素。我们可以使用该特定元素的索引对元素进行切片。

注意:索引从 0 开始

句法:

在哪里,

  • tensor_position_start – 指定要开始迭代的张量
  • tensor_position_end – 指定要停止迭代的张量
  • tensor_dimension_start – 指定张量以在给定位置开始张量的迭代
  • tensor_dimension_stop – 指定张量以在给定位置停止张量的迭代
  • tensor_value_start – 指定张量的起始位置以迭代维度中给定的元素
  • tensor_value_stop – 指定张量的结束位置以迭代维度中给定的元素

下面给出了相同的各种示例。

示例 2: Python代码访问 1 维的所有张量并仅获取该维的 7 个值

蟒蛇3

# import torch module
import torch
  
# create an 3 D tensor with 8 elements each
a = torch.tensor([[[1, 2, 3, 4, 5, 6, 7, 8], 
                   [10, 11, 12, 13, 14, 15, 16, 17]], 
                  [[71, 72, 73, 74, 75, 76, 77, 78], 
                   [81, 82, 83, 84, 85, 86, 87, 88]]])
  
# display actual  tensor
print(a)
  
# access  all the tensors of 1  dimension 
# and get only 7 values in that dimension
print(a[0:1, 0:1, :7])

输出:

tensor([[[ 1,  2,  3,  4,  5,  6,  7,  8],
        [10, 11, 12, 13, 14, 15, 16, 17]],
       [[71, 72, 73, 74, 75, 76, 77, 78],
        [81, 82, 83, 84, 85, 86, 87, 88]]])
tensor([[[1, 2, 3, 4, 5, 6, 7]]])

示例3: Python代码访问所有维度的所有张量,每个维度只获取3个值

蟒蛇3

# import torch module
import torch
  
# create an 3 D tensor with 8 elements each
a = torch.tensor([[[1, 2, 3, 4, 5, 6, 7, 8],
                   [10, 11, 12, 13, 14, 15, 16, 17]], 
                  [[71, 72, 73, 74, 75, 76, 77, 78], 
                   [81, 82, 83, 84, 85, 86, 87, 88]]])
  
# display actual  tensor
print(a)
  
# access  all the tensors of all dimensions
# and get only 3 values in each dimension
print(a[0:1, 0:2, :3])

输出:

tensor([[[ 1,  2,  3,  4,  5,  6,  7,  8],
        [10, 11, 12, 13, 14, 15, 16, 17]],
       [[71, 72, 73, 74, 75, 76, 77, 78],
        [81, 82, 83, 84, 85, 86, 87, 88]]])
tensor([[[ 1,  2,  3],
        [10, 11, 12]]])

示例 4:在所有张量上访问 1 维中的 8 个元素

蟒蛇3

# import torch module
import torch
  
# create an 3 D tensor with 8 elements each
a = torch.tensor([[[1, 2, 3, 4, 5, 6, 7, 8], 
                   [10, 11, 12, 13, 14, 15, 16, 17]], 
                  [[71, 72, 73, 74, 75, 76, 77, 78], 
                   [81, 82, 83, 84, 85, 86, 87, 88]]])
  
# display actual  tensor
print(a)
  
# access 8 elements in 1 dimension on all tensors
print(a[0:2, 1, 0:8])

输出:

tensor([[[ 1,  2,  3,  4,  5,  6,  7,  8],
        [10, 11, 12, 13, 14, 15, 16, 17]],
       [[71, 72, 73, 74, 75, 76, 77, 78],
        [81, 82, 83, 84, 85, 86, 87, 88]]])
tensor([[10, 11, 12, 13, 14, 15, 16, 17],
       [81, 82, 83, 84, 85, 86, 87, 88]])