gpt4 book ai didi

python - 具有负功率的 PyTorch 度数会产生错误吗?

转载 作者:行者123 更新时间:2023-12-05 06:56:32 30 4
gpt4 key购买 nike

我收到一个令人困惑的错误,我不确定为什么会发生。这是我收到的错误:

torch.Size([24047])
tensor([1315, 1318, 1472, 1454, 1318, 1337, 1453, 1454, 1317, 1310])

Traceback (most recent call last):
...
deg_inv = deg.pow(-1)
RuntimeError: Integers to negative integer powers are not allowed.

这是部分代码:

from torch_scatter import scatter_add
from torch_geometric.utils import add_remaining_self_loops, add_self_loops, remove_self_loops
...
if edge_weight ==None:
edge_weight = torch.ones((edge_index.size(1), ), dtype=dtype,
device=edge_index.device)
fill_value = 1
edge_index, edge_weight = add_self_loops(
edge_index, edge_weight, fill_value, num_nodes)
row, col = edge_index
deg = scatter_add(edge_weight, row, dim=0, dim_size=num_nodes)

print(deg.size())
print(deg[:10])

deg_inv = deg.pow(-1)

我还没有在网上找到与此相关的任何内容。我不确定为什么会发生这种情况?

最佳答案

您的 deg 张量存储为 int 类型。相当合理的是,如果你在整数类型的张量之间进行二元运算,假设你仍然应该得到整数输出。但是,对于 pow,如果输入是 2 并且幂是 -1,即使两个操作数都是整数类型,输出 code>0.5 不是。我想 pytorch 只是禁止这样做。

要解决它,要么先将输入 deg 变为 float :

deg = deg.float()
deg_inv = deg.pow(-1)

或者在pow中传递-1.:

deg_inv = deg.pow(-1.)

关于python - 具有负功率的 PyTorch 度数会产生错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65103014/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com