我正在研究在张量流中实现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.
我无法理解输入参数,希望有人能帮助我。
randomize_input
参数。这是否意味着它会改变整个数据集?
对于num_epochs
,如果我指定None
,则表示我的input_fn
将继续向model_fn
投放。在那种情况下,培训不会停止。这对我来说没有意义。我想我在这里出错了。
queue_capacity
我不确定这意味着什么
感谢您对这些问题的任何帮助。提前谢谢!
答案 0 :(得分:1)
randomize_input
表示文件名是随机的,并且洗牌队列用于在内存中重复一次示例。
对于num_epochs
,培训可能因其他原因而停止(通常在给定的global_step
训练停止,无论输入功能如何)。
对于queue_capacity
,TensorFlow在内部使用队列来缓冲I / O以获得最大吞吐量。此参数允许您控制该队列的大小。