Gradio 3.0 已发布!

'Gradio 3.0 Released!'

机器学习演示

机器学习演示越来越成为发布模型的重要组成部分。演示允许任何人(不仅仅是机器学习工程师)在浏览器中尝试模型,对预测结果提供反馈,并建立对模型的信任,如果模型表现良好。

自2019年首个版本以来,使用Gradio库已经构建了超过600,000个ML演示,今天,我们非常高兴地宣布Gradio 3.0:Gradio库的全新设计 🥳

Gradio 3.0有什么新功能?

🔥 前端进行了完全的重新设计,基于我们从Gradio用户那里得到的反馈:

  • 我们对现有的组件进行了改进,例如使Dataframe更加用户友好(尝试将CSV文件拖放到Dataframe中),还添加了新的组件,例如Gallery,以便您可以构建适合您的模型的正确UI。

  • 我们添加了一个TabbedInterface类,允许您将相关的演示作为多个选项卡组合在一个Web应用程序中

在我们的(重新设计的)文档中查看您可以使用的所有组件 🤗!

🔥 我们创建了一种名为Gradio Blocks的新低级语言,使您可以在Python中构建复杂的自定义Web应用程序:

为什么我们要创建Blocks?Gradio演示非常容易构建,但是如果您想要更多地控制演示的布局,或者对数据流程的灵活性更高呢?例如,您可能希望:

  • 更改演示的布局,而不仅仅是将所有输入放在左侧,输出放在右侧
  • 拥有多步接口,其中一个模型的输出成为下一个模型的输入,或者具有更灵活的数据流程
  • 基于用户输入更改组件的属性(例如Dropdown中的选项)或可见性

低级Blocks API允许您在Python中完成所有这些操作。

以下是一个Blocks演示的示例,它创建了两个简单的演示,并使用选项卡将它们组合在一起:

import numpy as np
import gradio as gr

def flip_text(x):
    return x[::-1]

def flip_image(x):
    return np.fliplr(x)

with gr.Blocks() as demo:
    gr.Markdown("使用此演示翻转文本或图像文件。")
    with gr.Tabs():
        with gr.TabItem("翻转文本"):
            text_input = gr.Textbox()
            text_output = gr.Textbox()
            # 每当输入文本框更改时运行此演示
            text_input.change(flip_text, inputs=text_input, outputs=text_output)
        
        with gr.TabItem("翻转图像"):
            with gr.Row():
                image_input = gr.Image()
                image_output = gr.Image()
            button = gr.Button("翻转")
            # 每当按钮被点击时运行此演示
            button.click(flip_image, inputs=image_input, outputs=image_output)
    
demo.launch()

运行launch()后,将显示以下演示:

有关Blocks的逐步介绍,请查看专门的Blocks指南

Gradio Blocks Party

我们非常兴奋Gradio Blocks,并希望您尝试它,因此我们正在组织一个名为Gradio Blocks Party(😉)的竞赛,看看谁能用Blocks构建出最好的演示。通过构建这些演示,我们可以使先进的机器学习不仅对工程师,而且对任何会使用互联网浏览器的人都可以获得!

即使您以前从未使用过Gradio,现在是开始的绝佳时机,因为Blocks Party将一直持续到五月底。我们将在Party结束时为使用Blocks构建的演示赠送🤗商品和其他奖品。

在此了解有关Blocks Party的更多信息:https://huggingface.co/spaces/Gradio-Blocks/README