常用torch方法!🍧
常用torch方法
1.cat
torch.cat
是 PyTorch 中的一个函数,用于沿指定的维度拼接(连接)多个张量。
具体而言,Tensor.cat
函数将多个张量沿着指定的维度连接在一起,形成一个新的张量。连接的维度称为“拼接维度”。函数的签名通常如下:
1 |
|
其中:
tensors
是一个张量列表,包含了要连接的张量。dim
是一个整数,表示沿着哪个维度进行连接。默认为 0。out
是一个可选的输出张量。
以下是一个示例:
1 |
|
结果:
1 |
|
在这个示例中,我们沿着第0维度拼接了两个二维张量,因此第一个张量的两行与第二个张量的两行按顺序连接在一起,形成了一个新的张量。
2.empty
torch.empty()
是一个用于创建一个未初始化的张量的函数,其具体的签名如下所示:
1 |
|
这个函数创建一个指定大小的张量,但是不会对张量进行初始化,即张量的元素值是未定义的,取决于内存的状态。
示例:
1 |
|
3.tanh
torch.tanh()
是 PyTorch 中的一个函数,用于计算张量中每个元素的双曲正切值。双曲正切函数是一种常见的非线性激活函数,通常用于神经网络中。
该函数的输出范围是 (−1,1)
,当输入接近正无穷时,输出接近于 1,当输入接近负无穷时,输出接近于 -1,当输入为 0 时,输出为 0。
1 |
|
输出:
1 |
|
4.bmm
torch.bmm
是 PyTorch 中用于批量矩阵乘法(Batch Matrix Multiplication)的函数。假设你有两个张量 A
和 B
,它们的形状分别为 (batch_size, n, m)
和 (batch_size, m, p)
。torch.bmm
将执行批量的矩阵乘法,即对于每个批次中的矩阵对,计算矩阵乘积。
输出的结果将是一个形状为 (batch_size, n, p)
的张量,其中每个批次的乘积将会被计算。
举例:
1 |
|
结果:
1 |
|
即让每个批次的张量相乘。
5.randn
torch.randn()
是 PyTorch 中的一个函数,用于生成具有标准正态分布(均值为0,标准差为1)的随机张量。其语法如下:
1 |
|
参数说明:
*size
:生成张量的形状,可以是一个整数或者元组。dtype
(可选):生成张量的数据类型,默认为torch.float32
。device
(可选):生成张量所在的设备,默认为None
,表示使用当前的默认设备。requires_grad
(可选):指定是否需要计算梯度,默认为False
。
示例:
1 |
|
输出:
1 |
|
6.randint
torch.randint()
是 PyTorch 中的一个函数,用于生成具有离散均匀分布的随机整数张量。其语法如下:
1 |
|
参数说明:
low
:生成随机整数的下界(闭区间)。high
:生成随机整数的上界(开区间)。size
:生成张量的形状,可以是一个整数或者元组。dtype
(可选):生成张量的数据类型,默认为torch.int64
。device
(可选):生成张量所在的设备,默认为None
,表示使用当前的默认设备。requires_grad
(可选):指定是否需要计算梯度,默认为False
。
示例:
1 |
|
结果:
1 |
|
7.manual_seed
torch.manual_seed(seed)
是 PyTorch 中的一个函数,用于设置随机数种子。随机数种子对于深度学习任务中的随机性操作是非常重要的,比如权重初始化、数据扰动等。
通过调用 torch.manual_seed(seed)
函数,可以在每次运行代码时生成相同的随机数序列,这样可以确保实验的可复现性。seed
参数是一个整数,它是随机数生成器的种子值。
示例用法:
1 |
|
在此示例中,通过设置随机数种子为 42,每次运行代码时,生成的随机数将是相同的。这有助于实验结果的可重现性。
8.exp
torch.exp
是 PyTorch 中的一个函数,用于计算输入张量的指数函数。该函数的输入可以是一个张量或者一个数值。对于张量输入,torch.exp
会对张量中的每个元素进行指数运算,即将每个元素取自然指数。对于数值输入,函数返回输入的指数值。
以下是 torch.exp
的基本使用方法:
1 |
|
tips:
当 x 为任意实数时,exp(x) 的值等于 e 的 x 次方。
9.arrange
torch.arange
是 PyTorch 中的一个函数,用于创建一个包含等间隔值的一维张量。它的语法如下:
1 |
|
torch.arange
是 PyTorch 中的一个函数,用于创建一个包含等间隔值的一维张量。它的语法如下:
1 |
|
参数说明:
start
:起始值(默认为 0)。end
:终止值(不包含在结果中)。step
:步长(默认为 1)。dtype
:结果张量的数据类型(默认为 None,即根据上下文推断)。layout
:结果张量的布局(默认为 torch.strided)。device
:结果张量所在的设备(默认为 None,即使用当前设备)。requires_grad
:结果张量是否需要梯度(默认为 False)。
torch.arange
返回一个从 start
到 end
(不包含 end
)的一维张量,步长为 step
。下面是一个示例:
1 |
|
10.triu
torch.triu
是 PyTorch 中的一个函数,用于生成一个张量,该张量包含给定输入张量的上三角部分(包括对角线)。在数学上,上三角矩阵是一个所有位于主对角线及其以上的元素都不为零的矩阵。
以下是 torch.triu
的中文解释:
- 函数名:
torch.triu
- 功能:返回输入张量的上三角部分。
- 参数:
input
:(张量)要处理的输入张量。diagonal
:(整数,可选)对角线的偏移量。默认值为0,表示主对角线;正值表示上面的对角线,负值表示下面的对角线。
- 返回值:一个张量,包含输入张量的上三角部分。
1 |
|
输出:
1 |
|