Google colaboratory 运行时错误:混合不同的tf.distribute.Strategy对象

Google colaboratory 运行时错误:混合不同的tf.distribute.Strategy对象,google-colaboratory,tpu,google-cloud-tpu,Google Colaboratory,Tpu,Google Cloud Tpu,您好!我在使用TPU编译模型时遇到了一些问题。部分代码如下: resolver = tf.contrib.cluster_resolver.TPUClusterResolver(TF_MASTER) tf.contrib.distribute.initialize_tpu_system(resolver) strategy = tf.contrib.distribute.TPUStrategy(resolver) with strategy.scope(): model = crea

您好!我在使用TPU编译模型时遇到了一些问题。部分代码如下:

resolver = tf.contrib.cluster_resolver.TPUClusterResolver(TF_MASTER)

tf.contrib.distribute.initialize_tpu_system(resolver)

strategy = tf.contrib.distribute.TPUStrategy(resolver)

with strategy.scope():

  model = create_model()

  model.compile(optimizer=tf.keras.optimizers.Adadelta(),loss='categorical_crossentropy',metrics='accuracy'])
我得到了RuntimeError:


你能帮我吗

我通过各种尝试解决了我的问题。您可以重新启动程序或注释代码:

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

with strategy.scope():
  model = create_model()
  model.compile()

要避免问题

相同的问题。TensorFlow的默认版本似乎是1.x。我将代码更改为:(注释3行并添加其他行)


问题解决了。

@我终于找到了钥匙,改进了答案。谢谢
try:
  # %tensorflow_version only exists in Colab.
  %tensorflow_version 2.x
except Exception:
  pass

# resolver = tf.contrib.cluster_resolver.TPUClusterResolver('grpc://' + os.environ['COLAB_TPU_ADDR'])
# tf.contrib.distribute.initialize_tpu_system(resolver)
# strategy = tf.contrib.distribute.TPUStrategy(resolver)
resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='grpc://' + os.environ['COLAB_TPU_ADDR'])
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.experimental.TPUStrategy(resolver)