Python tensorflow动态扩展占位符列表

Python tensorflow动态扩展占位符列表,python,tensorflow,placeholder,lstm,Python,Tensorflow,Placeholder,Lstm,我想在图的每次迭代中动态扩展占位符列表。在创建图形时,我必须定义for循环中使用的变量_length,然后才能相应地将数据提供给占位符。我尝试使用tf。while\u loop我可以扩展占位符列表,但是馈送过程在此tf之前完成。while\u loop发生错误: Error: "list index is out of range" 代码: 执行和馈送如下所示 feed_dict = dict() for i in range(self._num_unrollings + 1): fe

我想在图的每次迭代中动态扩展占位符列表。在创建图形时,我必须定义for循环中使用的变量_length,然后才能相应地将数据提供给占位符。我尝试使用
tf。while\u loop
我可以扩展占位符列表,但是馈送过程在此
tf之前完成。while\u loop
发生错误:

Error: "list index is out of range" 
代码:

执行和馈送如下所示

feed_dict = dict()
for i in range(self._num_unrollings + 1):
   feed_dict[self._train_data[i]] = batches[i]

_, loss_reduced = self._session.run([ self._optimizer, self._loss_reduced], feed_dict=feed_dict)

修改会话运行调用之间的关系图会带来显著的性能损失,那么使用
tf.placeholder\u with_default
提前创建所有占位符,并只提供其中的一部分内容如何?在我的情况下,“tf.placeholder\u with_default”会如何工作呢?我编写了LSTM cell的实现。现在,我定义了展开数和提要数据,例如,仅为20个展开定义。我想一次喂完整批,但每批的长度不同。之后,我将能够执行不同的操作。从理论上讲,我可以将特定的数字附加到批中,使它们的大小相等,但是我需要创建一些掩码,而且在这种情况下,乘法将是一个巨大的浪费。如何在图形中提取值为feed的占位符,而不是默认值。在会话运行调用之间修改图形会导致严重的性能损失,如何使用
tf.placeholder\u with_default
提前创建所有占位符,并且只提供其中的一些占位符?在我的情况下,“tf.placeholder\u with_default”究竟如何工作?我编写了LSTM cell的实现。现在,我定义了展开数和提要数据,例如,仅为20个展开定义。我想一次喂完整批,但每批的长度不同。之后,我将能够执行不同的操作。从理论上讲,我可以将特定的数字附加到批中,使它们的大小相等,但是我需要创建一些掩码,而且在这种情况下,乘法将是一个巨大的浪费。如何在图形中提取值为feed的占位符,而不是默认值。
feed_dict = dict()
for i in range(self._num_unrollings + 1):
   feed_dict[self._train_data[i]] = batches[i]

_, loss_reduced = self._session.run([ self._optimizer, self._loss_reduced], feed_dict=feed_dict)