【发布时间】:2020-09-02 10:41:50
【问题描述】:
在 COLAB 中使用 tensorflow 2.3 及其内部 tf.keras 。
我正在训练一个在输入中处理 2D 图像的网络,该网络真正受益于数据增强(主要是仿射变换、补丁提取和强度操作)。输入数据都适合内存,所以我没有任何磁盘读取瓶颈。这些操作有点适合我的数据,所以我更喜欢自己实现它们,如果可能的话。我可以用 numpy 函数和 keras 生成器函数来做所有事情。我使用keras.sequence 来构建我的生成器,因为我知道这是最好的做法。在其他来源,有人说tf.data 更标准。
我读过上一个问题 (tf.data vs keras.utils.sequence performance),这两个问题都应该在 CPU 上预处理数据,但是当我打开增强功能时,从张量板分析器看来这没有发生 (50生成器运行时 GPU 空闲所花费的时间百分比)。如果我关闭增强操作并只保留补丁提取,它会下降到 10%。但它们似乎仍然没有重叠。
那么,我应该切换到tf.data 吗?如果我需要编写自己的适用于 numpy 的 python 代码,tf.data 是否有效,或者只有当我可以使用它的内部函数时它才能正常工作?我对keras.utils.Sequence 做错了吗?
【问题讨论】:
标签: tensorflow keras tensorflow-datasets