不同深度学习框架使用虚拟环境(virtualenv,docker)

写这篇博客,主要是每次都要想把书签放到哪里去了,所以将笔记记在这里吧。

0.环境

ubuntu16.04

1.tensorflow、keras、pytorch可以使用virtualenv

用的比较好的一篇博客中的方法:

https://www.jianshu.com/p/6bf33e479753

新建虚拟环境、激活虚拟环境、关闭虚拟环境、删除虚拟环境。

  windows下:

打开cmd
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
virtualenv env
cd env/Scripts/
activate
关闭的话:
deactivate

  ubuntu下: 

打开terminal
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
virtualenv env
cd env
source ./bin/activate
关闭的话:
deactivate

2.caffe使用docker

此处将要学习。

3.tensorflow使用docker

3.1 首次创建虚拟环境和容器  

当我们需要编译tensorflow的时候,可以自己使用docker创建tensorflow的虚拟环境。由于服务器上已经安装了docker,所以直接使用下面命令将镜像拉到服务器上:

docker pull tensorflow/tensorflow:1.12.0-gpu-py3

完成上面步骤,其实就已经创建了tensorflow的虚拟环境了。使用docker images查看镜像:

docker images

新建一个sh文件,然后运行就好了。(sh ./your_sh.sh) 

#!/bin/bash
nvidia-docker run -m 8GB -it --net=host \
		-v 实际物理被映射的目录:虚拟目录 \
		--name (我的容器名称,可以随便定义,但是不能重复) tensorflow/tensorflow:1.12.0-gpu-py3 /bin/bash


例子:

#!/bin/bash
nvidia-docker run -m 8GB -it --net=host \
		-v /home/tensorflow/:/opt/tensorflow/ \
		--name tf_test tensorflow/tensorflow:1.12.0-gpu-py3 /bin/bash

 nvidia-docker:表示是使用的GPU;

-v 前:后:后者的虚拟地址,对应的就是前面的实际物理被映射的目录;也就是说当我们使用上面语句创建我们句子的容器以后,切换到虚拟目录下,里面的文件与文件夹都是实际物理被映射的目录下的。

3.2 退出当前容器

单个终端时:
exit

多个终端时:
docker container stop

3.2 再次进入指定容器

 以上面我写过的例子为例的话,就是下面这样了。

单个终端时:
docker start 我的容器
docker attach 我的容器
使用上述的即使打开多个终端进入同一个容器,但是显示的仍然会是相同的内容

例子:
docker start tf_test
docker attach tf_test

  运行完上面两句,才算真正的进入容器了,就会进入到我的容器的(root)用户下, docker创建的虚拟环境有自己的root用户,这样就不用担心会破坏服务器里的环境啦~

3.3 单个容器打开多个终端

多个终端时:
首先使用docker ps显示运行的容器ID
docker exec -it contrainer_ID /bin/bash

运行上述命令后,显示如下,不会跟这个容器下打开的终端同步显示了,意味着,我可以在单个容器下,做其他的事情了。 实现在单个容器打开多个不一样的终端。

参考

1.使用Python虚拟环境

2.如何打开多个终端进入Docker容器

3.docker-从入门到实践

猜你喜欢

转载自blog.csdn.net/qq_35975447/article/details/105981955
今日推荐