Deep-Learning-with-PyTorch

Deep-Learning-with-PyTorch-3.6 张

2020-10-06  本文已影响0人  追求科技的足球

3.6 张量API

至此,我们知道了什么是PyTorch张量以及它们是如何在幕后工作的。在总结之前,值得一看的是PyTorch提供的张量操作。 将它们全部列出在这里几乎没有用。 相反,我们将大致了解该API,并在http://pytorch.org/docs的在线文档中找到有关在何处查找内容的一些指导。

首先,在torch模块中可以进行张量及其之间的绝大多数操作,这些操作也可以称为张量对象的方法。 例如,我们先前遇到的transpose函数可以从torch模块中使用

# In[71]:
a = torch.ones(3, 2)
a_t = torch.transpose(a, 0, 1)

a.shape, a_t.shape

# Out[71]:
(torch.Size([3, 2]), torch.Size([2, 3]))

或作为张量的方法:

# In[72]:
a = torch.ones(3, 2)
a_t = a.transpose(0, 1)

a.shape, a_t.shape

# Out[72]:
(torch.Size([3, 2]), torch.Size([2, 3]))

两种形式之间没有区别; 它们可以互换使用。

我们之前提到过在线文档(http://pytorch.org/docs)。 它们是详尽且井井有条的,将张量操作分为几组:

1、创建操作-用于构建张量的函数,例如张量和from_numpy

2、索引,切片,连接,改变操作-更改张量的形状,步幅或内容的功能,例如转置(transpose)。

3、数学操作-用于通过计算处理张量的内容的函数。
(1)逐点运算-通过将函数分别应用于每个元素(例如abs和cos)来获得新张量的函数

(2)约简运算-通过遍历张量(例如均值(mean),标准差(std)和范数(norm))来计算聚合值的函数

(3)比较运算-用于评估张量上的数字谓词的函数,例如equal和max

(4)频谱操作-用于转换频域并在频域中运行的功能,例如stft和hamming_window

(5)其他运算-在向量上运算的特殊函数,例如叉(cross)或矩阵,例如迹线(trace)

(6)BLAS和LAPACK运算-遵循基本线性代数子程序(BLAS)规范的函数,用于标量,矢量-矢量,矩阵-矢量和矩阵-矩阵运算

4、随机抽样-通过从概率分布(如randn和noraml)中随机抽取来生成值的函数

5、序列化-保存和加载张量的功能,例如加载(load)和保存(save)

6、并行性-用于控制并行CPU执行的线程数的函数,例如set_num_threads

花一些时间来使用常规张量API。 本章提供了启用这种交互式探索的所有先决条件。 从下一章开始,随着本书的进行,我们还将遇到一些张量运算。

上一篇 下一篇

猜你喜欢

热点阅读