我想让张量exp_scaled_pcs
的主对角线归零,这样做我不想改变原来的张量,但我想把赋值的输出接收到一个新的张量zero_sim_exp_scaled_pcs
。
通过:
zero_sim_exp_scaled_pcs = torch.diagonal(exp_scaled_pcs, 0).zero_()
我注意到我也改变了原来的张量。我怎样才能保留它呢?
您可以使用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))