PyTorch einsum函数

PyTorch einsum函数

Numpy的基本操作

Python中的Numpy是最广泛使用的科学计算库之一。 它具有高效的n维数组对象以及提供了许多用于数组操作的函数。 它是深度学习框架PyTorch的基础组件之一。

阅读更多:Numpy 教程

Numpy数组的创建和访问

使用numpy我们可以创建和操作n维数组。下面是一个创建numpy数组的示例

import numpy as np
arr = np.array([1,2,3,4,5])
print(arr)
Python

输出结果:

[1 2 3 4 5]
Python

可以通过访问数组索引来访问Numpy数组项

print(arr[0])
print(arr[1])
Python

输出结果:

1
2
Python

Numpy索引和切片

可以使用索引和切片访问Numpy数组的子集。 数组的第一个元素索引是0,最后一个索引是 -1。

访问数组指定的索引:

arr = np.array([1, 2, 3, 4, 5])
print(arr[2])
Python

输出结果:

3
Python

使用切片访问数组的子集:

print(arr[:4])
print(arr[1:4])
Python

输出结果:

[1 2 3 4]
[2 3 4]
Python

Numpy布尔索引

使用布尔数组索引,可以从数组中选择具有 True 值的满足特定条件的元素。 例如,获取数组中所有大于2的元素:

arr = np.array([1, 2, 3, 4, 5])
bool_array = arr > 2
print(bool_array)
print(arr[bool_array])
Python

输出结果:

[False False  True  True  True]
[3 4 5]
Python

Numpy数组的基本数学操作

使用numpy进行数组操作和运算非常方便。下面是使用numpy进行数学运算的示例代码

arr1 = np.array([1,2,3,4,5])
arr2 = np.array([6,7,8,9,10])

#加法
print('加法: ', arr1+arr2)
#减法
print('减法:',arr1-arr2)
#乘法
print('乘法:', arr1*arr2)
#除法
print('除法:', arr1/arr2)
#幂
print('幂运算:', arr1**2)
#对数运算
print('对数运算:', np.log(arr1))
Python

输出结果:

加法:  [ 7  9 11 13 15]
减法: [-5 -5 -5 -5 -5]
乘法: [ 6 14 24 36 50]
除法: [0.16666667 0.28571429 0.375      0.44444444 0.5       ]
幂运算: [ 1  4  9 16 25]
对数运算: [0.         0.69314718 1.09861229 1.38629436 1.60943791]
Python

PyTorch的基本使用

PyTorch是深度学习的框架之一。它是一个开源框架,支持动态图和静态图。它具有一个非常好的API,可以轻松地构建和训练神经网络。PyTorch不仅可以运行在CPU上,也可以运行在GPU上。

PyTorch张量的创建和访问

PyTorch中,张量类似于numpy中的数组。 它是一个多维数组,支持CPU和GPU上的张量操作。 下面是一个创建PyTorch张量对象的示例

import torch
a = torch.tensor([1,2,3,4,5])
print(a)
Python

输出结果:

tensor([1, 2, 3, 4, 5])
Python

可以通过索引访问PyTorch张量中的元素:

print(a[0])
print(a[1])
Python

输出结果:

tensor(1)
tensor(2)
Python

PyTorch张量的基本数学操作

在PyTorch中,可以使用类似于numpy的方式进行张量操作和运算。 下面是一些使用PyTorch进行数学运算的示例代码。

a = torch.tensor([1, 2, 3, 4, 5])
b = torch.tensor([6, 7, 8, 9, 10])

#加法
print('加法: ', a + b)
#减法
print('减法:', a - b)
#乘法
print('乘法:', a * b)
#除法
print('除法:', a / b)
#幂
print('幂运算:', a**2)
#对数运算
print('对数运算:', torch.log(a))
Python

输出结果:

加法:  tensor([ 7,  9, 11, 13, 15])
减法: tensor([-5, -5, -5, -5, -5])
乘法: tensor([ 6, 14, 24, 36, 50])
除法: tensor([0.1667, 0.2857, 0.3750, 0.4444, 0.5000])
幂运算: tensor([ 1,  4,  9, 16, 25])
对数运算: tensor([0.0000, 0.6931, 1.0986, 1.3863, 1.6094])
Python

PyTorch einsum

PyTorch einsum是一个强大的张量运算函数,类似于numpy中的einsum。 它提供了一种使用公式字符串表示张量乘法的方法。

下面是一个PyTorch einsum的示例代码:

import torch

#创建两个张量
a = torch.tensor([[1,2,3], [4,5,6], [7,8,9]])
b = torch.tensor([[1,2,3], [4,5,6], [7,8,9]])

#执行PyTorch einsum方法
c = torch.einsum("ij,jk->ik", a, b)

print(c)
Python

输出结果:

tensor([[ 30,  36,  42],
        [ 66,  81,  96],
        [102, 126, 150]])
Python

在示例代码中,PyTorch einsum 按照指定的公式字符串表示对输入张量进行乘法运算。 具体来说,公式字符串“ij,jk->ik”表示对a和b两个张量执行矩阵乘法。

总结

本文介绍了numpy的基本操作,如数组的创建、索引和切片、布尔索引和基本数学操作。接着,我们介绍了PyTorch的基本使用和张量的操作,包括张量的创建、索引、数学操作和PyTorch einsum功能。学会这些内容后将会对进行科学计算和深度学习有很大的帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册