clip论文阅读(Learning Transferable Visual Models From Natural Language Supervision)

目录

  • 摘要
  • 训练pre-train model的过程
  • 将pre-train model应用于下游任务
  • 应用(待更新)

论文/项目地址:https://github.com/OpenAI/CLIP
提供了clip的pre-trained model的权重,也可安装使用pre-trained model

摘要

使用标签标注的图像数据集具有规模不足、费时费力的缺点。所以作者提出了使用(text,image)的数据训练预训练模型(pre-train model) ,实验结果表明pre-train model在下游任务(图像分类、ORC等)中表现出色。例如:pre-train model在图像集ImageNet中的ACC高于Resnet(有监督训练的模型)在其上的ACC(准确率)

训练pre-train model的过程

在这里插入图片描述

从图中矩阵可看出 正样本为写对角线元素共N个,负样本为其他元素共 N 2 − N N^{2}-N N2N个。

实现的核心代码如下所示:
1、将输入的图片使用resnet或其他模型提取特征向量I_f,将输入的文本使用transformer或其他模型提取特征向量T_f。
2、对前一步生成的特征向量分别加权重向量生成I_e和T_e。
3、两个向量相乘生成NxN的矩阵logits
4、最大化批处理中N对实数对图像和文本嵌入的余弦相似度,同时最小化 N 2 − N N^{2}−N N2N对错误对嵌入的余弦相似度。
重点来了labels为[0,1,2…,n-1]的向量,表示正确类别的索引值。
5、总结:模型输入(text,image);输出——text和image的特征向量。最终的目的是训练image encoder和text encoder,其中训练过程中的loss为步骤4中的内容。

在这里插入图片描述

将pre-train model应用于下游任务

传统的视觉模型需要在新的数据集上进行微调,而clip可以直接实现zero-shot的图像分类,即不需要任何训练数据,就能在某个具体下游任务上实现分类。

操作步骤:

1、根据任务的分类标签构建每个类别的描述文本:A photo of {label},然后将这些文本送入Text Encoder得到对应的文本特征,如果类别数目为N,那么将得到N个文本特征;
2、将要预测的图像送入Image Encoder得到图像特征,然后与N个文本特征计算缩放的余弦相似度(和训练过程一致),选择相似度最大的文本对应的类别作为图像分类预测结果,进一步地,可以将这些相似度看成logits,送入softmax后可以到每个类别的预测概率。
在这里插入图片描述

应用(待更新)

styleclip
clipdraw
clips

参考:https://openatomworkshop.csdn.net/664ee0a5b12a9d168eb70230.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/54065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++过生日(我给我自己做的生日礼物)

🚀欢迎互三👉:程序猿方梓燚 💎💎 🚀关注博主,后期持续更新系列文章 🚀如果有错误感谢请大家批评指出,及时修改 🚀感谢大家点赞👍收藏⭐评论✍ 引言…

电脑开机速度慢怎么解决?

电脑开机速度慢怎么解决?电脑开机速度慢的原因可以是多方面的,以下是一些常见的原因: 启动项过多: 许多软件在系统启动时会自动启动,导致启动项过多,从而延长了开机时间。过时的驱动程序: 设备…

wpf触发与模板的使用示例:批量生产工具

批量生产工具 <Window x:Class"WpfM20UpdateFW.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expressio…

2024年Java后端学习路线

思维导图&#xff1a; 必备知识&#xff1a; Java基础 JavaWeb 数据库&#xff1a;MySql&#xff0c;Redis 开发中间件&#xff1a;Maven &#xff0c;Git &#xff0c;Docker&#xff0c;RabbitMQ 开发框架&#xff1a;SSM&#xff0c;spring boot&#xff0c;mybatis-plus、s…

十一、DMSP/OLS、NPP/VIIRS等夜间灯光数据之GDP空间化——新方法理论介绍

一、前言 之前的空间理论方法是将第一产业GDP和第二、三产业GDP分开,第一产业GDP和耕地面积进行反演,第二、三产业GDP和夜间灯光指数进行拟合,或者干脆不划分产业,就是第一、二、三产业gdp数据和夜间灯指数拟合。之前给大家介绍都是这种,那么现在很多文献提出一种新的做法…

JVM 运行时数据区域

目录 前言 程序计数器 java虚拟机栈 本地方法栈 java堆 方法区 运行时常量池 前言 首先, java程序在被加载在内存中运行的时候, 会把他自己管理的内存划分为若干个不同的数据区域, 就比如你是一个你是一个快递员, 一堆快递过来需要你分拣, 这个时候, 你就需要根据投放的目…

[产品管理-23]:NPDP新产品开发 - 21 - 产品创新中的市场调研 - 市场调研对创新产品开发的意义

目录 前言&#xff1a; 一、市场调研概述 1.1 客户与市场的区别 1、定义与范围 2、关注焦点 3、作用与影响 4、总结 1.2 销售与市场的区别 1、对象与范围 2、工作方式 3、工作内容 4、目标 5、考核标准 6、在企业运营中的角色 1.3 什么是市场调研 1、市场调研的…

COMDEL电源维修CLX2500康戴尔射频电源维修

美国COMDEL射频电源维修常见型号包括&#xff1a;CLX2750&#xff1b;CLX2500&#xff1b;CLX-600H&#xff1b;CX600AS&#xff1b;CX-5000S&#xff1b;CX-3500S&#xff1b;CX-2500S&#xff1b;CV500&#xff1b;CDX2000等。 Comdel成立于1966年&#xff0c;总部设在马萨诸…

Golang | Leetcode Golang题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; func reconstructQueue(people [][]int) (ans [][]int) {sort.Slice(people, func(i, j int) bool {a, b : people[i], people[j]return a[0] > b[0] || a[0] b[0] && a[1] < b[1]})for _, person : range people {idx : pe…

maya-vray渲染蒙版

要用一个叫vrayMulWrapper的材质球&#xff0c;把alpha Conterbution调到-1&#xff0c;勾选matte surface启用蒙版物体。

【GESP】C++一级练习BCQM3005,基本输出语句printf

一道基础练习题&#xff0c;练习基本输出语句printf。 BCQM3005 题目要求 描述 输出表达式1234∗5678的结果。 输入 无 输出 1234∗56787006652 输入样例 无 输出样例 1234 * 5678 7006652 全文详见个人独立博客&#xff1a;https://www.coderli.com/gesp-1-bcqm3005/ 【…

在树莓派上构建和部署 Node.js 项目

探索在Raspberry Pi上构建和部署Node.js项目的最佳实践。通过我们的专业提示和技巧&#xff0c;克服常见挑战&#xff0c;使您的项目顺利运行。 去年圣诞节&#xff0c;我收到了一份极其令人着迷的礼物&#xff0c;它占据了我许多周末的时间&#xff0c;甚至让我夜不能寐。它就…

零基础考过软考信息系统项目管理师经验分享

选择适合的课程&#xff1a;如果你是零基础&#xff0c;建议找一些专门针对新手的课程&#xff0c;讲解通俗易懂。 刷题至关重要&#xff1a;软考的题库很庞大&#xff0c;多做题是必须的。 做好笔记和复习&#xff1a;上课时要做好笔记&#xff0c;课后及时复习&#xff0c;…

网络安全学习(二)初识kali

kali有两种界面模式&#xff0c;为了更好的适应windows用户&#xff0c;需要操作一下。 先更新一下kali&#xff0c;执行命令 sudo apt-get update 然后换界面 sudo apt install kali-desktop-gnome 等待&#xff0c;出现如下界面时&#xff0c;选择gdm3&#xff08;键盘&a…

Mybatis中Like模糊查询三种处理方式

目录 Mybatis中Like模糊查询三种处理方式 1.通过单引号拼接${} 1&#xff09;mapper接口 2&#xff09;Mapper.xml 3&#xff09;测试代码 4) 测试结果 2.通过concat()函数拼接(个人推荐使用这种) 1&#xff09;mapper接口 2&#xff09;Mapper.xml 3&#xff09;测试代码 4) 测…

Requests-HTML模块怎样安装和使用?

要安装和使用Requests-HTML模块&#xff0c;您可以按照以下步骤进行操作&#xff1a; 打开命令行界面&#xff08;如Windows的命令提示符或Mac的终端&#xff09;。 使用pip命令安装Requests-HTML模块。在命令行中输入以下命令并按回车键执行&#xff1a; pip install request…

工厂模式(一):简单工厂模式

一、概念 顾名思义&#xff0c;带着工厂&#xff0c;两字肯定就是有标准、快速、统一等等一些工厂独有的特点。 那么什么是简单工厂模式呢&#xff1f; 定义&#xff1a;简单工厂模式是一种创建对象的设计模式&#xff0c;它定义了一个工厂类通过某个静态方法来生成不同类型的…

熵权法详细讲解+Python代码实现

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

C#/.NET/.NET Core技术前沿周刊 | 第 5 期(2024年9.9-9.15)

前言 C#/.NET/.NET Core技术前沿周刊&#xff0c;你的每周技术指南针&#xff01;记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿&#xff0c;助力技术成长与视野拓宽。 欢迎投稿&…

Docker安装mysql安装nginx安装Redis

Docker安装mysql 下载镜像 docker pull mysql:8.0注意,使用此方法安装镜像需要提前配置镜像源,详情看之前的文章 安装 docker run -d -p 3306:3306 \ --name mysql \ --restartalways \ --privilegedtrue \ -e TZAsia/Shanghai \ -e MYSQL_ROOT_PASSWORDroot \ mysql:8.0进…