【计算机视觉】图像分类模型

VIT

输入size,(4,3,256,256) ,为了序列化输入进 transformer 中,利用 patch 进行分块。patch_size=32。

(4,3,256,256) -> b c (h p1) (w p2) -> 4,3, 8 32 8 32   # 256/32=8

-> b (h w) (p1 p2 c) -> 4 64 3072  # 32*32*3=3072

4是 batchsize 是不变的。64是图像所划分的小块,相当于64个 token。

3072是每个小块的向量维度。 

 + pos_emb 位置编码 

经过transformer 特征提取后,得到 out # 4,64,512(64个位置)

to_cls_tokens(out) 求全局特征,cls_to_tokens=4,1,512

最终得到 4,65,512。。。走几个全连接, 得到260,128。

在 CLIP 中相当于,同一张图片,图像数据增强后,第一个图片 经过 VIT 进行特征提取,返回特征 query 160,128;第二个图片 经过 VIT 进行特征提取,返回特征 key 160,128

在batch=4的情况下,怎么算既有正样本又有负样本呢?

4个图片,分别是猫、狗、猪、鸭。key1,query1是猫通过图像增强得到的2个图片;key2,query2是狗通过图像增强得到2个图片。

key1,query1是互为正样本;

key2,query2是互为正样本;

(key1,key2) 、 (key1,query2) 都是负样本

但不知道通过 nt_xent_loss 是如何实现的

VIT里会更细致,具体到每个块(腿、眼睛)像不像。

260=4*65(全局特征1+64个位置特征?是叫位置特征吗?)

得到520*520的矩阵,代表每一个小块和其余小块的关系。不能考虑自己,去掉对角线,得到520*519。

temperature 温度系数,扩大 softmax 的差异。

正样本的标签是自动生成的。总长520。259配对0。

labels如下,518-259+1=260 

 

loss=F.cross_entropy(logits, labels, reduction='sum')

loss/=n # n=520,求平均损失

logits # 520,519 

labels # 259,260

 

 

CLIP

文本模型内部做完形填空,mask language model。-> enc_text

图像模型内容做 simCLR 利用vit做对比学习。-> enc_image

enc_text与enc_image再做对比学习

text_embeds=enc_text[;,0] # 0是'CLS',全局特征,4,512

images_embeds=enc_image[;,0] # 4,512,我理解应该是4,65,512求均值得到4,512   

# t - sequence dimension along text tokens
# i - sequence dimension along image tokens

text_to_iamge = einsum('t d, i d - > t i', text_latentes, image_latentes) * temp
# text_latentes 4,512
# image_latentes 4,512
# text_to_iamge 4,4 # 4个文本和4个图像之间的关系

image_to_text = rearrange(text_to_image, '... t i -> ... i  t')
# text_to_iamge 4,4 # 4个图像和4个文本之间的关系

【对比学习有多火?文本聚类都被刷爆了!通俗易懂的讲解让我直接悟了啊!】 https://www.bilibili.com/video/BV1iR4y1R7dH/?share_source=copy_web&vd_source=694333d73ad23f4f70f7df5508d4f30a

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LIN节点结构和主要技术特点

文章目录前言一、CAN/LIN总线的区别二、LIN节点结构三、主要技术特点1.单线连接2.低成本3.低传输速率。小于20kb/s4.采用NRZ编码5.单主/多从媒体访问、无需仲裁。6.同步机制简单7.通信确定性。8.报文的数据长度可变。9.采用奇偶校验和求和校验相结合的双重校验机制。前言 LIN总…

VSCode修改配置(设置settings.json)汇总

1.settings.json文件在哪(打开settings.json方式) (1)C:\Users\【你电脑名字username】\AppData\Roaming\Code\User (2)左下角设置按钮 (3)文件 -> 首选项 -> 设置 在这设置…

【Linux】权限管理

文章目录📖 前言1. 什么是权限2. 权限管理2.1 Linux的用户分类:2.2 Liunx文件的分类:2.3 文件的访问权限2.4 文件访问权限的相关设置方法:chmod对文件权限的修改chown / chgrp2.5 以八进制修改文件权限:2.6 默认权限&a…

用ChatGPT怎么赚钱?普通人用这5个方法也能赚到生活费

ChatGPT在互联网火得一塌糊涂,因为它可以帮很多人解决问题。比如:帮编辑人员写文章,还可以替代程序员写代码,帮策划人员写文案策划等等。ChatGPT这么厉害,能否用它来赚钱呢?今天和大家分享用ChatGPT赚钱的5…

C语言笔记5-字符串的指针

对于字符常量,是由一个固定内存的。 所以 指针 指向同一个内存地址。 函数中定义 void func (char *a) //字符型指针变量做参数 {}void func (char b[]) //字符数组名做参数 {} 指针变量值可以改变、但是数组首地址不可变 char *a "I love China!";…

【Vue2从入门到精通】深入浅出,带你彻底搞懂Vue2组件通信的9种方式

文章目录Vue组件间通信分类1.props / $emit1.1 父组件向子组件传值1.2 子组件向父组件传值2.$parent / $children3.ref / $refs3.1 ref作用于组件3.2 ref作用于Html标签3.3 $nextTick()4.EventBus ($emit / $on)4.1 初始化4.2 发送事件4.3 接收事件4.4 移…

三、线程状态【3/12】【多线程】

线程的状态3. 线程的状态3.1 观察线程的所有状态3.2 线程状态和状态转移的意义3.3 观察线程的状态和转移3. 线程的状态 3.1 观察线程的所有状态 线程的状态是一个枚举类型 Thread.State public class ThreadState {public static void main(String[] args) {for (Thread.State…

【随笔记】Win11、RTX3070、CUDA117的深度学习机器学习环境配置

文章目录一、创建深度学习 Conda 虚拟环境二、安装 Pytorch-Gpu三、安装 PyTorch Geometric四、安装 Sklearn五、Jupyter 配置5.1 将虚拟环境加入内核5.2 插件配置5.3 主题、字体、字号配置假设你已经安装了Anaconda3(最新Anaconda3的安装配置及使用教程&#xff08…

【docx模块】python中可以处理word文档的模块

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 今天给大家带来docx模块得介绍以及使用~ 一.docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的。 也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看…

JDK8和JDK17安装切换,IDEA配置多个版本JDK

文章目录JAVA8不香了?JDK下载JDK安装配置环境变量IDEA中配置多个JDK版本JAVA8不香了? JAVA之父高斯林推荐我们用JDK17,请尽快离开JDK8。JDK17 LTS在每个维度上都是一个巨大的飞跃: 在Java 17正式发布之前,Java开发框架…

ChatGPT中文在线官网-如何与chat GPT对话

怎么下载ChatGPT中文版 ChatGPT是一种基于Transformer架构的自然语言处理技术,其中包含了多个预训练的中文语言模型。这些中文ChatGPT模型大多数发布在Github上,可以通过Github的源码库来下载并使用,包括以下几种方式: 下载预训练…

linux centos 系统提示No space left on device错误 centos清理硬盘空间

一、问题描述 线上的一个centos系统,硬盘满了,通过以下方式清理后,启动程序还是会提示No space left on device错误,具体请看解决方法,这里讲下如何清理硬盘: 1、查看系统磁盘是否已满 df -h 看哪个目录use到100%,我这里是删除过…

Ubuntu22安装OpenJDK

目录 一、是否自带JDK 二、 删除旧JDK(如果自带JDK满足需求就直接使用了) 三、下载OpenJDK 四、新建/home/user/java/文件夹 五、 设置环境变量 六、查看完成 附:完整版连接: 一、是否自带JDK java -version 二、 删除旧…

chatGPT写文章提问词-chatGPT生成论文要多久

让ChatGPT写评论文章 好的,下面是一篇由 ChatGPT 撰写的评论文章: 题目:《流浪地球》:中国科幻电影的里程碑 《流浪地球》是一部改变了中国电影市场的重要电影,它迎来了一个新时代的中国科幻电影。这部电影吸引了众…

ToBeWritten之杂项

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬…

ToBeWritten之物联网 BlueTooth/BLE 协议

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬…

中金支付经历了4个月完成主要出资人前置审批

2023年4月6日,中国人民银行公示了关于中金支付有限公司的《中国人民银行准予行政许可决定书》(银许准予决字〔2023〕第41号),同意中金支付有限公司主要出资人由中金金融认证中心有限公司变更为广州广电运通金融电子股份有限公司&a…

Charles 安装及配置,详细步骤(不错,保存一下)

一、安装激活 1.1、下载 https://www.charlesproxy.com/download/ 1.2、激活 打开Charles > Help > Register Charles > 输入 Registered Name : https://zhile.io License Key:48891cf209c6d32bf4 二、代理配置 2.1、代理设置 Proxy > Pr…

Linux系统编程(三)—— 文件编程(1)目录和文件

3.1 目录和文件 贯穿始终的例子:做一个类似 ls 命令的实现。如myls 1、命令 (1)一个命令的格式:cmd --长格式 -短格式 非选项的传参 比如 ls --all 和 ls -a,这两个结果是一样的: (2&#x…

00后也太卷了吧!进厂起薪18K,原来面试时候都说了这些......

都说00后躺平了,但是有一说一,该牛的还是牛。 这不,前段时间公司来了个00后,工作都没两年,跳槽起薪18K。本来还以为是个年少有为的技术大牛呢,结果相处一个月下来发现技术也就那样。 问起他是如何做到和老…
最新文章