Docker环境下如何使用TensorBoard

2022-04-28 13:01:52 浏览数 (1)

使用Docker配置TensorFlow环境

DocKer环境是Linux上启用TensorFlow GPU支持最简单的方法。Docker使用容器创建虚拟环境,将TensorFlow的安装与系统的其余部分隔离开来。TensorFlow程序在虚拟环境中运行,但与主机共享资源(访问目录、使用 GPU、连接到互联网等)。

什么是TensorBoard

TensorFlow可用于训练大规模深度神经网络所需的计算,使用该工具涉及的计算往往复杂而深奥。为了更方便 TensorFlow 程序的理解、调试与优化,我们发布了一套名为 TensorBoard 的可视化工具。您可以用 TensorBoard 来展现 TensorFlow 图,绘制图像生成的定量指标图以及显示附加数据等。

配置TensorBoard环境

配置好TensorFlow环境之后,费劲写了一个模型,训练了几次,Loss一直不降,准备用TensorBoard调试一下,整个配置过程颇费周折。

1、在TensorFlow代码中增加TensorBoard输出内容

细节内容参考官方的TensorBoard Tutorial。

2、将Docker容器的端口号映射到本地主机

通常使用Docker Run命令的 -p 参数将Docker容器内的端口号映射到本地主机。缺省情况下,TensorBoard使用6006端口,所以我们将容器的6006端口映射到主机的6006端口。

代码语言:javascript复制
docker run --runtime=nvidia -it -p 6006:6006 --rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow:latest-gpu bash

3、启动Docker内的TensorBoard

查看Docker的容器的名称和端口映射

代码语言:javascript复制
docker container ls

得到以下信息:

代码语言:javascript复制
$ docker container ls
CONTAINER ID        IMAGE                              COMMAND             CREATED             STATUS              PORTS                              NAMES
8917893898ae        tensorflow/tensorflow:latest-gpu   "bash"              4 hours ago         Up 4 hours          0.0.0.0:6006->6006/tcp, 8888/tcp   naughty_wilson

另启一个Terminal,启动TensorBoard

代码语言:javascript复制
docker exec -it 05ee0d5a5a0e tensorboard --logdir info/

启动成功后得到如下信息:

代码语言:javascript复制
TensorBoard 1.8.0 at http://05ee0d5a5a0e:6006 (Press CTRL C to quit)

4. 在宿主机打开浏览器,查看效果

在浏览器中输入:http://127.0.0.1:6006 或者 localhost:6006, 却得到如下页面:

断断续续在网上找了不少方法,最后找到解决方案,将宿主机网络断开后才可以正常访问TensorBoard页面:

0 人点赞