Python 如何使tensorflow代码不依赖于批大小?

Python 如何使tensorflow代码不依赖于批大小?,python,machine-learning,tensorflow,Python,Machine Learning,Tensorflow,如果我们用None替换batch\u size,我们就无法使用xrange(None),那么我们如何生产b c在这里具有形状(无,6),并且a的值从0到5 看来tf.foldl可能会给我一个正确的解决方案,有人能给我解释一下吗?非常感谢你 我很抱歉给你带来困惑,但我是说,我能做什么 a = tf.placeholder(tf.int32, [batch_size, ]) b = tf.stack([c[i, a[i]] for i in xrange(batch_size)]) 你的细节容易混

如果我们用
None
替换
batch\u size
,我们就无法使用
xrange(None)
,那么我们如何生产
b

c
在这里具有形状
(无,6)
,并且
a
的值从
0
5

看来
tf.foldl
可能会给我一个正确的解决方案,有人能给我解释一下吗?非常感谢你


我很抱歉给你带来困惑,但我是说,我能做什么

a = tf.placeholder(tf.int32, [batch_size, ])
b = tf.stack([c[i, a[i]] for i in xrange(batch_size)])

你的细节容易混淆。希望你能做到这一点

a = tf.placeholder(tf.int32, [None, ])
b = tf.stack([c[i, a[i]] for i in xrange(None)])

在本例中,batch_size是一个python变量,而不是张量,因此适用于普通python变量的规则(比如no-xrange(None))


您要执行的操作似乎相当于使用
tf.gather(c,a)
或类似的
tf.stridded\u slice

我很抱歉造成混淆,但我的意思是将批大小更改为无(长度待定)。
variable_rows    = 1
variable_columns = 6
batch_size       = 4
a = tf.placeholder(tf.int32,[batch_size,variable_rows, variable_columns])
b = []
for i in range(variable_columns):
    b.extend([i+1])
c = []
for i in range(batch_size):
    c.append([b])

sess = tf.Session()
print(sess.run(a,feed_dict={a:c}))