【发布时间】: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),您就会看到不同之处。