本人github
torch.zeros_like()
是 PyTorch 中的一个函数,它返回一个与给定输入张量形状和数据类型相同,但所有元素都被设置为零的新张量。
这个函数的基本语法是:
torch.zeros_like(input, dtype=None, layout=None, device=None, requires_grad=False)
参数:
input
(Tensor) - 输入张量,新张量的大小将与此张量相同。dtype
(torch.dtype, 可选) - 所需输出张量的所需数据类型。 默认值:如果为None,则将使用输入张量的数据类型。layout
(torch.layout, 可选) - 所需输出张量的所需布局。 默认值:如果为None,则将使用输入张量的布局。device
(torch.device, 可选) - 所需输出张量的所需设备。 默认值:如果为None,则将使用输入张量的设备。requires_grad
(bool, 可选) - 如果autograd应记录对返回张量的操作,则为True。 默认值:False。
例如,如果你有一个形状为 (3, 4) 的张量 x
,并且你调用 torch.zeros_like(x)
,你将得到一个形状为 (3, 4)、所有元素都是零的新张量。
示例代码:
import torch
# 假设 x 是一个形状为 (3, 4) 的张量
x = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
# 使用 torch.zeros_like 创建一个形状为 (3, 4) 的零张量
zero_tensor = torch.zeros_like(x)
# 输出 zero_tensor
print(zero_tensor)
这将输出:
tensor([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
这个函数在你想创建一个与现有张量具有相同属性(例如形状、数据类型和设备)但内容为零的新张量时非常有用。