Gradio的web界面演示与交互机器学习模型,高级接口特征《6》

这篇具有很好参考价值的文章主要介绍了Gradio的web界面演示与交互机器学习模型,高级接口特征《6》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大多数模型都是黑盒,其内部逻辑对最终用户是隐藏的。为了鼓励透明度,我们通过简单地将Interface类中的interpretation关键字设置为default,使得向模型添加解释变得非常容易。这允许您的用户了解输入的哪些部分负责输出

1、Interpret解释 

我们来一个图片的分类器,带一个Interpret解释,这里将会下载人类可读的ImageNet标签,是在站点https://git.io/JJkYN上面返回的标签,所以需要用到科学上网。

import requests
import tensorflow as tf

import gradio as gr

inception_net = tf.keras.applications.MobileNetV2()  # 加载模型

# 下载人类可读的ImageNet标签
response = requests.get("https://git.io/JJkYN")
labels = response.text.split("\n")

def classify_image(inp):
    inp = inp.reshape((-1, 224, 224, 3))
    inp = tf.keras.applications.mobilenet_v2.preprocess_input(inp)
    prediction = inception_net.predict(inp).flatten()
    return {labels[i]: float(prediction[i]) for i in range(1000)}

image = gr.Image(shape=(224, 224))
label = gr.Label(num_top_classes=3)

#demo = gr.Interface(fn=classify_image, inputs=image, outputs=label, interpretation="default")
demo = gr.Interface(fn=classify_image, inputs=image, outputs=label, interpretation="shap", num_shap=5)

demo.launch()

如下图,输入一张猫(猞猁)的图片,然后右边输出3个概率从大到小排序的分类标签:

Gradio的web界面演示与交互机器学习模型,高级接口特征《6》

然后点击Interpret,我们来看下效果,对重要部分进行了遮罩突出显示,也就是输出重要性判别的输入的地方做个解释。

Gradio的web界面演示与交互机器学习模型,高级接口特征《6》

2、高亮显示

适用于任何函数,即使在内部,模型是一个复杂的神经网络或其他黑盒子。如果使用Gradio的默认解释或形状解释,则输出组件必须是Label。支持所有常用输入组件。
下面是一个文本输入的示例:

import gradio as gr

male_words, female_words = ["he", "his", "him"], ["she", "hers", "her"]

def gender_of_sentence(sentence):
    male_count = len([word for word in sentence.split() if word.lower() in male_words])
    female_count = len(
        [word for word in sentence.split() if word.lower() in female_words]
    )
    total = max(male_count + female_count, 1)
    return {"male": male_count / total, "female": female_count / total}

demo = gr.Interface(
    fn=gender_of_sentence,
    inputs=gr.Textbox(value="She went to his house to get her keys."),
    outputs="label",
    interpretation="default",
)

demo.launch()

Gradio的web界面演示与交互机器学习模型,高级接口特征《6》将显示男女比例,然后我们点击Interpret,将会看到界面会自动突出显示文本(或图像等)中重要部分。颜色的强度与输入部分的重要性相对应。降低类置信度的部分用蓝色突出显示。
 

3、常见错误处理 

3.1、安装tensorflow

我们安装任何包,个人依然推荐加豆瓣镜像

pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com tensorflow

这里有个比较奇怪的问题,最开始我是这么安装,也是一直以来的常见安装方法:

pip install tensorflow -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

看到区别了吗,就是将tensorflow放在了install后面,这样的情况会出现下面这样的错误:

WARNING: Ignoring invalid distribution -sonschema (d:\anaconda3\envs\pygpu\lib\site-packages)
WARNING: Ignoring invalid distribution -sonschema (d:\anaconda3\envs\pygpu\lib\site-packages)
Collecting http://pypi.douban.com/simple/
  Downloading http://pypi.douban.com/simple/ (24.7 MB)
     ---------------------------------------- 24.7/24.7 MB 11.9 MB/s eta 0:00:00
  ERROR: Cannot unpack file C:\Users\Tony\AppData\Local\Temp\pip-unpack-2d7n8372\simple.html (downloaded from C:\Users\Tony\AppData\Local\Temp\pip-req-build-5xqb8otu, content-type: text/html); cannot detect archive format
ERROR: Cannot determine archive format of C:\Users\Tony\AppData\Local\Temp\pip-req-build-5xqb8otu
WARNING: Ignoring invalid distribution -sonschema (d:\anaconda3\envs\pygpu\lib\site-packages)
WARNING: Ignoring invalid distribution -sonschema (d:\anaconda3\envs\pygpu\lib\site-packages)
WARNING: Ignoring invalid distribution -sonschema (d:\anaconda3\envs\pygpu\lib\site-packages)

翻译过来的意思就是:无法解包文件,无法检测存档格式,无法确定归档格式。

在以前安装tensorflow是在一个新的虚拟环境,没有问题,这个是在有MXNet的里面安装的,出现上述错误,然后试着将tensorflow放到最后面,没有想到竟然成功安装。

3.2、安装scikit-image

其中点击Interpret,需要安装skimage

ModuleNotFoundError: No module named 'skimage'

同样的方法安装即可,只不过这里需要注意名称 

pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com scikit-image 

3.3、安装shap

指定一些参数,interpretation设置为shap,可以修改num_shap参数,该参数控制精度和运行时之间的权衡(增加该值通常会提高精度)。

demo = gr.Interface(fn=classify_image, inputs=image, outputs=label, interpretation="shap", num_shap=5)

在指定interpretation="shap"参数的时候,我们如果没有安装shape,也将报shap不存在的错误。

ModuleNotFoundError: No module named 'shap' 

pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com shap

4、并行与串行

4.1、并行Parallel

Gradio可以让你很容易地使用Gradio来混合界面。
Parallel允许你将两个相似的模型(如果它们具有相同的输入类型)并行放置以比较模型预测 

generator1 = gr.load("huggingface/gpt2")
generator2 = gr.load("huggingface/EleutherAI/gpt-neo-2.7B")
generator3 = gr.load("huggingface/EleutherAI/gpt-j-6B")

gr.Parallel(generator1, generator2, generator3).launch()

这样就可以比较几个模型的输出效果。

4.2、串行Series

我们也可以使用Series将两个模型串联起来,比如将第一个模型的输出作为第二个模型的输入,下面就是通过gpt2得到输出的信息,然后这些输出信息作为输入,进入t5-small模型,处理成德语进行最终的输出。 

generator = gr.load("huggingface/gpt2")
translator = gr.load("huggingface/t5-small")

gr.Series(generator, translator).launch()

 如图,输出的英文再翻译成德语:

Gradio的web界面演示与交互机器学习模型,高级接口特征《6》

有兴趣的可以查阅其余章节:

Gradio的web界面演示与交互机器学习模型,安装和使用《1》
Gradio的web界面演示与交互机器学习模型,主要特征《2》
Gradio的web界面演示与交互机器学习模型,分享应用《3》
Gradio的web界面演示与交互机器学习模型,全局状态与会话状态《4》
Gradio的web界面演示与交互机器学习模型,接口自动刷新或连续刷新数据流《5》文章来源地址https://www.toymoban.com/news/detail-482480.html

到了这里,关于Gradio的web界面演示与交互机器学习模型,高级接口特征《6》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Gradio~让你的机器学习模型~性感起来

    gradio是一个快速构建机器学习Web展示页面的开源Python库。 只需要几行代码,就可以让你的机器学习模型从抽象晦涩的代码变成性感可爱的交互界面。 让没有任何编程技能的用户也能够轻松使用和体验模型。 它非常适合在模型迭代测试中快速获取用户反馈或者在汇报展示中进

    2024年02月04日
    浏览(65)
  • Windows本地部署Ollama+qwen本地大语言模型Web交互界面并实现公网访问

    本文主要介绍如何在Windows系统快速部署Ollama开源大语言模型运行工具,并安装Open WebUI结合cpolar内网穿透软件,实现在公网环境也能访问你在本地内网搭建的大语言模型运行环境。 近些年来随着ChatGPT的兴起,大语言模型 LLM(Large Language Model)也成为了人工智能AI领域的热门话

    2024年04月16日
    浏览(53)
  • Weka:Weka是一个开源机器学习平台,它可以运行各种算法,并且提供了良好的交互界面。

    作者:禅与计算机程序设计艺术 Weka是一款由斯坦福大学开发的一套用于数据挖掘、统计分析和机器学习的Java环境软件包,其独特的基于GUI的交互模型和丰富的插件系统,使得其成为许多数据科学家和学者的首选工具。它的功能覆盖了数据预处理、特征选择、分类、回归、聚

    2024年02月06日
    浏览(48)
  • Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能

    安装 Python 环境,选择一个 IDE,如 PyCharm、VSCode等。 安装 Python 环境是使用 Python 进行编程的第一步。Python 官网提供了 Windows、Linux 和 macOS 等主流操作系统的安装包,可以前往官网下载对应版本的 Python 并进行安装。 在安装完 Python 后,需要使用 pip 工具对常用的第三方库进行

    2024年02月09日
    浏览(71)
  • Gradio 机器学习和数据科学开源 Python 库

            Gradio是一个开源的 Python 库,MIT的开源项目,用于构建机器学习和数据科学演示和 Web 应用。         Gradio的定位类似于Streamlit,但是更轻量,因为它推荐的应用场景都是对“单个函数”进行调用的应用,并且不需要对组件进行回调。比如下列场景(以下代码参

    2024年02月06日
    浏览(53)
  • [python] 基于Gradio可视化部署机器学习应用

    Gradio是一个开源的Python库,用于构建机器学习和数据科学演示应用。有了Gradio,你可以围绕你的机器学习模型或数据科学工作流程快速创建一个简单漂亮的用户界面。Gradio适用于以下情况: 为客户/合作者/用户/学生演示你的机器学习模型。 通过自动共享链接快速部署你的模

    2023年04月09日
    浏览(53)
  • 【tensorflow&flutter&web】机器学习模型怎样用到前端上(未写完)

            在上一章 我们谈了怎么根据项目需求构建一个简单的机器学习模型。      ​​​​​​ ​​​​​​【tensorflowflutter】自己写个机器学习模型用在项目上?-CSDN博客 文章浏览阅读852次,点赞22次,收藏15次。【tensorflowflutter】自己写个机器学习模型用在项目上?

    2024年01月24日
    浏览(48)
  • web自动化测试进阶篇05 ——— 界面交互场景测试

        😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。 💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题

    2024年02月15日
    浏览(42)
  • 软件测试/测试开发丨Selenium Web自动化测试 高级控件交互方法

    本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27045 使用场景 对应事件 复制粘贴 键盘事件 拖动元素到某个位置 鼠标事件 鼠标悬停 鼠标事件 滚动到某个元素 滚动事件 使用触控笔点击 触控笔事件(了解即可) https://www.selenium.dev/documentati

    2024年02月09日
    浏览(101)
  • 【Python自然语言处理+tkinter图形化界面】实现智能医疗客服问答机器人实战(附源码、数据集、演示 超详细)

    需要源码和数据集请点赞关注收藏后评论区留言私信~~~ QA问答是Question-and-Answer的缩写,根据用户提出的问题检索答案,并用用户可以理解的自然语言回答用户,问答型客服注重一问一答处理,侧重知识的推理。 从应用领域视角,可将问答系统分为限定域问答系统和开放域问

    2023年04月12日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包