相关代码链接见文末
1.数据及流程
CLIP整体流程如下,首先对图像提特征、对文本提特征,并进行配对,计算出余弦相似度,另外,图像自身和文本自身进行自监督学习,因此loss函数有3个部分,包含图像的自监督学习、文本的自监督学习以及图像和文本的配对
2.图像特征提取损失和文本特征提取损失
在图像的特征提取中,分别对图像进行两种不同的数据增强q,k,并传入VIT进行特征提取。
代码如下:
class SimCLR(nn.Module):
def __init__(
self,
net,
image_size,
channels = 3,
hidden_layer = -2,
project_hidden = True,
project_dim = 128,
augment_both = True,
use_nt_xent_loss = False,
augment_fn = None,
temperature = 0.1
):
super().__init__()