我正在尝试在谷歌云上的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的正确方式是什么?
发布于 2015-11-21 08:22:10
通过default,TensorBoard在127.0.0.1上服务请求,只有在同一台机器上运行的进程才能访问它。如果您使用--host 0.0.0.0启动TensorBoard,它还将在远程接口上服务请求,因此您应该能够远程连接到它:
$ tensorboard --logdir ./ --host 0.0.0.0请注意,“在自定义端口上打开浏览器窗口”不会将您连接到TensorBoard服务器-此选项用于连接到非标准端口上的服务器。Google Cloud Platform docs包含有关如何从VM公开端口信息。您需要允许TCP端口6006上的连接,才能远程访问您的虚拟机。您可能还需要通过遵循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。(其他值是您可以从Docker容器内连接到TensorBoard的possible.)
(容器)$ tensorboard --logdir./--主机0.0.0.0 --端口6006 &(容器)$ curl http://localhost:6006/
第二个命令应将一些超文本标记语言打印到控制台。
(vm)$ curl http://localhost:7007/
该命令应将相同的超文本标记语言打印到Google Cloud防火墙的console.
(客户端)$ gcloud计算防火墙-规则创建tensorboard --允许tcp:7007
现在,您应该能够在客户端的web浏览器中连接到TensorBoard。
发布于 2017-02-05 14:35:47
您不必使用Docker来显示TensorBoard。但如果你确实想使用Docker,只需在Docker镜像中运行TensorBoard即可。
技巧是允许外部访问默认的TensorBoard tcp端口6006。
我尝试了以下工作解决方案,在我的Google Cloud VM中显示TensorBoard。
gcloud auth login
gcloud计算防火墙-规则创建tensorboard-port --允许tcp:6006
to访问虚拟机外部tensorboard的主板--logdir=workspace/train/
开放地址http://your_vm_external IP:6006/,
例如,http://104.196.140.145:6006/,其中104.196.140.145是我的虚拟机的外部IP地址。


发布于 2018-02-02 12:17:02
另一种选择是使用ngrok进行隧道。请参阅:Can I use Tensorboard with Google Colab?
$ 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)https://stackoverflow.com/questions/33836728
复制相似问题