Google compute engine MNIST TPU教程中的Python错误

Google compute engine MNIST TPU教程中的Python错误,google-compute-engine,Google Compute Engine,我试图在GCE中运行TPU的MNIST示例(如所示),但我遇到了一些问题。首先,我必须设置PYTHONPATH以获取模型目录,该目录没有作为演练的一个步骤列出(对于日常python程序员来说,这可能是显而易见的,但如果不是,则没有说明)。在此之后,我现在遇到了以下错误,我不确定如何解决: frival@tpu-demo-vm:~$ python /usr/share/models/official/mnist/mnist_tpu.py --tpu_name=$TPU_NAME --data_di

我试图在GCE中运行TPU的MNIST示例(如所示),但我遇到了一些问题。首先,我必须设置PYTHONPATH以获取模型目录,该目录没有作为演练的一个步骤列出(对于日常python程序员来说,这可能是显而易见的,但如果不是,则没有说明)。在此之后,我现在遇到了以下错误,我不确定如何解决:

frival@tpu-demo-vm:~$ python /usr/share/models/official/mnist/mnist_tpu.py --tpu_name=$TPU_NAME --data_dir=${STORAGE_BUCKET}/data --model_dir=${STORAGE_BUCKET}/output --use_tpu=True --iterations=500 --train_steps=1000 --train_file=${STORAGE_BUCKET}/data/train.tfrecords
WARNING:tensorflow:From /usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/datasets/base.py:198: retry (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.
Instructions for updating:
Use the retry module or similar alternatives.
Traceback (most recent call last):
  File "/usr/share/models/official/mnist/mnist_tpu.py", line 163, in <module>
    tf.app.run()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 126, in run
    _sys.exit(main(argv))
  File "/usr/share/models/official/mnist/mnist_tpu.py", line 135, in main
    FLAGS.tpu, zone=FLAGS.tpu_zone, project=FLAGS.gcp_project)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/cluster_resolver/python/training/tpu_cluster_resolver.py", line 128, in __init__
    self._tpu = compat.as_bytes(tpu)  # self._tpu is always bytes
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/util/compat.py", line 68, in as_bytes
    (bytes_or_text,))
TypeError: Expected binary or unicode string, got None
frival@tpu-演示vm:~$python/usr/share/models/official/mnist/mnist\u tpu.py--tpu\u name=$tpu\u name--data\u dir=${STORAGE\u BUCKET}/data--model\u dir=${STORAGE\u BUCKET}/output--use\u tpu=True--iterations=500--train\u steps=1000--train\u file=${STORAGE\u BUCKET}/data/train.tfrecords
警告:tensorflow:From/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/learn/learn/datasets/base.py:198:retry(From-tensorflow.contrib.learn.python.learn.datasets.base)已被弃用,并将在未来版本中删除。
更新说明:
使用重试模块或类似的替代方案。
回溯(最近一次呼叫最后一次):
文件“/usr/share/models/official/mnist/mnist_tpu.py”,第163行,中
tf.app.run()
文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/platform/app.py”,第126行,正在运行
_系统出口(主(argv))
文件“/usr/share/models/official/mnist/mnist_tpu.py”,主目录第135行
FLAGS.tpu,zone=FLAGS.tpu_zone,project=FLAGS.gcp_project)
文件“/usr/local/lib/python2.7/dist packages/tensorflow/contrib/cluster\u resolver/python/training/tpu\u cluster\u resolver.py”,第128行,在__
self._tpu=compat.as_字节(tpu)#self._tpu始终是字节
文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/util/compat.py”,第68行,以字节为单位
(字节或文本)
TypeError:应为二进制或unicode字符串,没有
我已经验证了TPU_NAME和STORAGE_BUCKET是否设置正确,并且我还验证了我从这个VM看到TPU处于就绪状态,尽管我认为这两个都不会导致这个错误。有人知道我遗漏了什么吗?

请将--tpu_name=$tpu_name标志更改为--tpu=$tpu_name

对此错误表示歉意,因为这是最近的一次内部更改,没有添加到漫游文档中。它正在被纠正


祝你在TPU土地上好运

您的tensorflow版本可能比mnist_tpu.py更新。 您可以在这里尝试这个更新版本的mnist_tpu.py,而使用上面提到的--tpu标志。

谢谢,将两者结合起来确实有效。我在初始设置中还有一个问题,我们项目的默认网络是TPU命令不喜欢的“遗留”网络。一旦我解决了这个问题,并将主机VM放在同一个网络上,再加上上面的更改,MNIST教程就运行得很好。现在开始做更大更好的事情!