轻松部署算法到网页端应用:Gradio+HuggingFace

这篇具有很好参考价值的文章主要介绍了轻松部署算法到网页端应用:Gradio+HuggingFace。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

计算机视觉和图像处理的算法具有直观的实用性。作为算法研发人员,将自己的算法部署到网页端的UI接口供大家使用是一件很妙的事。但这个简单的愿望涉及到前后端知识而且需要购买域名,技术复杂且不免费。这里我将介绍一种简单且免费的方案供大家参考。
👉样例项目:可交互的上色Demo

Part 1: 界面设计库Gradio

Gradio是MIT的开源项目,使用时可理解为一个Python包,它的安装命令:pip install gradio。使用Gradio,通过少量的几行Python代码就能自动化生成交互式web页面,并支持多种输入输出格式,图像加载/显示框、文本框、各类按钮等常见控件。同时,还支持生成能外部网络访问的链接,能够迅速让非技术人员体验你的算法。

1. 小试牛刀: 彩图灰度化算法
import gradio as gr
import cv2

def to_black(image):
    output = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    return output

interface = gr.Interface(fn=to_black, inputs="image", outputs="image")
interface.launch(server_name='127.0.0.1',server_port=7788)

运行这个简单的代码文件,就能实现一个本地静态交互页面。在浏览器输入http://127.0.0.1:7788/就能看到如下的页面:

轻松部署算法到网页端应用:Gradio+HuggingFace
2. 高阶用法

设计符合自己要求的界面需要了解各种控件的用法,建议参考Gradio官方文档。相比高度封装的Interface类,Blocks类更基础一些,提供了更大的设计灵活性。Blocks类具有多个数据流和样式,可以控制组件在页面上出现的位置,处理复杂的数据流,以及根据用户交互更新组件的属性或者组件可见性。

这里提供一个已成功部署的样例项目:可交互的上色Demo,请参考其UI构建文件app.py


Part 2:在线托管平台HuggingFace

在本地测试完成后,接下来就是考虑如何将程序发布到在线平台的问题了。HuggingFace提供了一个项目托管平台,而且能免费提供如Google Colab的在线计算资源。在使用以下服务前,请先注册账号(官网界面右上角"Sign Up")。

1. 在线计算空间:Space

在HuggingFace官网登录账号后,切换到Spaces创建一个新的空间。记得选中"Gradio"和"Public",以生成一个可公开使用的Gradio在线应用。每个项目空间免费配备8个CPU核和16GB 运行内存,而GPU资源需要单独付费。更多关于Spaces的介绍请参考官方文档。
创建完Space之后,我们需要把本地项目文件(UI构建文件必须得命名成app.py且位于根目录)上传到该空间。具体方法与Github项目的上传和版本维护方式完全一样。

  • 克隆space项目到本地:git clone https://huggingface.co/spaces/your_account/proj_name/tree/main
  • 将本地已跑通的项目文件复制到刚才克隆的space项目文件夹。
  • 新建描述运行环境依赖的文件:requirements.txt指定Python依赖的包;packages.txt指定特殊的系统依赖配置。详情参考。
  • 将此更新同步到远程仓库:
    git add -A .
    git commit -m "add project files"
    git push
    

完成以上步骤后(等待1~2分钟系统刷新),进入Space项目的App选项卡即可查看部署到web端的应用。


2. 模型托管仓库:Models

如果我们运行的程序是AI模型,那么一般需要提供一个训练好的checkpoint(一般上百兆)供在线加载。这时,我们可以在HuggingFace的Models页面创建一个与Space项目同名的模型仓库,用于存储需要的checkpoint等文件。文章来源地址https://www.toymoban.com/news/detail-416692.html

  • 上传文件:通过上文提到的git方式,或者直接点击已创建的模型页面的Add file
  • 获取文件路径:例如上传到模型仓库的文件路径是:https://huggingface.co/menghanxia/disco/tree/main/model.pth.tar,其对应的下载路径则需要将tree修改为resolve,即https://huggingface.co/menghanxia/disco/resolve/main/disco-beta.pth.tar
  • 在Space项目的app.py文件中调用文件下载命令:
    os.system("wget https://huggingface.co/menghanxia/disco/resolve/main/disco-beta.pth.rar")
    
⭐参考资料
  1. Gradio文档:https://www.gradio.app/docs/
  2. Spaces文档:https://huggingface.co/docs/hub/spaces、
  3. CSDN博文:https://blog.csdn.net/SoulmateY/article/details/117327898

到了这里,关于轻松部署算法到网页端应用:Gradio+HuggingFace的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Gradio部署应用到服务器不能正常访问

    用Gradio部署一个基于ChatGLM-6B的应用,发布到团队的服务器上(局域网,公网不能访问),我将gradio应用发布到服务器的9001端口 但是通过个人电脑的浏览器访问服务器显示拒绝连接。  之后,我又修改了share=True,Gradio返回了一个类似这样的地址,通过这个地址还是访问不到应

    2024年02月07日
    浏览(89)
  • [python] 基于Gradio可视化部署机器学习应用

    Gradio是一个开源的Python库,用于构建机器学习和数据科学演示应用。有了Gradio,你可以围绕你的机器学习模型或数据科学工作流程快速创建一个简单漂亮的用户界面。Gradio适用于以下情况: 为客户/合作者/用户/学生演示你的机器学习模型。 通过自动共享链接快速部署你的模

    2023年04月09日
    浏览(53)
  • Gradio入门到进阶全网最详细教程[二]:快速搭建AI算法可视化部署演示(侧重参数详解和案例实践)

    相关文章:Gradio入门到进阶全网最详细教程[一]:快速搭建AI算法可视化部署演示(侧重项目搭建和案例分享) 在教程一中主要侧重讲解gradio的基础模块搭建以及demo展示,本篇文章则会侧重实际任务的搭建。 保持一贯作风简单展示一下如何使用 gradio的核心是它的gr.Interface函数,

    2023年04月26日
    浏览(54)
  • Gradio入门到进阶全网最详细教程[一]:快速搭建AI算法可视化部署演示(侧重项目搭建和案例分享)

    常用的两款AI可视化交互应用比较: Gradio Gradio的优势在于易用性,代码结构相比Streamlit简单,只需简单定义输入和输出接口即可快速构建简单的交互页面,更轻松部署模型。适合场景相对简单,想要快速部署应用的开发者。便于分享:gradio可以在启动应用时设置share=True参数

    2023年04月25日
    浏览(46)
  • 使用KubeSphere轻松部署Bookinfo应用

    这个示例部署了一个用于演示多种 Istio 特性的应用,该应用由四个单独的微服务构成。 如安装了 Istio,说明已安装 Bookinfo。 这个应用模仿在线书店的一个分类,显示一本书的信息。 页面上会显示一本书的描述,书籍的细节(ISBN、页数等),及书评。 Bookinfo 应用分为四个单

    2024年02月03日
    浏览(50)
  • 非常火爆的ChatGPT 一键轻松拥有自己专属的 ChatGPT 网页服务,支持跨平台 ChatGPT 应用 (Web / PWA / Linux / Win / MacOS)

    非常火爆的A well-designed cross-platform ChatGPT UI (Web / PWA / Linux / Win / MacOS). 一键拥有你自己的跨平台 ChatGPT 应用。 这个开源项目可以做到一键免费部署你的私人 ChatGPT 网页应用。如果部署Vercel,Vercel可以绑定自己的域名,或者配合Cloudflare自定义域名中转,应该可以让国内访问。

    2024年02月03日
    浏览(57)
  • 【AI大模型应用开发】【LangChain系列】7. LangServe:轻松将你的LangChain程序部署成服务

    大家好,我是【同学小张】。持续学习,持续干货输出,关注我,跟我一起学AI大模型技能。 LangServe 用于将 Chain 或者 Runnable 部署成一个 REST API 服务。 同时安装langserve的服务端和客户端。 只安装客户端 只安装服务端 1.1 服务端代码 从代码来看创建LangServe的重点: (1)创建

    2024年03月28日
    浏览(63)
  • FastAPI + NGINX + Gunicorn:一步一步教你部署一个高性能的Python网页应用

    部署一个 FastAPI 应用到你的服务器是一项复杂的任务。如果你对 NGINX 、 Gunicorn 和 Uvicorn 这些技术不熟悉,可能会浪费大量的时间。如果你是刚接触 Python 语言不久或者希望利用 Python 构建自己的Web应用程序,本文的内容可能会让你第一次部署时更节省时间。 FastAPI 是用于开发

    2024年02月05日
    浏览(66)
  • 230902-部署Gradio到已有FastAPI及服务器中

    1. 官方例子 run.py 运行方式: uvicorn run:app 2. 油管例子 gradio_ui.py run.py 运行方式 注意事项 3. 视频演示 230920-部署Gradio到已有FastAPI及服务器中 4. 参考文献 mounting-within-another-fast-api-app RajKKapadia/YouTube-Gradio-Deploy-Demo How to deploy Gradio application on Server | Render | Gradio | Python - YouTube

    2024年02月10日
    浏览(46)
  • 本地部署 Stable Diffusion XL Gradio Demo WebUI

    一个基于Gradio库的 Stable Diffusion 的 Web UI 界面。 https://github.com/TonyLianLong/stable-diffusion-xl-demo 下载 Conda 安装脚本, 运行安装脚本, 按提示操作。当提示是否初始化 Conda 时,输入 “yes”, 安装完成后,关闭当前终端并打开新终端,这将激活 Conda, 更新 Conda 至最新版本, 克隆代

    2024年02月16日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包