我对seq2seq教程中占位符的使用感到好奇。我看到他们正在将占位符初始化为第141-147行中最大存储桶的大小:
for i in xrange(buckets[-1][0]): # Last bucket is the biggest one.
self.encoder_inputs.append(tf.placeholder(tf.int32, shape=[None],
name="encoder{0}".format(i)))
for i in xrange(buckets[-1][1] + 1):
self.decoder_inputs.append(tf.placeholder(tf.int32, shape=[None],
name="decoder{0}".format(i)))
self.target_weights.append(tf.placeholder(dtype, shape=[None],
name="weight{0}".format(i)))
我不明白为什么这适用于小于此尺寸的存储桶。在step()调用中,当初始化encoder_input时,例如,如果最大桶大小为100时桶大小使用50,那么占位符中的最后50个值是否仍然未初始化?或者是否有一个我缺少的步骤,初始化所有值,甚至是在计算时不会使用的值?