使用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页面: