📜  Pytorch 中的一维张量

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

Pytorch 中的一维张量

在本文中,我们将讨论Python的一维张量。我们将研究以下概念:

  1. 创建一维张量
  2. 访问张量的元素
  3. 张量的大小
  4. 张量元素的数据类型
  5. 张量视图
  6. 浮点张量

介绍

Pytorch 用于处理张量。张量是多维数组。 PyTorch 加速了张量的科学计算,因为它具有各种内置功能。

向量:

向量是一个一维张量,它包含多种数据类型的元素。我们可以使用 PyTorch 创建向量。 Pytorch 在Python torch 模块中可用。所以我们需要导入它。

语法

import pytorch

一维张量的创建:

使用torch.tensor() 方法创建一维向量

句法:



torch.tensor([element1,element2,.,element n])

其中元素是张量的输入元素

示例:创建张量元素的Python程序

Python3
# importing torch module
import torch
  
# create one dimensional tensor with integer type elements
a = torch.tensor([10, 20, 30, 40, 50])
print(a)
  
# create one dimensional tensor with float type elements
b = torch.tensor([10.12, 20.56, 30.00, 40.3, 50.4])
print(b)


Python3
# importing torch module
import torch
  
# create one dimensional tensor with integer type elements
a = torch.tensor([10, 20, 30, 40, 50])
  
# get 0 and 1 index elements
print(a[0], a[1])
  
# get 4 th index  element
print(a[4])
  
# get 4 index element from last
print(a[-4])
  
# get 2 index element from last
print(a[-2])


Python3
# importing torch module
import torch
  
# create one dimensional tensor with integer type elements
a = torch.tensor([10, 20, 30, 40, 50])
  
# access elements from 1 to 4
print(a[1:4])
  
# access from 4
print(a[4:])
  
# access from last
print(a[-1:])


Python3
# importing torch module
import torch
  
# create one dimensional tensor integer type elements
a = torch.FloatTensor([10, 20, 30, 40, 50])
  
# size of tensor
print(a.size())
  
# create one dimensional tensor integer type elements
b = torch.FloatTensor([10, 20, 30, 40, 50, 45, 67, 43])
  
# size of tensor
print(b.size())


Python3
# importing torch module
import torch
  
# create one dimensional tensor with integer type elements
a = torch.tensor([10, 20, 30, 40, 50])
  
# get data type of vector a
print(a.dtype)
  
# create one dimensional tensor with float type elements
b = torch.tensor([10.12, 20.56, 30.00, 40.3, 50.4])
  
# get data type of vector b
print(b.dtype)


Python3
# importing torch module
import torch
  
# create one dimensional tensor 10 elements
a = torch.FloatTensor([10, 20, 30, 40, 50, 1, 2, 3, 4, 5])
  
# view tensor in 5 rows and 2 columns
print(a.view(5, 2))
  
# view tensor in 2 rows and 5 columns
print(a.view(2, 5))


Python3
# importing torch module
import torch
  
# create one dimensional Float Tensor  with 
# integer type elements
a = torch.FloatTensor([10, 20, 30, 40, 50])
  
# display data type
print(a.dtype)
  
# access elements from 0 to 3
print(a[0:3])
  
# access from 4
print(a[4:])


输出:

tensor([10, 20, 30, 40, 50])
tensor([10.1200, 20.5600, 30.0000, 40.3000, 50.4000])

访问张量元素:

我们可以使用元素的索引访问张量向量中的元素。

句法:

tensor_name([index])

其中索引是元素在张量中的位置:

  • 索引从 0 开始
  • 索引从最后一个 -1 开始

示例:使用索引访问元素的Python程序。



蟒蛇3

# importing torch module
import torch
  
# create one dimensional tensor with integer type elements
a = torch.tensor([10, 20, 30, 40, 50])
  
# get 0 and 1 index elements
print(a[0], a[1])
  
# get 4 th index  element
print(a[4])
  
# get 4 index element from last
print(a[-4])
  
# get 2 index element from last
print(a[-2])

输出:

tensor(10) tensor(20)
tensor(50)
tensor(20)
tensor(40)

我们可以使用“:”运算符一次访问 n 个元素,这称为切片。

句法:

tensor([start_index:end_index])

其中start_index是起始索引, end_index是结束索引。

示例:访问多个元素的Python程序。

蟒蛇3

# importing torch module
import torch
  
# create one dimensional tensor with integer type elements
a = torch.tensor([10, 20, 30, 40, 50])
  
# access elements from 1 to 4
print(a[1:4])
  
# access from 4
print(a[4:])
  
# access from last
print(a[-1:])

输出:

tensor([20, 30, 40])
tensor([50])
tensor([50])

张量大小:

这用于使用size() 方法获取张量中的长度(元素数)。

句法:

tensor.size()

示例:获取张量大小的Python程序。



蟒蛇3

# importing torch module
import torch
  
# create one dimensional tensor integer type elements
a = torch.FloatTensor([10, 20, 30, 40, 50])
  
# size of tensor
print(a.size())
  
# create one dimensional tensor integer type elements
b = torch.FloatTensor([10, 20, 30, 40, 50, 45, 67, 43])
  
# size of tensor
print(b.size())

输出:

torch.Size([5])
torch.Size([8])

张量元素的数据类型:

我们可以得到张量数据元素的数据类型。然后使用dtype()获取张量的数据类型

句法:

tensor_vector.dtype

其中tensor_vector是一维张量向量。

例子:

蟒蛇3

# importing torch module
import torch
  
# create one dimensional tensor with integer type elements
a = torch.tensor([10, 20, 30, 40, 50])
  
# get data type of vector a
print(a.dtype)
  
# create one dimensional tensor with float type elements
b = torch.tensor([10.12, 20.56, 30.00, 40.3, 50.4])
  
# get data type of vector b
print(b.dtype)

输出:

torch.int64
torch.float32

张量视图:

view()用于以二维格式(即行和列查看张量。我们必须指定要查看的行数和列数。

句法:



tensor.view(no_of_rows,no_of_columns)

在哪里,

  • 张量是输入的一维张量
  • no_of_rows是张量被查看的总行数
  • no_of_columns是张量被查看的总列数

示例: Python程序,用于创建具有 10 个元素的张量并使用 5 行和 2 列查看,反之亦然。

蟒蛇3

# importing torch module
import torch
  
# create one dimensional tensor 10 elements
a = torch.FloatTensor([10, 20, 30, 40, 50, 1, 2, 3, 4, 5])
  
# view tensor in 5 rows and 2 columns
print(a.view(5, 2))
  
# view tensor in 2 rows and 5 columns
print(a.view(2, 5))

输出:

tensor([[10., 20.],
       [30., 40.],
       [50.,  1.],
       [ 2.,  3.],
       [ 4.,  5.]])
tensor([[10., 20., 30., 40., 50.],
       [ 1.,  2.,  3.,  4.,  5.]])

浮点张量:

该张量用于定义浮点类型的元素。我们可以通过FloatTensor属性使用整数元素创建一个浮点张量。

语法

torch.FloatTensor([element1,element 2,.,element n])

示例:用于创建浮点张量和获取元素的Python程序。

蟒蛇3

# importing torch module
import torch
  
# create one dimensional Float Tensor  with 
# integer type elements
a = torch.FloatTensor([10, 20, 30, 40, 50])
  
# display data type
print(a.dtype)
  
# access elements from 0 to 3
print(a[0:3])
  
# access from 4
print(a[4:])

输出:

torch.float32
tensor([10., 20., 30.])
tensor([50.])