yfzhang114/SliME

使用siglip替换clip 训练时会出现问题

Closed this issue · 3 comments

image

我对代码做了以下修改
image

1.将train部分进行了修改,将image_processor.crop_size改成image_processor.size,因为siglip没有cropsize
2.data_dict['image_size'] = (336, 336)修改为data_dict['image_size'] = (384, 384),因为siglip训练时图片大小为384

请问我该如何继续调整代码呢

大概率是position embedding的维度不对的问题,这一行定义了position embedding的大小,你也可以直接把position embedding comment掉,看看是不是会出问题,这块对最终性能的影响不会特别大

if x.shape[1] != tgt_size[0] * tgt_size[1]:

感谢您的回复,确实是这里的问题
image
我使用的siglip 384的patch大小是27 * 27,去除分类层,特征数是27 * 27-1= 728, 这行代码将tgt_size 变成了26*26=676, 然后我将这行注释掉之后,再对pos_embed采用和特征处理一样的方法,去掉第0层,这样代码可以正常运行,请问这样修改是否合适呢?