python - Tensorflow 2.0 中的 tf.function 如何优化 tf.data.Dataset 的使用?
问题描述
Tensorflow 2.0的官方文档tf.data.Dataset
建议与tf.function
.
这种用途有两个例子:
- 使用 a
Dataset
作为 a 的参数,tf.function
如下所述:
@tf.function
def train(model, dataset, optimizer):
for x, y in dataset:
....
Dataset
在tf.function
正文中创建本地,如下所述:
@tf.function
def train(model, optimizer):
train_ds = mnist_dataset()
...
最后,签名文档指出对 a 的迭代Dataset
是由 优化的tf.function
。
这个 SO 答案确实表明,使用 aDataset
作为tf.function
提高性能的参数。
那么,如何tf.data.Dataset
从中受益tf.function
,以及如何解释这个 SO 答案的加速:
- “for循环优化”如何自行创造加速?
- 示踪剂如何
Dataset
处理对象。tf.function
就像在参数中或作为局部变量示例一样,我们如何Dataset
在 a 中使用tf.function
,即使tf.function
文档建议原始函数应该只接受Tensor
? - 子图之间是否存在某种通信/共享
Dataset
(然后可以在tf.function
子图中使用),或者两者是完全分离的(意味着Dataset
仅用作来自 的黑盒迭代器tf.function
)?
解决方案
推荐阅读
- aem - AEM - 如何缓存页面范围的模型?
- reactjs - 加载页面时如何单击按钮做出反应?
- excel - 数据粘贴后如何点击按钮
- reactjs - 我可以在两个 useState 对象都更新之前阻止重新渲染吗?
- python-3.x - 如何在 Python 中为 SMTP 邮件指定远程文件附件
- android - 以前工作时,上传 Unity Android App Bundle 导致 Google Play 64 位不合规错误
- r - 如何在 STM 中将 stargazer 与 estimateEffect() 一起使用?收到无法识别的对象类型错误
- reactjs - 引导图标未出现在反应 js 项目中
- ios - MTLCcommandBuffer.commit() 在哪个线程上操作?
- fullcalendar - 完整日历 - 无法刷新反应中的事件