我对张量流有疑问。
假设我有一个黑白图像,并且我只想用黑色像素做一些事情。所以我正在使用tf.where来获取这些像素的位置,并将这些位置传递给tf.map_fn,例如:
def to_do_something(pixel):
to_do_some_fancy_thing
return
indices = tf.where(black_white_image)
tf.map_fn(to_do_something, indices)
但是现在我面临的问题是索引的长度是未知的,但是map_fn()需要一个已知的形状。如果我将索引传递给map_fn,则会收到如下错误消息:
make_tensor_proto中的文件“ /opt/anaconda2-4.3.1/lib/python2.7/site-packages/tensorflow/python/framework/tensor_util.py”,行371 引发ValueError(“不支持任何值。”) ValueError:不支持任何值。
有什么办法可以解决这个问题?
谢谢, XP
答案 0 :(得分:0)
对于形状为(batch_size, n, m)
且像素为k
的黑色图像,可以使用(batch_size, n*m, 2)
数组,其中第1个轴上的前k
个值(即{{1} })对应于像素的2D坐标,以及对应于非黑色像素数量的整数out[:, :k]
。
或者,您可以在k
内进行tf.where
。
我担心两个都不会特别快。