天下苦tf-gpu+cuda+cudnn久矣!
每次拿到一个新的代码,就要花时间配环境,因为代码的tf版本不同,对cuda和cudnn的版本要求也不同,而服务器上的cuda版本一般是固定的,所以基本上所有代码都要在虚拟机docker中运行
近期由于饱受环境配置的折磨,总结出一套比较好用的配置方法。
docker hub + miniconda + pip + ssh
1.安装docker、nvidia-docker
安装nvidia-docker(需要docker、nvidia-driver)
2.确定cuda、cudnn、gcc版本
点击查看tf-gpu和cuda、cudnn、gcc的版本对应
注意gcc和g++版本也要合适,虽然不知道为什么,但是既然有要求,就改了吧
调整gcc版本网上教程很多,这里就不赘述了
3.搜索合适的docker镜像
找到自己需要的镜像,如果能找到带合适的tf-gpu版本的镜像就更好啦~
点击镜像标题
点击复制按钮,将镜像拉取到服务器
4.安装镜像,启动容器
在服务器中执行:
docker images # 查看刚才拉取到的镜像的id
nvidia-docker run -dit 镜像ID bash # 以守护方式运行镜像,容器退出后不会销毁
docker ps # 查看刚才生成的容器
docker exec -it 容器ID bash #以命令行的方式与容器交互
5.在容器中安装Miniconda3
在容器中安装miniconda,容器可以看作一个有预配置的linux虚拟机
安装conda后如果conda命令找不到,请自行搜索解决~
网上很多解决方案,一般是没有将conda路径写入path或者执行soource deactivate 退出默认的bash环境接可以啦
6.安装适合版本的python环境
# 创建
conda create -n env_name python=3.xx/2.xx
# 激活
conda activate env_name
7.conda 或 pip 安装需要的包
使用conda和pip视情况而定,安装的包可以通用