FREEZE_LN = ['transformer.resblocks.0.ln_1.weight',
 'transformer.resblocks.0.ln_1.bias',
 'transformer.resblocks.0.ln_2.weight',
 'transformer.resblocks.0.ln_2.bias',
 'transformer.resblocks.1.ln_1.weight',
 'transformer.resblocks.1.ln_1.bias',
 'transformer.resblocks.1.ln_2.weight',
 'transformer.resblocks.1.ln_2.bias',
 'transformer.resblocks.2.ln_1.weight',
 'transformer.resblocks.2.ln_1.bias',
 'transformer.resblocks.2.ln_2.weight',
 'transformer.resblocks.2.ln_2.bias',
 'transformer.resblocks.3.ln_1.weight',
 'transformer.resblocks.3.ln_1.bias',
 'transformer.resblocks.3.ln_2.weight',
 'transformer.resblocks.3.ln_2.bias',
 'transformer.resblocks.4.ln_1.weight',
 'transformer.resblocks.4.ln_1.bias',
 'transformer.resblocks.4.ln_2.weight',
 'transformer.resblocks.4.ln_2.bias',
 'transformer.resblocks.5.ln_1.weight',
 'transformer.resblocks.5.ln_1.bias',
 'transformer.resblocks.5.ln_2.weight',
 'transformer.resblocks.5.ln_2.bias',
 'transformer.resblocks.6.ln_1.weight',
 'transformer.resblocks.6.ln_1.bias',
 'transformer.resblocks.6.ln_2.weight',
 'transformer.resblocks.6.ln_2.bias',
 'transformer.resblocks.7.ln_1.weight',
 'transformer.resblocks.7.ln_1.bias',
 'transformer.resblocks.7.ln_2.weight',
 'transformer.resblocks.7.ln_2.bias',
 'transformer.resblocks.8.ln_1.weight',
 'transformer.resblocks.8.ln_1.bias',
 'transformer.resblocks.8.ln_2.weight',
 'transformer.resblocks.8.ln_2.bias',
 'transformer.resblocks.9.ln_1.weight',
 'transformer.resblocks.9.ln_1.bias',
 'transformer.resblocks.9.ln_2.weight',
 'transformer.resblocks.9.ln_2.bias',
 'transformer.resblocks.10.ln_1.weight',
 'transformer.resblocks.10.ln_1.bias',
 'transformer.resblocks.10.ln_2.weight',
 'transformer.resblocks.10.ln_2.bias',
 'transformer.resblocks.11.ln_1.weight',
 'transformer.resblocks.11.ln_1.bias',
 'transformer.resblocks.11.ln_2.weight',
 'transformer.resblocks.11.ln_2.bias',
 'ln_final.weight',
 'ln_final.bias']

FROEN_ATT = ['visual.attnpool.positional_embedding']

DOWNSAMPLE = [
    'visual.layer1.0.downsample.0.weight',
 'visual.layer1.0.downsample.1.weight',
 'visual.layer1.0.downsample.1.bias',
 'visual.layer2.0.downsample.0.weight',
 'visual.layer2.0.downsample.1.weight',
 'visual.layer2.0.downsample.1.bias',
 'visual.layer3.0.downsample.0.weight',
 'visual.layer3.0.downsample.1.weight',
 'visual.layer3.0.downsample.1.bias',
 'visual.layer4.0.downsample.0.weight',
 'visual.layer4.0.downsample.1.weight',
 'visual.layer4.0.downsample.1.bias'
]

CONV_FREEZE = [
    'visual.conv1.weight',
 'visual.conv2.weight',
 'visual.conv3.weight',
 'visual.layer1.0.conv1.weight',
 'visual.layer1.0.conv2.weight',
 'visual.layer1.0.conv3.weight',
 'visual.layer1.1.conv1.weight',
 'visual.layer1.1.conv2.weight',
 'visual.layer1.1.conv3.weight',
 'visual.layer1.2.conv1.weight',
 'visual.layer1.2.conv2.weight',
 'visual.layer1.2.conv3.weight',
 'visual.layer2.0.conv1.weight',
 'visual.layer2.0.conv2.weight',
 'visual.layer2.0.conv3.weight',
 'visual.layer2.1.conv1.weight',
 'visual.layer2.1.conv2.weight',
 'visual.layer2.1.conv3.weight',
 'visual.layer2.2.conv1.weight',
 'visual.layer2.2.conv2.weight',
 'visual.layer2.2.conv3.weight',
 'visual.layer2.3.conv1.weight',
 'visual.layer2.3.conv2.weight',
 'visual.layer2.3.conv3.weight',
 'visual.layer3.0.conv1.weight',
 'visual.layer3.0.conv2.weight',
 'visual.layer3.0.conv3.weight',
 'visual.layer3.1.conv1.weight',
 'visual.layer3.1.conv2.weight',
 'visual.layer3.1.conv3.weight',
 'visual.layer3.2.conv1.weight',
 'visual.layer3.2.conv2.weight',
 'visual.layer3.2.conv3.weight',
 'visual.layer3.3.conv1.weight',
 'visual.layer3.3.conv2.weight',
 'visual.layer3.3.conv3.weight',
 'visual.layer3.4.conv1.weight',
 'visual.layer3.4.conv2.weight',
 'visual.layer3.4.conv3.weight',
 'visual.layer3.5.conv1.weight',
 'visual.layer3.5.conv2.weight',
 'visual.layer3.5.conv3.weight',
 'visual.layer4.0.conv1.weight',
 'visual.layer4.0.conv2.weight',
 'visual.layer4.0.conv3.weight',
 'visual.layer4.1.conv1.weight',
 'visual.layer4.1.conv2.weight',
 'visual.layer4.1.conv3.weight',
 'visual.layer4.2.conv1.weight',
 'visual.layer4.2.conv2.weight',
 'visual.layer4.2.conv3.weight'
]

FREEZE_LN = []
# CONV_FREEZE = []
FREEZE_RN = FREEZE_LN + FROEN_ATT + DOWNSAMPLE + CONV_FREEZE




FORCE_UPDATE = ['visual.attnpool.k_proj.weight', 'visual.attnpool.k_proj.bias', 
               'visual.attnpool.q_proj.weight', 'visual.attnpool.q_proj.bias',
               'visual.attnpool.v_proj.weight','visual.attnpool.v_proj.bias',
               'transformer.resblocks.0.attn.out_proj.weight',
 'transformer.resblocks.0.attn.out_proj.bias',
 'transformer.resblocks.1.attn.out_proj.weight',
 'transformer.resblocks.1.attn.out_proj.bias',
 'transformer.resblocks.2.attn.out_proj.weight',
 'transformer.resblocks.2.attn.out_proj.bias',
 'transformer.resblocks.3.attn.out_proj.weight',
 'transformer.resblocks.3.attn.out_proj.bias',
 'transformer.resblocks.4.attn.out_proj.weight',
 'transformer.resblocks.4.attn.out_proj.bias',
 'transformer.resblocks.5.attn.out_proj.weight',
 'transformer.resblocks.5.attn.out_proj.bias',
 'transformer.resblocks.6.attn.out_proj.weight',
 'transformer.resblocks.6.attn.out_proj.bias',
 'transformer.resblocks.7.attn.out_proj.weight',
 'transformer.resblocks.7.attn.out_proj.bias',
 'transformer.resblocks.8.attn.out_proj.weight',
 'transformer.resblocks.8.attn.out_proj.bias',
 'transformer.resblocks.9.attn.out_proj.weight',
 'transformer.resblocks.9.attn.out_proj.bias',
 'transformer.resblocks.10.attn.out_proj.weight',
 'transformer.resblocks.10.attn.out_proj.bias',
 'transformer.resblocks.11.attn.out_proj.weight',
 'transformer.resblocks.11.attn.out_proj.bias']