如何将 Docker 容器和 Docker Compose 用于深度学习应用程序

了解如何使用 Docker 容器化深度学习模型。从容器背后的基本概念开始,使用 Docker 打包 Tensorflow 应用程序,并使用 Docker compose 组合多个图像

来源:AI夏令营

如今,容器已成为开发和部署应用程序的标准方式,Docker 和 Kubernetes 占据了主导地位。这在机器学习中尤其如此,而且理由非常充分!容器提供了灵活性,可以以最小的开销尝试不同的框架、版本和 GPU。此外,它们消除了开发和生产环境之间的差异,与虚拟机相比,它们重量轻,并且可以轻松扩大或缩小。

在本文中,我们将使用 Docker 容器化我们的深度学习应用程序。我们的应用程序由执行图像分割的 Tensorflow 模型、Flask、用于服务目的的 uWSGI 和用于负载平衡的 Nginx 组成。对于那些还没有关注过本系列文章的人,我建议看看以前的文章。

执行图像分割的 Tensorflow 模型 Flask uWSGI 用于服务目的,Nginx 用于负载平衡

为此,我们将构建一个 Docker 镜像来打包我们的深度学习/Flask 代码,一个 Nginx 镜像,然后我们将使用 Docker Compose 将它们组合起来。我确信有些人并不完全理解这意味着什么,所以我希望通过这篇文章让他们明白。

如果这一切听起来让你感兴趣,那就希望如此。请记住,我们的最终目标是将我们的模型部署到云中并将其扩展到数百万用户。

将其扩展到数百万用户

什么是容器?

容器是软件的标准单元,它将代码及其所有依赖项打包在一起,以便应用程序可以在一个计算环境到另一个计算环境之间快速可靠地运行。

容器是软件的标准单元,它将代码及其所有依赖项打包在一起,以便应用程序能够从一个计算环境快速可靠地运行到另一个计算环境。

打包代码及其所有依赖项

这意味着我们可以在任何环境中运行完全相同的软件,而不受操作系统和硬件的限制。

虚拟机

什么是 Docker?

$ docker run - : / : /