从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核心之间的协调培训。
答案 0 :(得分:0)
您可以使用Python读取文件:
with open(image_path, "rb") as local_file:
img = local_file.read()
1-2 GB对于TPU可能太大。如果内存不足,请将数据分成较小的部分。