Как преобразовать модель Keras в модель ТПУ - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь преобразовать свою модель Keras в облачной консоли Google в модель TPU.К сожалению, я получаю сообщение об ошибке, как показано ниже.Мой минимальный пример:

import keras
from keras.models import Sequential
from keras.layers import Dense, Activation
import tensorflow as tf
import os
model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Dense(32))
model.add(Activation('relu'))
model.compile(optimizer='rmsprop', loss='mse')
tpu_model = tf.contrib.tpu.keras_to_tpu_model(
    model,
    strategy=tf.contrib.tpu.TPUDistributionStrategy(
         tf.contrib.cluster_resolver.TPUClusterResolver(TPU_WORKER)))

Мой вывод:

Using TensorFlow backend.
Traceback (most recent call last):
     File "cloud_python4.py", line 11, in <module>
     tpu_model = tf.contrib.tpu.keras_to_tpu_model(AttributeError: module 'tensorflow.contrib.tpu' has no attribute 'keras_to_tpu_model'

Метод keras_to_tpu_model кажется экспериментальным, как указано на веб-сайте tenorflow.Это было недавно удалено?Если так, как я могу перейти к использованию TPU для оценки моей модели Keras?Если метод keras_to_tpu_model все еще доступен, почему я не могу вызвать его?

Ответы [ 2 ]

0 голосов
/ 10 августа 2019

Я предполагаю, что вы определили ваш TPU_WORKER как показано ниже

import os
TPU_WORKER = ‘grpc://’ + os.environ[‘COLAB_TPU_ADDR’]

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

resolver = tf.contrib.cluster_resolver.TPUClusterResolver(TPU_WORKE)
tf.contrib.distribute.initialize_tpu_system(resolver)
strategy = tf.contrib.distribute.TPUStrategy(resolver)

С помощью стратегии создайте и скомпилируйте вашу модель.Это должно работать очень хорошо для регрессии.

with strategy.scope():
  model = Sequential() 
  model.add(Dense(32, input_dim=784))
  model.add(Dense(32))
  model.add(Activation('relu'))
  model.compile(optimizer='rmsprop', loss='mse')

0 голосов
/ 05 февраля 2019

Импорт керас из тензор потока.Это связано с тем, что для tf.contrib.tpu.keras_to_tpu_model( ) 'требуется модель версии tenorflow , а не версия keras.

Например, вместо этого используйте from tensorflow.keras.layers import Dense, Activation.И так далее.

...