【发布时间】:2018-09-13 12:05:57
【问题描述】:
tf.estimator API 接受返回 Datasets 的输入“输入函数”。例如,Estimator.train() 采用 input_fn (documentation)。
在我看到的示例中,只要手动提供此函数,它就是一个无参数的 lambda。
这不是说函数总是返回相同的值吗?还是在没有参数的情况下多次调用它?我无法找到有关此的文档。为什么像train() 这样的函数不直接将输入作为Dataset 明确地接受?
【问题讨论】:
-
根据那些文档,输入是任何函数,不一定是 lambda(这将是一个相当荒谬的限制)。 “这不是说函数总是返回相同的值吗?”不,不一定。例如
lambda: random.random()。请注意,如果您关注link in those docs,它会显示两个示例,这两个示例都不是 lambda 函数,其中一个带有参数。我想传递一个返回Dataset的函数会提供更大的灵活性。 -
是的,我的意思是“为什么它是一个函数”。如果您通过链接引用 train_input_fn,这不是一个反例 - 它没有直接传递给 train(),它被包装在一个无参数函数中,所以我的问题仍然适用。您心目中的灵活性是什么?
标签: python tensorflow tensorflow-datasets tensorflow-estimator