[英]I have indices in one tensor and values in another. How do I create a new tensor with this?
說我的指數是:
indices = [6, 9, 2],
[2, 2, 7],
[0, 8, 4]
我的價值觀是:
values = [0.35764236, 0.47342054, 0.61403205, 0.01948093, 0.21791322,
0.53855718, 0.93596267, 0.3948243 , 0.22061542, 0.09633507]
然后在 numpy 我可以簡單地做
new_array = values[indices]
要得到:
new_array = [0.93596267, 0.09633507, 0.61403205]
[0.61403205, 0.61403205, 0.3948243 ]
[0.35764236, 0.22061542, 0.21791322]
這似乎在 tensorflow 中不起作用 2. 我既不能使用循環來賦值,也不能轉換為 numpy,因為我在 model.call 中。 在 tensorflow 中是否有一種簡單的方法可以做到這一點。
有一些簡單的方法。
indices = [[6, 9, 2],
[2, 2, 7],
[0, 8, 4]]
values = [0.35764236, 0.47342054, 0.61403205, 0.01948093, 0.21791322,
0.53855718, 0.93596267, 0.3948243 , 0.22061542, 0.09633507]
print(tf.gather(values,indices))
Output:
tf.Tensor(
[[0.9359627 0.09633507 0.61403203]
[0.61403203 0.61403203 0.3948243 ]
[0.35764235 0.22061542 0.21791323]], shape=(3, 3), dtype=float32)
您還可以分配和切片。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.