如何分配张量的子集但仍保留原始张量?

时间:2021-01-15 17:59:47

标签: pytorch

我想将张量 exp_scaled_pcs 的主对角线归零,这样做我不希望原始张量改变,但我想将分配的输出接收到一个新的张量 {{1 }}。

这样做:

zero_sim_exp_scaled_pcs

我注意到我也改变了我的原始张量。我怎样才能保留它?

1 个答案:

答案 0 :(得分:0)

您可以使用 Tensor.index_put

x = torch.randn(10, 10)

d = min(x.shape)
diag_indices = [torch.arange(d)] * x.dim()
y = x.index_put(diag_indices, torch.zeros(d))