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

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

文章目录

  • 1. Intro
  • 2. quick start
  • 3. 基础组件
    • 3.1 应用界面
    • 3.2 输入输出组件
    • 3.3 触发组件
    • 3.4 布局组件
    • 3.5 demo
  • 4. 进阶组件
    • 进阶demo
    • TODO
  • 参考

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 

你可能感兴趣的:(Python,python,gradio)