摘要: 数据科学家使用GPU来提高TensorFlow的计算速度,但GPU价格昂贵,也需要对其所占用的资源进行认真的管理。本文将带你来一起解决这一问题。

在过去的几个月中,我和多个企业的数据科学团队进行了多次合作,也看到越来越多的机器学习和深度学习框架被广泛应用到实际生活中。

与大数据分析和数据科学中的其他用例一样,这些团队希望在BlueData EPIC软件平台上的Docker容器中运行他们最喜欢的深度学习框架和工具。因此,我的一部分工作就是尝试使用这些新工具,确保在我们的平台上能够运行,并且能够帮助这些团队开发出可以解决一些问题的新的功能。

TensorFlow是深度学习和机器学习最流行的开源框架之一。TensorFlow最初是由Google研究团队开发的并致力于解决深度神经网络的机器学习研究。另外,TensorFlow也适用于许多其他应用场景:图像识别,自由文本数据的自然语言处理以及威胁检测和监视等。

“TensorFlow是一个用于对一系列任务进行机器学习的开源软件库,它是一个构建和训练神经网络来检测、解读模式和相关性的系统,它与人类学习和推理相似(但不一样)。”——维基百科

TensorFlow可以在各种异构系统(包括CPU和GPU)上对计算资源进行合理分配。与我合作过的几个数据科学团队使用GPU来提高TensorFlow的计算速度,但GPU价格昂贵,他们需要对TensorFlow所占用的资源进行认真的管理。

部署TensorFlow的注意事项

以下是部署数据科学应用程序和TensorFlow时的一些注意事项(尤其是在企业大规模部署时更应该注意):

1.如何对部署的复杂性进行管理,例如在OS,内核库和TensorFlow不同版本之间进行部署。

2.如何在作业期间支持创建临时集群。

3.如何隔离正在使用的资源并阻止同时队同一资源的访问请求。

4.如何在共享的多租户环境中对GPU和CPU资源进行管理和分配。

BlueData EPIC软件平台就可以解决这些问题,它能够按照数据科学团队的需要访问各种不同的大数据分析、数据科学、机器学习和深度学习工具。在一个灵活、弹性和安全的多租户架构中使用Docker容器,BDaaS(Big-Data-as-a-Service)软件平台可以支持大规模分布式数据科学和深度学习用例。

BlueData的最新版本可以支持启动采用GPU加速的集群,并且支持TensorFlow在GPU或Intel架构的CPU上进行深度学习。数据科学家可以在BlueData EPIC软件平台上启动即时TensorFlow集群在Docker容器上进行深度学习。BlueData支持在Intel Xeon硬件和Intel MKL上运行基于CPU的TensorFlow,也支持采用NVIDIA CUDA库、CUDA扩展以及用于Docker容器的字符设备映射的基于GPU的TensorFlow。

BlueData EPIC软件平台可以为TensorFlow提供自助服务、弹性和安全环境,无论是在本地、公共云还是在二者的混合结构中都拥有同样的界面,不管其底层架构多么不同,用户都会有相同的用户体验。

如下图所示,用户可以像用于其他大数据分析、数据科学和机器学习环境一样,能够很容易地将带有BigDL的即时TensorFlow集群在BlueData软件平台上进行深度学习。并且,用户可以指定在TensorFlow运行的Docker容器放置在有GPU还是CPU配置的基础架构,以及在公共云还是在本地。

按需创建TensorFlow集群

在BlueData EPIC软件平台上,用户只需点击几下鼠标即可根据自己的需求创建TensorFlow群集。BlueData的最新版本引入主机标签,用户可以创建具有主机标记的基于GPU或CPU的TensorFlow集群,这些主机标记为特定工作负载指定所需要的硬件,如下图所示。

一旦创建完成,TensorFlow集群将拥有一个或多个Docker容器节点,这些Docker容器使用TensorFlow软件和相应的GPU和/或CPU加速库进行部署。例如,基于GPU的TensorFlow群集将在Docker容器内具有NVIDIA CUDA和CUDA扩展;而基于CPU的TensorFlow群集则在Docker容器中具有Intel MKL和Jupyter Notebook扩展。

高效的GPU资源管理

GPU和特定的CPU通常不会作为Docker容器的独立资源。BlueData EPIC软件平台通过在所有主机上管理GPU的共享池并在群集创建期间将GPU所请求的数量分配给群集来处理此问题。这种排他性(或隔离性)保证了对深度学习作业的服务质量,并防止多个处理作业尝试同时访问同一资源。

对于今天的大多数企业来说,GPU是一种需要有效利用的高端资源。当一个集群没有在使用或完成一项作业时,BlueData EPIC软件平台可以停止该集群使用并将GPU分配给其他正在使用的集群。 这允许用户在不同的租户环境中创建多个集群,并且仅仅在集群需要时才使用GPU,而不需要删除或重新创建群集群。还有一种机制,即在作业期间创建一个群集作为暂时性集群。

提高用户生产力

一旦TensorFlow集群创建完成,用户可以使用AD / LDAP控制的SSH启用容器并保护Jupyter Notebook。

为了进行验证和测试,TensorFlow集群默认包含Jupyter Notebook,用例如下图所示。

上图来自于GitHub回购。这些源码和教程可供用户使用,并可以立即投入应用中去。

在BlueData EPIC软件平台上使用TensorFlow库和图表绘制的MNIST数据集的输入数字图像的重建示例如下图所示。

根据输入图像和模型(使用TensorFlow GradientDescentOptimizer训练)提取数据集和模型预测如下图所示:

对输入图像和输出预测结果的对比如下图所示:

对运行的TensorFlow集群更新

随着新的库和软件包不断被推出,数据科学团队的需求也在不断的变化,因此BlueData EPIC软件平台提供了一种称为“操作脚本”的机制,该机制允许用户使用新的库和软件包对正在运行集群的所有节点进行更新。在长时间运行的交互或批处理作业中,用户还可以使用基于Web的UI或RESTful API将Python作业提交。

作者:【方向】

点此查看原文: http://click.aliyun.com/m/43284/

识别以下二维码,干货:


使用TensorFlow,GPU和Docker容器进行深度学习相关推荐

  1. 3月13日云栖精选夜读:通过阿里云容器服务深度学习解决方案上手Caffe+多GPU训练

    阿里云容器服务提供的深度学习解决方案内置了对Tensorflow, Keras, MXnet框架的环境,并支持基于它们的深度学习模型开发.模型训练和模型预测.同时,对于模型训练和预测,用户还可以通过指 ...

  2. 3月13日云栖精选夜读:通过阿里云容器服务深度学习解决方案上手Caffe+多GPU训练...

    阿里云容器服务提供的深度学习解决方案内置了对Tensorflow, Keras, MXnet框架的环境,并支持基于它们的深度学习模型开发.模型训练和模型预测.同时,对于模型训练和预测,用户还可以通过指 ...

  3. Docker入门指南:基于 docker 搭建机器学习/深度学习开发环境

    实际工作中,许多项目开发需要在Linux服务器上进行,本文为习惯使用 Windows 操作系统的朋友介绍一种基于Docker的,跨平台.便携性(方便移植.重新部署.可远程访问)的开发环境搭建方法. 1 ...

  4. 使用TensorFlow.js在浏览器中进行深度学习入门

    目录 设置TensorFlow.js 创建训练数据 检查点 定义神经网络模型 训练AI 测试结果 终点线 内存使用注意事项 下一步是什么?狗和披萨? 下载TensorFlowJS示例-6.1 MB T ...

  5. AMD将推出7纳米GPU Vega,专为深度学习和机器学习打造

    内容来源:ATYUN AI平台 AMD今天在Computex上为其下一代7纳米GPU Vega草拟了高级的数据中心计划.综合了AMD在个人电脑上花费一个半小时的展示,显然7纳米Vega终于瞄准了高性能 ...

  6. 使用TensorFlow进行股票价格预测的简单深度学习模型

    使用TensorFlow进行股票价格预测的简单深度学习模型(翻译) 原文链接:https://medium.com/mlreview/a-simple-deep-learning-model-for- ...

  7. TEF(Tensorflow Extend Framework):大规模推荐系统深度学习解决方案

    背景 Tensorflow是目前使用最广泛的深度学习解决方案,但是在面对高维稀疏数据的场景(如广告,推荐,搜索等)下,有些力不从心,有以下几点缺点: 参数必须以固定维度的矩阵形式提前分配(训练开始前) ...

  8. 使用AWS最便宜的GPU实例  from 动手学深度学习v2 李沐大神

    使用AWS最便宜的GPU实例  from 动手学深度学习v2 李沐大神 视频链接https://www.bilibili.com/video/BV1MA411L78X?t=493 由于购买的电脑没有配 ...

  9. 安装使用NVIDIA-Docker——可使用GPU的Docker容器

    参考网址: https://www.cnblogs.com/wuchangsoft/p/9767074.html nvidia-docker是一个可以使用GPU的docker,nvidia-docke ...

最新文章

  1. lvs后端realserver的vip管理脚本lvs-realsvr.sh
  2. 进阶学习(3.3) Abstract Factory Pattern 抽象工厂模式
  3. 靠一强过Excel的工具,3年变成女领导,还把报表做成养老工作
  4. anjular.js读取数据库数据调用实例
  5. C++的类型强制转换,static_cast,dynamic_cast,const_cast,reinterpret_cast
  6. JavaWeb 简单实现客户信息管理系统
  7. LeetCode 707
  8. 专注于Win7系统清除附带推广和工具
  9. 稳坐青梅零食第一宝座,溜溜梅凭什么?
  10. 《Implicit Class-Conditioned Domain Alignment for Unsupervised Domain Adaptation》
  11. 如何选择正确的Node框架:Express,Koa还是Hapi?
  12. kaldi中文语音识别thchs30模型训练
  13. 联想ThinkBook 16+ 2023款 评测
  14. OBS Studio显示器捕获黑屏的解决方法
  15. 青少年编程究竟应该从什么语言学起?
  16. 关于烧饼游戏修改器的分析
  17. etax导入账户不让勾选_勾选认证详解及常见问题分析
  18. 计算机组成原理与结构
  19. Socket中send()函数和recv()函数详解
  20. 双耳节拍 枕头_枕头2015年报告

热门文章

  1. leetcode 3 --- 无重复字符的最长子串
  2. android 判断 string 是否是字母数字,Android中判断字符串中必须包含字母或者数字...
  3. android给数组添加新元素_重磅!超详细的 JS 数组方法整理出来了
  4. python一些简单操作_python列表的基本操作有哪些
  5. svn mysql认证_SVN基于MySQL认证
  6. axis2 默认端口_使用axis2创建webservice
  7. PPT下载下来是php,用php下载jpg,doc,ppt文件已损坏
  8. php购票排位_PHP基于双向链表与排序操作实现的会员排名功能示例
  9. 董明珠的“接班人”出现了!这个22岁的小姑娘,凭什么?
  10. 人一生中最该看清的5个真相