【发布时间】:2020-04-20 13:01:06
【问题描述】:
我正在使用形状为 (X,42) 的特定张量,而 X 可以在 50 到 70 之间的范围内。 我想填充我得到的每个张量,直到它达到 70 的大小。所以所有的张量都是(70,42)。 当我的起始大小是变量 X 时,无论如何要这样做吗?感谢您的帮助!
【问题讨论】:
-
你不会只垫 70-X 吗?
标签: pytorch padding tensor pad zero-padding
我正在使用形状为 (X,42) 的特定张量,而 X 可以在 50 到 70 之间的范围内。 我想填充我得到的每个张量,直到它达到 70 的大小。所以所有的张量都是(70,42)。 当我的起始大小是变量 X 时,无论如何要这样做吗?感谢您的帮助!
【问题讨论】:
标签: pytorch padding tensor pad zero-padding
您可以通过以下方式轻松做到这一点:
pad_x = torch.zeros((70, x.size(1)), device=x.device, dtype=x.dtype)
padx[:x.size(0), :] = x
这将为您提供x_pad 在x 末尾的零填充
【讨论】:
使用torch.nn.functional.pad - 垫张量。
import torch
import torch.nn.functional as F
source = torch.rand((3,42))
source.shape
>>> torch.Size([3, 42])
# here, pad = (padding_left, padding_right, padding_top, padding_bottom)
source_pad = F.pad(source, pad=(0, 0, 0, 70 - source.shape[0]))
source_pad.shape
>>> torch.Size([70, 42])
【讨论】: