gpt4 book ai didi

python - Tensorflow张量值图

转载 作者:行者123 更新时间:2023-11-30 08:34:53 24 4
gpt4 key购买 nike

我的问题是如何用字典映射张量?例如这样:

dict = {1:3, 2:4}
origin_tensor = tf.Variable([1,2,1], tf.int32)

字典很大。现在,如何根据 dict 创建映射选项以将张量映射到 tf.Variable([3,4,3], tf.int32) ?

此外,映射时无法使用.eval(),您可以认为origin_tensor是来自批量读取器的标签张量。

最佳答案

在 Tensorflow 2.0 中(未测试与早期版本的兼容性)使用 tf.lookup:

dictionary = {1:3, 2:4}
origin_tensor = tf.Variable([1,2,1], dtype=tf.int64)

注意:dict 在 python 中被保留,因此它被替换为 dictionary 并且 dtype=tf.int32 被替换为 dtype =tf.int64tf.lookup.KeyValueTensorInitializer

兼容

这是原始张量:

origin_tensor
>> <tf.Variable 'Variable:0' shape=(3,) dtype=int64, numpy=array([1, 2, 1])>

这是由 Python 字典初始化的键值张量组成的 Tensorflow 查找表:

table = tf.lookup.StaticVocabularyTable(
tf.lookup.KeyValueTensorInitializer(
list(dictionary.keys()),
list(dictionary.values()),
key_dtype=tf.int64,
value_dtype=tf.int64,
),
num_oov_buckets=1,
)

这是根据查找表返回带有所需元素的 result_tensor 的实际查找:

result_tensor = table.lookup(origin_tensor)

结果如下:

result_tensor
>> <tf.Tensor: id=400475, shape=(3,), dtype=int64, numpy=array([3, 4, 3])>

干杯!

关于python - Tensorflow张量值图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42853731/

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