保留梯度值时张量的重复元素

时间:2020-06-01 10:05:04

标签: python pytorch

所以我有一个向量,该向量的大小为feature2

k

我要获取其第一个元素x = torch.FloatTensor([0.5, 0.3, 0.1, 0.7]) x = x + 2 并创建一个大小为x[0]的向量,并用值x [0]填充,以便该元素附带的渐变出现在新向量中

我尝试使用k-1并用torch.full填充它,但这并不能保留渐变。

使用pytorch 1.4

2 个答案:

答案 0 :(得分:1)

您还可以像这样使用.repeat(IMO清洁器和详细信息):

# type deduction is automatic
x = torch.tensor([0.5, 0.3, 0.1, 0.7])
x = x + 2
y = x[0].repeat(50)

将保留渐变(将复制渐变历史记录)。

答案 1 :(得分:0)

您可以简单地为此使用索引:

y = x[[0] * (k - 1)]  # take x[0] k-1 times