使用docker配置pytorch环境

从零配置pytorch深度学习环境

这是我第一次使用docker来搭建深度学习环境,docker真的强大,不会存在使用anaconda那样出现不兼容的情况(之前在我的ubuntu16.04下,想要同时配置pytorch和tensorflow的gpu版本,可是cuda不兼容。因此这次尝试使用docker。docker通过拉取镜像(如pytorch),再生成容器,在容器内可以执行pip命令来安装各种所需要的包,最后还需要重新生成镜像,然后再pycharm中就可以直接使用啦,非常方便。

安装docker

参考:参考博客

安装nvidia docker

# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# 如果还是不能使用gpu 执行如下命令
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

参考:参考博客

安装完docker和nvidia docker 我们就可以愉快的配置想要的环境啦。下面以拉取pytorch镜像作为实例演示!

# 1.拉取镜像文件 使用docker pull 或者 直接使用docker run 运行一个容器(如果本地没有相关镜像文件就会直接拉取,如果有就使用本地的)。我这里直接使用docker run
# -v参数表示宿主主机和所运行的容器的映射关系,一定要搞清楚,后续配置pycharm也需要!
sudo docker run --name ECO --gpus all -it -v $PWD:/home pytorch/pytorch:1.5.1-cuda10.1-cudnn7-devel bash

以上命令就能够运行一个容器,接下来我们可以在该容器内执行pip命令来安装所需要的包。完成之后我们将使用如下命令生成一个新的镜像:

docker commit 镜像id 自定义印象名字(注意要小写)

配置pycharm

接下来我们就可以直接指定pycharm里的python解释器为我们刚创建好的docker镜像,就可以直接训练我们的模型啦
1.
使用docker配置pytorch环境_第1张图片
参考博客:参考博客

上面的这一步一定要确保出现Connection successful!否则是不能正确配置的!
我一开始的时候报错:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon run
百度上 有的人说需要重启docker,但是这招好像对我不太管用。我是参考以下博客解决的:
参考博客

2.指定python解释器
使用docker配置pytorch环境_第2张图片通过以上 就可以使用docker生成的镜像作为我们的解释器来训练我们的模型啦

-------------------------------------------------手动分割线-----------------------------------------------
回顾一下关于docker的几个命令
docker pull :拉取镜像(可通过tag灵活拉取)
docker run 运:行容器
docker ps :打印目前正在运行的容器
docker rm 容器id :删除运行容器
docker rmi 镜像id:删除本地镜像
docker commit 容器id 自定义镜像名:将该容器生成镜像

向docker容器内添加path环境变量:

  • 更新$HOME目录的.bashrc文件并保存(vi /~.bashrc)
  • 添加路径(export PATH=/opt/conda/lib/python3.7/site-packages/cv2/qt/plugins/platforms/libqxcb.so:$PATH)

验证该容器是否添加path环境变量成功:

  • 输入命令env,若PATH内存在刚刚添加的变量,则成功。

你可能感兴趣的:(深度学习环境配置,深度学习,pytorch)