网站建设服务公司有哪些,开个网站建设公司需要什么软件,网站建设属于什么领域,网站制作 网站建设怎么做的PyTorch是一个开源的机器学习库#xff0c;它提供了强大的张量计算#xff08;Tensor computation#xff09;能力和动态计算图#xff08;Dynamic computation graph#xff09;#xff0c;使得深度学习模型的构建和训练变得更加灵活和直观。在本文中#xff0c;我们将…PyTorch是一个开源的机器学习库它提供了强大的张量计算Tensor computation能力和动态计算图Dynamic computation graph使得深度学习模型的构建和训练变得更加灵活和直观。在本文中我们将通过一些基础的例子来学习PyTorch中的Tensor编程。 官网网站中文学习网站中文pytorch 教程学习网站
1. PyTorch中的Tensor
Tensor是PyTorch中的基本数据结构它可以看作是一个高维数组或矩阵。与NumPy的ndarray类似Tensor也支持多种数值运算。但是与ndarray不同的是Tensor可以在GPU上运行这使得计算速度大大提升。
1.1 创建Tensor
首先让我们来学习如何创建一个Tensor。PyTorch提供了多种方式来创建Tensor例如从Python列表或NumPy数组创建。
import torch
# 从Python列表创建Tensor
tensor_from_list torch.tensor([1, 2, 3, 4])
# 从NumPy数组创建Tensor
import numpy as np
numpy_array np.array([1, 2, 3, 4])
tensor_from_numpy torch.from_numpy(numpy_array)
# 创建一个全零的Tensor
zero_tensor torch.zeros(4)
# 创建一个全一的Tensor
one_tensor torch.ones(4)
# 创建一个形状为(2, 3)的未初始化的Tensor
uninitialized_tensor torch.empty(2, 3)
# 创建一个形状为(2, 3)且值在[0, 1)区间均匀分布的Tensor
uniform_tensor torch.rand(2, 3)
# 创建一个形状为(2, 3)且值服从标准正态分布的Tensor
normal_tensor torch.randn(2, 3)# 默认数据类型 32位浮点数
atorch.Tensor([[1,2,3],[4,5,6],[7,8,9]])
print(a)
print(a.type())# 指定数据类型64位浮点数
btorch.DoubleTensor([[1,2,3],[4,5,6],[7,8,9]])
print(b)
print(b.type())# 指定数据类型16位整型
ctorch.ShortTensor([[1,2,3],[4,5,6],[7,8,9]])
print(c)
print(c.type())# 指定数据类型32位整型
dtorch.IntTensor([[1,2,3],[4,5,6],[7,8,9]])
print(d)
print(d.type())# 指定数据类型64位整型
etorch.LongTensor([[1,2,3],[4,5,6],[7,8,9]])
print(e)
print(e.type())运行结果
tensor([[1., 2., 3.],[4., 5., 6.],[7., 8., 9.]])
torch.FloatTensor
tensor([[1., 2., 3.],[4., 5., 6.],[7., 8., 9.]], dtypetorch.float64)
torch.DoubleTensor
tensor([[1, 2, 3],[4, 5, 6],[7, 8, 9]], dtypetorch.int16)
torch.ShortTensor
tensor([[1, 2, 3],[4, 5, 6],[7, 8, 9]], dtypetorch.int32)
torch.IntTensor
tensor([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
torch.LongTensor
1.2 Tensor的基本属性
每个Tensor都有一些基本的属性如形状shape、数据类型dtype和设备device。
# 查看Tensor的形状
print(tensor_from_list.shape)
# 查看Tensor的数据类型
print(tensor_from_list.dtype)
# 查看Tensor所在的设备
print(tensor_from_list.device)1.3 Tensor的运算
PyTorch支持丰富的Tensor运算包括算术运算、矩阵运算、索引和切片等。
# 算术运算
a torch.tensor([1, 2, 3])
b torch.tensor([4, 5, 6])
add_result a b
sub_result a - b
mul_result a * b
div_result a / b
# 矩阵运算
mat1 torch.tensor([[1, 2], [3, 4]])
mat2 torch.tensor([[5, 6], [7, 8]])
matmul_result torch.matmul(mat1, mat2)
# 索引和切片
tensor torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
first_row tensor[0]
first_column tensor[:, 0]
last_element tensor[-1, -1]矩阵乘法运行结果
tensor([[19, 22],[43, 50]])二维矩阵乘法是一种基本的线性代数运算用于计算两个矩阵相乘的结果。矩阵乘法遵循特定的规则其中矩阵A和矩阵B的乘积矩阵C可以通过以下方式计算 C i j ∑ k 1 m A i k × B k j C_{ij} \sum_{k1}^{m} A_{ik} \times B_{kj} Cijk1∑mAik×Bkj 其中 C C C是结果矩阵 A A A和 B B B是乘积矩阵的输入矩阵 i i i和 j j j是矩阵C的行和列索引 k k k是矩阵A和矩阵B的列索引。 下面是一个简单的例子来说明二维矩阵乘法的计算过程 假设我们有两个矩阵 A [ 1 2 3 4 ] A \begin{bmatrix} 1 2 \\ 3 4 \\ \end{bmatrix} A[1324] 和 B [ 5 6 7 8 ] B \begin{bmatrix} 5 6 \\ 7 8 \\ \end{bmatrix} B[5768] 我们想要计算矩阵A和矩阵B的乘积矩阵C。 首先我们按照上述公式计算每个元素 C i j C_{ij} Cij C 11 A 11 × B 11 A 12 × B 21 1 × 5 2 × 7 5 14 19 C_{11} A_{11} \times B_{11} A_{12} \times B_{21} 1 \times 5 2 \times 7 5 14 19 C11A11×B11A12×B211×52×751419 C 12 A 11 × B 12 A 12 × B 22 1 × 6 2 × 8 6 16 22 C_{12} A_{11} \times B_{12} A_{12} \times B_{22} 1 \times 6 2 \times 8 6 16 22 C12A11×B12A12×B221×62×861622 C 21 A 21 × B 11 A 22 × B 21 3 × 5 4 × 7 15 28 43 C_{21} A_{21} \times B_{11} A_{22} \times B_{21} 3 \times 5 4 \times 7 15 28 43 C21A21×B11A22×B213×54×7152843 C 22 A 21 × B 12 A 22 × B 22 3 × 6 4 × 8 18 32 50 C_{22} A_{21} \times B_{12} A_{22} \times B_{22} 3 \times 6 4 \times 8 18 32 50 C22A21×B12A22×B223×64×8183250 因此矩阵A和矩阵B的乘积矩阵C为 C [ 19 22 43 50 ] C \begin{bmatrix} 19 22 \\ 43 50 \\ \end{bmatrix} C[19432250] 在这个例子中我们首先将矩阵A的第一行与矩阵B的第一列相乘然后将结果与矩阵B的第二列相乘最后将这两个结果相加得到矩阵C的第一行第一列的值。我们重复这个过程计算出矩阵C的所有元素。
# 拼接两个tensor
mat3 torch.cat([mat1,mat2], 0)
print(mat3)
print(mat3.dtype)2. 实战使用Tensor构建线性模型
现在让我们使用Tensor来构建一个简单的线性模型y wx b。我们将创建一些随机的数据作为输入和权重然后计算模型的输出。
# 创建随机的输入数据
x torch.randn(10)
# 创建随机的权重和偏置
w torch.randn(1)
b torch.randn(1)
# 计算模型的输出
y w * x b在本文中我们介绍了PyTorch中Tensor的基本概念和操作。通过这些基础知识和实战例子您应该能够开始使用PyTorch进行更复杂的深度学习模型构建和训练。记住实践是最好的学习方式所以不要害怕犯错大胆尝试吧