我的编程空间,编程开发者的网络收藏夹
学习永远不晚

docker在深度学习任务中的应用是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

docker在深度学习任务中的应用是什么

本篇内容主要讲解“docker在深度学习任务中的应用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker在深度学习任务中的应用是什么”吧!

1 软件安装之痛

Docker是一种容器技术,它就像一个沙盒把应用程序隔离开来,不管有没有遇到过你至少听到某些应用程序不能兼容,最常见的就是升级某个系统,老版本跟新版本不能兼容,必须把老版本完全卸载掉。比如说oracle服务,如果把oracle安装到物理主机上,如果需要升级那将会比较痛苦。再比如说新手学习各种软件,apache、mysql、Python搞的电脑上乱七八糟的环境,想要重新安装都很痛苦。 

2 docker出现

有没有一种技术能够把这个环境隔离开?有那就是虚拟机,如果你为了一个小服务单独开一个虚拟机是不是太奢侈?这时候docker出现了,docker是一种容器区别于虚拟机,使用docker你可以打包发布运行任何应用程序,如果你经常碰到开发环境与生产环境不一致,或者经常需要配置复杂的环境,那你就可以考虑使用它,“它是一处打包到处运行“。再介绍一个使用环境,那就是我们熟悉的云,很常见我们经常去阿里云、腾讯云购买服务器,当我们使用的时候完全就是一个物理主机的状态,与其他服务器完全隔离,这些大厂不会为了一个用户单独开启一个虚拟机,因为太奢侈。而容器就不一样,用多少分配多少,如果虚拟机占用10G资源,而可能有9G是空余出来的,而容器如果占用的10G那么它就可能只空余出来1G或者更少。按照笔者的理解,容器仅仅隔离应用程序,而其他资源是容器间共享的,虚拟机是一种完全霸占的状态(个人理解)。 

3 运行机制

下图是介绍docker运行机制,可以看出应用程序在相互独立的同时,分享物理机的资源

docker在深度学习任务中的应用是什么

Docker最先是一种开源产品,现在有了社区版和企业版docker-ce与docker-ee。社区版基本已经满足我们。

笔者强烈推荐docker一个原因,那就是可以共享环境,只要有一个人把复杂的环境配置并打包成镜像,类似git一样,commit一个版本,那么其他人就可以直接使用这个环境,而不需要做任何配置,减少人力物力不说,还霸道的使得所有人的生产环境一致。

正是这个原因,我想到了入门机器学习时候,需要配置caffe/tensorflow,并且cuda版本号要对应上,cuda与cudnn版本也要对应上。当时就设想能不能使用docker来解决这个问题,遗憾的是不行,docker无法使用GPU。

但是办法总比困难多,docker又发布出一个插件nvidia-docker,nvidia-docker是基于docker安装的,可以使得深度学习任务也能隔离开,这就意味着,我可以在一台物理主机上跑各种框架的深度学习任务,环境随机配,你开心就好。唯一的限制就是物理机上的cuda版本号要与docker容器中的cuda版本号一致,我觉得这个要求不过分。

下图是nvidia-docker的运行机制,我们可以看到他们直接的层次结构。应用程序共享GPU,且被隔离开。

docker在深度学习任务中的应用是什么

 

4 安装步骤

安装docker这里不再累赘,官网安装地址: 

https://docs.docker.com/install/linux/docker-ce/ubuntu/。

nvidia-docker 安装官网地址:

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

现在我需要一个ubuntu16.04+cuda9.2+cudnn7的开发环境,我可以选择下载镜像再去配置各种驱动,安装cuda、安装cudnn。但是我要秀一下更“懒的方式”。

在docker hub里面查询cuda9.2,找到星星最多的一个镜像

docker在深度学习任务中的应用是什么

docker在深度学习任务中的应用是什么

里面很多镜像,我找到一个符合我自己要求的。

docker在深度学习任务中的应用是什么

拉取镜像:sudo docker pull nvidia/cuda:9.2-cudnn7-runtime-ubuntu16.04

查看拉取的镜像:sudo docker ps

docker在深度学习任务中的应用是什么

基于这个镜像启动容器:

sudo nvidia-docker run -ti nvidia/cuda:9.2-cudnn7-runtime-ubuntu16.04 bash

docker在深度学习任务中的应用是什么

现在我已经进来了,完全就是一个干净的开发环境,等下,看看显卡驱动配置好了没。

docker在深度学习任务中的应用是什么

开心的不行,如果你对版本没有这个高的要求,那我们来github里面找找看看还有什么镜像,搜索 tensoflow.

docker在深度学习任务中的应用是什么

到此,相信大家对“docker在深度学习任务中的应用是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

docker在深度学习任务中的应用是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

docker在深度学习任务中的应用是什么

本篇内容主要讲解“docker在深度学习任务中的应用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker在深度学习任务中的应用是什么”吧!1 软件安装之痛Docker是一种容器技术,
2023-06-19

Golang在深度学习框架中的应用探索

go 在深度学习框架中的应用包括:模型训练:利用 go 的并发性和高效性训练复杂模型。模型推理:利用 go 的简洁性和效率部署和评估预训练模型。数据预处理和增强:使用 go 处理和增强机器学习数据。模型评估和筛选:使用 go 评估模型性能并
Golang在深度学习框架中的应用探索
2024-05-12

深度学习TensorFlow框架的作用是什么

深度学习TensorFlow框架的作用是用于构建、训练和部署机器学习和深度学习模型。TensorFlow是一个开源的机器学习框架,提供了丰富的工具和库,使得开发者可以更轻松地实现各种类型的神经网络模型。TensorFlow框架可以帮助开发者
2023-09-21

Go 协程在人工智能和机器学习中的应用是什么?

go 协程在人工智能和机器学习领域的应用包括:实时训练和预测:并行处理任务,提高性能。并行超参数优化:同时探索不同设置,加快训练。分布式计算:轻松分布任务,利用云或集群优势。Go 协程在人工智能和机器学习中的应用Go 协程是一种轻量级线程
Go 协程在人工智能和机器学习中的应用是什么?
2024-05-21

并发编程在人工智能和机器学习中的应用是什么?

并发编程在人工智能和机器学习中的应用并发编程是指允许多个任务或线程同时执行的能力。在人工智能(AI)和机器学习(ML)领域,并发编程至关重要,因为它允许同时执行多个计算密集型任务,从而显著提升性能和效率。实战案例:并行神经网络训练神经
并发编程在人工智能和机器学习中的应用是什么?
2024-05-07

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录