GCE如何在Google TPU中使用ImageDataGenerator

时间:2018-09-10 17:43:06

标签: python keras google-compute-engine google-cloud-tpu

我有一个Keras模型,但是对于我的本地PC来说太大了,我正试图迁移到Google云以能够使用TPU。

我看到的示例在内存图像中用于训练具有fit函数的模型。

我有成千上万张图像,并且我也想使用图像增强。在我的本地模型中,我使用ImageDataGeneratorfit_generator

如何使用TPU执行此操作?

我有几个主意,

  1. 在虚拟机中安装存储桶
  2. 将映像复制到虚拟机磁盘,并像在本地计算机上一样使用ImageDataGenerator

但是我不确定,我觉得所有这些方法效率都不高。

有没有一种有效的方法?

2 个答案:

答案 0 :(得分:0)

如果您正在寻找读取速度,GCP会提供SSD’s,这将是您的计算机读取图像的最快方法。本地SSD确实有3TB的限制,因此您可能必须根据映像数量将多个SSD附加到VM。

如果您希望降低成本,可以使用FuseFS安装Bucket,但这是最慢的选择,因为到源的潜在距离最大。

Google有一个great article,它说明了您用于存储的不同选项。本文还提供了表格,列出了不同的成本,速度以及有关每个选项提供的其他重要技术细节。

答案 1 :(得分:0)

Tensorflow最近宣布在Cloud TPU上支持Keras(自1.11版本开始),因此您现有的fit_generator模型应该可以使用,这是example在TPU上使用fit_generator

对于问题的性能部分,一旦模型在TPU上运行,您就可以使用TPU profiler来确定存储是否是瓶颈。如果存储成为瓶颈,可以通过多种方法解决,主要是优化input pipeline