问题遇到的现象和发生背景
如下图
在CNN后,得到的应该是一个尺寸很小,通道数很多的特征信息,但是VIT的流程图如下
VIT传入要先切片,设patchszie等于16,N就等于HW/p平方,但是这里我看的不太明白,是对CNN后的尺寸很小的图进行切片,还是对原图进行切片,如果是CNN后的图,他的图片应该是很小的啊,在patchsize等于16时,怎么切的开啊?**
**
如下图
我也在纠结这个问题
你说的这个是对原图的操作
经过CNN的还有进一步的操作
if config.patches.get("grid") is not None: # ResNet
grid_size = config.patches["grid"]
patch_size = (img_size[0] // 16 // grid_size[0], img_size[1] // 16 // grid_size[1])
patch_size_real = (patch_size[0] * 16, patch_size[1] * 16)
n_patches = (img_size[0] // patch_size_real[0]) * (img_size[1] // patch_size_real[1])
self.hybrid = True
else:
patch_size = _pair(config.patches["size"])
n_patches = (img_size[0] // patch_size[0]) * (img_size[1] // patch_size[1])
self.hybrid = False
这里应该是得到一个新的patch_size
然后结果为True,则会调用CNN模型
if self.hybrid:
self.hybrid_model = ResNetV2(block_units=config.resnet.num_layers, width_factor=config.resnet.width_factor)
in_channels = self.hybrid_model.width * 16
然后对输出的width有个*16的操作
哈哈哈,再具体还没看明白
要不要加个联系方式一起探讨