添加注意力机制过程+添加专家网络

添加注意力机制过程+添加专家网络_第1张图片添加注意力失败

二、添加专家网络

1、在得到logits_per_image之后添加专家网络

网络的输入维度应该与logits_per_image.shape[1]一致,那就添加logits_per_image这个参数

类似于image_features0的get,去get logit

image_features0 = get_image_features(
image, self.model, self.preprocess)
logits_per_image = get_logits_per_image(
image, text, self.model, self.preprocess)

那就要编写get_logits_per_image函数

-在此处的参数有text,要加上 ,否则参数量不对应会报错

在get_logits_per_image函数里边,要重新计算一下,得到get_logits_per_image值

-出现了ma1和ma2不对应错误,将编码图像后代码都加上.float(),即可解决

-又出现了Attribute Error :‘Clip‘ object has no attribute ‘modle‘错误

是因为单GPU,多处写有model.model,应该改为一个model

-报错RuntimeError: CUDA error: device-side assert triggered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

-又出现了ma1和ma2不对应的情况,是29*29与32*32

是logits_per_image.shape[1]出现了29,所以我把它直接跳过了,在后边也还有其他不等于32的情况,不知道为什么,我直接如果不等于32的话就跳过剩下的图片数据,

if logits_per_image.shape[1] == 32:

可以训练了,先看看结果吧

你可能感兴趣的:(python)