Tin*_*tin 2 google-cloud-platform keras tensorflow tpu
我正在尝试将 Google 云控制台中的 Keras 模型转换为 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)))
Run Code Online (Sandbox Code Playgroud)
我的输出是:
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'
Run Code Online (Sandbox Code Playgroud)
keras_to_tpu_model 方法似乎是实验性的,如 tensorflow 网站上所示。最近被删除了吗?如果是这样,我如何继续使用 TPU 来估计我的 Keras 模型?如果 keras_to_tpu_model 方法仍然可用,为什么我不能调用它?
我假设您将 TPU_WORKER 定义如下
import os
TPU_WORKER = ‘grpc://’ + os.environ[‘COLAB_TPU_ADDR’]
Run Code Online (Sandbox Code Playgroud)
与其将您的模型转换为 TPU,不如构建一个分发策略。这是将批次分配到八个 TPU 以及如何计算每个 TPU 的损失的方法。
resolver = tf.contrib.cluster_resolver.TPUClusterResolver(TPU_WORKER)
tf.contrib.distribute.initialize_tpu_system(resolver)
strategy = tf.contrib.distribute.TPUStrategy(resolver)
Run Code Online (Sandbox Code Playgroud)
使用该策略构建和编译您的模型。这对于回归应该非常有效。
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')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2623 次 |
| 最近记录: |