当前位置: 首页 > news >正文

网站建设网页设计师seo在线优化网站

网站建设网页设计师,seo在线优化网站,西安自动seo,深圳的知名网站设计有哪些文章目录 1. 零样本图像分类简介1.1 什么是零样本图像分类?1.2 通俗一点的解释 2. 模型原理图3. 环境配置4. 代码实战5. Gradio前端页面5.1 什么是 Gradio ? 6 进阶操作7. 总结 1. 零样本图像分类简介 1.1 什么是零样本图像分类? “零样本图像分类”#xff08;Zero-shot … 文章目录 1. 零样本图像分类简介1.1 什么是零样本图像分类?1.2 通俗一点的解释 2. 模型原理图3. 环境配置4. 代码实战5. Gradio前端页面5.1 什么是 Gradio ? 6 进阶操作7. 总结 1. 零样本图像分类简介 1.1 什么是零样本图像分类? “零样本图像分类”Zero-shot image classification指的是使用一个模型对图像进行分类而这个模型并没有在包含那些特定类别的标记样本的数据上进行过显式训练。 传统的图像分类方法需要在一组特定的带标签的图像上训练模型。这个模型通过学习将图像的某些特征与标签相对应。当需要使用这种模型来处理引入了新标签集的分类任务时通常需要进行模型的微调以适应新的标签。 与此相反零样本或开放词汇的图像分类模型通常是多模态模型这些模型在包含大量图像及其相关描述的数据集上进行训练。这些模型学习了视觉和语言之间对齐的表示方法可以应用于包括零样本图像分类在内的许多下游任务。 这是一种更为灵活的图像分类方法它允许模型在不需要额外训练数据的情况下泛化到新的和未见过的类别。同时它也使用户能够用自由形式的文本描述来查询他们目标对象的图像。 1.2 通俗一点的解释 上面的内容如果看不懂没关系下面我来用通俗的语言解释这段话 比如我们想让一个熊孩子能认识不同的图片比如区分猫和狗我们需要给这个熊孩子看很多标有“这是猫”、“这是狗”的图片来训练它。这就像是在教熊孩子“这些特征意味着猫那些特征意味着狗”。但如果突然出现一个新的动物种类比如浣熊而熊孩子之前没有学习过浣熊的图片它就不知道怎么识别了。这时我们通常需要给熊孩子更多的浣熊图片来训练它识别浣熊。这就是我们上面提到的传统的图像分类。 然而“零样本图像分类”就像是给熊孩子一种超能力让它能在没有直接学习过某个类别比如浣熊的情况下也能识别出来。这种方式是通过训练熊孩子理解图片和文字之间的关系来实现的。比如熊孩子在学习的时候不仅看图片还学习这些图片的描述。这样当它遇到一个新的图片比如浣熊即使它之前没有直接学习过它也可以通过理解图片的特征和之间学到的文字描述来猜测这可能是“浣熊”。 总的来说这就是一种更聪明的方式让熊孩子能够在没有被直接训练识别某些东西的情况下也能识别出这些东西来。 那这篇博客 我就教大家使用 CLIP 搭建一个零样本的分类模型不需要任何的训练就可以实现你的分类需求 教程使用 huggingface 的 transformers 库来完成这样方便我对整个专栏的代码教程进行维护也方便我为大家分发模型这种多模态的模型一般都很大自己下载一次很麻烦我会在博客中提供模型网盘地址。 2. 模型原理图 论文地址[paper] Learning Transferable Visual Models From Natural Language Supervision (arxiv.org) 论文摘要最近在大量数据上进行模型预训练的自然语言处理领域取得的突破为计算机视觉领域的类似基础模型铺平了道路。这些模型可以通过生成通用视觉特征即适用于不同图像分布和任务且无需微调的特征来大大简化任何系统中图像的使用。本研究表明如果在来自不同来源的足够多的策划数据上训练现有的预训练方法特别是自监督方法可以产生这样的特征。我们重新审视现有方法并结合不同技术来扩展我们的预训练包括数据和模型规模方面。大部分技术贡献旨在加速和稳定大规模训练。在数据方面我们提出了一个自动化管道用于构建专用的、多样化的、策划的图像数据集而不是像自监督文献中通常做的那样使用未策划的数据。在模型方面我们训练了一个拥有10亿参数的ViT模型并将其蒸馏成一系列较小的模型这些模型在大多数图像和像素级基准测试中超过了现有最佳的通用特征即OpenCLIP。 3. 环境配置 后续所有教程都使用conda环境请大家自行配置好~ conda create --name huggingface-env python3.8 -yconda activate huggingface-envpip install transformers4. 代码实战 本次实战我们选择 openai 团队开源的 clip-vit-base-patch32 版本。借助 transformers 库 我们可以通过几行代码就完成一个零样本分类任务。 下载好我提供的模型后修改以下两处就可以顺利运行代码: 将model路径和processor路径指定到你下载下来文件的位置。image_path路径换成本地图片路径。 # 导入Python图像库PIL和requests库 from PIL import Image import requests# 导入transformers库中的CLIP处理器和CLIP模型 from transformers import CLIPProcessor, CLIPModel# 从预训练路径加载CLIP模型 model CLIPModel.from_pretrained(/home/models/clip-vit-base-patch32) # 从预训练路径加载CLIP处理器 processor CLIPProcessor.from_pretrained(/home/models/clip-vit-base-patch32)# 设置一个图像的路径 image_path 000000039769.jpg # 使用PIL的Image打开它 image Image.open(image_path)# 使用处理器处理文本这里有两个文本猫和狗的照片和图片将它们转换为模型可以处理的格式 inputs processor(text[a photo of a cat, a photo of a dog], imagesimage, return_tensorspt, paddingTrue)# 将处理好的输入数据传递给模型并得到输出 outputs model(**inputs) # 从输出中获取图像与文本之间的相似性分数 logits_per_image outputs.logits_per_image # 使用softmax函数计算标签的概率 probs logits_per_image.softmax(dim1) # 打印出概率 print(probs) # tensor([[0.9949, 0.0051]], grad_fnSoftmaxBackward0)模型地址 链接https://pan.baidu.com/s/1eg95QBmMOx9P0GvX-pshMg 提取码hhze 小知识 如果你够细心你就会发现打印出来的概率后面有一个grad_fn标识。 grad_fnSoftmaxBackward0 是一个表示该张量是通过某个操作产生的并且这个操作在PyTorch的自动微分系统中具有可微性即可以进行梯度反向传播的标识。 tensor([[0.9949, 0.0051]]这是一个包含概率值的张量。在这个例子中它表示图片被模型识别为第一个类别a photo of a cat的概率是99.49%识别为第二个类别a photo of a dog的概率是0.51%。grad_fn这是gradient function的缩写意味着这个张量是作为一个计算结果产生的而这个计算是可以进行梯度反向传播的。在这种情况下SoftmaxBackward0是一个特定的梯度函数它指的是这个张量是通过Softmax函数计算得到的并且如果需要的话可以通过这个函数来计算梯度。 我们这篇内容就是那模型进行推理所以我们不需要关心这个grad_fn属性。 5. Gradio前端页面 每次都使用黑洞洞的终端推理图片是不是很无聊呢下面为大家介绍一个工具它可以快速的为算法实现一个前端页面方便我们以图形化的方式推理图片。 5.1 什么是 Gradio ? 项目地址gradio-app 文档地址Gradio Interface Docs Gradio 是一个开源库旨在为机器学习模型提供快速且易于使用的网页界面。它允许开发者和研究人员轻松地为他们的模型创建交互式的演示使得无论技术背景如何的人都可以方便地试用和理解这些模型。使用Gradio你只需几行代码就可以生成一个网页应用程序该应用程序可以接收输入如图片、文本或音频等并展示模型的输出。这对于测试、展示和获取模型反馈非常有用特别是在协作、教育或研究的环境中。此外它还提供了一系列用于增强用户体验的功能如输入验证、自定义布局和分析工具这些都使得Gradio成为机器学习领域中展示和共享模型的受欢迎工具。 安装方式很简单一行指令搞定。 pip install gradio -i https://pypi.tuna.tsinghua.edu.cn/simple下面是我基于这个库实现的 CLIP 零样本分类模型页面同时为大家分别准备了一张猫一张狗的图片以便大家能够更好地体验和使用这个工具。 import gradio as gr from PIL import Image from transformers import CLIPProcessor, CLIPModel import torch import requests# 从预训练的路径中加载CLIP模型和处理器 model CLIPModel.from_pretrained(/home/models/clip-vit-base-patch32 ) processor CLIPProcessor.from_pretrained(/home/models/clip-vit-base-patch32 )def classify_image_with_text(image, text):# 根据逗号分割输入文本以处理多个标签labels text.split(,)# 处理输入数据将文本和图像转换为模型可以处理的格式inputs processor(textlabels, imagesimage, return_tensorspt, paddingTrue)# 获取模型的输出with torch.no_grad():outputs model(**inputs)# 计算概率logits_per_image outputs.logits_per_image # 这是图像与文本之间的相似度分数probs logits_per_image.softmax(dim1).tolist()[0] # 用softmax获取标签概率# 创建一个响应字典用于输出每个标签的概率response {label: prob for label, prob in zip(labels, probs)}return response# 创建Gradio界面 # fn指定了要运行的函数inputs定义了输入类型outputs定义了输出类型 iface gr.Interface(fnclassify_image_with_text,inputs[gr.Image(typepil), gr.Textbox(labelText Input)], # 图片和文本框输入outputsjson, # 输出为JSON格式examples[[https://gitee.com/diffiehellman/diffiehellman_personal_blog_gallery/raw/master/cdog.jpg,dog, cat, tigers, lions, elephants, pandas, giraffes,],[https://gitee.com/diffiehellman/diffiehellman_personal_blog_gallery/raw/master/ccat.jpg,dog, cat, tigers, lions, elephants, pandas, giraffes,],],titleCLIP零样本图像分类,description上传一张图片获得json格式的零样本分类结果, )# 启动界面 iface.launch()6 进阶操作 在我们学习了如何使用 CLIP 之后接下来我们将利用这些知识来实施一个小型项目。这个项目的目的是通过实际操作来加强大家对 Python 中一些常用库的熟悉程度。 这一次我们的项目相对简单我们将从一个包含猫和狗图片的混合文件夹中使用我们学习的算法自动区分并归类这两种图片。 这个案例不仅是一个很好的机器学习入门项目也是一个非常实用的技能可以应用于各种图片分类任务用来清洗个数据集什么的非常的方便~ 算法步骤 加载模型使用transformers库加载预训练的 CLIP 模型和处理器。读取图片使用 PIL 读取图片。图像预处理使用 CLIP 的处理器对图片进行预处理。模型预测对每张处理过的图片使用 CLIP 模型获取其与“猫”和“狗”文本描述的相似度。分类和保存根据模型的预测将图片分类为猫或狗并保存到相应的文件夹。 使用到的Python库 PILPython Imaging Library一个强大的图像处理库可用于打开、操作和保存多种图像格式。OS用于与操作系统进行交互。它提供了丰富的方法来处理文件和文件夹。通过os库可以执行诸如创建、删除、移动文件和目录以及获取文件属性等操作。 from PIL import Image import requests from transformers import CLIPProcessor, CLIPModel import os# 加载预训练的CLIP模型和处理器 model CLIPModel.from_pretrained(openai/clip-vit-base-patch32) processor CLIPProcessor.from_pretrained(openai/clip-vit-base-patch32)# 定义读取图片的文件夹路径 folder_path /path/to/your/folder# 定义保存分类后图片的路径 save_path_cats /path/to/save/cats save_path_dogs /path/to/save/dogs# 读取文件夹中的所有图片文件 for filename in os.listdir(folder_path):if filename.endswith(.jpg) or filename.endswith(.png): # 检查文件格式# 打开图片image Image.open(os.path.join(folder_path, filename))# 使用处理器处理图片和文本inputs processor(text[a photo of a cat, a photo of a dog], imagesimage, return_tensorspt, paddingTrue)# 模型预测outputs model(**inputs)probs outputs.logits_per_image.softmax(dim1)# 根据预测结果分类图片if probs[0, 0] probs[0, 1]: # 如果“猫”的概率高于“狗”image.save(os.path.join(save_path_cats, filename)) # 保存到猫的文件夹else:image.save(os.path.join(save_path_dogs, filename)) # 保存到狗的文件夹print(分类完成)7. 总结 这篇教程是我们系列文章的开篇之作。虽然内容相对简单但我们实现的算法 CLIP 是一个在多模态领域极具影响力的模型。这个经典的模型不仅在本教程中发挥了重要作用而且在后续的博客中我们还将继续利用它来实施更多的有趣项目。 这个系列旨在逐步深入让大家不仅了解算法的基础知识还能学习如何将这些算法应用于实际的、有意义的项目中。每一篇教程都是精心设计的以确保即使是初学者也能够跟上节奏并逐步提升自己的技能。 我非常欢迎大家在评论区提出自己遇到的实际任务或者对特定算法的疑问和讨论。 感谢大家的支持
http://www.zqtcl.cn/news/213633/

相关文章:

  • 交易类网站做支付宝功能建设银行网站收款怎么打明细
  • 广州找人做网站做网站网关备案
  • 网站的布局方式有哪些内容免费ppt模板下载公众号
  • 色91Av做爰网站获胜者网站建设
  • 企业做网站要多少钱简单网页设计模板网站
  • 住宅城乡建设部门户网站seo主管的seo优化方案
  • 商洛做网站电话北京做网站比较大的公司
  • 某俄文网站电脑做网站服务器
  • 广州网站建设开发团队江苏省建设招标网站
  • 南昌建设工程质量监督网站wordpress菜单登录
  • 网站设计贵不贵网站seo设置是什么
  • 不属于企业网站建设基本标准的是南通网站建设知识
  • 玉树州wap网站建设公司做试玩网站
  • 商城网站怎么建保定网络营销网站建设
  • 检索类的网站建设公司的网站建设规划书
  • 百度做网站需要交钱吗保定网站建设平台分析
  • 张家界建设局网站电话优化关键词排名公司
  • 宁夏网站建设一条龙网站建设中的图片及视频要求
  • 某些网站dns解析失败湛江制作企业网站
  • 网站开发用什么代码长沙哪家公司做网站
  • 做视频找素材的网站有哪些wordpress 合法评论
  • php网站开发程序填空题高水平网站运营托管
  • 揭东建设局网站wordpress建站后发布
  • 济南哪里有建网站制作视频的手机软件
  • 建设教育网站的国内外研究现状沧州市宇通网站建设公司
  • 大型网站开发框架有哪些厦门外贸网页设计服务
  • 开网站空间流量怎么选择公司注册咨询电话
  • 邢台网站建设基本流程网站制作公司教你怎么制作网站
  • 苏州网站建设方案外包视频网站制作教程视频
  • 呼伦贝尔市规划建设局网站wordpress 主题切换