在没有GCP数据的情况下在colab TPU上进行训练,以获取可以全部加载到内存中的数据

时间:2020-07-10 20:10:01

标签: tensorflow keras google-colaboratory tpu

从TPU官方文档中可以看出,训练文件必须位于GCP上

https://cloud.google.com/tpu/docs/troubleshooting#cannot_use_local_filesystem

但是我的数据集较小(但是由于训练基于采样/排列,所以训练将花费很长时间),这些数据都可以加载到内存(1-2 gb)中。我想知道是否可以将数据对象直接传输到TPU,并且可以使用它来训练文件。

如果有所作为,我正在使用Keras进行TPU培训。

到目前为止我所看到的:

似乎您可以将某些数据加载到各个TPU内核上

self.workers = ['/job:worker/replica:0/task:0/device:TPU:' + str(i) for i in range(num_tpu_cores)]

with tf.device(worker[0):
    vecs = vectors[i] 

但是,我不确定这是否会转化为所有TPU核心之间的协调培训。

1 个答案:

答案 0 :(得分:0)

您可以使用Python读取文件:

with open(image_path, "rb") as local_file:
  img = local_file.read()

1-2 GB对于TPU可能太大。如果内存不足,请将数据分成较小的部分。