张量流中的批量可变长度序列

时间:2017-06-22 18:57:39

标签: tensorflow

我正在从文件中读取可变长度输入序列作为numpy数组,每个数组大小为[timesteps_i, feature_size],并将它们存储在Python列表中。

将此列表作为参数传递给tf.train.batch会生成相同长度的列表,其中包含大小为[batch_size, timesteps_i, feature_size]的张量。

inputs_batch_padded = tf.train.batch(
                tensors=inputs_chunk,
                batch_size=batch_size,
                capacity=128,
                enqueue_many=False,
                dynamic_pad=True)
  1. 如何获得比原始列表短batch_size倍的输出列表?

  2. 如何推断传递给feed_dict的每个批次的序列的原始长度?我正在检查seq库的seq,它需要每个批次的长度列表。

  3. 我是否应该为tensors传递numpy数组? dynamic_pad参数允许None用于可变长度维度,但在我的情况下这将事先知道。

  4. 我应该如何解释API文档中的以下行: “具有形状[x,y,z]的输入张量将作为具有形状[batch_size,x,y,z]的张量输出”? 是否复制了相同的输入张量batch_size次?

1 个答案:

答案 0 :(得分:1)

我在这里有类似的问题。

尝试以格式

批处理语音序列

{[语音功能的可变长度],[文本标签的可变长度]}

如果我使用数据集的填充批处理,它将填充[功能]和[标签]

如果我不粘贴[标签],则[标签]的长度会有所不同,我不能将它们分成一批。

谢谢。