Docker入门——实战图像分类

这篇具有很好参考价值的文章主要介绍了Docker入门——实战图像分类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

思考:

在一个项目的部署阶段,往往需要部署到云服务器或者是终端设备上,而环境的搭建往往是最费时间和精力的,特别是需要保证运行环境一致性,有什么办法可以批量部署相同环境呢?

Docker本质——打包环境;

将本机的环境和代码一同打包在docker环境中,生成一个容器,可以部署到任何服务器和机器下,节省了环境安装的精力并确保了环境的一致性;

二、window安装docker

Window建议安装docker toolbox,因为window家庭版安装docker for window可能会出现不适配情况;

下载地址:https://github.com/docker-archive/toolbox/releases

(多个版本,选择一个版本即可,下载exe版本)

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

安装过程就是无脑安装即可,默认安装在C盘,安装后会出现两个程序,一般使用第一个程序;

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

打开Docker Quickstart Terminal,默认会下载一个最新的镜像,由于网络问题会出现以下问题:

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

这里手动复制下载的地址,在浏览器中下载后放在C:\Users\用户名\ .docker\machine\cache下:

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

重新运行一遍,短暂初始化后出现以下界面,即代表Docker安装成功:

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

接下来就可以实际使用docker来安装一个环境了;

三、配置阿里云加速器

官方容器下载地址:https://hub.docker.com/

官方下载存在一个问题,就是下载速度不够快,这里需要配置以下阿里云加速器;

步骤:

1、登录阿里云平台,找到镜像加速器选项;

网站地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

2、在Docker中配置,执行以下命令:

1.docker-machine ssh default 
2.sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror= 加速器地址|g" /var/lib/boot2docker/profile 
3.exit 
4.docker-machine restart default

在cmd命令行下执行docker info,如出现下面信息表示加速成功;

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

四、下载pytorch镜像

首先在官方hub里面找需要安装的镜像名称;

https://hub.docker.com/r/pytorch/pytorch

这里复制右边的命令到本地docker启动窗口即可,安装完毕后查看docker images即可看到;

启动该镜像:

docker run -it pytorch/pytorch

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

这里可以看出,该镜像自带的系统还是ubuntu,并且已经预装好了python3.7,当然这是一个极简环境,也就是说很多要用的包是没有的,需要自己安装;

比如要安装一个opencv的话,最好用上阿里源进行安装,这样安装速度是最快的;

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

这里镜像已经成功安装了,下面可以跑一个简单的分类案例试试;

五、docker中run一个分类案例

首先需要将本地的项目copy到容器中,在拷贝地址下打开git;

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

后面这一串是容器id和需要拷贝到的文件夹地址(默认会创建)

安装缺少的一些包后,运行一下程序看看能否成功;

这里我们是通过服务部署的方式运行一个模型,所以会看到服务开启的界面:

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

但是我们需要打开另一个docker窗口开执行程序,这里就需要用到新的命令了;

docker exec -it id /bin/bash

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

可以看出我们成功请求并且得到返回结果,到这里可以开始自由的在docker跑自己的程序了,缺什么就安装什么即可!

六、上传自己的docker环境

在阿里云容器管理界面创建一个新的仓库;

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

点击管理会有一些操作命令指示,根据步骤在本机执行即可;

1、登录阿里云Docker Registry
docker login --username= registry.cn-hangzhou.aliyuncs.com
2、将镜像推送到Registry
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/..../pytorch:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/.../pytorch:[镜像版本号]

Docker入门——实战图像分类,实用技巧,算法部署,docker,容器,运维,计算机视觉,python

这里显示已经正在上传中,镜像文件比较大,需要的时间比较长;

七、Docker的一些进阶操作

在使用Jeston jx1开发版时候,使用docker配置GPU环境需要操作复杂一些,这里简单讲述下;

首先就是将本机的Nvidia环境映射到docker容器中;

docker run --runtime nvidia -it 【容器id】 /bin/bash

这里runtime超参数可以将本机的CUDA的环境,一些动态库直接映射到容器中去,在使用的时候也遇到一些问题,就是映射并没有完全成功,其原因找了很久,最后在ubuntu下重新安装一遍nvidia-docker这个包解决了,遇到问题的可以试试,这时候容器中的nvcc版本就是和本机一致的;

下一步就是将本机的一些数据或模型映射到容器中,虽然也可以用docker cp命令将文件copy到容器中,但如果大的数据集这个时间会花费很长,采用映射的方式是最方便快捷的,并且生成的新的图像也可以在本机上直接访问,不需要来回传输;

docker run -it --rm --runtime nvidia -v 【容器文件路径】:/【本机文件路径】 【容器ID】 /bin/bash

还有一些进阶使用,比如如何在docker中使用摄像头,如何在docker运行带图形化的界面程序,在这里就不具体讲解了,如果有需要的可以查阅一下文档;

总结

本篇Docker入门文章并没有具体讲解Docker的一些底层原理,而是从实际使用的角度出发,用一个图像分类的案例讲述了如何拉取镜像并使用,如何上传自己的镜像供他人使用;

如果有一些问题或者想法的话欢迎私信探讨!

最后放最爱的小企鹅!文章来源地址https://www.toymoban.com/news/detail-654436.html

到了这里,关于Docker入门——实战图像分类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker入门——实战图像分类

    思考: 在一个项目的部署阶段,往往需要部署到云服务器或者是终端设备上,而环境的搭建往往是最费时间和精力的,特别是需要保证运行环境一致性,有什么办法可以批量部署相同环境呢? Docker本质——打包环境; 将本机的环境和代码一同打包在docker环境中,生成一个容

    2024年02月12日
    浏览(28)
  • 手机技巧:分享10个vivo手机实用小技巧技巧,值得收藏

    目录 1. 快速切换应用 2、智能助手Jovi 3. 轻按唤醒屏幕 4. 快速启动相机 5. 分屏功能 6. 手势操作 7. 一键清理 8.忘记密码 9.玩游戏耗电快 10.手机丢失后该怎么办 向右或向左滑动底部的虚拟按键即可。 vivo手机自带智能助手Jovi,可以根据用户的使用习惯,提供个性化的建议和推

    2024年02月02日
    浏览(67)
  • Greenplum实用技巧

    gp_segment_id是表中的隐藏列,用来标记该行属于哪个segment节点。因此可以基于该隐藏列进行分组查询,获取每个segment的记录数,从而判断表数据的分布是否均匀或有倾斜。 gp_segment_configuration是一张系统表,它维护包括master、standby在内的所有节点信息。是DBA了解集群最直观的

    2024年02月11日
    浏览(58)
  • chrome-实用技巧

    重发请求,这有一种简单到发指的方式 选中 Network 点击 Fetch/XHR 选择要重新发送的请求 右键选择 Replay XHR  但是经过实际使用调研,发现它只适用于axios或类似方式使用xhr api,则XHR仍在重放,但是,如果使用新的api fetch,则需要使用其他方法,如下:  此方式还可以直接修改

    2024年02月05日
    浏览(57)
  • Pandas实用技巧

    首先我们需要先提前下载好 示例数据集 : drinksbycountry.csv : http://bit.ly/drinksbycountry imdbratings.csv : http://bit.ly/imdbratings chiporders.csv : http://bit.ly/chiporders smallstockers.csv : http://bit.ly/smallstocks kaggletrain.csv : http://bit.ly/kaggletrain uforeports.csv : http://bit.ly/uforeports 有时你需要知道正在使用的

    2024年02月10日
    浏览(65)
  • AI绘画高效实用技巧

    如何调整整体占画面比例的问题 首先看看主要镜头类型: 广角镜头 (10mm至35mm) 拍全身 标准镜头 (35mm至85mm) 半身照 特写镜头 (85mm至300mm) 抓细节 以全画幅135为例: 20mm以下的称之为超广角镜头 21mm~40mm焦距称之为广角镜头 41mm~60mm焦距称之为标准镜头 61mm~100mm焦距称之为中焦镜头

    2024年02月11日
    浏览(65)
  • Gitlab CICD实用技巧汇总

    1、stage参数 stages:   - build   - test   - deploy 相同stage的作业会并行执行,有一个失败,则认为这个stage失败。 不同stage的作业会按序执行,前面stage有失败,后续stage不会继续执行。 可以使用needs参数改变不同stage之间的依赖关系。 2、cache参数 cache 是一种用于存储和重用构建产

    2024年02月06日
    浏览(65)
  • Navicat16实用小技巧

    数据库管理工具是一种用于管理数据库的软件工具,它可以帮助用户创建、修改、维护和查询数据库。数据库管理工具可以为用户提供可视化界面,使得管理数据库变得更加容易。最为一款数据库管理工具,需要具备一下功能: 数据库创建和配置:数据库管理工具可以帮助用

    2024年02月04日
    浏览(48)
  • C#非常实用的技巧

    .NET Framework 4.5以上版本: .NET Framework 4以下 虽然微软的net提供了很多解压和压缩的程序,但是如果你的系统是net Framework4,那上面的代码就用不了了,此时需要借用7za.exe 1.0 C# 解压文件 解压解释: -y 参数表示 \\\"yes to all\\\",即自动回答 \\\"yes\\\",也就是在出现任何提示时都自动选择

    2024年02月01日
    浏览(55)
  • 实用调试技巧(1)

    什么是bug? 调试是什么?有多重要? debug和release的介绍。 windows环境调试介绍。 一些调试的实例。 如何写出好(易于调试)的代码。 编程常见的错误。 什么是Bug 我们在写代码的时候遇到的一些问题而导致程序出问题的就是Bug,世界上的第一个Bug是一支飞蛾,这就是Bug的由

    2024年02月14日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包