在 Docker 环境中安装 TensorFlow
要学习 TensorFlow框架,得先在本地搭建环境,但是 TF 本地环境有时很难搭建的起来,因为依赖的包及版本很容易出现问题,所以,这里使用Docker搭建,比使用Conda更容易。
一、下载镜像
默认情况下,我们本地已经安装好了 Docker 环境,然后使用命令拉取 TensorFlow 镜像,这里选取得是tensorflow/tensorflow:latest-py3-jupyter 版本,集成了notebooks,方便我们后边直接编程。
docker pull tensorflow/tensorflow:latest-py3-jupyter
二、启动容器
下载镜像到本地之后,我们使用如下命令创建容器:
docker run -it -v /Users/kaiyiwang/Code/ai/notebooks:/tf/notebooks -p 8888:8888 tensorflow/tensorflow:latest-py3-jupyter
命令说明
- docker run 运行镜像,
- --name 为容器创建别名,
- -it 保留命令行运行,
- -p 8888:8888 将本地的8888端口 http://localhost:8888/ 映射,
- -v
/Users/kaiyiwang/Code/ai/notebooks:/tf/notebooks将本地的/Users/kaiyiwang/Code/ai/notebooks文件夹挂载到新建容器的/tf/notebooks下(这样创建的文件可以保存到本地/Users/kaiyiwang/Code/ai/notebooks) - tensorflow/tensorflow:latest-py3-jupyter为指定的镜像,默认标签为latest-py3-jupyter(即tensorflow/tensorflow:latest-py3-jupyter)
注意:这里映射容器里的路径必须为
/tf/下面的,否则notebooke 打开会找不到对应宿主机的路径。
三、开启TensorFlow容器

可以直接从命令行中右键打开连接,或者在浏览器中输入http://127.0.0.1:8888,然后将命令行中的token粘贴上去。

四、进入容器
我们可以在另一个窗口中查看该容器的进程:
docker ps
结果:
➜ ~ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf9d05e88501 tensorflow/tensorflow:latest-py3-jupyter "bash -c 'source /et…" 9 hours ago Up 9 hours 0.0.0.0:8888->8888/tcp optimistic_elion
我们可以看到该容器的ID前四位是:bf9d,进入到该容器:
sudo docker exec -it bf9d /bin/bash
安装图像包
因为在后期的学习中,我们还需要安装几个需要的包,所以,这里也顺便安装一下:
pip3 install scipy===1.2.1
pip3 install Pillow===6.0.0
注意,这里一定要选对各包的版本,否则会出现一些意想不到的问题,比如如下代码中调用 scipy.misc.imresize 方法进行图片处理,但是会报错,因为版本安装错误。
my_image = scipy.misc.imresize(image, size=(64, 64)).reshape((1, 64 * 64 * 3)).T
异常:
AttributeError: module 'scipy.misc' has no attribute 'imresize'
默认安装的最新版本:
# pip list
Pillow 6.2.1
scipy 1.3.2
需要降版本到:
scipy = 1.2.1
Pillow = 6.0.0
参考文章 TensorFlow官方文档
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)