docker 训练深度学习_Docker:把深度学习装进“口袋”

2023-11-09

熟悉深度学习开发框架的朋友都知道,”caffe“的安装麻烦、耗时长,而且很容易因为电脑环境没有配置好导致错误。每次有新同事来,我们都要在他电脑上安装一遍”caffe“,经常会因为电脑环境而不断报错。

目前TensorFlow受到很多深度学习开发者的追捧,很可惜,当下TensorFlow没有mac版本,所以每次要使用TensorFlow开发时,需要去连接远端服务器,而且还不能调试,操作不灵活。

这个时候,我们想到了Docker。

很多人喜欢说Docker是一种虚拟机,我不喜欢这个说法。虚拟机给人的第一印象是笨重、占内存大。相比于一般意义上的虚拟机,Docker更像是一个轻量级的应用管理工具。Docker像是微信平台,Docker上的应用便是小程序。当然,这个比喻只是想说明Docker的轻量化,也有一些不准确,微信小程序是对原始程序进行了”瘦身“,Docker是对应用依赖的操作系统进行了“瘦身”。

如果你要在虚拟机上安装Windows系统下的功能,你需要安装整个Windows系统文件,可能要好几个G,而在Docker下,安装Windows系统的内核,也就几十兆。

我们将TensorFlow、caffe、pytorch、Keras等常用的工具集成到Docker镜像中,每次需要在新机器上安装这些工具时,只需要安装Docker,再把Docker镜像拷贝安装即可,无需重新配置工具所需的运行环境。

Docker镜像是依赖于Docker环境的应用安装包,Docker容器是应用。Docker的官方文档称:docker镜像是类,docker容器是对象。这也就意味着在docker上可以有很多个一模一样的容器,这些容器之间是相互独立的。就好比现在很多手机上的“应用分身”功能,一个手机上有两个微信,登录着不同的账号,且同时运转,相互没有干扰。

Docker镜像有很多种构建方法,你可以在已有的容器中安装新的功能,将它保存成镜像,也可以通过Dockerfile去构建镜像。Dockerfile是用来生成镜像的文件。我们将写好的Dockerfile发送到Docker cloud 让第三方去生成镜像,最后一个命令 “docker pull image_name”即可。

在使用了Docker之后,我可以在Mac上使用TensorFlow的CPU版本进行开发调试,最后将没有bug的程序放在远端服务器借助GPU处理以提高效率。在之前没有Docker的情况下,只能在远端开发,效率很低。

最近在进行烟囱识别(在遥感影像上标识出有烟囱的地方)的工作中,便是用到了Docker,我将带有TensorFlow(CPU版本)的镜像‘pull’到本地之后,生成容器,将pycharm连接到容器,在容器中编辑、运行和调试深度学习的程序。

但是有一个新问题,docker和GPU的问题,直接使用docker运行的容器是不能调用GPU的,因为docker的镜像是脱离硬件的,而cuda的安装必须依赖于硬件,所以在镜像中无法安装cuda。利用GPU处理图像的深度学习问题是高效的,而且每个深度学习的框架工具也是支持GPU模式的。为了解决这个问题,英伟达公司发布了nvidia-docker。下图为nvidia-docker的技术框架。

英伟达通过nvidia-docker解决了容器中深度学习框架工具使用GPU的问题。这样我们便可使用GPU来处理深度学习的程序。

欢迎从GeoHey获取地理和位置相关的数据、知识、服务

长按关注公众号

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker 训练深度学习_Docker:把深度学习装进“口袋” 的相关文章

  • 2020年最常见的25个Web开发面试问题

    Java面试笔试面经 Java技术每天学习一点 Java面试 关注不迷路 作者 Team Codegiant 译者 王强 策划 李俊辰 本文最初发布于 Medium 网站 经原作者授权由 InfoQ 中文站翻译并分享 你把闹钟设定在了下午
  • 软件测试值不值得学,2023软件测试行情分析

    目录 1 人们的生活离不开软件 有软件的地方就有测试 2 测试工程师特别是自动化测试工程师的需求会越来越大 3 软件测试经验越丰富越受欢迎 不存在35岁限制 4 所有新兴行业比如chat gtp 车载系统等都需要测试工程师 薪资 就业 软件
  • Office2010安装步骤

    这是一篇我自己写于17年8月27日的office2010的安装教程 发现挺多人都不会安装或者激活 所以特地写了这篇文 安装office2010前请确保电脑中没有安装其它版本的office软件 否则可能造成两个版本的office不能正常使用
  • MATLAB:矩阵(基础知识)

    一 数组的创建和操作 1 矩阵的输入 gt gt A A gt gt B 6 5 3 B 6 5 3 gt gt C B C 6 5 3 2 调用矩阵 gt gt A 1 2 3 4 5 A 1 2 3 4 5 gt gt a1 A 1 访
  • kvm设置桥接网卡

    kvm默认的网卡模式为nat 虚拟主机可访问外网 但外部无法访问虚拟主机 将其改为桥接模式以实现内外互通 环境 centos6图形界面下 有virtual machine manager 程序 整个过程就两步 1 修改物理机网卡为桥接模式
  • SpringBoot报错:Cannot call isReadOnlyBeforeAttachedToSession when isReadOnlySettingAvailable == true

    错误后边会说明哪个实体类导致的 在实体类上加上 Proxy lazy false
  • Apache Beam实战指南

    https mp weixin qq com s biz MzU1NDA4NjU2MA mid 2247492538 idx 2 sn 9a2bd9fe2d7fd681c10ebd368ef81c9c chksm fbea5a75cc9dd
  • [原创]LoadRunner 12.02 录制脚本时提示无Internet访问,如何解决?

    在使用LoadRunner 12 02 进行录制脚本时提示无Internet访问 如下图 翻译中文如下 可以尝试以下方式解决 点击弹出框中的 Yes 即可 若还是有问题 尝试以下方式 1 LR12走的是证书机制 你按照我附件 图片1 中提供
  • springboot集成springsecurity + jwt的使用

    当项目中要用到用户的认证及权限的时候我们一般会使用 springSecurity来解决 引入 引入很简单
  • 学习若依框架----之----获取登录登录系统、ip、浏览器信息

    文章目录 1 导入需要用到的依赖 2 IP获取 3 AddressUtils 获取地址类 4 登录日志管理工具 4 SpringUtils获取bean工具 5 客户端工具 6 使用 7 测试 8 数据库记录 若依里面 创建登录日志是根据异步
  • USDT信用卡和转账入账接口

    class Usdtpay public function index data this gt request gt param uid data uid token data token type data type changeid
  • 经验模态分解(EMD)

    目录 1 背景 2 时间序列平稳性 3 EMD 方法 4 EMD 过程 5 EMD 方法的缺陷 6 Python 1 背景 实际工程测量中由于测量系统受外界环境影响经常在测量信号中产生趋势项 趋势项是指信号中周期大于采样长度的频率成分 通常
  • Unity内存与资源管理

    内存管理是程序开发的核心问题 而资源的使用又与内存息息相关 因此本章想要梳理整个开发流程中Unity对于内存与资源的管理方式 一 内存基础 1 1 基础概念 内存是暂时存放CPU中的运算数据 与硬盘等外部存储器交换的数据 在操作系统中 内存
  • R语言产生随机数

    R语言中有4个产生随机数的函数 dunif 指定随机数密度 punif 指定随机数的分布类型 qunif 指定quantile function runif 产生随机分布的散点 如果需要指定随机数的类型 可用以下几个函数 round 四舍五
  • kubernetes deploy standalone mysql demo

    文章目录 deployment mysql standalone statefulset mysql standalone helm install mysql standalone deployment mysql standalone
  • mac连接linux报错Unable to negotiate with port 22: no matching host key type found. Their offer: ssh-rsa,

    mac 使用ssh连接linux服务器报错 Unable to negotiate with 10 254 8 211 port 22 no matching host key type found Their offer ssh rsa
  • 软件测试怎么去介绍一个项目的测试流程?

    1 自我介绍 以XXX简历来举例 参照下面的案例 编写你的自我介绍 框架就是 我是谁 我做过什么 我能做什么 我来的目的是什么 面试官您好 我叫 毕业之后进入河北东软软件有限公司从事软件测试方面的工作 一开始从底层做起 在工作中逐渐接触和学
  • shell脚本启动jar包示例

    这里主要为shell脚本启动部署在服务器中jar包 bin bash 这里可替换为你自己的执行程序 其他代码无需更改 APP NAME demo jar 使用说明 用来提示输入参数 usage echo Usage sh demo sh s
  • 数据结构和算法(1)-----稀疏数组

    一 实际需求 编写的五子棋程序中 有存盘退出和继续上盘的功能 分析问题 因为该二维数组的很多值是默认值0 因此记录了很多没有意思的数据 如何在计算机中高效的存储这样的二维数组是一个需要考虑的问题 二 基本介绍 当一个数组中大部分元素为0 或

随机推荐

  • CTF.show:web6

    登陆窗 先想到sql注入 抓包测试发现失败 利用 代替空格进行绕过 username admin or 1 1 password 123456 利用联合查询找到回显位置 username admin or 1 1 union select
  • IDispose

    需要为本类提供DISPOSE函数的情况 1 从IDispose继承 2 有成员对象实现了IDispose 3 本类有包装本机资源 需要在回收对象堆内存前进行释放 Dispose函数并不会将托管对象从托管堆删除 只会回收内部的本机资源
  • 万向锁的理解

    万向锁 万向锁这个概念其实还是不大好理解的 看了很多的博客 虽然看起来他们讲的很有道理 可还是想不通 希望我这篇文章能讲清楚 万向锁产生的根本原因是绕三个轴的旋转不是同时进行的 想象一下我们旋转矩阵的推导是不是绕三个轴的旋转矩阵乘起来得到的
  • 测试用例设计白皮书--测试用例设计综合策略

    测试用例设计白皮书 测试用例设计综合策略 Author Vince 来源 http blog csdn net vincetest 1 Myers提出了使用各种测试方法的综合策略 1 在任何情况下都必须使用边界值分析方法 经验表明用这种方法
  • 微信小程序-SOA架构(17年1月)

    微信小程序 顾名思义 它有两个方面的含义 重点在小 也就是不用安装就能使用的意思 另一个重点 它是应用程序 它和公众号绑定在一起使用 从用户角度去看 它是各种APP的替代品 有了它以后 不再需要安装APP 作为IT人员 更多的是从工程思维的
  • Snort搭建以及规则编写

    目录 Snort IDS Snort搭建 安装web服务 方便设置sonrt后期访问 Mysql安装 PHP安装 安装 Snort Snort配置 创建snort专用的用户和组 配置目录 配置规则 修改配置文件 规则编写 Snort IDS
  • QGIS二次开发02:交互动作实现

    地图交互动作就是通过鼠标操作与地图间的互动 动作包括按下 press 按键弹起 release 鼠标移动 move 双击等等 QGIS实现地图的交互主要是通过继承QgsMapTool这个类实现 目前集成了QgsMapToolZoom 拉框缩
  • 数据结构---堆的构建和堆排序(向下、向上调整算法)

    一 建堆 1 堆的概念及性质 如果有一个关键码的集合 K k0 k1 k2 kn 1 把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中 并满足 Ki lt K2 i 1 且 Ki lt K2 i 2 Ki gt K2 i 1 且
  • 七大排序知识点

    目录 1 稳定性 2 冒泡排序 3 插入排序 3 1 折半插入排序 4 希尔排序 5 选择排序 6 堆排序 7 快速排序 挖坑法 8 归并排序 9 海量数据的排序问题 1 稳定性 两个相等的数据 如果经过排序后 排序算法能保证其相对位置不发
  • JSON与MODEL互转

    HYBJSONModel h Json2ModelDemo Created by huangyibiao on 14 9 15 Copyright c 2014年 Home All rights reserved import
  • R语言-线性回归实例(包括所有源码)

    题目描述 目录 一 身高体重 1 身高和体重的散点图 先肉眼观察来判断使用什么模型 2 画出拟合后的线性函数与散点图背景对比 3 对该模型的分析 4 置信区间分析和假设检验 5 多图像分析 二 不良贷款 三 污染 1 以二氧化硫排放量 吨
  • (四)现代计算机系统的层次结构

    程序执行结果 不仅取决于算法 程序的编写 而且取决于语言处理系统 操作系统 ISA 微体系结构 不同计算机课程处于不同层次 必须将各层析关联起来解决问题 功能转换 上层是下层的抽象 下层时上层的实现 地位为上层提供支撑环境 计算机系统的不同
  • install chrome

    1 2 wget https dl google com linux direct google chrome stable current i386 deb 没试用过 3 4 wget https dl google com linux
  • ADS学习:Smith Chart Utility使用说明

    打开方式 原理图界面 Tools Smith Chart Utility 功能分区 1 菜单栏 2 工具栏 3 作图区 4 频率响应区
  • 【报告分享】完美日记品牌分析报告.pdf(附68页pdf全文下载链接)

    今天给大家分享的是上海语析信息咨询有限公司于2020年4月份发布的 完美日记品牌分析报告 pdf 该报告由上海交通大学海外教育学院中国商业发展研究所作为学术指导 报告共包含如下五大部分 1 完美日记品牌故事 2 完美日记营销分析 3 完美日
  • 苹果手机屏幕如何投射到win10?

    说起家庭娱乐 大多数人想到的一定是电脑 手机 亦或者是电视 其中每天陪伴的必定有手机 我们很少再使用电视去看影视作品 取而代之的是各大视频网站 比如腾讯 爱奇艺 优酷等 而不需再等候 黄金七点半 很多人一定会把会员在手机端登录 因此想在电脑
  • 川大计算机信息安全基础试题,信息安全概论考试试题..doc

    四川大学2014年春季软件工程研究生班考试试题 课程名称 信息安全概论 任课教师 琚生根 学生人数 印题份数 学号 姓名 考 试 须 知 四川大学学生参加由学校组织或由学校承办的各级各类考试 必须严格执行 四川大学考试工作管理办法 和 四川
  • 泛微E-Mobile 6.0远程命令执行漏洞

    前言 本次测试仅供学习使用 如若非法他用 与本文作者无关 需自行负责 漏洞描述 Weaver E Mobile是中国泛微科技 Weaver 公司的一个协同办公系统 E Mobile6最新版是上海泛微网络科技推出的一款手机办公应用 将企业微信
  • 纯 CSS 实现高度与宽度成比例的效果

    HTML p class image container img src xxx png p CSS p image container width 100 height 0 padding bottom 60 overflow hidde
  • docker 训练深度学习_Docker:把深度学习装进“口袋”

    熟悉深度学习开发框架的朋友都知道 caffe 的安装麻烦 耗时长 而且很容易因为电脑环境没有配置好导致错误 每次有新同事来 我们都要在他电脑上安装一遍 caffe 经常会因为电脑环境而不断报错 目前TensorFlow受到很多深度学习开发者