目前2021年比较流行的神经网络框架我认为是TensorFlow
和PyTorch
,所以我构建了一个简单的docker镜像可以比较容易的生成一个同时具有TensorFlow GPU
版和PyTorch GPU
版的容器环境。为了最大程度的方便使用者,镜像的Dockerfile
文件已经开源到github,而且生成的镜像也已经上传Docker Hub
。
如果您只是为了使用
这里提供了两种方法,第一种方法最为简单和快速:首先下载镜像,然后生成容器。
使用该命令从Docker Hub
下载镜像:
docker pull jingege315/robot:0.1
然后从镜像生成容器:
nvidia-docker container run -dit -v <path_in_local>:<path_host> --name robot_container -p <port_host>:<port_container> --ipc=host jingege315/robot:0.1
如果您希望自己生成镜像,可以从github获取Dockerfile
文件源码,然后构建镜像,之后再生成容器。
使用该命令github获取Dockerfile
文件源码并构建镜像:
git clone https://github.com/jingege315/robot.git
cd robot/docker
docker image build -t jingege315/robot:0.1 .
然后从镜像生成容器(同上):
nvidia-docker container run -dit -v <path_in_local>:<path_host> --name robot_container -p <port_host>:<port_container> --ipc=host jingege315/robot:0.1
更多细节
本镜像包含了很多图像方面的库,也包含一些NLP的库,如果有缺少的常用库,欢迎提交issue。库如下:
- CUDA(version=10.1)
- cuDNN(version=7.4)
- PyTorch(version=1.5)
- TensorFlow(version=2.1.0)
- PyTorch工具包: Fairseq, MMCV, MMDetection, MMSegmentation
- apt安装的工具: git build-essential cmake openssh-server vim lsof net-tools iputils-ping cifs-utils curl tree screen unzip
- conda安装的工具包: numpy matplotlib pandas scipy scikit-learn scikit-image pyqt seaborn cython tqdm sympy numba jupyter_contrib_nbextensions jupytext xgboost psutil jupyter
- pip安装的工具包: opencv-python flask gevent werkzeug h5py torchsummaryX torchsummary thop efficientnet_pytorch catalyst paramiko albumentations jieba
结语
虽然对于熟练使用各种工具的你们搭建一个神经网络GPU框架并不是什么难事,但是对于一个新手,拥有的兴趣热情却经不起复杂过程的折磨,所以我开源了这么一个docker镜像,希望可以最大程度的简化开发的前置工作。
当然本人的汉语和英语写作水平有限,可能存在表述的一些问题,所以如果有什么情况都可以及时交流。欢迎留言和在github提交issue和PR!
最后,如果本文章对您有帮助,请给我的github的这个项目一个star,谢谢!