如何在 PyTorch 中标准化张量?

PyTorch 中的张量可以使用torch.nn.functional模块中normalize()提供的函数进行归一化。这是一个非线性激活函数。

  • 它在指定维度上对给定张量执行Lp 归一化。

  • 它返回原始张量元素的归一化值的张量。

  • 一维张量可以在 0 维上归一化,而二维张量可以在 0 维和 1 维上归一化,即按列或按行。

  • n 维张量可以在维度 (0,1, 2,..., n-1) 上归一化。

语法

torch.nn.functional.normalize(input, p=2.0, dim = 1)

参数

  • 输入– 输入张量

  • p – 规范公式中的幂(指数)值

  • dim – 元素标准化的维度。

脚步

我们可以使用以下步骤来归一化张量 -

  • 导入火炬库。确保您已经安装了它。

import torch

from torch.nn.functional import normalize

  • 创建一个张量并打印它。

t = torch.tensor([[1.,2.,3.],[4.,5.,6.]])

print("Tensor:", t)

  • 使用不同的 p 值和不同的维度对张量进行归一化。上面定义的张量是一个二维张量,所以我们可以在二维上对其进行归一化。

t1 = normalize(t, p=1.0, dim = 1)

t2 = normalize(t, p=2.0, dim = 0)

  • 打印上面计算的归一化张量。

print("Normalized tensor:\n", t1)

print("Normalized tensor:\n", t2)

示例 1

# import torch library

import torch

from torch.nn.functional import normalize

# define a torch tensor

t = torch.tensor([1., 2., 3., -2., -5.])

# print the above tensor

print("Tensor:\n", t)

# normalize the tensor

t1 = normalize(t, p=1.0, dim = 0)

t2 = normalize(t, p=2.0, dim = 0)

# print normalized tensor

print("Normalized tensor with p=1:\n", t1)

print("Normalized tensor with p=2:\n", t2)

输出结果
Tensor:

 tensor([ 1., 2., 3., -2., -5.])

Normalized tensor with p=1:

 tensor([ 0.0769, 0.1538, 0.2308, -0.1538, -0.3846])

Normalized tensor with p=2:

 tensor([ 0.1525, 0.3050, 0.4575, -0.3050, -0.7625])

示例 2

# import torch library

import torch

from torch.nn.functional import normalize

# define a 2D tensor

t = torch.tensor([[1.,2.,3.],[4.,5.,6.]])

# print the above tensor

print("Tensor:\n", t)

# normalize the tensor

t0 = normalize(t, p=2.0)

# print the normalized tensor

print("Normalized tensor:\n", t0)

# normalize the tensor in dim 0 or column-wise

tc = normalize(t, p=2.0, dim = 0)

# print the normalized tensor

print("Column-wise Normalized tensor:\n", tc)

# normalize the tensor in dim 1 or row-wise

tr = normalize(t, p=2.0, dim = 1)

# print the normalized tensor

print("Row-wise Normalized tensor:\n", tr)

输出结果
Tensor:

 tensor([[1., 2., 3.],

   [4., 5., 6.]])

Normalized tensor:

 tensor([[0.2673, 0.5345, 0.8018],

   [0.4558, 0.5698, 0.6838]])

Column-wise Normalized tensor:

 tensor([[0.2425, 0.3714, 0.4472],

   [0.9701, 0.9285, 0.8944]])

Row-wise Normalized tensor:

 tensor([[0.2673, 0.5345, 0.8018],

   [0.4558, 0.5698, 0.6838]])

以上是 如何在 PyTorch 中标准化张量? 的全部内容, 来源链接: utcz.com/z/345733.html

回到顶部