我正在从文件中读取可变长度输入序列作为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)
如何获得比原始列表短batch_size
倍的输出列表?
如何推断传递给feed_dict
的每个批次的序列的原始长度?我正在检查seq库的seq,它需要每个批次的长度列表。
我是否应该为tensors
传递numpy数组? dynamic_pad
参数允许None
用于可变长度维度,但在我的情况下这将事先知道。
我应该如何解释API文档中的以下行:
“具有形状[x,y,z]的输入张量将作为具有形状[batch_size,x,y,z]的张量输出”?
是否复制了相同的输入张量batch_size
次?
答案 0 :(得分:1)
我在这里有类似的问题。
尝试以格式
批处理语音序列{[语音功能的可变长度],[文本标签的可变长度]}
如果我使用数据集的填充批处理,它将填充[功能]和[标签]
如果我不粘贴[标签],则[标签]的长度会有所不同,我不能将它们分成一批。
谢谢。