我正在尝试在Google Cloud上的Docker上显示TensorFlow的TensorBoard。
http://tensorflow.org/how_tos/summaries_and_tensorboard/index.mdtensorboard --logdir ./
我在Apache Cloud上运行了Apache(它可能是在我的第一个容器“ai-unicorn”中,Docker自己创建了容器“docker-playground”)。
我可以在http://104.197.119.57/上从Google Cloud查看默认页面。
我像这样在Google Cloud上启动TensorBoard:root@6cf64fd299f0:/# tensorboard --logdir ./Starting TensorBoard on port 6006(You can navigate to http://localhost:6006)
我尝试使用端口6006调用名为“在自定义端口的浏览器窗口中打开”的Google Cloud SSH选项。
它显示:
“我们无法在端口6006上连接到VM。”
从Google Cloud查看TensorBoard的正确方法是什么?
最佳答案
TensorBoard通过default在127.0.0.1
上处理请求,该请求只能由在同一台计算机上运行的进程访问。如果您使用--host 0.0.0.0
启动TensorBoard,它还将在远程接口(interface)上处理请求,因此您应该能够远程连接到它:
$ tensorboard --logdir ./ --host 0.0.0.0
请注意,“在自定义端口上的浏览器窗口中打开”将不会将您连接到TensorBoard服务器-此选项用于在非标准端口上连接到SSH服务器。 Google Cloud Platform docs包含有关如何从VM公开端口的信息。您将需要允许TCP端口6006上的连接以远程访问您的VM。您可能还需要通过遵循instructions here来从Docker容器中公开端口6006。
编辑:添加了一些分步说明来帮助您配置Docker。这里有几个问题,无法确定哪个是失败的。
(vm)$ docker run -p 0.0.0.0:7007:6006 -it b.gcr.io/tensorflow/tensorflow
这会将连接从VM上的端口7007转发到Docker容器中的6006。 (其他值是可能的。)
(container)$ tensorboard --logdir ./ --host 0.0.0.0 --port 6006 &
(container)$ curl http://localhost:6006/
第二个命令应将一些HTML打印到控制台。
(vm)$ curl http://localhost:7007/
该命令应将相同的HTML打印到控制台。
(client)$ gcloud compute firewall-rules create tensorboard --allow tcp:7007
您现在应该可以在客户端的Web浏览器中连接到TensorBoard。
关于docker - 在Google Cloud上的Docker上查看Tensorboard,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33836728/