在当今时代,随着众多开源和专有的管理工具(例如Python、R、SAS)的出现,构建学习模型变得越来越简单。尽管专业人士可能一直认为,有效地创建接口以测试和与同事或合作伙伴共享他们完成的模型是一项挑战。
一个可能的解决方案是Gradio,这是一个免费的开源Python包,它帮助创建模型的用户界面,可以轻松地与同事和伙伴分享。
Gradio是一个开源的Python库,它允许快速创建简单易用、可调整的用户界面组件,用于机器学习模型、任何API或任何函数,只需几行代码。它使得在网络浏览器中通过拖放图像、文本或录制的语音等与模型互动变得更加容易,并实时看到输出结果。
可以将图形用户界面直接集成到Python笔记本中,或者可以与任何人分享链接。Gradio有助于用几行代码构建在线GUI,这对于展示模型性能非常方便。它快速、易于设置、即开即用,并且可以共享为公共链接,任何人都可以远程访问并在机器上并行运行模型。Gradio支持多种媒体——文本、图片、视频和音频。
除了机器学习模型,它也可以作为Python代码嵌入使用。
可以创建机器学习代码的演示,这对客户/用户/团队成员可能很有用。在开发过程中,可以交互式地调试模型。可以从用户那里获得关于模型性能的反馈。因此,可以更容易、更快地改进模型。它可以与TensorFlow和PyTorch模型集成,以获得更好的理解。在本文中,将检查Gradio及其执行情况。让开始吧。
可以通过pip安装Gradio。以下代码可用于安装:
pip install gradio
以下代码可用于导入库:
import gradio as gr
为了快速给一个这个库如何工作的主意,让运行以下代码作为一个Python脚本,或者可以使用Python笔记本(Google colab也可以):
import gradio as gr
def start(name):
return "Hello " + name + " ! "
face = gr.Interface(fn=start, inputs="text", outputs="text")
face.launch()
一旦运行上述代码,以下界面将自动出现在Python笔记本中,或者如果运行Python脚本,它将弹出在浏览器上的。
Gradio可以用简单的界面包装几乎所有的Python工作。这个功能可以是任何东西,从简单的评估到添加一个预训练的模型。界面类有三个参数。这些在下面描述:
inputs: 输入组件类型
outputs: 输出组件类型和
fn: 要包装的函数
通过使用这三个参数,可以轻松地为模型创建界面,并在浏览器或Python笔记本中启动它们。
可以根据要求创建定制组件。例如,如果想要看到大文本和一些文本提示,那么可以在Interface类的inputs参数中传递不同的参数。Gradio提供了大量的定制。检查以下代码:
import gradio as gr
def start(name):
return "Hello " + name + " ! "
face = gr.Interface(fn=start, inputs=gr.inputs.Textbox(lines=2, placeholder="Name Here… "), outputs="text")
face.launch()
假设有一个更复杂的函数,有多个数据源和产出。在下面的模型中,有一个功能,它接受一个字符串、布尔值和数字,并返回一个字符串和数字。调查如何传递一个信息和产出部分的列表。检查以下代码:
import gradio as gr
def start(name, morning_is, temp):
msg = "Good morning" if morning_is else "Good evening"
greeting = "%s %s. It is %s degrees today" % (msg, name, temp)
cels = (temp - 32) * 5 / 9
return greeting, round(cels, 2)
face = gr.Interface(fn=start, inputs=["text", "checkbox", gr.inputs.Slider(0, 100)], outputs=["text", "number"])
face.launch()
现在让处理图像。Image输入界面接受一个NumPy数组,具有指定的大小,形状为(宽度,高度,3),这里的最后一个维度代表RGB值。它将返回一个NumPy数组形式的图像。此外,输入界面附带一个EDIT按钮,该按钮打开一个工具,用于裁剪、旋转、翻转和应用图像滤镜。这不是很棒吗,对吧?发现以这种方式控制图像经常会揭示模型中隐藏的缺陷。下面的图像显示了这个工具是如何工作的:
在熟悉了Gradio库的基础知识之后,可能会想尝试像机器学习模型这样的应用。让看看Gradio如何与几个机器学习模型一起工作。
使用TensorFlow的图像分类
首先,在机器学习的示例中,从图像分类开始。从Inception Net图像分类器开始,它是在TensorFlow的帮助下加载的。知道,这是一个图像分类问题,使用Image输入界面。这个Image输入界面给一个很好的测试Inception Net界面,可以拖放图像,并且还允许通过点击EDIT按钮编辑图像。输出将是一个标签和它们相应的置信度分数的字典。检查下面的图像:
使用PyTorch的图像分类
现在让使用一个类似的模型,ResNet,但这次使用PyTorch。检查下面的图像:
使用Transformers(GPT-2)的文本生成
现在让处理一些文本。使用一个名为GPT-2的文本生成模型。在这种情况下,使用Text Text界面。只需要写一些输入,它将自动在输出框中显示输出。检查下面的图像:
使用BERT-QA回答问题
泰坦尼克生存模型
带有解释的图像分类
更多信息,请查看官方文档: