填充张量直到达到所需的大小

sec*_*ret 5 padding pad pytorch tensor zero-padding

我正在使用形状为 (X,42) 的某些张量,而 X 可以在 50 到 70 之间的范围内。我想填充我得到的每个张量,直到它达到 70 的大小。所以所有张量都将是 ( 70,42)。当我的起始大小是变量 X 时,有办法做到这一点吗?谢谢您的帮助!

Dis*_*ani 8

使用torch.nn.function.pad - Pad 张量。

import torch
import torch.nn.functional as F

source = torch.rand((3,42))
source.shape
>>> torch.Size([3, 42])
Run Code Online (Sandbox Code Playgroud)
# here, pad = (padding_left, padding_right, padding_top, padding_bottom)
source_pad = F.pad(source, pad=(0, 0, 0, 70 - source.shape[0]))
Run Code Online (Sandbox Code Playgroud)
source_pad.shape
>>> torch.Size([70, 42])
Run Code Online (Sandbox Code Playgroud)


Sha*_*hai 1

您可以通过以下方式轻松做到这一点:

pad_x = torch.zeros((70, x.size(1)), device=x.device, dtype=x.dtype)
pad_x[:x.size(0), :] = x
Run Code Online (Sandbox Code Playgroud)

这将为您提供x_pad末尾的零填充x