3

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

4

2 回答 2

2

使用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])
于 2020-01-01T17:56:09.317 回答
0

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

pad_x = torch.zeros((70, x.size(1)), device=x.device, dtype=x.dtype)
padx[:x.size(0), :] = x

这将x_pad在结束时为您提供零填充x

于 2020-01-01T17:35:45.373 回答