Используйте несколько TPU в Keras с TF - PullRequest
1 голос
/ 09 июня 2019

Как настроить модель Keras для использования нескольких TPU для обучения? Во всех примерах используется один адрес TPU

Ответы [ 2 ]

1 голос
/ 09 июня 2019

В керасе это официально не предусмотрено.

Но я знаю, что люди очень усердно работают над разработкой этой функции для Кераса.

В нижнем тензорном слое они обеспечивают некоторую экспериментальную функцию. См

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

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

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

"Экспериментальная поддержка облачных TPU в настоящее время доступна для Keras и колаб. "

В вашей программе Tensorflow вы должны использовать TPUClusterResolver для соединитесь с сервером TPU gRPC, работающим на виртуальной машине TPU. TPUClusterResolver возвращает IP-адрес и порт облачного TPU.

Назначение операций TPU Чтобы использовать TPU на машине, вы должны использовать API TensorFlow TPUEstimator, который наследуется от API TensorFlow Estimator высокого уровня.

Это может быть не совсем то, что вы хотели, например, локальный кластер TPU. Но вы можете следовать их пути, чтобы начать

Лично я никогда раньше не пробовал со сложным решением для нескольких графических процессоров. В школьных исследованиях мы проводим только простое обучение на одном GPU Вот что я могу найти, чтобы помочь вам

Так что присоединяйтесь к их бета-версии и удачи!

0 голосов
/ 12 июня 2019

Видимо, правильный способ использования нескольких 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 ТПУ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...