Tensorflow 为什么谷歌Colab TPU和我的电脑一样慢?

Tensorflow 为什么谷歌Colab TPU和我的电脑一样慢?,tensorflow,machine-learning,google-colaboratory,tpu,google-cloud-tpu,Tensorflow,Machine Learning,Google Colaboratory,Tpu,Google Cloud Tpu,因为我有一个很大的数据集,而且我的电脑没有太大的功率,所以我认为在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_c

因为我有一个很大的数据集,而且我的电脑没有太大的功率,所以我认为在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)

仅仅制定战略是不够的。你应该正确使用这个策略

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

请看这里:


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

仅仅创建一个策略是不够的。你应该正确使用这个策略

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

请看这里:


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

目前可用于Colab笔记本电脑的TPU核心数量为8。要点:从观察训练时间可以看出,当批量较小时,TPU比GPU花费的训练时间要多得多。但当批量增加时,TPU的性能与GPU相当。

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

+1。如果没有使用大批量,则TPU没有得到充分利用。我还建议使用
experimental\u steps\u per\u execution
标志(请参阅更多信息),这可以减少回调运行的频率。如果没有使用大批量,则TPU没有得到充分利用。我还建议使用
experimental\u steps\u per\u execution
标志(请参阅更多信息),这可以减少回调的运行频率。