gpt4 book ai didi

python - 基于 numpy 索引和 TensorFlow 中的唯一运算符创建新张量

转载 作者:行者123 更新时间:2023-12-01 01:57:20 26 4
gpt4 key购买 nike

我想创建一个新张量,其中包含另一个张量的唯一元素并根据索引张量排序。
这是迄今为止的说明性代码:

import tensorflow as tf
a, _ = tf.unique([[1, 2], [3, 4], [1, 2], [3, 4], [3, 4]])
b, _ = tf.unique([1, 0, 1, 0, 0])
d = a[b, :]
e = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(e)
sess.run(d)
print d

基本上,在这种情况下,所需的输出张量应该等于[[3, 4], [1, 2]]
为什么我的代码没有按预期工作?

最佳答案

您遇到的问题是由于 tf.unique 需要一维输入张量(请参阅此处:https://www.tensorflow.org/api_docs/python/tf/unique)

如果您在一维 b 张量上运行 tf.unique,它会起作用:

import tensorflow as tf
a, _ = tf.unique([[1, 2], [3, 4], [1, 2], [3, 4], [3, 4]])
b, _ = tf.unique([1, 0, 1, 0, 0])
e = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(e)
print (sess.run(b))

[1 0]

但是,当您在列表 a 的列表上运行 tf.unique 时,您将收到错误:

import tensorflow as tf
a, _ = tf.unique([[1, 2], [3, 4], [1, 2], [3, 4], [3, 4]])
b, _ = tf.unique([1, 0, 1, 0, 0])
e = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(e)
print (sess.run(a))

InvalidArgumentError:unique 需要一维向量。

关于python - 基于 numpy 索引和 TensorFlow 中的唯一运算符创建新张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50009469/

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