Gradio 3.0 发布!
机器学习演示
机器学习演示已成为发布模型中越来越重要的部分。演示允许任何人——不仅仅是机器学习工程师——在浏览器中试用模型,提供预测反馈,并在模型表现良好时建立对模型的信任。
自 2019 年 Gradio 库的第一个版本发布以来,已构建了超过 600,000 个机器学习演示。今天,我们很高兴地宣布 **Gradio 3.0**:Gradio 库的全面重新设计 🥳
Gradio 3.0 有什么新功能?
🔥 前端完全重新设计,基于我们从 Gradio 用户那里收集的反馈
我们已经转向现代技术(如 Svelte)来构建 Gradio 前端。因此,我们看到更小的有效载荷和更快的页面加载速度!
我们还采用了更简洁的设计,这将使 Gradio 演示能够在更多设置中视觉上融入(例如 嵌入 在博客文章中)。

- 我们改进了现有的组件,如 `Dataframe` 以使其更用户友好(尝试将 CSV 文件拖放到 Dataframe 中),并添加了新组件,如 `Gallery`,以便您为模型构建合适的 UI。

- 我们添加了一个 `TabbedInterface` 类,允许您将相关演示分组为单个 Web 应用中的多个选项卡

查看我们(重新设计的)文档中所有可用的组件 这里 🤗!
🔥 我们创建了一种新的低级语言,名为 **Gradio Blocks**,它允许您直接在 Python 中构建复杂的自定义 Web 应用

我们为什么要创建 Blocks?Gradio 演示非常容易构建,但是如果您想更好地控制演示的布局,或者更灵活地控制数据流,该怎么办?例如,您可能希望:
- 更改演示的布局,而不是仅仅将所有输入放在左侧,输出放在右侧
- 拥有多步界面,其中一个模型的输出成为下一个模型的输入,或通常具有更灵活的数据流
- 根据用户输入更改组件的属性(例如,下拉菜单中的选项)或其可见性
低级 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("Flip text or image files using this demo.")
with gr.Tabs():
with gr.TabItem("Flip Text"):
text_input = gr.Textbox()
text_output = gr.Textbox()
# this demo runs whenever the input textbox changes
text_input.change(flip_text, inputs=text_input, outputs=text_output)
with gr.TabItem("Flip Image"):
with gr.Row():
image_input = gr.Image()
image_output = gr.Image()
button = gr.Button("Flip")
# this demo runs whenever the button is clicked
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