【问题标题】:Simple Adjacency matric creation with Pytorch Tensors使用 Pytorch 张量创建简单的邻接矩阵
【发布时间】:2021-07-28 14:41:14
【问题描述】:

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

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

假设a 被假定为torch.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.]])

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

【问题讨论】:

  • a 有什么形状?你能提供一个最小的例子吗?
  • 当然,我在问题中添加了额外信息。
  • create_adj(torch.rand(3,3)) 引发错误?
  • 但是如果你这样做,你怎么能在函数中调用它并修改它呢? create_adj(a=torch.rand(3,3)) 但还是一样的错误
  • 这只是一个例子,只需执行a = torch.rand(3,3); create_adj(a),您就会看到不同之处。

标签: pytorch adjacency-matrix


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多