{ "cells": [ { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import torch\n", "from CLIP.clip import clip" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "clip_model_modify, clip_preprocess_modify = clip.load(\"../pretrained/clip_best.pth\", device=torch.device('cpu'), jit=False)\n", "# ./clip_weights/best_model_all_feature.pt\n", "clip_model_ori, clip_preprocess_ori = clip.load(\"../ViT-B-32.pt\", device=torch.device('cpu'), jit=False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def compare_weights(model1, model2):\n", " different_layers = []\n", " for name1, param1 in model1.named_parameters():\n", " param2 = model2.state_dict()[name1]\n", " # print(param2)\n", " if not torch.equal(param1, param2):\n", " different_layers.append(name1)\n", " return different_layers\n", "compare_weights(clip_model_modify, clip_model_ori)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def topK_process(model, text):\n", " # Encode and normalize the search query using CLIP\n", " text_token = clip.tokenize(text, truncate=True)\n", " tokens = text.split(' ')\n", " text_encoded, weight = model.encode_text(text_token)\n", "\n", " text_encoded /= text_encoded.norm(dim=-1, keepdim=True)\n", " attention_weights = weight[-1][0][1+len(tokens)][:2+len(tokens)][1:][:-1]\n", " # attention_weights = weight[-1][range(len(weight[-1])), tokens_lens][:, :1+max(tokens_lens)][:, 1:][:, :-1]\n", " return text_encoded, attention_weights\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# clip_text = 'a person passes something to the right'\n", "# clip_text_perb = 'a native passes something to the right'\n", "\n", "# clip_text = 'person is walking normally in a circle'\n", "# clip_text_perb = 'human is walking usually in a loop'\n", "\n", "# clip_text = 'a man kicks something or someone with his left leg'\n", "# clip_text_perb = 'a human boots something or someone with his left leg'\n", "\n", "# Walking forward in an even pace \n", "# Going ahead in an even pace\n", "\n", "# clip_text = 'a man jumps forward and swings his arms'\n", "# clip_text_perb = 'a native bounds ahead and waves his arms'\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "clip_text = 'person is sitting down and looking around'\n", "clip_text_perb = 'native is seating down and looking around'" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "import numpy\n", "def visual_weights(model, clip_text=clip_text, clip_text_perb=clip_text_perb):\n", " model.eval()\n", " text, weight_ori = topK_process(model, clip_text)\n", " text_perb, weight_perb = topK_process(model, clip_text_perb)\n", " weight_ori_v = weight_ori.detach().cpu().numpy()/weight_ori.detach().cpu().numpy().sum()\n", " # print(weight_ori_v.sum())\n", " weight_perb_v = weight_perb.detach().cpu().numpy()/weight_perb.detach().cpu().numpy().sum()\n", " # print(f\"text:{clip_text}, \\n weight_ori:{weight_ori_v},\\n text_perb:{clip_text_perb}, \\n weight_perb:{weight_perb_v}\")\n", " return clip_text, weight_ori_v, clip_text_perb, weight_perb_v" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "from matplotlib.patches import Rectangle\n", "\n", "def generate_colored_text_image(text, attention_weights):\n", " # text = text.split(' ')\n", " # attention_weights = [float(i) for i in attention_weights]\n", " fig, ax = plt.subplots(figsize=(len(text)+1, 1))\n", " ax.set_axis_off()\n", " \n", " # 计算文本块的数量\n", " num_words = len(text)\n", " \n", " # 计算每个文本块的宽度\n", " word_width = 0.95 / num_words # 减少间距\n", " \n", " # 计算最小和最大的权重值\n", " min_weight = min(attention_weights)\n", " max_weight = max(attention_weights)\n", " \n", " # 设置颜色\n", " base_color = (1, 0.5, 0.5) # 基础颜色为浅红色\n", " color_map = [(1, 0.95 - 0.3 * (weight - min_weight) / (max_weight - min_weight), 0.95 - 0.3 * (weight - min_weight) / (max_weight - min_weight), 0.8) for weight in attention_weights] # 根据权重计算颜色\n", " \n", " # 生成文本并设置背景颜色\n", " x_position = 0\n", " for word, color in zip(text, color_map):\n", " rect = Rectangle((x_position, 0), word_width, 1, facecolor=color)\n", " ax.add_patch(rect)\n", " ax.text(x_position + word_width / 2, 0.5, word, ha='center', va='center', fontsize=14, color='black') # 增大字体\n", " x_position += word_width\n", " \n", " plt.xlim(0, 1)\n", " plt.ylim(0, 1)\n", " plt.savefig('text_attention.png', dpi=300)\n", " plt.show()\n", "\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAABhCAYAAABGShAtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAdkUlEQVR4nO3deVhUVQPH8e+gAq64L7mghqKhIJmmoAKiuJSVr0aomaCvaZovZdli5lKmlaaWuZdbrkhpbhmmIK4JKpCKC+aemqJprijw/uEwLwNjr+gg4vw+z9PTw71n7j1z58y9vzn3nKshPT09HRERERGxGXZ5XQERERERebAUAEVERERsjAKgiIiIiI1RABQRERGxMQqAIiIiIjZGAVBERETExigAioiIiNgYBUARERERG6MAKCIiImJjCt51yb17c7EaNsjZOa9r8GiJicnrGjxabtzI6xo8emrUyOsaPFoKFcrrGjxarl3L6xo8Wp54Iq9r8H+pB1BERETExigAioiIiNgYBUARERERG6MAKCIiImJjFABFREREbIwCoIiIiIiNUQAUERERsTEKgCIiIiI2RgFQRERExMYoAIqIiIjYGAVAERERERujACgiIiJiYxQARURERGyMAqCIiIiIjVEAFBEREbExCoAiIiIiNkYBUERERMTGKACKiIiI2BgFQBEREREbowAoIiIiYmMUAEVERERsjAKgiIiIiI1RABQRERGxMQqAIiIiIjZGAVBERETExigAioiIiNgYBUARERERG6MAKCIiImJjFAAFgCNHj2IoVozgPn3yuioPHYOfH75vvGG17UXFxWHw82P47NlW22Z+c+T0aQxt2xI8dmxeV0WsxODqim/37nldDZMjJ05gqFmT4EGDHtg+fbt0wVCz5l2VnR0ejqFmTWaHh+dyrcQaDG5u+AYH53U1rEoBUOQeBH/6KQY/P46cPm1xvbVDo4iIiDUVzOsKyMOh8mOPkbhjB05OTnldlYdO4pw5FHFwsNr2GtepQ+KcOZTVsRaxWR0DAmji6UmlcuXyuipioxQABYBChQpRx9U1r6vxUKpTrZpVt1fE0dHq2xSR/MWpRAmcSpTI62qIDbP6LeCo7dsxuLkxfNIkNu3YgW9wMMUbNaJkkyZ0Cg0l6ejRbK/5MzmZNz/9FJe2bXFo0ICy3t50Cg1l98GD2cpWb92a6q1b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MP7u06lTOXryJC8Yh6WIZJVrYwBFJPfV69kTTxcXnnB2pkCBAsQlJREVF0fxIkUYmw/+dQYRuT+Xr16lspcXrb29qV2jBjdv3eLXuDhiEhKoVL48wx+hf6NerEsBUCQf69uhAyu2biV2/36uXL9OuZIl6ervz4evvEKdatXyunoiksuKODrS68UXWb91K9ExMVy/cYNK5crRp0sXPhwwgEpZ/v1rkQxWHwMod0ljAK1LYwCtS2MArU9jAK1LYwCtS2MArUtjAEVERETkYaMAKCIiImJjFABFREREbIwCoIiIiIiNUQAUERERsTEKgCIiIiI2RgFQRERExMYoAIqIiIjYGAVAERERERujACgiIiJiYxQARURERGyMAqCIiIiIjVEAFBEREbExCoAiIiIiNkYBUERERMTGKACKiIiI2BgFQBEREREbowAoIiIiYmMUAEVERERsjAKgiIiIiI1RABQRERGxMQqAIiIiIjZGAVBERETExigAioiIiNgYBUARERERG6MAKCIiImJjFABFREREbIwCoIiIiIiNMaSnp6fndSVERERE5MFRD6CIiIiIjVEAFBEREbExCoAiIiIiNkYBUERERMTGKACKiIiI2BgFQBEREREbowAoIiIiYmMUAEVERERsjAKgiIiIiI35L/Gz4hIs4e+0AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "clip_text, weight_ori_v, clip_text_perb, weight_perb_v = visual_weights(clip_model_ori)\n", "text = clip_text.split(' ')\n", "attention_weights = [float(i) for i in weight_ori_v]\n", "\n", "generate_colored_text_image(text, attention_weights)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "text = clip_text_perb.split(' ')\n", "attention_weights = [float(i) for i in weight_perb_v]\n", "\n", "generate_colored_text_image(text, attention_weights)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAABhCAYAAABGShAtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAe4klEQVR4nO3deXxMV+PH8c8ESShCkyK1RaxVklpCKkJiDR6KEKV2D1VqK22f2h9arZaW0qJqb1UsrcaeWCaWoLEkKdIoFVttCY1aQ5LfHybzZJLRnyUE832/Xn311XPP3Hty5s6d75x7zq0hLS0tDRERERGxGXY53QARERERebwUAEVERERsjAKgiIiIiI1RABQRERGxMQqAIiIiIjZGAVBERETExigAioiIiNgYBUARERERG6MAKCIiImJjct9zzbNnH2EzbFCBAjndgmfLvn053YJny7VrOd2CZ0+FCjndgmdLnjw53YJny6VLOd2CZ0vVqjndgv+XRgBFREREbIwCoIiIiIiNUQAUERERsTEKgCIiIiI2RgFQRERExMYoAIqIiIjYGAVAERERERujACgiIiJiYxQARURERGyMAqCIiIiIjVEAFBEREbExCoAiIiIiNkYBUERERMTGKACKiIiI2BgFQBEREREbowAoIiIiYmMUAEVERERsjAKgiIiIiI1RABQRERGxMQqAIiIiIjZGAVBERETExigAioiIiNgYBUARERERG6MAKCIiImJjFABFREREbIwCoIiIiIiNUQAUERERsTEKgCIiIiI2RgFQAIg/fhxD/vx0f/PNnG7KE8dQrx5+Awdm2/6M+/djqFePsXPnZts+nzbxZ89iCAig+6RJOd0UySYGd3f8OnbM6WaYxZ88iaFkSboPGfLYjunXvj2GkiXvqe78pUsxlCzJ/KVLH3GrJDsYPDzw69kzp5uRrRQARR5A9wkTMNSrR/yZM1a3Z3doFBERyU65c7oB8mQo/uKLxO7di5OTU0435YkTu2gR+Rwds21/tV56idhFi3BRX4vYrDYBAXhXr45rkSI53RSxUQqAAkCePHmoVLFiTjfjiVSpdOls3V8+R8ds36eIPF2cChbEqWDBnG6G2LBsvwVsjIjA4OrK2EmT2L57N35t21KgXDkKVaxIYK9eHDl2LMtrzickMGT0aMq9+ioOpUvjUrkygb16ceC337LUdfPy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t+eXqCg+mzWLyOhoegQFEbl6dZaHOt9vfWuqmkJgvrx5ada1K1sfIoRbU61KFbatWEGjunVZt2UL0xcswM7Oju0rVpjnsd9tUcn9+lf9+iyfPBn3EiX4bvVqFq9bR6UyZfhl8WJKZ3oe6v/nheefZ/f33zOwUyeOnjrFpAULCNu1i9b+/uz+/vsst5mLOjuzZc4cGtauTWhEBLN//JFCBQqw67vvcMumBXuj+/Zl9pgxOBcqxKxly1gWGkpQkyYsnTQpW/b/pDGk3etzPc6evadqxogI/AMDGTN0KGOHDXuYtj3bbHyBSbZ7RudoPKi6/fuz8+BBktauJf9dVrr+IytzY+UhVaiQ0y14tjwDD6N/lFJSUihbty7Xb9zg3L08T+8JWDj2TLnLc0efJLZ7j1PkGXDGyiq/70JD2fHrrzSqUePBwp+IPDVu375NwsWLWco/+eorjp86RWvTtBSRzB7ZHEARefSqdO9OtfLlqezmRi47O6KOHMG4fz8F8uVjUr9+Od08EXnErly9SnEvLxr7+lKhTBlu3b7N7v37iYyOxrVIEcYOGZLTTZQnlAKgyFOs72uvsWrHDvbExXH1+nVeKFSITo0aMapbNyplmGsrIs+mfHnz0qtDBzZHRLB1925u3LyJa5EivNm5M6MGDrT4X5eKZJTtcwDlHmkOYPbSHMDspTmA2U9zALOX5gBmL80BzF6aAygiIiIiTxoFQBEREREbowAoIiIiYmMUAEVERERsjAKgiIiIiI1RABQRERGxMQqAIiIiIjZGAVBERETExigAioiIiNgYBUARERERG6MAKCIiImJjFABFREREbIwCoIiIiIiNUQAUERERsTEKgCIiIiI2RgFQRERExMYoAIqIiIjYGAVAERERERujACgiIiJiYxQARURERGyMAqCIiIiIjVEAFBEREbExCoAiIiIiNkYBUERERMTGKACKiIiI2BgFQBEREREbowAoIiIiYmMUAEVERERsjCEtLS0tpxshIiIiIo+PRgBFREREbIwCoIiIiIiNUQAUERERsTEKgCIiIiI2RgFQRERExMYoAIqIiIjYGAVAERERERujACgiIiJiYxQARURERGzM/wHLJtywSXsL0wAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "clip_text, weight_ori_v, clip_text_perb, weight_perb_v = visual_weights(clip_model_modify)\n", "text = clip_text.split(' ')\n", "attention_weights = [float(i) for i in weight_ori_v]\n", "generate_colored_text_image(text, attention_weights)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "text = clip_text_perb.split(' ')\n", "attention_weights = [float(i) for i in weight_perb_v]\n", "generate_colored_text_image(text, attention_weights)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.3352644313389532" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from scipy.spatial.distance import jensenshannon\n", "def jsd_cal(model, clip_text, clip_text_perb):\n", " clip_text, weight_ori_v, clip_text_perb, weight_perb_v = visual_weights(model, clip_text, clip_text_perb)\n", " normalized_attention = weight_ori_v / weight_ori_v.sum()\n", " normalized_attention_perb = weight_perb_v / weight_perb_v.sum()\n", " jsd = jensenshannon(normalized_attention, normalized_attention_perb, base=2)\n", " return jsd\n", "\n", "jsd_cal(clip_model_ori, clip_text, clip_text_perb)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.08214502506975593" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "jsd_cal(clip_model_modify, clip_text, clip_text_perb)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "llm2", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.11" } }, "nbformat": 4, "nbformat_minor": 2 }