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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 探索Go语言中的随机数生成、矩阵运算与数独验证
  • 代理IP池纯净度对数据抓取有影响吗?
  • flink on k8s
  • Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题
  • MongoDB高可用和分片集群知识
  • 【C++】标准库IO查漏补缺
  • CORS漏洞及其防御措施:保护Web应用免受攻击
  • 看Threejs好玩示例,学习创新与技术(三)
  • `character_set_server` 和 `collation_server`
  • Nuxt Kit 组件管理:注册与自动导入
  • 一. Unity实现虚拟摇杆及屏幕自适应功能
  • GPS/LBS/Wi-Fi定位,全安排!—合宙Air201资产定位模组LuatOS快速入门04
  • Rust Web开发框架对比:Warp与Actix-web
  • 升级Ubuntu内核的几种方法
  • Table列表复现框实现【勾选-搜索-再勾选】
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Computed property XXX was assigned to but it has no setter
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Date型的使用
  • Java,console输出实时的转向GUI textbox
  • JS变量作用域
  • mysql外键的使用
  • Sass 快速入门教程
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • SQLServer插入数据
  • vue 配置sass、scss全局变量
  • Web标准制定过程
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 如何进阶一名有竞争力的程序员?
  • 设计模式走一遍---观察者模式
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 微信小程序填坑清单
  • 我看到的前端
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 通过调用文摘列表API获取文摘
  • ​【已解决】npm install​卡主不动的情况
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # Apache SeaTunnel 究竟是什么?
  • # 数据结构
  • # 职场生活之道:善于团结
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #数据结构 笔记三
  • (02)Unity使用在线AI大模型(调用Python)
  • (06)Hive——正则表达式
  • (10)STL算法之搜索(二) 二分查找
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (含笔试题)深度解析数据在内存中的存储
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (算法)求1到1亿间的质数或素数
  • (一)、python程序--模拟电脑鼠走迷宫
  • (一)基于IDEA的JAVA基础10
  • (转)可以带来幸福的一本书