【发布时间】:2019-07-22 20:54:24
【问题描述】:
我已经建立了一个数据管道。伪代码如下:
- 数据集->
- 数据集 = 扩充(数据集)
- dataset = dataset.batch(35).prefetch(1)
- dataset = set_from_generator(to_feed_dict(dataset)) # 昂贵的操作
- dataset = Cache('/tmp', dataset)
- 数据集 = dataset.unbatch()
- dataset = dataset.shuffle(64).batch(256).prefetch(1)
- to_feed_dict(数据集)
生成预训练模型输出需要 1 到 5 个操作。我缓存它们,因为它们在整个时期都不会改变(预训练的模型权重不会更新)。 5 到 8 个动作为训练准备数据集。
必须使用不同的批量大小,因为预训练模型输入的维度比输出大得多。
第一个 epoch 很慢,因为它必须在每个输入项上评估预训练模型以生成模板并将它们保存到磁盘。后来的 epoch 更快,但仍然很慢 - 我怀疑瓶颈是读取磁盘缓存。
可以在此数据管道中进行哪些改进以减少问题? 谢谢!
【问题讨论】:
标签: python tensorflow machine-learning tensorflow-datasets