使用张量流创建点的二维张量

Create 2d tensor of points using tensorflow

我正在尝试用某个范围内的所有点制作一个张量。 例如

min_x = 5
max_x = 7

min_y = 3
max_y = 5

points = get_points(min_x, max_x, min_y, max_y)

print(point) # [[5, 3], [5, 4], [5, 5], [6, 3], [6, 4], [6, 5], [7, 3], [7, 4], [7, 5]]

我正在尝试在张量流函数中执行此操作。又名@tf.function

此外 get_points 的所有输入都必须是张量。

谢谢,如您所知,我是 tensorflow 的新手。

你可以使用tf.meshgrid,然后在重塑这两个张量后沿着最后的dim堆叠xy

min_x = 5
max_x = 7

min_y = 3
max_y = 5

def get_points(min_x, max_x, min_y, max_y):
    x, y = tf.meshgrid(tf.range(min_x, max_x+1),tf.range(min_y, max_y+1))

    _x = tf.reshape(x, (-1,1))
    _y = tf.reshape(y, (-1,1))

    return tf.squeeze(tf.stack([_x, _y], axis=-1))

res = get_points(min_x, max_x, min_y, max_y)
K.eval(res)
# array([[5, 3],
#        [6, 3],
#        [7, 3],
#        [5, 4],
#        [6, 4],
#        [7, 4],
#        [5, 5],
#        [6, 5],
#        [7, 5]], dtype=int32)