为啥 Google Colab TPU 和我的电脑一样慢?

Posted

技术标签:

【中文标题】为啥 Google Colab TPU 和我的电脑一样慢?【英文标题】:Why is Google Colab TPU as slow as my computer?为什么 Google Colab TPU 和我的电脑一样慢? 【发布时间】:2021-03-26 04:44:47 【问题描述】:

由于我有一个大型数据集并且我的 PC 中没有太多功能,我认为在 Google Colab 上使用 TPU 是一个好主意。

所以,这是我的 TPU 配置:

try:
    tpu = tf.distribute.cluster_resolver.TPUClusterResolver()
    print('Running on TPU ', tpu.master())
except ValueError:
    tpu = None

if tpu:
    tf.config.experimental_connect_to_cluster(tpu)
    tf.tpu.experimental.initialize_tpu_system(tpu)
    strategy = tf.distribute.experimental.TPUStrategy(tpu)
else:
    strategy = tf.distribute.get_strategy()
    
print("REPLICAS: ", strategy.num_replicas_in_sync) 

这是我的训练:

hist = model.fit(train_dataset, epochs=10, verbose=1, steps_per_epoch=count_data_items(filenames)//64)

【问题讨论】:

【参考方案1】:

仅制定策略是不够的。您应该正确使用此策略。

您可能需要调整管道、增加批量大小等。

看看这里:https://cloud.google.com/tpu/docs/performance-guide

另一个重要的一点是TPU 有一个预热期——它在第一次调用(每次调用都具有新的输入形状)期间花费大量时间来构建计算图。

【讨论】:

+1。如果您不使用大批量,则 TPU 没有得到充分利用。我还建议使用experimental_steps_per_execution 标志(查看更多信息here),它可以降低回调运行的频率。【参考方案2】:

目前可用于 Colab 笔记本的 TPU 内核数量为 8 个。要点:从观察训练时间可以看出,当批量较小时,TPU 比 GPU 花费的训练时间要多得多。但是当批量大小增加时,TPU 性能与 GPU 相当。go through this link for more details

【讨论】:

以上是关于为啥 Google Colab TPU 和我的电脑一样慢?的主要内容,如果未能解决你的问题,请参考以下文章

将 Colab 连接到付费 TPU

如何在 Google Colab 中查找 TPU 名称和区域?

Google Colab TPU 中未实现文件系统方案“[本地]”

为啥该代码段无法在 Google Colab 上运行?

Google Colab 中的 Keras 调谐器和 TPU

在 Google Colab Pro 中使用 TPU v3