Python 倍增tf.range()的优雅方式

Python 倍增tf.range()的优雅方式,python,tensorflow,Python,Tensorflow,我有一个(BatchSize X 1)个数的张量,在0到9之间, e、 g: 从每个数字我需要创建一个新的张量,从数字开始,一直下降到数字-9。 例如,对于要创建张量的数字3 i: 3 2 1 0 -1 -2 -3 -4 -5 -6 这可以使用一个单独的: tf.range(3,3-9,1) 我需要对整个张量执行此操作,以创建一个新的张量(按照上面的示例): 一种选择是以迭代的方式进行,但这需要我将批量大小硬编码到循环中,我正试图避免这种情况 任何关于一个好的优雅解决方案的想法都将受到欢迎

我有一个(BatchSize X 1)个数的张量,在0到9之间, e、 g:

从每个数字我需要创建一个新的张量,从数字开始,一直下降到数字-9。 例如,对于要创建张量的数字3 i:

3 2 1 0 -1 -2 -3 -4 -5 -6
这可以使用一个单独的:

tf.range(3,3-9,1)
我需要对整个张量执行此操作,以创建一个新的张量(按照上面的示例):

一种选择是以迭代的方式进行,但这需要我将批量大小硬编码到循环中,我正试图避免这种情况


任何关于一个好的优雅解决方案的想法都将受到欢迎

您可以使用
tf.range(10)
对张量进行外部减法,方法是正确重塑张量:

import tensorflow as tf
tf.InteractiveSession()
a = tf.constant([3,4,2,2])

b = tf.reshape(a, (-1,1)) - tf.range(10)
b.eval()
#array([[ 3,  2,  1,  0, -1, -2, -3, -4, -5, -6],
#       [ 4,  3,  2,  1,  0, -1, -2, -3, -4, -5],
#       [ 2,  1,  0, -1, -2, -3, -4, -5, -6, -7],
#       [ 2,  1,  0, -1, -2, -3, -4, -5, -6, -7]], dtype=int32)

谢谢,这正是我想要的。
3 2 1 0 -1 -2 -3 -4 -5 -6
4 3 2 1 0 -1 -2 -3 -4 -5
2 1 0 -1 -2 -3 -4 -5 -6 -7
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
2 1 0 -1 -2 -3 -4 -5 -6 -7
import tensorflow as tf
tf.InteractiveSession()
a = tf.constant([3,4,2,2])

b = tf.reshape(a, (-1,1)) - tf.range(10)
b.eval()
#array([[ 3,  2,  1,  0, -1, -2, -3, -4, -5, -6],
#       [ 4,  3,  2,  1,  0, -1, -2, -3, -4, -5],
#       [ 2,  1,  0, -1, -2, -3, -4, -5, -6, -7],
#       [ 2,  1,  0, -1, -2, -3, -4, -5, -6, -7]], dtype=int32)