输入tf.contrib.learn.read_batch_features的参数

时间:2017-01-18 08:16:35

标签: python python-3.x tensorflow

我正在研究在张量流中实现LSTM的张量流codes。在浏览代码时,我遇到了这个函数(在input_fn code - 第38行)tf.contrib.learn.read_batch_features。我查看了tf.contrib.learn.read_batch_features here的文档。这就是我得到的 -

file_pattern: List of files or pattern of file paths containing Example records. 
batch_size: An int or scalar Tensor specifying the batch size to use.
features: A dict mapping feature keys to FixedLenFeature or VarLenFeature values.
randomize_input: Whether the input should be randomized.
num_epochs: Integer specifying the number of times to read through the dataset. If None, cycles through the dataset forever. NOTE - If specified, creates a variable that must be initialized, so call tf.local_variables_initializer() as shown in the tests.
queue_capacity: Capacity for input queue.
reader_num_threads: The number of threads to read examples.
name: Name of resulting op.

我无法理解输入参数,希望有人能帮助我。

  1. randomize_input参数。这是否意味着它会改变整个数据集?

  2. 对于num_epochs,如果我指定None,则表示我的input_fn将继续向model_fn投放。在那种情况下,培训不会停止。这对我来说没有意义。我想我在这里出错了。

  3. queue_capacity我不确定这意味着什么

  4. 感谢您对这些问题的任何帮助。提前谢谢!

1 个答案:

答案 0 :(得分:1)

randomize_input表示文件名是随机的,并且洗牌队列用于在内存中重复一次示例。

对于num_epochs,培训可能因其他原因而停止(通常在给定的global_step训练停止,无论输入功能如何)。

对于queue_capacity,TensorFlow在内部使用队列来缓冲I / O以获得最大吞吐量。此参数允许您控制该队列的大小。