【发布时间】:2019-09-09 21:21:03
【问题描述】:
我有这个张量:
tf_a1 = [[0 3 1 22]
[3 5 2 2]
[2 6 3 13]
[1 7 0 3 ]
[4 9 11 10]]
我想要做的是找到在所有列中重复的唯一值超过 threshold。
例如这里,3 在4 columns 中重复。 0 在 2 columns 中重复。 2 在3 columns 中重复,以此类推。
我希望我的输出是这样的(假设阈值为2,所以重复超过 2 次的索引将被屏蔽)。
[[F T F F]
[T F T T]
[T F T F]
[F F F T]
[F F F F]]
这就是我所做的:
y, idx, count = tf.unique_with_counts(tf_a1)
tf.where(tf.where(count, tf_a1, tf.zeros_like(tf_a1)))
但它会引发错误:
tensorflow.python.framework.errors_impl.InvalidArgumentError:唯一 需要一个一维向量。 [操作:UniqueWithCounts]
谢谢。
【问题讨论】:
-
在调用
unique_with_counts之前将其重塑为一维怎么样? -
@a_guest 谢谢你的回答,听起来确实不错。之后我可以再次将其重塑为二维数组。正确吗?
-
应该可以,是的。顺便说一句,根据this issue
unique_with_counts应该支持axis参数(尽管它没有记录?)。你能检查它是否仍然有效吗?啊等等,但这对你没有帮助,对吧?实际上,您可以在同一列中重复吗?如果是这样,那应该算作“重复”吗? -
实际上每列我没有重复。我搜了一下,发现`unique count应该支持多维数组加轴,但是在tensorflow网站上找不到。
-
好的,那么我认为重塑是要走的路。
标签: python tensorflow matrix deep-learning