我通过以下方式创建张量的占位符:
self.sample_set = tf.placeholder(tf.int32, [None,None,self.max_input_right]) --- (1)
现在,我要切片此形状为[None,self.max_input_right]的张量。基本上上述张量由值列表组成,现在我想从列表中提取这些值。但是随着feed_dict的每次迭代,此列表的大小都会更改。 因此,在执行步骤(1)之后,我一直在寻找是否可以执行以下操作:
for i in range(self.k):
self.ans_set = tf.slice(self.sample_set, [0,i])
self.ans_sets.append(self.ans_set)
其中,k的值将随着每个feed_dict的变化而变化。但是我无法理解在构建图形时如何传递k的变化值。
此问题可能类似于先前发布的问题: tensorflow dynamically create placeholders
但是这个答案并没有帮助我找到答案。
答案 0 :(得分:0)
对于您的示例中的用例,您只需使用tf.unstack
:
self.sample_set = tf.placeholder(tf.int32, [None,None,self.max_input_right])
self.ans_sets = tf.unstack(self.sample_set)
这将为您提供3D张量的列表。默认情况下,unstack
在轴0上有效,但是您也可以更改它。