Gradio:AI 应用部署好搭档

机器学习和人工智能领域的发展日新月异,但如何快速将这些复杂模型和算法转化为可交互的演示,以供非专业人士体验,一直是一个挑战。Gradio 应运而生,它是一个简单而强大的Python库,可以让研究者和开发者快速创建与机器学习模型交互的界面。

Gradio 介绍

Gradio 是一个开源的 python 库,只需几行代码就能为机器学习模型、任何 API 或任何主观能力快速创建简单易用、可调整的 UI 部件。它能让你在网络浏览器中更轻松地玩转模型,只需拖拽图像、文本或自己的声音录音等,就能以交互方式看到实时输出。可以直接将图形用户界面集成到 Python 笔记本中,也可以与任何人共享链接。

Gradio 只需几行代码就能建立一个在线图形用户界面,方便展示模型。Gradio 可以快速、简单地设置、准备和使用,还可以作为公共连接进行共享,任何人都可以通过它在服务器上远程并行运行模型。Gradio 可以处理多种媒体------文本、图片、视频和声音。除了机器学习模型外,它还可以用作 python 代码嵌入,用于收集用户反馈、进行数据标注或模型评估。

核心功能

以下是 Gradio 的一些核心功能:

  • 易于使用:无需前端开发知识,只需几行代码即可集成。
  • 多种输入输出组件:支持各种数据类型,包括图像、视频、音频、文本、绘图等。
  • 集成分享:一键部署到网页,可生成链接分享给他人。
  • 可定制化:支持自定义样式和布局,以适应不同的模型和用例。
  • 机器学习支持:可以与 TensorFlow 和 PyTorch 模型集成。

开始使用

安装

通过 pip 安装 Gradio:

  • pip install gradio

加载

导入程序库:

  • import gradio as gr

DEMO

为了快速了解该库的工作原理,可以通过 Python 脚本或 Jupyter Notebook(也可使用 Google colab)运行下面的代码:

python 复制代码
import gradio as gr

def start(name):
    return "Hello " + name + " ! "
face = gr.Interface(fn=start, inputs="text", outputs="text")

face.launch()

运行上述代码后,下面的界面会自动出现在 Jupyter Notebook 中,如果运行 python 脚本,则会在浏览器 https://localhost:7860 中弹出:

Gradio 也提供了一个可共享的公共链接,但该链接会在 75 小时内失效。

接口

Gradio 可以用一个简单易用的界面封装几乎所有 Python 工作。这种能力可以是直接的评估,也可以是将机器添加到预先训练好的模型中。接口类有三个参数。具体描述如下:

  1. inputs:输入组件类型
  2. outputs:输出组件类型
  3. fn:要封装的函数

可定制组件

Gradio 支持根据需求创建自定义组件。例如,如果想看到大段文字和一些文字提示,那么可以在界面类的输入参数中传递不同的参数。Gradio 提供了大量的自定义功能。

Slider 滑动条:

在Gradio中,可以使用gr.inputs.Slider() 创建滑动条。以下是一些常用的参数:

  • minimum:滑动条的最小值(默认是0)。
  • maximum:滑动条的最大值(默认是100)。
  • step:滑动条的步长,决定了用户可以选择的数值的精细度(默认是1)。
  • default:滑动条的默认值,即初始设置的数值(默认是最小值)。
  • label:滑动条的标签,用于说明这个滑动条的用途。

Radio 单选框:

在 Gradio 中,可以使用 gr.inputs.Radio() 创建单选框,并传入一个选项列表。以下是一些常用的参数:

  • choices:一个字符串列表,包含所有的选项。
  • default:指定默认选中的选项,通过索引或直接用字符串指定。
  • label:单选框前显示的标签,用于说明该输入的目的。

CheckboxGroup 复选框

在Gradio中,可以使用gr.inputs.CheckboxGroup()创建复选框。以下是一些常用的参数:

  • choices:一个字符串列表,包含所有的选项。
  • default:指定默认选中的选项,可以是一个列表,其中包含默认选中项的索引或字符串。
  • label:复选框前显示的标签,用于说明该输入的用途。
  • inline:一个布尔值,用于指定选项是垂直排列还是水平排列。

图片加载

图像输入接口接收一个指定大小的 NumPy 数组,格式为(width, height, 3),其中最后一维代表 RGB 值。它将以 NumPy 数组的形式返回图像。此外,输入界面上还有一个 EDIT(编辑)按钮,用于打开一个工具,对图像进行裁剪、旋转、翻转和应用滤镜。下图展示了该工具的工作原理:

Hugging Face 联动

Hugging Face Spaces 是一个免费使用的平台,用于托管机器学习演示和应用程序。Spaces 提供免费的 16 GB 内存和 2 个内核的 CPU 环境(付费可以升级)。它目前支持 Gradio 和 Streamlit 平台。

要创建 Hugging Face Spaces,需要注册拥有一个 HuggingFace 账户。登录后,可以点击导航菜单上的 "New Space"(点击个人资料图像)来创建 Spaces。

之后看到如何通过命令行将代码添加到该 Spaces 以准备演示的说明。Spaces 本质上是带有 app.py 文件的 git 仓库(类似于 GitHub)。

克隆仓库到本地后,提交项目文件,方法和使用 Git 相同:

perl 复制代码
git add .
$git commit -m "Add application file"
$git push

此外,版本库根目录下添加 requirements.txt 文件,指定 Python 的依赖项。gradio 软件包已预装,其版本已在 README.md 文件的 sdk_version 字段中设置。

结语

Gradio 不仅仅是为了展示模型,更是为了建立一个桥梁,让非技术用户能够以直观的方式体验和理解复杂的算法。我们期待看到 Gradio 在未来的发展,以及它如何继续推动机器学习领域的创新和普及。让我们一起探索AI的无限可能,并将这些技术带入日常生活,为社会带来积极的影响。

相关推荐
DogDaoDao1 小时前
【预备理论知识——2】深度学习:线性代数概述
人工智能·深度学习·线性代数
牛哥带你学代码1 小时前
交叠型双重差分法
人工智能·深度学习·机器学习
学步_技术1 小时前
自动驾驶系列—线控系统:驱动自动驾驶的核心技术解读与应用指南
人工智能·机器学习·自动驾驶·线控系统·转向系统
jmoych1 小时前
AI正悄然地影响着企业数字化转型
人工智能
说私域1 小时前
社群团购中的用户黏性价值:以开源小程序多商户AI智能名片商城源码为例
人工智能·小程序
深度学习实战训练营2 小时前
基于keras的停车场车位识别
人工智能·深度学习·keras
乔代码嘚2 小时前
AI2.0时代,普通小白如何通过AI月入30万
人工智能·stable diffusion·aigc
墨@#≯2 小时前
机器学习系列篇章0 --- 人工智能&机器学习相关概念梳理
人工智能·经验分享·机器学习
Elastic 中国社区官方博客2 小时前
Elasticsearch:使用 LLM 实现传统搜索自动化
大数据·人工智能·elasticsearch·搜索引擎·ai·自动化·全文检索
_.Switch2 小时前
Python机器学习模型的部署与维护:版本管理、监控与更新策略
开发语言·人工智能·python·算法·机器学习