首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google Cloud上的Docker上查看Tensorboard

在Google Cloud上的Docker上查看Tensorboard
EN

Stack Overflow用户
提问于 2015-11-21 05:56:57
回答 3查看 14.1K关注 0票数 13

我正在尝试在谷歌云上的Docker上显示来自TensorFlow的TensorBoard。

http://tensorflow.org/how_tos/summaries_and_tensorboard/index.md

tensorboard --logdir ./

我有运行在Google Cloud上的Apache (它可能在我的第一个容器"ai-unicorn“Docker做了自己的容器"docker-playground")。我可以在http://104.197.119.57/上看到谷歌云的默认页面。

我在谷歌云上启动TensorBoard,如下所示:

root@6cf64fd299f0:/# tensorboard --logdir ./ Starting TensorBoard on port 6006 (You can navigate to http://localhost:6006)

我使用端口6006尝试了名为“在自定义端口上的浏览器窗口中打开”的Google Cloud SSH选项。

它显示:“我们无法连接到端口6006上的VM。”

从谷歌云查看TensorBoard的正确方式是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-21 08:22:10

通过default,TensorBoard在127.0.0.1上服务请求,只有在同一台机器上运行的进程才能访问它。如果您使用--host 0.0.0.0启动TensorBoard,它还将在远程接口上服务请求,因此您应该能够远程连接到它:

代码语言:javascript
复制
$ tensorboard --logdir ./ --host 0.0.0.0

请注意,“在自定义端口上打开浏览器窗口”不会将您连接到TensorBoard服务器-此选项用于连接到非标准端口上的服务器。Google Cloud Platform docs包含有关如何从VM公开端口信息。您需要允许TCP端口6006上的连接,才能远程访问您的虚拟机。您可能还需要通过遵循instructions here从Docker容器公开端口6006。

Docker编辑:添加了一些分步说明来帮助您进行配置。这里有几个问题,不可能区分哪一个是失败的。

  1. 在启动Docker容器时配置端口转发:

(vm)$ docker run -p 0.0.0.0:7007:6006 -it b.gcr.io/tensorflow/tensorflow

这会将连接从VM上的端口7007转发到Docker容器中的6006。(其他值是您可以从Docker容器内连接到TensorBoard的possible.)

  • Ensure:

(容器)$ tensorboard --logdir./--主机0.0.0.0 --端口6006 &(容器)$ curl http://localhost:6006/

第二个命令应将一些超文本标记语言打印到控制台。

  • 在VM上的shell中,请确保您可以连接到在容器中运行的TensorBoard实例:

(vm)$ curl http://localhost:7007/

该命令应将相同的超文本标记语言打印到Google Cloud防火墙的console.

  • Configure,以允许本地客户端连接到VM上的端口7007。

(客户端)$ gcloud计算防火墙-规则创建tensorboard --允许tcp:7007

现在,您应该能够在客户端的web浏览器中连接到TensorBoard。

票数 26
EN

Stack Overflow用户

发布于 2017-02-05 14:35:47

您不必使用Docker来显示TensorBoard。但如果你确实想使用Docker,只需在Docker镜像中运行TensorBoard即可。

技巧是允许外部访问默认的TensorBoard tcp端口6006。

我尝试了以下工作解决方案,在我的Google Cloud VM中显示TensorBoard。

  1. 确保通过gcloud认证:

gcloud auth login

  • 允许公共访问tcp端口6006

gcloud计算防火墙-规则创建tensorboard-port --允许tcp:6006

  • 在虚拟机上运行TensorBoard

to访问虚拟机外部tensorboard的主板--logdir=workspace/train/

  • Use外部IP地址:

开放地址http://your_vm_external IP:6006/,

例如,http://104.196.140.145:6006/,其中104.196.140.145是我的虚拟机的外部IP地址。

票数 11
EN

Stack Overflow用户

发布于 2018-02-02 12:17:02

另一种选择是使用ngrok进行隧道。请参阅:Can I use Tensorboard with Google Colab?

代码语言:javascript
复制
$ from jupyter notebook
ps = !ps -ax
is_tensorboard_running = len([f for f in ps if "tensorboard" in f ]) > 0

is_ngrok_running = len([f for f in ps if "ngrok" in f ]) > 0
print("tensorbord={}, ngrok={}".format(is_tensorboard_running, is_ngrok_running))

if not is_ngrok_running:  
#    grok should be installed in /content/ngrok
  get_ipython().system_raw('/content/ngrok http 6006 &')
  is_ngrok_running = True

# get public url for tensorboard
tensorboard_url = !curl -s http://localhost:4040/api/tunnels | python3 -c \
    "import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])"    
print("tensorboard url=", tensorboard_url)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33836728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档