GitHub新项目Deepo:一键安装11项深度学习框架与环境

673 阅读3分钟
原文链接: mp.weixin.qq.com

选自GitHub

机器之心编译

参与:蒋思源

最近,一项关注于快速构建深度学习环境的 GitHub 项目十分流行,这个名为 Deepo 的项目由一系列 Docker 镜像组成,包含了 TensorFlow、MXNet、Caffe 和 Torch 等 11 个流行的深度学习研究环境。该项目发布一个多月已经有了近 3000 的收藏量,机器之心简要介绍了该项目,更详细的安装步骤请查看原 GitHub 项目。

项目地址:https://github.com/ufoym/deepo

因为 Deepo 是一系列 Docker 镜像,所以它要求先安装 Dokcker 客户端与环境。Docker 主要是希望创建可移植软件的轻量容器,并让这些软件可以在任何安装了 Docker 的机器上运行,而不用关心底层操作系统。所以希望利用该项目安装深度学习环境的读者首先需要了解 Docker。

Deepo 是一系列 Docker 镜像,它的主要特征有:

  • 允许我们快速配置深度学习环境

  • 支持几乎所有常见的深度学习框架

  • 支持 GPU 加速(包括 CUDA 和 cuDNN), 同样在 CPU 中运行良好

  • 支持 Linux(CPU 版和 GPU 版)、OS X(CPU 版)、Windows(CPU 版)

Deepo 的 Dockerfile 生成器主要有以下特征:

  • 允许使用类似乐高那样的模块自定义环境

  • 自动解决依赖项问题

可用的 Tags

快速启动

GPU 版

  • 安装

第一步:安装 Docker 和 nvidia-docker:

Docker:https://docs.docker.com/engine/installation/

nvidia-docker:https://github.com/NVIDIA/nvidia-docker

第二步:使用以下命令行从 Docker Hub 获取 一体式镜像

  1. docker pull ufoym/deepo

  • 用法

现在我们可以尝试使用以下命令:

  1. nvidia-docker run --rm ufoym/deepo nvidia-smi

这个命令应该能令 Deepo 从 Docker 容器中使用 GPU,如果该命令不起作用,那么可以在 nvidia-docker GitHub 项目中搜索 Issues 部分,上面有很多解决方案。为了获得一个和容器交互的 shell,它不会在我们推出后自动删除,我们需要键入:

  1. nvidia-docker run -it ufoym/deepo bash

如果我们希望在主机(机器或虚拟环境)和容器间共享数据和配置,那么可以使用 -v 选项:

  1. nvidia-docker run -it -v /host/data:/data -v /host/config:/config ufoym/deepo bash

该命令会将主机可视的 /host/data 变为容器中的/data,/host/config 作为/config。这种隔离减少了集装箱化试验重写或使用错误数据。

注意有些框架(如 PyTorch)是噢用共享内存以在进程中共享数据,所以如果使用默认的共享内存分区大小,那么容器运行多进程是不够的。因此我们需要使用 nvidi-docker 运行 --ipc=host 或 --shm-size 命令增加共享内存大小。

  1. nvidia-docker run -it --ipc=host ufoym/deepo bash

CPU 版

  • 安装

第一步:安装 Docker

第二步:使用以下命令行从 Docker Hub 获取 一体式镜像

  1. docker pull ufoym/deepo:cpu

  • 用法

现在我们能尝试使用以下命令行:

  1. docker run -it ufoym/deepo:cpu bash

如果我们希望在主机(机器或虚拟环境)和容器间共享数据和配置,那么可以使用 -v 选项:

  1. docker run -it -v /host/data:/data -v /host/config:/config ufoym/deepo:cpu bash

注意有些框架(如 PyTorch)是噢用共享内存以在进程中共享数据,所以如果使用默认的共享内存分区大小,那么容器运行多进程是不够的。因此我们需要使用 nvidi-docker 运行 --ipc=host 或 --shm-size 命令增加共享内存大小。

  1. docker run -it --ipc=host ufoym/deepo:cpu bash

本文为机器之心编译,转载请联系本公众号获得授权

✄------------------------------------------------

加入机器之心(全职记者/实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告&商务合作:bd@jiqizhixin.com