部署深度学习APP的经历(docker,streamlit cloud,nuitka)

这篇具有很好参考价值的文章主要介绍了部署深度学习APP的经历(docker,streamlit cloud,nuitka)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

部署深度学习APP的经历

部署深度学习APP的经历(docker,streamlit cloud,nuitka),预测模型研发管理,深度学习,docker,人工智能
最近,接到一个部署深度学习APP的需求,这个APP使用torch、monai和pydicom等库构建了一个识别CT图像中皮下脂肪、内脏脂肪和骨骼肌,输入是CT图像,输出是识别的图像和相关数据。接手的时候,核心的算法已经制作完成,仅是需要我构建GUI并将其部署到某种途径上,实现其应用。

一、Docker

背景知识:

Docker是一种容器化技术,其中最核心的概念是Docker镜像(Docker image)和Docker容器(Docker container)。Docker镜像是一个只读的模板,它包括了软件运行所需要的所有文件和配置。可以把Docker镜像理解为一个“应用程序的代码库”,它可以被用来创建多个Docker容器。Docker镜像使用“分层”的方式构建,每个分层都是一个文件系统的修改,因此Docker镜像的构建和推送可以大大加速。Docker容器是Docker镜像的运行实例,也就是容器化的应用程序。每个Docker容器包含了一个完整的运行时环境,包括应用程序、运行时库、系统工具和系统环境变量等。Docker容器可以被创建、启动、停止、删除等,它的生命周期跟随着应用程序的需要而改变。Docker容器中的文件系统是“可写”的,所以应用程序可以在容器内进行修改和保存数据。总的来说,Docker镜像是应用程序的静态部分,而Docker容器是应用程序的动态部分。Docker镜像可以被共享、推送、拉取,而Docker容器是可以运行、停止和删除的。

Docker 的分享应该不是问题,但是用户的机器上需要安装docker等支持软件,还是比软件复杂一些。

部署过程:

1.使用的是pysimplegui 来构建的用户界面。输入是图片的路径,输出是标记的图片和计算的指标(数字)。
2. 安装并设置X11 图形服务器,windows的是xming和VcXsrv,后者是免费的,下载安装即可,设置上情况保持默认即可,有一个需要注意的地方是需要勾选“Disable access control”,允许其他软件连接。
3. 安装docker并制作image:撰写Dockerfile (没有后缀),requirements.txt 将需要安装的python库都安装到里面, 然后就能打包。
4. 运行image,运行的时候需要额外的参数,以便使docker 于X11连接,实现图形显示。

部署结果:

软件可以运行,中文显示为乱码,尺寸较大8G,运行流畅。

顺利程度:

非常顺利

二、streamlit cloud

背景知识:

Streamlit是一个基于Python的开源框架,可以帮助数据科学家快速地搭建数据应用程序。Streamlit不需要编写HTML、CSS或JavaScript,因为它提供了一个Python库,可以让用户通过编写Python代码来构建数据应用程序。Streamlit还提供了一个简单易用的Web界面,可以让数据科学家直接在浏览器中查看和使用他们的应用程序。

Streamlit可以用于快速原型设计或生成交互式仪表板。它的特点是易于学习、易于使用、快速调试和交互式应用开发。Streamlit的应用范围非常广泛,可以用于构建数据分析、机器学习、自然语言处理、计算机视觉等各种类型的应用程序。

部署过程

对照官网的说明文档,建立github文件夹,添加requirements.txt写明需要导入的库,因为之前有一些基础(曾经部署过一个简单的APP),几乎没有遇见什么问题,编译过程也非常快,期间落了一个itk库,仅修改了requirements.txt,重新打开APP即可,最终成功在本地运行并部署到streamlit cloud上。

部署结果

运行速度可以,编译迅速,容易维护修改,也便于传播。

顺利程度

非常顺利

三、打包成本地运行的软件

1. pyinstaller

背景知识

PyInstaller是一个用于将Python应用程序打包成单个可执行文件的工具。它可以自动检测应用程序所依赖的库和模块,并将它们全部打包进可执行文件中,从而使得应用程序在不同的机器上运行时不需要再安装依赖项。PyInstaller支持Windows、Linux和Mac OS X等平台,并支持各种Python版本(包括Python 2和Python 3)。

使用PyInstaller可以轻松地将Python编写的应用程序打包成单个可执行文件,这使得应用程序的部署和分发变得更加方便。另外,PyInstaller还支持各种高级功能,如加密、压缩、自定义图标、自定义启动脚本等。因此,在开发和分发Python应用程序时,PyInstaller是一个非常有用的工具。

部署过程

pyinstaller 是最先接触的一个python打包软件,之前也有过成功打包的经验。使用conda新建立一个新的虚拟环境,安装必要的库并保证程序在本地可运行。打包。

部署结果

打包过程虽然可以完成,但是库导入的问题,软件不能启动,连个影都没有,可以通过concole来观察哪里报错,编译时间较长,最后遇到一个不能解决的问题。

顺利程度

未完成,已经放弃

2. nuitka

背景知识

Nuitka是一种用于Python的优化编译器,它将Python代码转换为本地C代码,并通过C编译器将其编译为本地可执行文件。这使得Python程序的性能得到大幅提升,通常可以比原始Python代码快3到5倍。而且,由于生成的代码是本地C语言,因此它可以与任何C/C++库集成,并且可以通过静态链接或动态链接库的方式进行部署。

除了增强Python程序的性能和可扩展性之外,Nuitka还提供了对Python 2.6,2.7,3.2,3.3,3.4,3.5,3.6,3.7和3.8的完全支持。此外,它还支持Python的标准库和第三方库,可以与其它Python工具和框架无缝集成,如Django,Flask,NumPy等。由于其高性能和易用性,Nuitka正成为越来越多Python开发者的选择。

部署过程

类似于pyinstaller,命令行中几个需要注意添加的参数, 导入外部文件的命令,像图片,模型,自己编写的库(.py);导入某些库的命令,可以根据错误提示进行; tk-inter plugin,这里使用pysimple构建的GUI,需要导入这个。

部署结果

成功打包软件,大小约4G。

顺利程度

基本顺利,没有遇到不明所以的问题。

总结,python打包多数途径都很靠谱。
部署深度学习APP的经历(docker,streamlit cloud,nuitka),预测模型研发管理,深度学习,docker,人工智能文章来源地址https://www.toymoban.com/news/detail-531703.html

到了这里,关于部署深度学习APP的经历(docker,streamlit cloud,nuitka)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于Docker的深度学习环境NVIDIA和CUDA部署以及WSL和linux镜像问题

    docker的介绍网上有很多,对于深度学习的认来讲,docker的好处就是直接把环境分享给他人,他人不需要再配置环境了。 比如我有一个目标检测的项目,我想分享给朋友,那么他首先需要在自己的电脑上配置好显卡驱动、CUDA、CuDNN,在拿到我的项目后,还需要安装各种依赖库,

    2024年02月05日
    浏览(44)
  • K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署(ubuntu环境+gpu3080+3主机+部署深度学习模型)

    0、k8s安装、docker安装 参考:前两步Ubuntu云原生环境安装,docker+k8s+kubeedge(亲测好用)_爱吃关东煮的博客-CSDN博客_ubantu部署kubeedge  配置节点gpu: K8S调用GPU资源配置指南_思影影思的博客-CSDN博客_k8s 使用gpu 1、重置和清除旧工程:每个节点主机都要运行 2、部署新的k8s项目:

    2023年04月20日
    浏览(62)
  • wlan-cloud-ucentral docker 服务器部署

    docker.io安装 解决docker权限问题 1、添加docker的group(如果已经存在,请无视) 2、添加当前用户到docker group中 3、重启Docker服务 4、退出当前用户,重新进入(否则不生效) 导入docker-compose到本地 链接:https://pan.baidu.com/s/1inl1GNGh7OLtIvKX6Yvz7A 提取码:i86o 并修改权限 导入tar文件到

    2024年02月05日
    浏览(35)
  • Docker容器化部署若依微服务ruoyi-cloud项目

    接下来的内容以 Ubuntu 22.04.1 操作系统为例。 验证版本信息 Note: 在 CentOS7 上使用上述 yum 方式安装的 Docker ,默认自带了Docker Compose Plugin,不过命令是 docker compose 。 docker pull docker run docker images docker ps docker logs docker start docker stop docker restart docker rmi docker rm docker exec docker netwo

    2024年02月04日
    浏览(44)
  • 【docker快速部署微服务若依管理系统(RuoYi-Cloud)】

    工作原因,需要一个比较完整的开源项目测试本公司产品。偶然发现RuoYi-Cloud非常适合,它有足够多的中间件,而且官方提供docker安装,但我本人在安装过程中遇到了很多坑,在这里记录一下防止下次会再次遇到。 https://gitee.com/y_project/RuoYi-Cloud 内存至少16G,处理器至少4核 内

    2024年02月09日
    浏览(55)
  • streamlit部署发布应用

    streamlit很好用,可以快速搭建app。 更有趣的是,还可以发布应用,真是一站式解决方案啊。 今天尝试了一把,流程简单,非常nice。 1. 代码传到github 1.1 首先在github上建立账号,然后在本机上安装git类的工具。本人是linux系统,直接apt-get install git即可。 1.2 使用github的账号在

    2024年02月04日
    浏览(53)
  • 深度比较Python Streamlit和Gradio,谁是真正的利器?

    📚 个人网站:ipengtao.com 在构建交互式应用时,选择一个合适的库对于提高开发效率和用户体验至关重要。本文将深入探讨两个流行的Python库,Streamlit和Gradio,从特点、使用方法、定制化程度以及部署分享等方面进行详细对比,并通过丰富的示例代码帮助大家更好地理解它们

    2024年01月23日
    浏览(50)
  • 点云算法好书推荐(3D Point Cloud Analysis 传统、深度学习和可解释的机器学习方法)附下载链接

    书籍介绍: 本书介绍了点云;它在工业中的应用,以及最常用的数据集。它主要关注三个计算机视觉任务——点云分类、分割和配准——这是任何基于点云的系统的基础。对传统点云处理方法的概述有助于读者快速建立背景知识,而对点云方法的深度学习包括对过去几年的突

    2024年02月12日
    浏览(46)
  • streamlit——搭建作业、文件上传网站(代码编写、服务器部署)

    由于我平时需要收集 各种类型的作业文件 。但传统的微信收文件方式很让我头大,假如我们班级有39人,那么我需要接收39个人的消息文件,并 另存到本地某文件夹 下,还需要帮不规范的 命名进行修改 。 后来我尝试过使用Flask编写上传文件,并部署到服务器上。不仅速度很

    2024年02月10日
    浏览(57)
  • IoT DC3 是一个基于 Spring Cloud 全开源物联网平台 linux docker部署傻瓜化步骤

    如有不了解可先参考我的另一篇文章本地部署:IoT DC3 是一个基于 Spring Cloud 的开源的、分布式的物联网(IoT)平台本地部署步骤 如有不了解可先参考我的另一篇文章本地部署: 1 环境准备: JDK 8 以上 docker 安装好 下载docker-compose-dev.yml 文件 执行基础环境docker安装 测试前要修改本地

    2024年01月19日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包