Gradio 3.0 已发布!
'Gradio 3.0 Released!'
机器学习演示
机器学习演示越来越成为发布模型的重要组成部分。演示允许任何人(不仅仅是机器学习工程师)在浏览器中尝试模型,对预测结果提供反馈,并建立对模型的信任,如果模型表现良好。
自2019年首个版本以来,使用Gradio库已经构建了超过600,000个ML演示,今天,我们非常高兴地宣布Gradio 3.0:Gradio库的全新设计 🥳
Gradio 3.0有什么新功能?
🔥 前端进行了完全的重新设计,基于我们从Gradio用户那里得到的反馈:
-
我们切换到了现代技术(如Svelte)来构建Gradio前端。结果是我们看到了更小的负载和更快的页面加载速度!
-
我们还采用了更简洁的设计,使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