gpt4 book ai didi

python - 如何根据另一个 torch 张量中的索引更改 torch 张量中的某些值?

转载 作者:太空宇宙 更新时间:2023-11-03 19:40:43 29 4
gpt4 key购买 nike

这是我在将 convertinf DQN 转换为 Double DQN 来解决 cartpole 问题时遇到的问题。我快要弄清楚了。

tensor([0.1205, 0.1207, 0.1197, 0.1195, 0.1204, 0.1205, 0.1208, 0.1199, 0.1206,
0.1199, 0.1204, 0.1205, 0.1199, 0.1204, 0.1204, 0.1203, 0.1198, 0.1198,
0.1205, 0.1204, 0.1201, 0.1205, 0.1208, 0.1202, 0.1205, 0.1203, 0.1204,
0.1205, 0.1206, 0.1206, 0.1205, 0.1204, 0.1201, 0.1206, 0.1206, 0.1199,
0.1198, 0.1200, 0.1206, 0.1207, 0.1208, 0.1202, 0.1201, 0.1210, 0.1208,
0.1205, 0.1205, 0.1201, 0.1193, 0.1201, 0.1205, 0.1207, 0.1207, 0.1195,
0.1210, 0.1204, 0.1209, 0.1207, 0.1187, 0.1202, 0.1198, 0.1202])
tensor([ True, True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, False, True, True, True,
True, True, True, True, True, True, True, False, True, True,
True, True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True, True,
True, True, True, True])

正如你在这里看到的两个张量。first 有我想要的 q 值但,由于它是结束状态,一些值需要更改为零。第二个 张量显示其为零的位置。

bool 值为假的索引处是上张量需要为零的等效点。我不知道该怎么做。

最佳答案

您可以使用torch.where - torch.where(条件,x,y)

例如:

>>> x = tensor([0.2853, 0.5010, 0.9933, 0.5880, 0.3915, 0.0141, 0.7745,  
0.0588, 0.4939, 0.0849])
>>> condition = tensor([False, True, True, True, False, False, True,
False, False, False])

>>> # It's equivalent to `torch.where(condition, x, tensor(0.0))`
>>> x.where(condition, tensor(0.0))
tensor([0.0000, 0.5010, 0.9933, 0.5880, 0.0000, 0.0000, 0.7745,
0.0000, 0.0000,0.0000])

关于python - 如何根据另一个 torch 张量中的索引更改 torch 张量中的某些值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60442272/

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