首页 > 解决方案 > 使用 Pytorch 张量创建简单的邻接矩阵

问题描述

我试图编写一个简单的函数来通过以下方式创建一个随机邻接矩阵:

def create_adj(a):
    a[a>0.5] = 1
    a[a<=0.5] = 0
    return a

假设这atorch.Tensor()作为输入,但我收到以下错误:

TypeError: 'int' object does not support item assignment

如果我单独做事(即不在函数内部),我只需这样做:

>> a = torch.rand(3,3)
>> a[a>0.5] = 1
>> a[a<=0.5] = 0

>> a
 tensor([[1., 1., 1.],
         [0., 0., 0.],
         [1., 0., 0.]])

但我不明白我在函数中做错了什么。

标签: pytorchadjacency-matrix

解决方案


我会假设你没有传递正确的变量你的create_adj函数。只要a是 a torch.tensor,那么它应该可以工作。

或者,您可以直接使用掩码作为结果:

def create_adj(x): 
  return (a > .5).float()

推荐阅读