gpt4 book ai didi

python - 访问张量的元素

转载 作者:行者123 更新时间:2023-12-04 10:00:45 29 4
gpt4 key购买 nike

我有以下 TensorFlow 张量。

tensor1 = tf.constant(np.random.randint(0,255, (2,512,512,1)), dtype='int32') #All elements in range [0,255]
tensor2 = tf.constant(np.random.randint(0,255, (2,512,512,1)), dtype='int32') #All elements in range [0,255]

tensor3 = tf.keras.backend.flatten(tensor1)
tensor4 = tf.keras.backend.flatten(tensor2)

tensor5 = tf.constant(np.random.randint(0,255, (255,255)), dtype='int32') #All elements in range [0,255]


我希望使用存储在张量 3 和张量 4 中的值来创建一个元组并查询张量 5 中元组给定位置处的元素。例如,假设张量 3 中的第 0 个元素,即 tensor3[0]=5和张量4[0]=99。
所以元组变成 (5,99)。我希望在张量 5 中查找元素 (5,99) 的值。我希望以批处理方式对 Tensor3 和 Tensor4 中的所有元素执行此操作。那就是我不想遍历 (len(Tensor3)) 范围内的所有值。我做了以下事情来实现这一点。
tensor6 = tensor5[tensor3[0],tensor4[0]]

但是 tensor6 具有形状 (255,255),因为我希望获得形状张量 (len(tensor3),len(tensor3))。我想在 len(tensor3) 中所有可能的位置评估 tensor5。那是在 (0,0),...(1000,1000),....(2000,2000),... .我正在使用 TensorFlow 版本 1.12.0。我怎样才能做到这一点?

最佳答案

我已经设法在 Tensorflow v 1.12 中得到一些工作,但请告诉我它是否是预期的代码:

import tensorflow as tf
print(tf.__version__)
import numpy as np

tensor1 = tf.constant(np.random.randint(0,255, (2,512,512,1)), dtype='int32') #All elements in range [0,255]
tensor2 = tf.constant(np.random.randint(0,255, (2,512,512,1)), dtype='int32') #All elements in range [0,255]

tensor3 = tf.keras.backend.flatten(tensor1)
tensor4 = tf.keras.backend.flatten(tensor2)

tensor5 = tf.constant(np.random.randint(0,255, (255,255)), dtype='int32') #All elements in range [0,255]

elems = (tensor3, tensor4)
a = tf.map_fn(lambda x: tensor5[x[0], x[1]], elems, dtype=tf.int32)

print(tf.Session().run(a))

根据下面的评论,我想为 map_fn 添加一个解释。代码中使用。自 for没有eager_execution,不支持循环, map_fn是(有点)等价于 for循环。

一个 map_fn有以下参数: operation_performed , input_arguments , optional_dtype .引擎盖下发生的事情是 for循环沿着 input_arguments 中的值的长度运行(必须包含一个可迭代对象)然后对于每个获得的值 operation_performed被执行。如需进一步说明,请参阅 docs .

函数参数的名称是我解释它们的方式,正如我想理解的那样,官方文档中没有给出。 :)

关于python - 访问张量的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61835494/

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