Tensorflow 2.0中的tf.function如何优化tf.data.Dataset的使用?

时间:2019-08-16 18:33:49

标签: python tensorflow tensorflow-datasets tensorflow2.0

Tensorflow 2.0的official documentation建议与tf.data.Dataset一起使用tf.function

有两个这样的用法示例:

  • 使用Dataset作为tf.function的自变量,如here所述:
@tf.function
def train(model, dataset, optimizer):
  for x, y in dataset:
      ....
  • here所述,在Dataset主体中创建本地tf.function
@tf.function
def train(model, optimizer):
  train_ds = mnist_dataset()
  ...

最后,autograph doc指出Datasettf.function的迭代进行了优化。 This SO answer确实表明,使用Dataset作为tf.function的参数可以提高性能。

因此,tf.data.Dataset如何从tf.function中受益,又如何解释this SO answer的提速:

  • "foor loop optimization"本身如何提高速度?
  • Dataset跟踪器如何处理tf.function对象。像在参数中或作为局部变量示例一样,即使tf.function documentation建议原始函数只接受Dataset,我们如何在tf.function中使用Tensor
  • Dataset子图之间(然后可以在tf.function子图中使用)之间是否存在某种通信/共享,或者两者是完全分开的(意味着Dataset只是用作tf.function的黑盒迭代器)?

0 个答案:

没有答案