如何设置Keras模型以使用多个TPU进行训练?所有示例都使用一个TPU地址
答案 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