在Keras中将多个TPU与TF一起使用

时间:2019-06-09 14:44:49

标签: tensorflow machine-learning keras google-cloud-platform

如何设置Keras模型以使用多个TPU进行训练?所有示例都使用一个TPU地址

2 个答案:

答案 0 :(得分:1)

在喀拉拉邦,这尚未正式提供。

但是我知道人们正在为Keras开发此功能而非常努力。

在底部张量流层,它们确实提供了一些实验功能。参见

https://www.tensorflow.org/guide/distribute_strategy

https://www.tensorflow.org/guide/using_tpu

https://cloud.google.com/ml-engine/docs/tensorflow/using-tpus

  

”目前可为Keras提供对Cloud TPU的实验支持   和Colab。“

     

在Tensorflow程序中,您应该使用TPUClusterResolver来   与运行在TPU VM上的TPU gRPC服务器连接。的   TPUClusterResolver返回Cloud TPU的IP地址和端口。

     

为TPU分配操作要在计算机上使用TPU,您必须   使用TensorFlow TPUEstimator API,该API继承自   高级TensorFlow估算器API。

可能不是您想要的,例如本地TPU群集。但是您可以按照他们的方式上手

就我个人而言,我从来没有尝试过使用复杂的多gpu / tpu解决方案。我们仅在学校研究中进行简单的单GPU培训。这是我能为您提供帮助的

所以请加入他们的Beta版,祝您好运!

答案 1 :(得分:0)

使用多个TPU的明显正确方法是将地址列表传递到解析器:

TPU_ADDRESS1 = 'grpc://10.240.1.2:8470'
TPU_ADDRESS2 = 'grpc://10.240.2.2:8470'

tpu_model = tf.contrib.tpu.keras_to_tpu_model(model, 
        strategy=tf.contrib.tpu.TPUDistributionStrategy(
            tf.contrib.cluster_resolver.TPUClusterResolver(tpu = [TPU_ADDRESS1,TPU_ADDRESS2])))

但是TF 1.13 不支持超过1个TPU