gpt4 book ai didi

python - 测量 `UnboundLocalError`的时间时出现 `torch.where`错误

转载 作者:行者123 更新时间:2023-12-03 09:05:14 27 4
gpt4 key购买 nike

在Jupyter Notebook中尝试%timeit时出现错误;没有它,工作正常。

UnboundLocalError: local variable 'a' referenced before assignment



import torch
a = torch.rand(10)
b = torch.rand(10)
%timeit a = torch.where(b > 0.5, torch.tensor(0.), a)

这是怎么回事

最佳答案

起初,我认为这是因为%timeit仅评估函数运行的时间。但是感谢@Shiva告诉我它可以计算其他事物的执行时间。我检查了文档here,发现这是真的。

因此,根据此answer%timeit存在重新分配问题,因为重新分配给a会使函数具有a局部变量,从而隐藏了全局变量。换句话说,您可以使用a以外的任何其他变量将其分配给torch.where:

#this works
%timeit c = torch.where(b > 0.5, torch.tensor(0.), a) #c instead of a

# this works
%timeit torch.where(b > 0.5, torch.tensor(0.), a)

# this doesn't work
%timeit a = torch.where(b > 0.5, torch.tensor(0.), a)

关于python - 测量 `UnboundLocalError`的时间时出现 `torch.where`错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62004680/

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