快速搭建机器学习demo: gradio教程

本文介绍了gradio工具,它能帮助开发者快速创建机器学习模型的交互式DEMO。gradio与Streamlit相比更简洁易用,通过几个基础组件如输入输出、触发和布局组件,可以构建简易或复杂的UI。文中还提供了基础和进阶组件的使用示例,包括图像、文本、数字、布局等,并鼓励读者探索更优雅的界面设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🙃关注公众号 funNLPer 白嫖畅读全文🙃

1. Intro

gradio是一个能够快速建立机器学习demo web应用的工具,仅需简单的几行代码就能构建机器学习模型的可视化交互demo,并分享给你的朋友使用。

与gradio相同功能的竞品有Streamlit,相比Gradio,Streamlit相对复杂,完全熟练使用需要一定时间。

2. quick start

如下展示了一个简单的case,其他所有的case都可套用该模板

import gradio as gr

# 定义处理函数/模型推理
def greet(name):
    return "Hello " + name + "!"

# interface中三个必要参数: 推理函数、输入、输出
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
# 是否开启公网分享
demo.launch(share=False)

可得到如下的界面
在这里插入图片描述

3. 基础组件

3.1 应用界面

  • 简易界面通常使用 gr.Interface(fn, inputs, outputs, ···)
    • fn 是一个包装函数,通常为机器学习模型的推理部分
    • inputs 输入,通常是gradio的组件,如gr.Image(), 对于文本、图片等简单类型可直接写成[“text”, “image”]
    • outputs 输出,同输入
  • 定制化场景通常使用 gr.Blocks()
    block一般应用在定制化的复杂场景,可以自己定义很多模块,进行组合,后面会做详细介绍

3.2 输入输出组件

  • 图像 gr.Image(value, label, show_label)
    • value: 输入的图像,支持pil, np_array, path, url等格式
    • label: 组件名称
    • show_label: 是否展示组件名称
  • 文本 gradio.Textbox(value, lines, placeholder, show_copy_button)
    • value: 输入文本
    • lines: 文本框最少展示行数
    • placeholder: 一般用作提示语
    • show_copy_button: 是否展示复制按钮
  • 数字 gr.Number(choices, value, label)
  • 数据框 gr.DataFrame()
  • 下拉选项 gr.Dropdown()
  • markdown gr.Markdown()
  • 文件 gr.Files()
  • 调节带 gradio.Slider(···)
  • 单选 gradio.Radio(choices, value, label)
    • choice: 选择项list
    • value: 默认选定值
    • label: 组件名称

3.3 触发组件

  • 按钮组件:gradio.Button(value)
    • value: 按钮的名称
    • 通常和click组件联合使用 gradio.Button.click(fn, inputs, outputs)
  • 清除按钮: gradio.ClearButton(components, value)
    • components: 要清除的组件
    • value: 按钮名称
    • 通常和gradio.ClearButton.add(components, ···)以及click()方法联合使用

3.4 布局组件

  • 标签页: gr.Tab()
  • 行布局: gradio.Row()
  • 列布局: gradio.Column()
  • 折叠项: gradio.Accordion(label, ···)

3.5 demo

这里我们使用Block和以上部分组件搭建了一个case

def chat(name,  lan, repeat=1, machine_name="小明"):
    if lan == "chinese":
        reply = "你好,"+name+",我叫"+machine_name
    elif lan =
03-14
### Gradio 的简介与使用教程 #### 什么是 GradioGradio 是一种用于快速创建机器学习模型交互界面的开源 Python 库。它允许开发者通过简单的几行代码将复杂的模型部署为直观易用的应用程序,支持多种输入和输出组件。 --- #### 安装 Gradio 要开始使用 Gradio,首先需要安装该库。可以通过 pip 命令轻松完成安装: ```bash pip install gradio ``` --- #### 创建第一个 Gradio 应用 以下是基于 Gradio 构建应用程序的基本流程: 1. **导入 Gradio** 需要在脚本中引入 `gradio` 模块以便访问其功能[^1]。 2. **定义核心函数 (fn 参数)** 这里的 fn 可以是你自己编写的任何函数或者封装好的机器学习模型预测逻辑。此函数接收来自用户的输入数据作为参数,并返回处理后的结果给用户查看[^2]。 3. **指定输入组件 (inputs 参数)** 输入可以是多种形式的数据类型比如文本字符串、图片文件等。每种类型的输入都有对应的预设组件可供选择如 text、image 或 mic 表示语音录入设备等等。 4. **设定输出形式 (outputs 参数)** 同样地,在展示最终计算成果的时候也需要明确告知系统应该采用何种方式呈现这些信息——这便是所谓的“output”。同样存在丰富的选项来满足不同场景下的需求,像 image 显示图像;label 展现分类标签名称之类的功能都是可以直接调用出来的。 5. **启动服务** 当所有的配置都完成后就可以运行 launch 方法让整个项目上线啦! 下面给出一段完整的例子演示如何利用上述提到的知识点搭建起一个简易版的文字长度统计工具: ```python import gradio as gr def greet(name): return f"Hello {name}! Your name has {len(name)} letters." demo = gr.Interface( fn=greet, inputs="text", outputs="text" ) demo.launch() ``` 在这个案例里我们先自定了一个名为greet的小方法用来接受外部传入的名字变量再经过加工形成一句带有字数统计的话句反馈回去。接着按照前面所讲过的理论框架依次指派好相应的input/output类别最后激活launch()命令使得网页端口能够正常开启从而实现预期效果。 --- ### 总结 综上所述,借助于Gradio强大的灵活性以及简洁明了的操作步骤即使是没有太多前端开发经验的新手也能够在短时间内学会怎样把自己的研究成果转换成可视化的互动体验分享给别人欣赏[^1].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值