{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import json\n", "\n", "def read_json(file_path): \n", " with open(file_path, 'r', encoding='utf-8') as file:\n", " data = json.load(file)\n", " return data\n", "\n", "def write_json(file_path, data):\n", " with open(file_path, 'w', encoding='utf-8') as file:\n", " json.dump(data, file, ensure_ascii=False, indent=4)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# data = read_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/llava_image_tune_.json')\n", "data = read_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/llava_image_tune_logits_NoImg_Built.json')\n", " \n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "624610" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(data)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "原始列表: 624610\n", "随机选择的20%数据: 374766\n" ] } ], "source": [ "import random\n", " \n", "my_list = data\n", "sample_size = int(len(my_list) * 0.6)\n", "random_sample = random.sample(my_list, sample_size)\n", "\n", "print(\"原始列表:\", len(my_list))\n", "print(\"随机选择的20%数据:\", len(random_sample))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# write_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/llava_image_tune_rand_20P.json',random_sample)\n", "# write_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/llava_image_tune_rand_40P.json',random_sample)\n", "# write_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/llava_image_tune_rand_60P.json',random_sample)\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "------" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# # 按正态分布生成随机小数\n", "# mean = 8.5 # 均值 (中心点)\n", "# std = 3.5 # 标准差 (数据的散布程度)\n", "\n", "# # 生成 1000 个随机小数\n", "# normal_floats = np.random.normal(loc=mean, scale=std, size=1000)\n", "# rounded_normal_floats = [round(num, 2) for num in normal_floats] \n" ] }, { "cell_type": "code", "execution_count": 188, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "# 随机生成 0 到 17 的小数,保留两位小数\n", "random_floats = np.random.uniform(0, 18, size=3000) \n", "rounded_floats = [round(num, 2) for num in random_floats] \n", "\n", "\n", "intervals = [(0, 3), (3, 6), (6, 9), (9, 12), (12, 15), (15, 18)]\n", "weights = [0.1, 0.3, 0.5, 0.7, 0.9, 0.9] # 每个区间的权重\n", "weights = np.array(weights) / np.sum(weights)\n", "chosen_intervals = np.random.choice(range(len(intervals)), size=1000, p=weights)\n", "\n", "# 在选定区间内从生成的小数列表中采样\n", "selected_samples = []\n", "for i in chosen_intervals:\n", " # 筛选在该区间内的小数\n", " interval_data = [x for x in rounded_floats if intervals[i][0] <= x < intervals[i][1]]\n", " if interval_data: # 确保区间内有数据\n", " selected_samples.append(np.random.choice(interval_data))\n", " " ] }, { "cell_type": "code", "execution_count": 189, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1000" ] }, "execution_count": 189, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(selected_samples)" ] }, { "cell_type": "code", "execution_count": 190, "metadata": {}, "outputs": [ { "data": { "image/png": "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p06dMpx/7ty5mjZtmho2bKhOnTrpyJEj2rx5s6KiohyBIKeSkpJ0zz33aOXKlfL09FSbNm3k7e2tn376Sf/+97/1n//8R99//70aNmwoSapfv76ioqK0YcMGHTp0KM11Yjlpe07Ex8dLkgIDA52qNb/kdnufPn1aLVq00IEDB1S2bFndc889stvt+vTTT7V8+XLVqlUr03WNHTtWr7/+ulxcXNS4cWO1aNFCx44d01dffaWlS5dq9uzZjh8FUm3YsEGdOnVSYmKiqlatqvbt2+vMmTMaP368Nm/e7HT7x44dq/fee08rV67UihUr1L59+xzNN3v2bA0bNkx2u10NGjRQ69atdfToUS1btkzLli3TlClTNHny5Azn/emnnzRs2DAFBwerZcuWunTpksqUKZNmmm+++UZvvfWW6tSpo/bt22v//v1av3692rdvr9WrV2vHjh36xz/+oaZNm6pDhw7auXOnVq5cqVatWmnHjh2O922qYcOG6fjx46pVq5aaN28uV1dX/f7771q8eLH+97//adGiRerVq1feNmIB+uabb9S7d29dvnxZt912m3r27KmYmBitW7dOq1ev1vfff685c+akmWfXrl169NFH5e/vr9tuu02NGjXS33//rW3btunll1/W4sWLtXnzZpUrV07Stf10VFSUli9frtOnT6e7Ni51W65atUqdO3fW1atXVa9ePTVr1kwpKSn666+/9M033yglJUX33Xdf4W0c4GZlABQ7YWFhRpKZN29ettO2a9fOSDIDBgxIM7xVq1ZGklmzZo1j2Lp164wk06BBAxMfH59uWb/88os5c+ZMhrUcPnw4w/WvWbPGSDKSTN26dc2pU6eybNONy0mtU5J5+eWX04xbu3atKVmypJFkli9fnm37rjd58mQjyUyePDnN8Hnz5hlJJioqKsP5jDEmKioqw+3/3nvvGUmmfPnyZseOHY7hdrvdsT5fX18TExOTYdvd3NzM0qVLM6zHx8fHXLx4MdOabvTss88aSSY8PDzNNr1y5YoZOnSokWSqVKlikpKSctS2nMjqfblv3z5TokQJI8n88ssvTtd6+PBhI8mEhYVlW8+N76m8bu/evXsbSaZFixbm/PnzjuFnz541TZo0cbxPb2z/Bx98YCSZatWqmV27dqUZt27dOlOmTBnj7u5u/vjjD8fwS5cumdDQUCPJjBo1yiQnJzvG7dq1y5QvX96xvsw+exlJ7d8XX3zRGGPM22+/bSSZhg0bGrvd7pjuxRdfzPBz8OuvvxpXV1djs9nMggUL0oz79ttvjbu7u5FkfvjhhwzXK8k899xzJiUlJV1tqZ9Zm81mPv744zTjxowZYySZ2267zXh5eZmVK1c6xiUnJ5tevXoZSebhhx9Ot9wvv/zSnDt3LsPhrq6uply5cun6Oif7gYyktjGz/c6NUvePrVq1SjM8Ojra+Pj4GElm2rRpafrml19+MWXLljWSzAcffJBmvuPHj5uVK1em276JiYlm4MCBRpJ54okn0tWR3f6yTZs2RpL55JNP0o07f/682bRpU47aC9zqOJURuMWVL19eknJ0dCr1FLMWLVqk+xVbkho3buz4pTUv3nnnnVzd3e96DRo00Lhx49IMa9WqlZ544glJypcjZs567bXXJEmTJk1S/fr1HcNtNpsmT56sunXr6vz585o9e3aG848cOVL33HNPmmGDBg1SRESE4uLitHXr1hzVcfnyZc2cOVOS9Oabb6Y53c/NzU1vv/22AgMDdfjwYf33v//NRQtzLy4uTj/88IN69uyplJQUTZgwQY0bNy4SteZmex8/flz/+9//ZLPZNGvWrDTXF/r5+WnWrFkZrsNutztO1Vu0aJHq1q2bZnzLli01ceJEXblyRe+//75j+BdffKHjx48rNDRUM2bMUIkSJRzj6tatq+effz7P7b7esGHDVLVqVW3fvl2fffZZttP/61//UnJysnr06KGHHnoozbjOnTvr0UcflSS9+uqrGc5fo0YNTZs2TS4umX896d27twYMGJBmWGp79+/fr8cff1yRkZGOcSVKlND48eMlXTuyc6Pu3burbNmyGQ6///77dfbsWa1ZsybTevLixlMCU/9yevv92bNnKy4uTo0aNdLzzz8vm83mGNe4cWPH9rhxO1esWFGRkZHptm+pUqX03nvvydXVVZ9//nmu25P6f0OXLl3SjfPx8VHTpk1zvUzgVkQwA25xdrtdktL8x56Zhg0bqkSJEpo7d65mzpypU6dO5VsdAQEBatGiRZ7nHzhwYIbDo6KiJF077cvZ626cceLECR06dChNTdez2WyOU9Uy+xJ47733Zji8Zs2akpThtVYZ2bp1qy5cuCA/P78Ml1mqVCn17ds3y1qccf31ab6+vurYsaMOHDigTz75RC+++GKRqTU323v9+vWy2+1q2LChbr/99nTz1K9fP13okqQdO3bo5MmTCg8Pz/RU4tRr+H766SfHsNRrIx944IEMb4iT0XssL9zc3DRt2jRJ0oQJE3T16tUsp0+tK7OAMXToUEnSjz/+mOHnsXv37mlCZkYy+vLv5+fn+FEoo/Gp1y+ePHkyw2WePHlSs2fP1lNPPeW4a+igQYO0d+9eSdcCX37q2LGjoqKi0v1df3p0VlK3c2b9nLqdDxw4kGGbf/rpJ/3zn//U8OHDNXjwYA0aNEhPPPGE3N3dFRsbq7///jtX7bnzzjslSf3799eGDRuUnJycq/kBXMM1ZsAt7syZM5KufbHJTnh4uN588009/fTTGjFihEaMGKGwsDA1a9ZM99xzj+6//365u7vnqQ5nn3F24+3+bxx+6dIlnT17VgEBAU6tJ69Sv8SXK1fOcffBG6U+LyqzgJXZowtSl3f58uVc1ZLZNstJLc64/vq02NhY/fjjj0pISNDjjz+u6tWrO77kWV1rbrb3iRMnJGVdZ5UqVfTrr7+mGfbnn39Kkg4dOpTtjyOxsbE5Xl/ZsmXl4+OjuLi4LJeZE3379tWrr76qHTt26P3338/ywdPZ9VdqX12+fDnDz2NO9gOZ9YuXl5fOnj2b4fjUI/xJSUnpxk2dOlUvvfRSlqEz9frH/OLs7fKz286+vr6O64dPnDihkJAQSVJMTIx69eqlDRs2ZLn8+Pj4DI8iZmb69On69ddf9d133+m7775z3CindevW6t+/v+PHDABZI5gBtzBjjHbs2CFJqlOnTo7mGTlypB544AF9/fXX2rBhgzZs2KBFixZp0aJFmjx5sn788cc8Pb+rZMmSuZ4nt4wxOZ429UhiUZLV6V03kxufYxYXF6cePXpozZo1euCBB7Rv375CeUxDdn1cGNs7tYagoCB17Ngxy2lTTzsubDabTa+88oo6duyoF198Mcen2+VFTvYD2fVLbvrtf//7n6ZMmSIvLy+98847atu2rUJCQlSyZEnZbDaNHz9e06dPz9W+oyh7+OGHtWHDBjVr1kxTp05VvXr1VLZsWcdR15CQEJ06dSrX7Q0KCtLWrVu1bt06rVy5Uhs3btSWLVu0ceNGvfzyy5o+fXqe7u4J3GoIZsAt7Ntvv3WcstKhQ4cczxcYGKhHHnlEjzzyiKRrt2weMmSINm3apOeee04fffRRgdSblcOHD2c4PPVW6J6enmmuf0s9speQkJDhfKm3+c8vqQ/GPnv2rOLj4zM8apZ69KSgH6KduvzMtllh1iJduwbls88+U0REhI4ePao33nhDEyZMcKrW7Pr36tWr+Xoqbuq6s3qcQ0bjQkNDJV07kprZ4xXysr7z58/ny9GyVB06dFBkZKRWrVql119/PdPTDStUqKBDhw7pzz//VO3atdONT+0rT0/PHB2lL2ipt5V/6aWXHNe/Xe/AgQOFXVKOVKhQQb///rtje94oLi7O8YiG1PdKYmKivv32W7m4uOjbb7+Vr69vmnkSExMVHR2d55pSH52ReiTw8uXLmj9/voYPH67x48erd+/ejiOmADJWPH5+BZBrcXFxGj16tCSpffv2aW5GkVsRERGOX0N37tyZZlzqF+SCvubgk08+yXB46jOn7r77brm6/t9vUalfVn777bd081y8eDHT65Xy2p6KFSs6vpRk9AXcGOMY3qZNm1wtO7caN24sLy8vnTt3Tl9//XW68ZcuXdKiRYsKpZZU/v7+jjD22muvOZ6nlNda/f395e7urnPnzikmJibdfN9//32+vidbtmwpm82m7du36/fff083fteuXelOY5SkO+64Q+XLl9e+ffsc1zPlRKtWrSRdCxYZnYKX12fbZeWf//ynbDabXn/99TSnVV4v9Ut5ZiFz7ty5kq7dQOj6z6NVUsNLWFhYunExMTGZPnfNaqnbObMfwVK3c/Xq1R37uri4OKWkpMjb2ztdKJOu7UMzO1KWl/2ep6enhg0bprp168put2f4/geQFsEMuMUYY/Tdd9/pzjvv1IEDBxQcHJzpXQBvtHr1an377bfpvggaY7Rs2TJJ6b/gVKxYUZJy9aUzL7Zt26YZM2akGbZhwwbHHf1SQ2iqdu3aSZJmzpyZ5tqkxMREPfroozp+/HiG60ltz759+3Jd49ixYyVJL774onbt2uUYbozRtGnTtHPnTvn6+jqORBYUT09PDR8+XJL01FNPpTk6ePXqVT355JOKjo5WlSpV1Lt37wKt5XpPPPGEKlWqpLi4OMddNPNaq5ubm1q2bCnp2k0rrj9tcdeuXVleJ5UXlSpVUo8ePWS32/X444+nuSbp77//1hNPPJHhl143NzdNnjxZxhj16NEjw2t/UlJStHr16jTPJuvdu7cqVKig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dP3o6elZeEUincqVK2f4+Ro+fHiG09OHRUN2+1FjjCZNmqTg4GCVLFlS7dq104EDB7Jc5pQpU9L1bURERAG2Atn145QpUxQREaHSpUurbNmyateunbZs2ZLlMunHwpeT7zW//fabunXrJh8fH5UuXVp33HGHjh07luky2dcWvuz68fTp0xo0aJBCQkJUqlQpderUKdv9an71I8EMBSYxMVH16tXTzJkzczXf/v37derUKcdfQEBAAVWI3Prll1/0/vvvq27dutlO6+3tnaYfjx49WggVIjO//PJLmv5YsWKFJOn+++/PdB760HrZ7UdnzJiht99+W7NmzdKWLVtUunRpdezYUZcvX85yubVq1UrTtxs2bCiI8vH/ZdePNWrU0DvvvKPdu3drw4YNqly5sjp06KDY2Ngsl0s/Fq7s+vHQoUO6++67FRERobVr1+rXX3/VxIkTs/2Czr62cGXVj8YYde/eXX/++ae++uor7dixQ2FhYWrXrp0SExOzXG5+9GOxfI4ZiobOnTurc+fOuZ4vICBAvr6++V8QnHLhwgX1799fs2fP1rRp07Kd3mazKSgoqBAqQ074+/unef3KK68oPDxcrVq1ynQe+tB6We1HjTF66623NGHCBN13332SpAULFigwMFBLlixR3759M12uq6srfVuIsvv/8MEHH0zz+o033tCcOXP066+/KjIyMtP56MfClV0/Pv/88+rSpYtmzJjhGBYeHp7tctnXFq6s+vHAgQPavHmz9uzZo1q1akmS3nvvPQUFBek///mPHn744UyXmx/9yBEzFDn169dXcHCw2rdvr40bN1pdDv6/4cOHq2vXrmrXrl2Opr9w4YLCwsIUGhqq++67T3v37i3gCpFTV65c0SeffKIhQ4bIZrNlOh19WLQdPnxY0dHRaT6TPj4+atKkiTZt2pTlvAcOHFBISIiqVq2q/v37Z3mqFQrXlStX9MEHH8jHx0f16tXLclr6seiw2+365ptvVKNGDXXs2FEBAQFq0qRJtpdxSOxri5KkpCRJSnOU08XFRR4eHtkekc6PfiSYocgIDg7WrFmz9MUXX+iLL75QaGioWrdure3bt1td2i1v0aJF2r59u6ZPn56j6W+77TbNnTtXX331lT755BPZ7XbdddddOnHiRAFXipxYsmSJzp8/r0GDBmU6DX1Y9KVefxsYGJhmeGBg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m8aPH5/nbQEAKBiuVhcAALi59e/fXx999JEWL16sESNGOIafO3dO33//vfr166eSJUtq7969WrJkie6//35VqVJFp0+f1vvvv69WrVpp3759CgkJyZd6HnvsMc2fP1+DBw/WP/7xDx0+fFjvvPOOduzYoY0bN8rNzS3Xyzxy5IgkqWzZso5hf/75Z67a88orr8jFxUVjx45VXFycZsyYof79+2vLli2Oad577z2NGDFCLVq00OjRo3XkyBF1795dZcuWVcWKFR3T2e12devWTRs2bNCjjz6qmjVravfu3XrzzTf1xx9/aMmSJZKkvXv36p577lHdunX1wgsvyMPDQwcPHtTGjRtzvQ0AAAWLYAYAcErbtm0VHByshQsXpglmn3/+ua5eveo4jbFOnTr6448/5OLyfydrPPTQQ4qIiNCcOXM0ceJEp2vZsGGDPvzwQ3366ad68MEHHcPbtGmjTp066fPPP08zPDPnzp2TJCUmJmr16tWaOXOm/P391bJlS8c0uW3P5cuXtXPnTrm7u0u6FvKefPJJ7dmzR7Vr19aVK1c0ceJE3XHHHVq9erVcXa/9F123bl0NGjQoTTBbuHChVq5cqXXr1unuu+92DK9du7aGDRumn376SXfddZdWrFihK1eu6LvvvlP58uVzsykBAIWMUxkBAE4pUaKE+vbtq02bNjmOLEnXwkNgYKAiIyMlSR4eHo4Qk5KSorNnzzpOrdu+fXu+1PL555/Lx8dH7du315kzZxx/jRo1kpeXl9asWZOj5dx2223y9/dX5cqVNWTIEFWrVk3fffedSpUq5Zgmt+0ZPHiwI5RJ/3d65J9//ilJ2rp1q86ePatHHnnEEcqka0ckrz9Sl9rOmjVrKiIiIk0727ZtK0mOdvr6+kq6dq2f3W7PUdsBANYgmAEAnJZ6VCz1JiAnTpzQjz/+qL59+6pEiRKSrp1+9+abb6p69ery8PBQ+fLl5e/vr19//VVxcXH5UseBAwcUFxengIAA+fv7p/m7cOFChtfBZeSLL77QihUrtHDhQjVt2lQxMTEqWbJkmmly255KlSqleZ0atlKvfTt69KgkqVq1ammmc3V1TXcd3YEDB7R37950baxRo4YkOdrZp08fNW/eXA8//LACAwPVt29fLV68mJAGAEUQpzICAJzWqFEjRURE6D//+Y/Gjx+v//znPzLGpLkb48svv6yJEydqyJAhevHFF+Xn5ycXFxeNGjUq26Bgs9lkjEk3PCUlJc1ru92ugIAAffrppxkux9/fP0ftadmypePUv3vvvVd16tRR//79tW3bNsdRsty2JzWg3iijdmXHbrerTp06euONNzIcHxoaKunazVnWr1+vNWvW6JtvvtHy5cv12WefqW3btvrhhx8yrQkAUPgIZgCAfNG/f39NnDhRv/76qxYuXKjq1avrjjvucIz/73//qzZt2mjOnDlp5jt//ny21z+VLVvWccrf9VKPMqUKDw/XypUr1bx583RHuPLKy8tLkydP1uDBg7V48WL17dtXknPtyUhYWJgk6eDBg2rTpo1jeHJyso4cOaK6des6hoWHh2vXrl2KjIyUzWbLcrkuLi6KjIxUZGSk3njjDb388st6/vnntWbNGrVr1y7XdQIACganMgIA8kXq0bFJkyZp586d6Z5dVqJEiXRHhz7//HP99ddf2S47PDxcv//+u2JjYx3Ddu3ale7ugg888IBSUlL04osvpltGcnKyzp8/n9PmpNG/f39VrFhR//znPx3DnGlPRho3bqxy5cpp9uzZSk5Odgz/9NNP093q/4EHHtBff/2l2bNnp1vOpUuXlJiYKOn/bmJyvfr160tSutvqAwCsxREzAEC+qFKliu666y599dVXkpQumN1zzz164YUXNHjwYN11113avXu3Pv30U1WtWjXbZQ8ZMkRvvPGGOnbsqKFDhyomJkazZs1SrVq1FB8f75iuVatWeuyxxzR9+nTt3LlTHTp0kJubmw4cOKDPP/9c//rXv9S7d+9ct83NzU1PPvmknn76aS1fvlydOnVyqj0ZcXd315QpUzRy5Ei1bdtWDzzwgI4cOaL58+crPDw8zZGxhx56SIsXL9awYcO0Zs0aNW/eXCkpKfr999+1ePFiff/992rcuLFeeOEFrV+/Xl27dlVYWJhiYmL07rvvqmLFimnu5ggAsB5HzAAA+SY1jN15553pbmIxfvx4PfXUU/r+++/15JNPavv27frmm28c10NlpWbNmlqwYIHi4uI0ZswYff311/r444/VsGHDdNPOmjVLH3zwgWJiYjR+/HiNGzdOq1ev1oABA9S8efM8t+3RRx+Vj4+PXnnlFafbk5kRI0bo7bff1rFjxzR27Fj9+OOP+vrrr+Xr6ytPT0/HdC4uLlqyZIleeeUV7d69W2PHjtXUqVP1yy+/6Mknn3TcBKRbt26qVKmS5s6dq+HDh2vmzJlq2bKlVq9eLR8fnzzXCQDIfzaTl6uOAQBAobDb7fL391fPnj0zPHURAFA8cMQMAIAi4vLly+muW1uwYIHOnTun1q1bW1MUAKBQcMQMAIAiYu3atRo9erTuv/9+lStXTtu3b9ecOXNUs2ZNbdu2Lc0DqgEAxQs3/wAAoIioXLmyQkND9fbbb+vcuXPy8/PTwIED9corrxDKAKCY44gZAAAAAFiMa8wAAAAAwGIEMwAAAACwGMEMAAAAACxGMAMAAAAAixHMAAAAAMBiBDMAAAAAsBjBDAAAAAAsRjADAAAAAIv9Pxw0nt6+bJTUAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "# 更细的区间划分\n", "fine_bins = np.arange(1.5, 21, 3) # 每个区间宽度为 1\n", "fine_counts, _ = np.histogram(selected_samples, bins=fine_bins)\n", "\n", "# # 输出各区间的元素个数\n", "# fine_interval_counts = {f\"[{fine_bins[i]}, {fine_bins[i+1]})\": fine_counts[i] for i in range(len(fine_counts))}\n", "# fine_interval_counts\n", "\n", "\n", "# 绘制柱状图显示不同区间的元素个数\n", "plt.figure(figsize=(10, 6))\n", "plt.bar(fine_bins[:-1], fine_counts, width=3, edgecolor=\"black\", alpha=0.7)\n", "plt.title(\"Distribution of Rounded Normal Floats\", fontsize=16)\n", "plt.xlabel(\"Value Ranges\", fontsize=12)\n", "plt.ylabel(\"Frequency\", fontsize=12)\n", "plt.grid(axis='y', alpha=0.3)\n", "plt.xticks(fine_bins) # 设置 x 轴刻度\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "------" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "import json\n", "\n", "def read_json(file_path): \n", " with open(file_path, 'r', encoding='utf-8') as file:\n", " data = json.load(file)\n", " return data\n", "\n", "def write_json(file_path, data):\n", " with open(file_path, 'w', encoding='utf-8') as file:\n", " json.dump(data, file, ensure_ascii=False, indent=4)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "data_1 = read_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/New_llava_Logits_NImg_7B_2025_01_12.json')" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'id': 244066,\n", " 'conversations': [{'from': 'human',\n", " 'value': '############\\n\\nWhere is this taken?\\nAnswer the question using a single word or phrase. Circus ############\\n \\nDoes the previous paragraph demarcated within ### and ###\\ncontain informative signal for visual instruction tuning a vision-language model?\\nAn informative datapoint should be well-formatted, contain some\\nusable knowledge of the world, and strictly NOT have any harmful,\\nracist, sexist, etc. content.\\nOPTIONS:\\n- yes\\n- no\\n'},\n", " {'from': 'gpt', 'value': 'response: yes'}],\n", " 'ori_conversations': [{'from': 'human',\n", " 'value': '\\nWhere is this taken?\\nAnswer the question using a single word or phrase.'},\n", " {'from': 'gpt', 'value': 'Circus'}],\n", " 'Old_Path': 'llava_image_tune/coco/train2017/000000355857.jpg',\n", " 'yes_target_logprob_7B_NImg': -15.875,\n", " 'logits_shape': [1, 32000]}" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_1[0]" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "yes_target_logprob_7B_NImg = []\n", " \n", "for i in data_1:\n", " yes_target_logprob_7B_NImg.append(i['yes_target_logprob_7B_NImg'])" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(-12.0625, -23.125, 624640)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "max(yes_target_logprob_7B_NImg), min(yes_target_logprob_7B_NImg), len(yes_target_logprob_7B_NImg)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2gAAAIpCAYAAADXZRtAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAaddJREFUeJzt3Wl4FFX+9vG7E7KHJgSSAIYlgkLYBQQiKItIUFBZBxAUArggMCziAiqbozguoI4gOmwqMiOMj4yKgoiACnEDQRZhUCEImNASSIctW5/nhf+0xCSQTmcpyPdzXVyaqnOqftVV3ek7VXXKZowxAgAAAACUO5/yLgAAAAAA8DsCGgAAAABYBAENAAAAACyCgAYAAAAAFkFAAwAAAACLIKABAAAAgEUQ0AAAAADAIghoAAAAAGARBDQAAAAAsAgCGnAJq1evnmw2m5YuXXrBdp07d5bNZtOMGTPyTN+4caNsNps6d+5cajWifO3Zs0e9e/dWZGSkfH19CzwOgD+bMWMGx0oBDh48KJvNpnr16pX6Oory77PPPsvTN/ez/s//goODFRsbq3HjxunQoUNe15h7fNhsNvXq1avQdsuWLSv0d0xu/40bN3pdD3C5qVTeBQC49C1dulQJCQkaNmzYRcMiys7p06fVs2dPHTx4UG3atFF8fLx8fX3VsmXL8i6tTGzcuFFdunRRp06dLvsvgRVpWy93oaGhGjZsWKHz9+zZo2+++UaVK1dW69atC2zTokUL9/vcGKOUlBR99dVXevnll/XGG2/ok08+0bXXXlsi9a5evVqfffaZbrjhhhJZHgACGlChtW3bVj/88IOCg4PLuxSUgm+++UYHDx7Uddddp82bN5d3OQCKoHr16hf8Q9ctt9wiSRo0aJBCQkIKbNO7d+98Zz/T0tJ066236vPPP9fo0aP17bffel1rcHCwzpw5o4cffliJiYleLw/A77jEEajAgoOD1ahRI9WpU6e8S0EpyL2U6aqrrirnSgCUhCNHjmjt2rWSpJEjR3rUt0qVKpo2bZokaevWrUpLS/O6nj59+qh27dr68ssv9e6773q9PAC/I6ABFdiF7kHbunWrBg4cqOjoaPn7+8tut+vKK69Uv3799N///tfdrl69ekpISJAkvf7663nue/jzcs+cOaOnn35arVq1UuXKlRUcHKwmTZroscce04kTJwqt84svvlCPHj0UFham0NBQXXvttXrjjTck/XEfw5+dP33JkiWKi4tTlSpVZLPZdPDgQUlSUlKS/v73v6tr166qU6eOAgICFBYWpo4dO+rVV1+Vy+XKt9zz70FxuVx66aWX1Lx5cwUHB6tmzZq67777lJqaKknKyMjQE088oUaNGikoKEi1atXS+PHjdfr06cJ3ygWsXbtWvXr1UmRkpPz9/VWrVi0NHDgw31/Cc/dr7mVSf94vF+JyuXTllVfKZrNd8C/i999/v2w2mx566KF889avX6++ffuqZs2a8vf3V2RkpPr06VPo8vbv368RI0YoJiZGAQEBCg0NVd26ddWzZ08tWbLkYi9LgTp37qwuXbpIkjZt2pRn+8+/f8jhcOill17SLbfcopiYGAUFBclut6tNmzb6+9//rnPnzhW4/KIcX1Lxjl1JOnv2rJ5//nm1b99eYWFhCgwMVMOGDfXQQw/p+PHjxdrWklTUY/F8x48f11//+lf3e61u3bqaMGGCTp48qeHDhxd4P+3503fs2KG+ffsqIiJCQUFBat68uV588UXl5OTkW9f599AdOnRII0eOVO3ateXn56fhw4e72xX3M0mSsrOz9cwzz6hJkyYKCgpS9erV9Ze//EV79+716LX0xNKlS+VyudSkSRO1a9fO4/41atRw/392drbX9QQGBmrWrFmSpKlTpxa4Lzx1/j7ft2+fBg4cqMjISIWEhOjaa6/N8/vnq6++0m233eY+JuLi4rR+/fpCl71r1y7169dP1atXV3BwsJo1a6YXXnhBLpfLfU/3+e9foNwYAJesunXrGklmyZIlF2zXqVMnI8lMnz49z/QNGzYYSaZTp055pn/yySfGz8/PSDItWrQw/fv3N3369DFt27Y1AQEB5vbbb3e3feCBB0yHDh2MJFO/fn0zbNgw97/Zs2e72x0/fty0bNnSSDJ2u93cdtttpl+/fqZ69epGkomJiTEHDhzIV/u//vUv4+PjYySZZs2amcGDB5sbbrjB+Pj4mIcffthIMgV9lOVOHzt2rPHx8TEdO3Y0gwcPNu3atTMHDx40xhjzxBNPuNd94403mkGDBplOnToZf39/I8n07dvXuFyuPMs9cOCAkWTq1q1rBg8ebIKCgkyPHj1M7969TWRkpJFkrrnmGnPq1CnTsWNH97b26tXLVKlSxUgyN9988wX3V0Ee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qlQp/0DLPj4+7uHMz38dy0Jxj8XPP/9cxhi1atVKjRo1ytenadOmBX4unO8vf/mLAgMD803Pvc9y//79Bb6nunXrpipVquSbXtzPpILWfb6AgAANHDhQkkr0cQdOp1P/+c9/JEkjRoy4aPsWLVrk+R1w22236aqrrtL+/fs1adIkff311yVWW66///3v7v/m3ofrjZtvvjnfPZqVKlVSTEyMpD9GszxftWrVFB4erszMzDz3aua+HwcMGCA/P798/YryuwQoSwyzD1wGRo0aVegXJun3L8YpKSlFXt7s2bP1/fff66OPPtJHH32koKAgtWrVSp07d9aQIUMUGxvrUX1HjhyRJPcv1oLUr18/T1tJOnz4sCQVOtBBUQZAuFCbL7/8UgMHDrzgg1udTmeB02vWrFngF+jQ0FBJKnRkzMqVK0tSkYPI8ePH3W0Le/0Keu281bBhQ3Xv3l1r167VqlWr3EFk3rx5kv4YJCTXzz//LEn66aefLjoQicPhcP//gw8+qC+++EKffPKJevToIT8/P7Vo0UI33HCDBg0aVGLPairM/v371adPH+3evbvQNoUdA1Lhx1dxj93c1/Hxxx/X448/Xuh6pbyvY1ko7rF4sdcid96OHTsKnV/Y+ipXrqxq1arp+PHjOnz4sGrVqpVvuQUp7mdSrrCwMIWFhV2w1tztLgn//ve/debMGUVHR7uD44UUNMy+MUavvPKKxowZoy5duuiHH34o0RF84+Li1Lt3b61atUpPPfWUnnvuOa+WV1htRfmMTU1NzfMZe7FjMCwsTFWqVCmRkS2BkkBAA5BPjRo19O2332rTpk365JNPtHnzZn311VfavHmznnrqKc2ePVsPP/xwmdVT2Bf+iwUBSQoKCipw+pkzZ9S7d2+lpKQoISFBo0ePVoMGDWS32+Xr66v//e9/atiwoYwxBfb38bnwBQgXm38pGD9+vNauXat58+apf//++uWXX/Tee+8pNDQ03x8Ecke8rFGjxkW/QFavXt39/8HBwVq3bp2++eYbrVmzRlu2bNGWLVv07bffas6cObr//vvdobA09O/fX7t371avXr300EMPqXHjxrLb7fLz81NmZqYCAgIu2L+w4yuXp8du7uvYsWNHd0AoTJMmTS4432ou9H4tynv5Ygp6r15s/5Smwj47imPx4sWSfj9zWdzPFpvNpvvvv1+L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1vLz89P69evVr18/SdK+fft06NAhxcXFSZLi4uL05JNP6tixY+7LCdatWye73a7GjRu723z44Yd51rFu3Tr3Mvz9/dW6dWutX79evXv3dtewfv16jR071qvXCABQMhwOh4YmjFJq+hmP+p07e0aHj/yqOllZpVQZAADe8Sqg7dixQ2+99Zb+9a9/6ejRo6pRo4ZGjRqlu+66S82aNcvTdvLkyQoMDNTkyZMLXd6UKVN08803q06dOkpPT9fy5cu1ceNGrV27VlWqVNHIkSM1adIkhYeHy263a9y4cYqLi1P79u0lSd27d1fjxo1155136plnnlFycrIee+wxjRkzxn354X333aeXX35ZDz30kEaMGKFPP/1UK1as0OrVq911TJo0ScOGDVObNm3Utm1bvfDCCzp9+rR7VEcAQPlyOp1KTT+jiLh+CgmPuniH/3Psp11K+mWxcrIJaAAAa/IqoF1zzTUKCgpS7969ddddd+mmm2664PWVTZo0cZ+pKsixY8d011136ddff1WVKlXUvHlzrV27VjfddJMkae7cufLx8VG/fv2UkZGh+Ph4zZ8/393f19dXH3zwgUaPHq24uDiFhIRo2LBhmjVrlrtNTEyMVq9erYkTJ+rFF19UdHS0Fi5c6B5iX5IGDhwoh8OhadOmKTk5WS1bttSaNWvyDRwCAChfIeFRskdGF7n9qePJpVgNAADe8yqgLV68WP3791doaGiR2nfp0kVdunQpdP6iRYsu2D8wMFDz5s3TvHnzCm1Tt27dfJcw/lnnzp313XffXbDN2LFjuaQRAAAAQJnyKqANHz68hMoAAAAAAHg17utLL72U59LAP7v55pv1yiuveLMKAAAAAKgwvApoixYtco+OWJDGjRvrtdde82YVAAAAAFBheBXQfvrpJ8XGxhY6v1GjRvrpp5+8WQUAAAAAVBheBTR/f38lJxc+Itavv/7q0VOzAQAAAKAi8yo9tW/fXkuXLlV6enq+eWlpaVqyZIn7GWUAAAAAgAvzahTH6dOnq1OnTmrZsqUmTJigJk2aSJJ27dqlF154Qb/++quWL19eIoUCAAAAwOXOq4DWrl07vf/++7r33ns1fvx42Ww2SZIxRjExMXrvvfcu+GBqAAAAAMAfvApoknTTTTfpxx9/1HfffeceEKR+/fpq1aqVO7ABAAAAAC7O64AmST4+PmrdurVat25dEosDAAAAgAqpRALanj179PPPP+vEiRMyxuSbf9ddd5XEagAAAADgsuZVQPvpp580dOhQff311wUGM0my2WwENAAAAAAoAq8C2r333qudO3fqhRde0PXXX6+qVauWVF0AAAAAUOF4FdA2b96sqVOnaty4cSVVDwAAAABUWF49qLp69eqqUqVKSdUCAAAAABWaVwHtvvvu07Jly5STk1NS9QAAAABAheXVJY5XX321cnJy1KJFC40YMUK1a9eWr69vvnZ9+/b1ZjUAAAAAUCF4FdAGDhzo/v/JkycX2MZms3GGDQAAAACKwKuAtmHDhpKqAwAAAAAqPK8CWqdOnUqqDgAAAACo8LwKaLkyMjK0bds2HTt2TB06dFD16tVLYrEAAAAAUKF4NYqjJL300kuqWbOmOnbsqL59++r777+XJP3222+qXr26Fi9e7HWRAAAAAFAReBXQlixZogkTJqhHjx5atGiRjDHuedWrV1fXrl3173//2+siAQAAAKAi8CqgPf/887r99tu1fPly3Xrrrfnmt27dWrt37/ZmFQAAAABQYXgV0H788UfdfPPNhc4PDw/X8ePHvVkFAAAAAFQYXgW0sLAw/fbbb4XO37Nnj2rUqOHNKgAAAACgwvAqoN1yyy167bXXdPLkyXzzdu/erX/+85+67bbbvFkFAAAAAFQYXgW0v/3tb8rJyVHTpk312GOPyWaz6fXXX9fQoUPVpk0bRUZGatq0aSVVKwAAAABc1rwKaLVq1dLWrVvVo0cPvf322zLG6M0339T777+vwYMH68svv+SZaAAAAABQRF4/qDoyMlILFy7UwoUL5XA45HK5FBERIR8frx+xBgAAAAAVitcB7XwREREluTgAAAAAqFC8CmizZs26aBubzabHH3/cm9UAAAAAQIXgVUCbMWNGofNsNpuMMQQ0AAAAACgir24Uc7lc+f5lZ2frp59+0sSJE9WmTRsdO3aspGoFAAAAgMtaiY/k4ePjo5iYGD333HO66qqrNG7cuJJeBQAAAABclkp1qMUbbrhBH374YWmuAgAAAAAuG6Ua0L799luG2wcAAACAIvJqkJA33nijwOknT57UZ599pv/3//6fRo0a5c0qAAAAAKDC8CqgDR8+vNB51atX1yOPPKJp06Z5swoAAAAAqDC8CmgHDhzIN81ms6lq1aqqXLmyN4sG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nj/v18TERN1www3y9/d3T4uPj9e+fft04sSJ8igRZahhw4aqVq2aFi1apMzMTJ09e1aLFi1SbGys6tWrV97loRStW7dOLpdLR44cUWxsrKKjo/WXv/xFv/zyS3mXhjKwZ88ezZo1S2+88YZ8fPiaXNGV13c+jjzg//z444/6xz/+oXvvvbfQNitWrNA333yjhISEMqwMpa2gfZ+cnKyoqKg87XJ/Tk5OLtP6UPYqV66sjRs3atmyZQoKClJoaKjWrFmjjz76SJUqVSrv8lCKfv75Z7lcLj311FN64YUX9J///Eepqam66aab8t2nistLRkaGBg8erGeffVZ16tQp73JQzrZs2aK3335b99xzT5mvm4CGy84jjzwim812wX979+7N0+fIkSPq0aOHBgwYoLvvvrvA5W7YsEEJCQn65z//qSZNmpTFpsBDpbXvcWkozv4vzNmzZzVy5Eh16NBBX375pTZv3qymTZuqZ8+eOnv2bClvCTxVkvve5XIpKytLL730kuLj49W+fXv961//0v79+7Vhw4ZS3hJ4qiT3/ZQpUxQbG6uhQ4eWctUoKSW5/8+3a9cu3X777Zo+fbq6d+9eCpVfGH8GxGXngQce0PDhwy/Y5sorr3T//9GjR9WlSxddd911hQ4AsWnTJt16662aO3eu7rrrrpIsFyWoJPd9jRo1lJKSkmda7s81atQomYJRojzd/xeyfPlyHTx4UImJie7LnJYvX66qVavqv//9rwYNGuRtuShBJbnva9asKUlq3Lixe1pERISqV6+uQ4cOFbtGlI6S3Peffvqpdu7cqf/85z+SJGOMJKl69ep69NFHNXPmTK9qRckryf2fa8+ePbrxxht1zz336LHHHvOiuuIjoOGyExERoYiIiCK1PXLkiLp06aLWrVtryZIlBV5vvnHjRvXq1Ut///vfy+U0N4quJPd9XFycHn30UWVlZcnPz0/S7/emNGzYUFWrVi3x2uE9T/b/xZw5c0Y+Pj6y2Wzuabk/u1yuElkHSk5J7vsOHTpIkvbt26fo6GhJUmpqqn777TfVrVu3RNaBklOS+/6dd97Jc4b8m2++0YgRI/T555+rfv36JbIOlKyS3P+StHv3bnXt2lXDhg3Tk08+WWLL9RQBDRXWkSNH1LlzZ9WtW1fPPfecHA6He17uGZINGzaoV69eGj9+vPr16+e+98jf35+BQi5hRdn3d9xxh2bOnKmRI0fq4Ycf1q5du/Tiiy9q7ty55VU2StChQ4eUmpqqQ4cOKScnR9u3b5ckNWjQQKGhobrpppv04IMPasyYMRo3bpxcLpeefvppVapUSV26dCnf4uGVi+37q6++WrfffrvGjx+v1157TXa7XVOmTFGjRo3Y95e4i+37P4ew3377TZIUGxt70eemwfoutv937dqlrl27Kj4+XpMmTXJ/5/P19S3REFgkZT5uJGARS5YsMZIK/Jdr2LBhBc7v1KlT+RUOrxVl3xtjzI4dO0zHjh1NQECAueKKK8zTTz9dThWjpBX23t6wYYO7zccff2w6dOhgqlSpYqpWrWq6du1qEhMTy69olIii7Pu0tDQzYsQIExYWZsLDw02fPn3yPHIBl6ai7PvzbdiwgWH2LyMX2//Tp08vcH7dunXLvFabMf93gS0AAAAAoFwxiiMAAAAAWAQBDQAAAAAsgoAGAAAAABZBQAMAAAAAiyCgAQAAAIBFENAAAAAAwCIIaAAAAABgEQQ0AAAAALAIAhoA4LJ08OBB2Ww2LV26tLxLAQCgyAhoAIByd9tttyk4OFjp6emFthkyZIj8/f11/PjxMqyseGbMmCGbzeb+5+fnp3r16umvf/2rTp48Wd7lAQAsjIAGACh3Q4YM0dmzZ/Xuu+8WOP/MmTP673//qx49eqhatWplXF3xvfLKK3rzzTf18ssvq23btvrHP/6hXr16lXdZAAALI6ABAMrdbbfdpsqVK2v58uUFzv/vf/+r06dPa8iQIWVcmXf69++voUOH6t5779WKFSs0cOBAbd68WV9//XV5lwYAsCgCGgCg3AUFBalv375av369jh07lm/+8uXLVblyZd12221KTU3V5MmT1axZM4WGhsput+vmm2/Wjh07Lrqezp07q3PnzvmmDx8+XPXq1cszzeVy6YUXXlCTJk0UGBioqKgo3XvvvTpx4kRxN1PXX3+9JOmnn35yTyvq9mzcuFE2m00rVqzQk08+qejoaAUGBurGG2/Ujz/+mG9d8+bN05VXXqmgoCC1bdtWn3/+eYHbn5GRoenTp6tBgwYKCAhQ7dq19dBDDykjIyNPu3Xr1qljx44KCwtTaGioGjZsqKlTpxb7tQAAFKxSeRcAAID0+2WOr7/+ulasWKGxY8e6p6empmrt2rUaPHiwgoKCtHv3bq1atUoDBgxQTEyMUlJS9Oqrr6pTp07as2ePatWqVSL13HvvvVq6dKkSEhL017/+VQcOHNDLL7+s7777Tps3b5afn5/Hyzx48KAkqWrVqu5pP//8s0fb8/TTT8vHx0eTJ09WWlqannnmGQ0ZMkRfffWVu80rr7yisWPH6vrrr9fEiRN18OBB9e7dW1WrVlV0dLS7ncvl0m233aYvvvhC99xzj2JjY7Vz507NnTtX//vf/7Rq1SpJ0u7du9WrVy81b95cs2bNUkBAgH788Udt3rzZ49cAAHBhBDQAgCV07dpVNWvW1PLly/MEtJUrVyorK8t9eWOzZs30v//9Tz4+f1wEcuedd6pRo0ZatGiRHn/8ca9r+eKLL7Rw4UK99dZbuuOOO9zTu3Tpoh49emjlypV5phcmNTVVknT69Gl9+umnmjdvniIiInTDDTe423i6PefOndP27dvl7+8v6fewN378eO3atUtNmzZVZmamHn/8cV177bX69NNPVanS77/qmzdvruHDh+cJaMuXL9cnn3yiTZs2qWPHju7pTZs21X333actW7bouuuu07p165SZmamPPvpI1atX9+SlBAB4iEscAQCW4Ovrq0GDBikxMdF9pkn6PURERUXpxhtvlCQFBAS4w0xOTo6OHz/uvuRu27ZtJVLLypUrVaVKFd1000367bff3P9at26t0NBQbdiwoUjLadiwoSIiIlSvXj2NGDFCDRo00EcffaTg4GB3G0+3JyEhwR3OpD8um/z5558lSd9++62OHz+uu+++2x3OpN/PUJ5/5i53O2NjY9WoUaM829m1a1dJcm9nWFiYpN/vBXS5XEXadgBA8RDQAACWkXuWLHewkMOHD+vzzz/XoEGD5OvrK+n3y/Lmzp2rq666SgEBAapevboiIiL0/fffKy0trUTq2L9/v9LS0hQZGamIiIg8/06dOlXgfXIFeeedd7Ru3TotX75c7du317FjxxQUFJSnjafbU6dOnTw/54au3HvjkpKSJEkNGjTI065SpUr57rPbv3+/du/enW8br776aklyb+fAgQPVoUMHjRo1SlFRURo0aJBWrFhBWAOAUsAljgAAy2jdurUaNWqkf/3rX5o6dar+9a9/yRiTZ/TGp556So8//rhGjBihJ554QuHh4fLx8dGECRMuGhhsNpuMMfmm5+Tk5PnZ5XIpMjJSb731VoHLiYiIKNL23HDDDe5LAm+99VY1a9ZMQ4YM0datW91nzTzdntyg+mcFbdfFuFwuNWvWTHPmzClwfu3atSX9PojLZ599pg0bNmj16tVas2aN3n77bXXt2lUff/xxoTUBADxHQAMAWMqQIUP0+OOP6/vvv9fy5ct11VVX6dprr3XP/89//qMuXbpo0aJFefqdPHnyovdHVa1a1X0p4Plyzzrlql+/vj755BN16NAh3xmv4goNDdX06dOVkJCgFStWaNCgQZK8256C1K1bV5L0448/qkuXLu7p2dnZOnjwoJo3b+6eVr9+fe3YsUM33nijbDbbBZfr4+OjG2+8UTfeeKPmzJmjp556So8++qg2bNigbt26eVwnAKBgXOIIALCU3LNl06ZN0/bt2/M9+8zX1zff2aKVK1fqyJEjF112/fr1tXfvXjkcDve0HTt25BuN8C9/+YtycnL0xBNP5FtGdna2Tp48WdTNyWPIkCGKjo7W3//+d/c0b7anIG3atFG1atX0z3/+U9nZ2e7pb731Vr5HBPzlL3/RkSNH9M9//jPfcs6ePavTp09L+mOwk/O1bNlSkvINxw8A8A5n0AAAlhITE6PrrrtO//3vfyUpX0Dr1auXZs2apYSEBF133XXauXOn3nrrLV155ZUXXfaIESM0Z84cxcfHa+TIkTp27JgWLFigJk2ayOl0utt16tRJ9957r2bPnq3t27ere/fu8vPz0/79+7Vy5Uq9+OKL6t+/v8fb5ufnp/Hjx+vBBx/UmjVr1KNHD6+2pyD+/v6aMWOGxo0bp65du+ovf/mLDh48qKVLl6p+/fp5zpTdeeedWrFihe677z5t2LBBHTp0UE5Ojvbu3asVK1Zo7dq1atOmjWbNmqXPPvtMPXv2VN26dXXs2DHNnz9f0dHReUZ/BAB4jzNoAADLyQ1lbdu2zTfYxdSpU/XAAw9o7dq1Gj9+vLZt26bVq1e775e6kNjYWL3xxhtKS0vTpEmT9N577+nNN99Uq1at8rVdsGCBXnvtNR07dkxTp07VlClT9Omnn2ro0KHq0KFDsbftnnvuUZUqVfT00097vT2FGTt2rF566SUdOnRIkydP1ueff6733ntPYWFhCgwMdLfz8fHRqlWr9PTTT2vnzp2aPHmyZs6cqW+++Ubjx493DxZy2223qU6dOlq8eLHGjBmjefPm6YYbbtCnn36qKlWqFLtOAEB+NlOcu4oBAMAlxeVyKSIiQn379i3wkkYAgDVwBg0AgMvMuXPn8t3X9sYbbyg1NVWdO3cun6IAAEXCGTQAAC4zGzdu1MSJEzVgwABVq1ZN27Zt06JFixQbG6utW7fmedA1AMBaGCQEAIDLTL169VS7dm299NJLSk1NVXh4uO666y49/fTThDMAsDjOoAEAAACARXAPGgAAAABYBAENAAAAACyCgAYAAAAAFkFAAwAAAACLIKABAAAAgEUQ0AAAAADAIghoAAAAAGARBDQAAAAAsIj/D9ZltKk70ka3AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 环境已重置,重新加载必要的模块\n", "import matplotlib.pyplot as plt\n", " \n", " \n", "# sorted_data = sorted(yes_target_logprob_7B_NImg)\n", "# plt.figure(figsize=(10, 6))\n", "# plt.plot(range(len(sorted_data)), yes_target_logprob_7B_NImg, \n", "# marker='o', linestyle='-', color='blue', alpha=0.7)\n", "\n", " \n", "# plt.title(\"Line Plot of yes_target_logprob_7B_NImg\", fontsize=16)\n", "# plt.xlabel(\"Index\", fontsize=12)\n", "# plt.ylabel(\"Value\", fontsize=12)\n", "# plt.grid(alpha=0.3)\n", "# plt.show()\n", "\n", "\n", "\n", "\n", "# 绘制柱状图查看数据分布\n", "plt.figure(figsize=(10, 6))\n", "plt.hist(yes_target_logprob_7B_NImg, bins=50, edgecolor='black', alpha=0.7)\n", "plt.title(\"Histogram of yes_target_logprob_7B_NImg\", fontsize=16)\n", "plt.xlabel(\"Value Ranges\", fontsize=12)\n", "plt.ylabel(\"Frequency\", fontsize=12)\n", "plt.grid(axis='y', alpha=0.3)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2gAAAIpCAYAAADXZRtAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXlhJREFUeJzt3XlYFXX///HXQWQXAWWRVCQrJZdMrUTNXTFtMa07C9NI00pLs1XLtVXrVrMss0zrVrvTutvL3JeU3Mo9yxVNBY6iHnBhO/P7wx/nKwHK4bAM8Hxcl9clM5/3zHuOI/piZj5jMQzDEAAAAACgzLmVdQMAAAAAgIsIaAAAAABgEgQ0AAAAADAJAhoAAAAAmAQBDQAAAABMgoAGAAAAACZBQAMAAAAAkyCgAQAAAIBJENAAAAAAwCQIaABQSurVqyeLxaK5c+dedlyHDh1ksVg0fvz4XMtXrVoli8WiDh06lFiPKFu7d+9Wr169FBISoipVquR7HuTnoYceksViyfXL3d1dNWvWVPv27TVjxgxlZmaW/AEUg5z+C8tut2v9+vUaO3as2rZtqxo1aqhq1aqqWbOmunbtqvnz58swjMtuY8uWLbr33nsVGhoqLy8vRUZG6oknnlBycnK+4+fOnZvn83Zzc1P16tV1880369VXX1VaWppTxw0AOdzLugEAQOmaO3eu4uLiNGDAgCuGRZSes2fPqmfPnjp06JBatmypmJgYValSRc2aNSv0NurXr6+2bdtKki5cuKA9e/ZozZo1WrNmjT777DMtXbpU3t7eJXQEZePAgQNq06aNJCkoKEgtW7ZUYGCgDhw4oGXLlmnZsmX673//qy+//FIeHh556r/44gvdf//9ysrK0k033aTIyEht3rxZ7777rhYtWqRffvlF11xzTb779vX11T333CNJys7O1oEDB/Trr79q06ZN+vTTT7VmzRqFhoaW3MEDqJAIaABQTtx88836448/5OPjU9atoARs2rRJhw4dUuvWrbVu3boibaNt27Z5Qvd///tf3X///Vq3bp3effddPfvss8XQrXlYLBZ16tRJzz77rLp27aoqVao41q1evVo9e/bU999/rzfeeENjx47NVXvs2DENGDBAWVlZ+uCDDzR48GBJF8PWQw89pHnz5umBBx7Qhg0b8r2qV7NmzTyf98aNG9W5c2f99ddfevbZZ/Xpp58W/0EDqNC4xREAygkfHx81bNhQdevWLetWUAIOHz4sSbr22muLdbt9+/ZV165dJUnfffddsW7bDOrXr6/ly5ere/fuucKZJLVv314vvPCCJOUblKZNm6Zz586pS5cujnAmSVWqVNH777+v6tWra9OmTVqyZEmh+7n55pv19NNPS5L+97//KSsrqyiHBaASI6ABQDlxuWfQtmzZovvuu0+1a9eWh4eH/P39dfXVV6tPnz765ptvHOPq1aunuLg4SdInn3yS6xmaf2733LlzeuONN9S8eXNVq1ZNPj4+atSokV566SWdOnWqwD5/+eUXde/eXQEBAfLz89NNN93k+M9xQc8XXbp8zpw5io6OVvXq1WWxWHTo0CFJUkJCgiZNmqROnTqpbt268vT0VEBAgNq2basPPvhAdrs9z3YPHToki8WievXqyW63a/r06WratKl8fHxUq1YtPfroo0pJSZEkpaen6+WXX1bDhg3l7e2t8PBwDR8+XGfPni34D+Uyfv75Z91+++0KCQmRh4eHwsPDdd9992nz5s25xuX8uQ4YMEBS3j+X4tC0aVNJUlJSUp51u3fv1rhx49SmTRtdddVV8vDwUI0aNdSlSxctXLgw3+1dei5mZmZq0qRJatSokby9vVWjRg317t1bf/zxR4H9xMfH67bbbnOcIy1bttTHH39cLMf6TzfeeKMk6ciRI3nWffXVV5KkBx54IM86Pz8/3XnnnZIuBi1ntGjRQtLF21ZPnDjhVC0AcIsjAJRzy5cv12233abMzEzdcMMNio6OVnZ2to4ePaoffvhB2dnZuuuuuyRJ99xzj3799VetW7cu1/NKktSwYUPH71NSUtS5c2dt3bpV/v7+6tSpk6pWrarVq1fr1Vdf1YIFC7RixQrVq1cvVy///e9/FRsbK7vdriZNmqhx48Y6evSo4uLitHv37iseyxNPPKH33ntPrVu3Vs+ePXXgwAFHSPnPf/6jMWPGKDIyUtddd53atGmj48ePKz4+XuvWrdOSJUv0xRdfFBhq+vXrp6+//lrt27dX/fr1tX79en3wwQfauHGj1q5dq+7du2v79u3q0KGDrr32Wq1du1bTp0/X3r179eOPPzr1ZzJmzBi98sorslgsat26terWras//vhDCxcu1JdffqlZs2bp4YcfliSFhYVpwIAB2rdvX75/LsXBZrNJUr7PQ02ZMkWzZ89Ww4YN1aRJEwUEBOjw4cNauXKlli9frl9//VVTpkzJd7uZmZnq0aOH1q9fr3bt2ikqKkobN27UV199pZUrV+r333/Pc44sWrRI999/v7Kzs9W4cWM1adJER44c0aBBg7Rr165iPW5J2rt3rySpVq1auZanpqZq3759kqSWLVvmW9uyZUv95z//0e+//+7UPnM+b0ny9PR0qhYAZAAASkVERIQhyZgzZ85lx7Vv396QZIwbNy7X8pUrVxqSjPbt2+da3rFjR0OSMW/evDzbOn36tBEfH59r2Zw5cwxJxoABAwrs4b777jMkGbfccotx4sQJx/LU1FTjtttuMyQZrVu3zlVz9OhRw8/Pz5BkvP3227nWrV692vD19TUkGfn905Oz3N/fP0+/OTZu3Gjs2LEjz/KjR48aN9xwgyHJWLhwYa51Bw8edGy7fv36xqFDhxzrTpw4YVx77bWGJKNJkybGzTffnOtYDxw4YAQGBhqSjF9++aXAz+qffvrpJ0OS4eXlZSxZsiTXuo8++siQZFStWtXYuXNnrnWF+XMpyIABAwqsvXDhghEZGWlIMt58880861etWmXs378/z/I9e/YYtWvXNiQZGzZsyLUu51yUZNx4443G8ePHHevOnz9vxMTEGJKMwYMH56o7fvy4Ua1aNUOSMWXKlFzrli1bZnh5eRV4jhTF2bNnHcc+cuTIXOu2b9/u2Nfp06fzrf/f//5nSDJq1qyZa3nOn1VERES+dffcc48hyahbt26xHAeAyoVbHAGglMXFxeWZovvSX6tXr3Zqezm3rfXo0SPPuurVq6tVq1ZObe/w4cNatGiRLBaLZs2apRo1ajjW+fn56cMPP5SXl5fWr1+v9evXO9bNnj1baWlpio6O1pNPPplrm+3atdNjjz12xX0/88wzBfZ70003qXHjxnmWh4eHa/LkyZIuXp0pyPTp0xUREeH4ukaNGo6edu7cqdmzZ+c61sjISPXr10/SxauUhfXWW29Jkh5//HHHs185Bg4cqNtvv12ZmZl6++23C73NokhPT9fWrVvVp08fHTx4UF27dtWwYcPyjGvfvr2uvvrqPMsbNGigMWPGSLo402F+LBaL5syZo7CwMMcyLy8vTZgwQZK0bNmyXONnz56t1NRUtWrVSk899VSudZ07d9aQIUOcO8grePzxx3Xw4EGFh4dr9OjRudalpqY6fu/r65tvvZ+fn6TcV8QKkp2drX379mnEiBGOz2vEiBFF7BxAZcYtjgBQytq0aVPgtN2StHjx4nyfFSrIzTffrN27dys2NlajR49Wq1at5O5e9G/va9askd1uV/PmzR3PLl3qqquuUkxMjL755hutXLlSrVu3liRHsIyNjc13u7GxsY7wUpCcKcsLkp6eriVLlmjTpk1KTk5Wenq6DMNw/Gf7zz//zLfO3d1d3bp1y7M8Z0KOunXr5hv+ctYfO3bssn3lyMrKcszA+NBDD+U7ZuDAgfr++++1cuXKQm3TGZ988ok++eSTPMsfffRRzZgxQ25u+f9cNi0tTT/99JN+//13nThxQhkZGZKk48ePSyr4c61bt65uuOGGPMujoqIkSUePHs21fNWqVZIKPkcGDBhQbMH15Zdf1ieffCIvLy8tXLgwV/guLgkJCfneUuvm5qYRI0YQ0AAUCQENAErZoEGDCvzPu3TxRdXOBLTXX39d27dv108//aSffvpJ3t7eat68uTp06KDY2FjHf5YLK+c/1ZGRkQWOqV+/fq6xkvT3339LUp5njnIUtLywY3799Vfdd999jtkO81PQlY5atWrlG1pzrpAUNDNmtWrVJF18p1hhnDx50jG2oM8vv8+uuFz6/JrNZtPmzZt15MgRzZw5U02aNNHjjz+ep+a7775TXFycTp48WeB2C/pcC/rc/P39JV0M1JfKOUcK+mwud845Y8qUKRo7dqw8PT311VdfOd6TdqmcP1vp4mQe1atXzzMm52XTOcfzT5e+B81iscjPz0/XXXedbr/99mI7FgCVDwENAMq5sLAwbd68WatXr9ayZcu0bt06bdiwQevWrdNrr72m119/Xc8//3yp9VPQJB2FmZGwoJconzt3Tr169VJSUpLi4uL02GOP6ZprrpG/v7+qVKmiv/76Sw0aNJBhGPnWF3TlqLDry4t/vgctOztbo0aN0ptvvqkRI0aoTZs2ua54HT16VPfdd5/Onz+v5557TrGxsapXr578/Pzk5uamJUuWKCYmpsifa1l455139PTTT8vDw0Nffvmlunfvnu+4S293PXz4sJo0aZJnTM7MjwX94CC/96ABgKvM950VAOC0nCnPX3nlFa1cuVIpKSl6//33ZbFYNHr0aO3fv7/Q27rqqqskSQcOHChwTM66nLGX/j5n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vsFMkiwWCwENAAAAAArBpYA2ZMgQ7dixQ9OmTdOtt96qwMDA4uoLAAAAACodlwLaunXrNHr0aD3xxBPF1Q8AAAAAVFouvai6Zs2aql69enH1AgAAAACVmksB7dFHH9W8efOUnZ1dXP0AAAAAQKXl0i2O1113nbKzs3XDDTfo4YcfVp06dVSlSpU843r37u3KbgAAAACgUnApoN13332O3z/zzDP5jrFYLFxhAwAUyGq1ymazOV3n7++v4ODgEugIAICy41JAW7lyZXH1AQCohKxWq/rFDVJK6jmna4Oq+WjenI8IaQCACsWlgNa+ffvi6gMAUAnZbDalpJ5TcHQf+QaFFrrubEqSrPFfymazEdBQaJkZGUpISHCqJiEhQVmZWSXUEQDk5VJAy5Genq7ffvtNycnJatOmjWrWrFkcmwUAVBK+QaHyD6ntVI21hHpBxZSedkaHDh7QiNHj5enpWei6C+fP6e+jx1U3M7MEuwOA/+NyQJs+fbrGjx+vM2fOSJKWLl2qTp066cSJE2rYsKEmT56shx9+2OVGAQAAiioz/bzsFnfVbNVbNcIjCl2XvH+nEo58rOwsAhqA0uFSQJszZ45GjBihvn37qlu3brmCWM2aNdWpUyf997//JaABAABT8AkMdupqbdrJxBLsBgDycuk9aP/+97911113acGCBbrjjjvyrG/RooV27drlyi4AAAAAoNJwKaDt27dPt912W4Hrg4KCdPLkSVd2AQAAAACVhksBLSAgQCdOnChw/e7duxUWFubKLgAAAACg0nApoPXo0UOzZs3S6dOn86zbtWuXPvzwQ915552u7AIAAAAAKg2XAtorr7yi7OxsNW7cWC+99JIsFos++eQT9evXTy1btlRISIjGjh1bXL0CAAAAQIXmUkALDw/Xli1b1L17d33++ecyDEP/+c9/9N133+n+++/Xr7/+yjvRAAAAAKCQXH4PWkhIiD766CN99NFHslqtstvtCg4OlpubS9kPAAAAACodlwPapYKDg4tzcwAAAABQqbgU0CZOnHjFMRaLRWPGjHFlNwAAAABQKbgU0MaPH1/gOovFIsMwCGgAAAAAUEguPShmt9vz/MrKytL+/fv11FNPqWXLlkpOTi6uXgEAAACgQiv2mTzc3NwUGRmpt956S9dee62eeOKJ4t4FAAAAAFRIJTrVYrt27fTjjz+W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VatWio+PV5MmTRQaGuoYExMTo8cee0y7du3SjTfeqPj4+FzbyBlz6a2U/5Senq709HTH1zabTZJkt9tlt9tdPWQAMLWc16pYJFlkFLrOIsnNza1IdRaLRYZhOPU9tqh9utorddQ5o6jnNwDzcubvcrkLaP/973/122+/adOmTXnWJSYmysPDI88Ls0NDQ5WYmOgYc2k4y1mfs+5yY2w2m86fPy9vb+88+3799dc1YcKEPMutVqsuXLhQ+AMEgHIoNTVV10RGKMRX8qmafuWC/8890FNnG0Wpjn8VBThR5+cruUdGKDU1VcnJySXepyu9UkedM3VS0c9vAOaVmppa6LHlKqAdOXJEw4cP19KlS+Xl5VXW7eQyatQojRw50vG1zWZTnTp1FBwcLH9//zLsDABKXlpamvYdTFBWlOTv61noumOn0rVt1x/yb5OtjMDC19nOSocOJqhatWoKCQkp8T5d6ZU66pypk4p+fgMwL2eyS7kKaFu2bFFycrKaN2/uWJadna01a9bo3Xff1c8//6yMjAydPn0611W0pKQkhYWFSZLCwsK0cePGXNvNmeXx0jH/nPkxKSlJ/v7++V49kyRPT095eub9Buzm5iY3t3L5qB8AFFrO7ViGJEOWQtcZunjbR1Hqcm5XdOZ7bFH7dLVX6qhzRlHPbwDm5czf5XL1t75z587asWOHtm7d6vjVsmVLxcbGOn5ftWpVLV++3FHz559/6vDhw4qOjpYkRUdHa8eOHbluGVi6dKn8/f11/fXXO8Zcuo2cMTnbAAAAAICSUK6uoFWrVk2NGzfOtczX11c1atRwLB84cKBGjhypoKAg+fv764knnlB0dLRatWolSerWrZuuv/56Pfjgg5o8ebISExP10ksvaejQoY4rYI8++qjeffddPffcc3r44Ye1YsUKLVy4UD/88EPpHjAAAACASqVcBbTCmDp1qtzc3NSnTx+lp6crJiZG7733nmN9lSpV9P333+uxxx5TdHS0fH19NWDAAE2cONExJjIyUj/88IOeeuopvf3226pdu7Y++ugjxcTElMUhAQAAAKgkyn1AW7VqVa6vvby8NGPGDM2YMaPAmoiICP3444+X3W6HDh30+++/F0eLAAAAAFAo5eoZNAAAAACoyAhoAAAAAGASBDQAAAAAMAkCGgAAAACYBAENAAAAAEyCgAYAAAAAJlHu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G2+8UUYdozQU9H1g5cqVjjFLliwx2rRpY1SvXt0IDAw0OnXqZMTHx5dd0yhxhTkvzpw5Yzz88MNGQECAERQUZNx99925XseAiqUw58SlVq5cyTT7lcCVzotx48bluz4iIsKp/VgM4//fNAsAAAAAKFPM4ggAAAAAJkFAAwAAAACTIKABAAAAgEkQ0AAAAADAJAhoAAAAAGASBDQAAAAAMAkCGgAAAACYBAENAAAAAEyCgAYAqJAOHToki8WiuXPnlnUrAAAUGgENAFDm7rzzTvn4+Cg1NbXAMbGxsfLw8NDJkydLsbOiGT9+vCwWi+NX1apVVa9ePT355JM6ffp0WbcHADAxAhoAoMzFxsbq/Pnz+uqrr/Jdf+7cOX3zzTfq3r27atSoUcrdFd3777+v//znP3r33Xd1880365133tHtt99e1m0BAEyMgAYAKHN33nmnqlWrpgULFuS7/ptvvtHZs2cVGxtbyp255p577lG/fv00ZMgQLVy4UPfdd5/WrVunjRs3lnVrAACTIqABAMqct7e3evfureXLlys5OTnP+gULFqhatWq68847lZKSomeeeUZNmjSRn5+f/P39ddttt2nbtm1X3E+HDh3UoUOHPMsfeugh1atXL9cyu92uadOmqVGjRvLy8lJoaKiGDBmiU6dOFfUwdeutt0qS9u/f71hW2ONZtWqVLBaLFi5cqFdffVW1a9eWl5eXOnfurH379uXZ14wZM3T11VfL29tbN998s9auXZvv8aenp2vcuHG65ppr5OnpqTp16ui5555Tenp6rnFLly5V27ZtFRAQID8/PzVo0ECjR48u8mcBAMife1k3AACAdPE2x08++UQLFy7UsGHDHMtTUlL0888/6/7775e3t7d27dqlr7/+Wvfee68iIyOVlJSkDz74QO3bt9fu3bsVHh5eLP0MGTJEc+fOVVxcnJ588kkdPHhQ7777rn7//XetW7dOVatWdXqbhw4dkiQFBgY6lh04cMCp43njjTfk5uamZ555RmfOnNHkyZMVGxurDRs2OMa8//77GjZsmG699VY99dRTOnTokHr16qXAwEDVrl3bMc5ut+vOO+/UL7/8osGDBysqKko7duzQ1KlT9ddff+nrr7+WJO3atUu33367mjZtqokTJ8rT01P79u3TunXrnP4MAACXR0ADAJhCp06dVKtWLS1YsCBX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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random\n", "\n", "# 假设已有数据列表\n", "data = yes_target_logprob_7B_NImg \n", "sample_size = int(0.2 * len(data))\n", "sampled_data_rand20P = random.sample(data, sample_size)\n", " \n", "# 绘制柱状图查看数据分布\n", "plt.figure(figsize=(10, 6))\n", "plt.hist(sampled_data_rand20P, bins=50, edgecolor='black', alpha=0.7)\n", "plt.title(\"Histogram of Rand 20P\", fontsize=16)\n", "plt.xlabel(\"Value Ranges\", fontsize=12)\n", "plt.ylabel(\"Frequency\", fontsize=12)\n", "plt.grid(axis='y', alpha=0.3)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2gAAAIpCAYAAADXZRtAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAa2tJREFUeJzt3Xl8TPf+x/H3JJFEyJCQRYpIaUkJSltCa22F6qLUra3UUtVLr6WLS+1ui2opl1YXS1u0pb3VvRU7FYo2FOVao5ZEKpgkyDbz+8Mvc02TkMlkOZHX8/HI45E55/s95/Odk+2dc873mGw2m00AAAAAgBLnVtIFAAAAAACuIqABAAAAgEEQ0AAAAADAIAhoAAAAAGAQBDQAAAAAMAgCGgAAAAAYBAENAAAAAAyCgAYAAAAABkFAAwAAAACDIKABQDGpVauWTCaTlixZct12bdq0kclk0qRJkxyWb9iwQSaTSW3atCmyGlGy9u/fry5duigwMFDu7u65fh3k5qmnnpLJZHL48PDwUNWqVdW6dWvNnz9fGRkZRT+AQpBdv6veeust+7YGDRp03ba7du1S9+7dFRQUJG9vb4WFhem5557T2bNnc22/ZMmSHO+3m5ubKlWqpHvuuUevvPKKUlJSXB4DgLLJo6QLAAAUryVLlqh///7q16/fDcMiik9qaqo6d+6s48eP66677lJUVJTc3d3VuHHjfG+jdu3auvfeeyVJV65c0YEDB7Rp0yZt2rRJH3/8saKjo1W+fPkiGoFxHD16VC+99JJMJpNsNtt123722Wfq2bOnMjMzdffddyssLEw7d+7UvHnztHLlSm3ZskV16tTJtW+FChX0+OOPS5KysrJ09OhRbdu2TTt27NCHH36oTZs2KSgoqNDHB+DmRkADgFLinnvu0e+//y4fH5+SLgVFYMeOHTp+/LhatGihn376qUDbuPfee3OE7k8++UQ9e/bUTz/9pHnz5unFF18shGqNy2q12s8o9u3bVx988EGebU+fPq1+/fopMzNT77zzjgYPHizpath66qmntHTpUvXq1Uvbt2/P9axe1apVc7zfP//8s9q3b6///ve/evHFF/Xhhx8W6vgA3Py4xBEASgkfHx/Vq1dPNWvWLOlSUAROnDghSbrtttsKdbs9evTQAw88IEn6+uuvC3XbRjRnzhxt3rxZM2bMUK1ata7b9s0339SlS5d0//3328OZJLm7u+vtt99WpUqVtGPHDq1evTrf+7/nnnv0/PPPS5L+85//KDMzs0DjAFB2EdAAoJS43j1ou3bt0hNPPKHq1avL09NTZrNZt956q7p166Yvv/zS3q5WrVrq37+/JOmDDz5wuIfmr9u9dOmSpk+friZNmsjX11c+Pj6qX7++xo0bp/Pnz+dZ55YtW9SxY0dVrlxZFStW1N13320/i5DX/UXXLl+8eLEiIyNVqVIlmUwmHT9+XJIUFxenGTNmqF27dqpZs6a8vLxUuXJl3XvvvXrnnXdktVpzbPf48eMymUyqVauWrFar5s6dq4YNG8rHx0fVqlXTkCFDlJSUJElKS0vT1KlTVa9ePZUvX14hISEaPny4UlNT8z4o1/Hjjz/qoYceUmBgoDw9PRUSEqInnnhCO3fudGiXfVz79esnKedxKQwNGzaUJCUkJORYt3//fk2cOFEtW7bULbfcIk9PT1WpUkX333+/VqxYkev2rv1azMjI0IwZM1S/fn2VL19eVapUUdeuXfX777/nWU9MTIw6depk/xq56667tGjRIpfHefDgQb388stq3bq1nn322Ru2/+KLLyRJvXr1yrGuYsWKeuSRRyRdDVrOaNq0qaSrl63++eefTvUFAC5xBIBSbu3aterUqZMyMjLUqFEjRUZGKisrS6dOndK3336rrKwsPfroo5Kkxx9/XNu2bdNPP/3kcL+SJNWrV8/+eVJSktq3b6/Y2FiZzWa1a9dO5cqV08aNG/XKK69o+fLlWrduXY4zFJ988ol69+4tq9WqiIgINWjQQKdOnVL//v21f//+G47lueee01tvvaUWLVqoc+fOOnr0qD2kfPTRRxo/frzCwsJ0++23q2XLljpz5oxiYmL0008/afXq1frss8/yDDV9+vTRqlWr1Lp1a9WuXVtbt27VO++8o59//lmbN29Wx44dtWfPHrVp00a33XabNm/erLlz5+rQoUP67rvvnDom48eP17/+9S+ZTCa1aNFCNWvW1O+//64VK1bo888/17vvvqsBAwZIkoKDg9WvXz8dPnw41+NSGCwWiyTlej/UrFmztHDhQtWrV08RERGqXLmyTpw4ofXr12vt2rXatm2bZs2alet2MzIy9OCDD2rr1q1q1aqVwsPD9fPPP+uLL77Q+vXr9euvv+b4Glm5cqV69uyprKwsNWjQQBEREfrjjz80aNAg7du3r8BjzMrKUr9+/WQymbRw4cIbhtvk5GQdPnxYknTXXXfl2uauu+7SRx99pF9//dWpWrLfb0ny8vJyqi8AyAYAKBahoaE2SbbFixdft13r1q1tkmwTJ050WL5+/XqbJFvr1q0dlrdt29YmybZ06dIc27pw4YItJibGYdnixYttkmz9+vXLs4YnnnjCJsnWrFkz259//mlfnpycbOvUqZNNkq1FixYOfU6dOmWrWLGiTZJtzpw5Dus2btxoq1Chgk2SLbdfPdnLzWZzjnqz/fzzz7bffvstx/JTp07ZGjVqZJNkW7FihcO6Y8eO2bddu3Zt2/Hjx+3r/vzzT9ttt91mk2SLiIiw3XPPPQ5jPXr0qM3Pz88mybZly5Y836u/+v77722SbN7e3rbVq1c7rHv//fdtkmzlypWz7d2712Fdfo5LXvr165dn3ytXrtjCwsJskmwzZ87MsX7Dhg22I0eO5Fh+4MABW/Xq1W2SbNu3b3dYl/21KMl255132s6cOWNfd/nyZVtUVJRNkm3w4MEO/c6cOWPz9fW1SbLNmjXLYd2aNWts3t7eeX6N3Mi0adNskmyzZ8+2L5s4caJNkm3gwIE52u/Zs8e+rwsXLuS6zf/85z82SbaqVas6LM8+VqGhobn2e/zxx22SbDVr1nR6HADAJY4AUMz69++fY4ruaz82btzo1PayL1t78MEHc6yrVKmSmjdv7tT2Tpw4oZUrV8pkMundd99VlSpV7OsqVqyo9957T97e3tq6dau2bt1qX7dw4UKlpKQoMjJS//jHPxy22apVq3xdcvbCCy/kWe/dd9+tBg0a5FgeEhKi1157TdLVszN5mTt3rkJDQ+2vq1SpYq9p7969WrhwocNYw8LC1KdPH0lXz1Lm1+uvvy5J+vvf/26/9yvbwIED9dBDDykjI0Nz5szJ9zYLIi0tTbGxserWrZuOHTumBx54QMOGDcvRrnXr1rr11ltzLK9bt67Gjx8v6epMh7kxmUxavHixgoOD7cu8vb01efJkSdKaNWsc2i9cuFDJyclq3ry5Ro4c6bCuffv2euaZZ5wb5P/bu3evJk6cqBYtWuT42stLcnKy/fMKFSrk2qZixYqSHM+I5SUrK0uHDx/WiBEj7O/XiBEj8lULAFyLSxwBoJi1bNkyz2m7JemHH37I9V6hvNxzzz3av3+/evfurbFjx6p58+by8Cj4j/dNmzbJarWqSZMm9nuXrnXLLbcoKipKX375pdavX68WLVpIkj1Y9u7dO9ft9u7d2x5e8pI9ZXle0tLStHr1au3YsUNnz55VWlqabDab/Y/tgwcP5trPw8NDHTp0yLE8e0KOmjVr5hr+stefPn36unVly8zMtM/A+NRTT+XaZuDAgfrmm2+0fv36fG3TGR988EGusxYOGTJE8+fPl5tb7v+XTUlJ0ffff69ff/1Vf/75p9LT0yVJZ86ckZT3+1qzZk01atQox/Lw8HBJ0qlTpxyWb9iwQVLeXyP9+vVzOrhmZmaqX79+cnNz06JFi/IcY1GIi4vL9VJKNzc3jRgxgoAGoEAIaABQzAYNGpTnH+/S1QdVOxPQpk2bpj179uj777/X999/r/Lly6tJkyZq06aNevfubf9jOb+y/6gOCwvLs03t2rUd2krSyZMnJSnPmfNuNKPejdps27ZNTzzxhH22w9zkdaajWrVquYbW7DMkec2M6evrK+nqM8Xy49y5c/a2eb1/ub13heXa+9csFot27typP/74QwsWLFBERIT+/ve/5+jz9ddfq3///jp37lye283rfc3rfTObzZKuBuprZX+N5PXeXO9rLi+vvPKKfvnlF82YMUN169bNd7/sYytdncyjUqVKOdpkP2w6ezx/de1z0EwmkypWrKjbb79dDz30UIHGAgASAQ0ASr3g4GDt3LlTGzdu1Jo1a/TTTz9p+/bt+umnn/Tqq69q2rRpGj16dLHVk9fkDPmZkTCvhyhfunRJXbp0UUJCgvr3769nn31WderUkdlslru7u/773/+qbt26eT6U+EZnVYrzrEtR+utz0LKysjRmzBjNnDlTI0aMUMuWLR3OeJ06dUpPPPGELl++rJdeekm9e/dWrVq1VLFiRbm5uWn16tWKiooq8PtaHLJnYvz6669zTOaSPQPot99+a5+lNPss3rWXu544cUIRERE5tv3HH39IyvsfB7k9Bw0AXEVAA4CbQPaU59l/hF65ckVLlizR0KFDNXbsWD3++OP2Mzc3csstt0iSjh49mmeb7HXZbbM/P3jwoP2P4r/Ka3l+bNq0SQkJCWrSpEmu07EfOnSowNsuTFWqVJGXl5fS0tJ09OjRXC8Rze29Kyru7u6aMWOGtm/frk2bNun55593uC/s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c/r666/l5uambt26ac6cOapYsaK9zZ49ezR06FDt2LFDAQEBeu655/TSSy851LJy5UqNHz9ex48f12233aYZM2bowQcfzNc4AAAAAKAgXApokyZNynOdyWSSzWZzKqClpqaqUaNGGjBggLp27Zpj/Wuvvaa5c+fqgw8+UFhYmMaPH6+oqCjt379f3t7ekqTevXvrzJkzio6OVkZGhvr376/Bgwdr+fLlkiSLxaIOHTro/vvv14IFC/Tbb79pwIABqly5sgYPHixJ2rp1q3r27Klp06bpoYce0vLly9WlSxf98ssvatCggZPvEgAAAADkj0sBzWq15rosLi5O8+fP16ZNm/T999/ne3udOnXK88HXNptNb775psaNG6dHH31UkvThhx8qKChIq1atUo8ePfT777/rhx9+0I4dO3TXXXdJkv7973/rwQcf1Ouvv66QkBAtW7ZM6enpWrRokTw9PVW/fn3FxsZq1qxZ9oA2Z84cdezYUS+++KIkaerUqYqOjta8efO0YMECp94jAAAAAMivQr0HTZLc3NwUFham119/Xb1799Zzzz1nP3vlimPHjik+Pl7333+/fVmlSpXUrFkzxcTEqEePHoqJiVHlypXt4UyS7r//frm5uWn79u167LHHFBMTo1atWsnT09PeJioqSjNmzND58+fl5+enmJgYjRo1ymH/UVFRWrVqVZ71paWlKS0tzf7aYrFIuhpYcwuyAICCy75CwyTJJFu++5l09feUs/1c6etKv+yrUZz5PVLc7w3jy7tfQcYH4ObkzM+BQg9o12rVqpVGjx5dKNuKj4+XJAUFBTksDwoKsq+Lj49XYGCgw3oPDw/5+/s7tAkLC8uxjex1fn5+io+Pv+5+cjNt2jRNnjw5x/LExERduXIlP0MEAORTcnKy6oSFKrCC5FMu7cYd/p+Hn5dS64erhtldlZ3o50rfgvarWEHyCAtVcnKyzp49m+9+xf3eML7cFXR8AG5OycnJ+W5bpAFt586dZWa6/TFjxjicdbNYLKpRo4YCAgJkNptLsDIAuPmkpKTo8LE4ZYZL5gpe+e53+nyadu/7XeaWWUr3y38/V/oWtJ8lVTp+LE6+vr45/vl4PcX93jC+3BV0fABuTtnzZeSHSwHtww8/zHX5hQsXtGnTJv3nP//RoEGDXNmFXXBwsCQpISFB1apVsy9PSEhQ48aN7W3++l+qzMxMJSUl2fsHBwcrISHBoU326xu1yV6fGy8vL3l55fzB7ebmVmZCKgAUl+xLx2ySbDLlu59NVy8zcbafK31d6Zd9OZ8zv0eK+71hfHn3K8j4ANycnPk54FJAe+qpp/JcV7VqVf3zn//UhAkTXNmFXVhYmIKDg7V27Vp7ILNYLNq+fbueffZZSVJkZKQuXLigXbt2qWnTppKkdevWyWq1qlmzZvY2L7/8sjIyMlSuXDlJUnR0tOrWrSs/Pz97m7Vr12rEiBH2/UdHRysyMrJQxgIAAAAAuXEpoB07dizHMpPJJD8/P/n6+jq9vZSUFB0+fNhh+7GxsfL391fNmjU1YsQI/etf/9Jtt91mn2Y/JCTE/qy08PBwdezYUU8//bQWLFigjIwMDRs2TD169FBISIgkqVevXpo8ebIGDhyo0aNHa+/evZozZ45mz55t3+/w4cPVunVrvfHGG+rcubM++eQT7dy5U++++67TYwIAAACA/HIpoIWGhhZWHZKu3rPWtm1b++vse7r69eunJUuW6KWXXlJqaqoGDx6sCxcu6N5779UPP/zgcE3nsmXLNGzYMLVv397+oOq5c+fa11eqVEmrV6/W0KFD1bRpU1WtWlUTJkywT7EvSS1atNDy5cs1btw4jR07VrfddptWrVrFM9AAAAAAFKkinSTEWW3atJHNlvcUtiaTSVOmTNGUKVPybOPv73/Daf0bNmyozZs3X7dN9+7d1b179+sXDAAAAACFyKWA5ubmJpPJuZusTSaTMjMzXdktAAAAANyUXApoEyZM0KpVq7Rv3z5FRUWpbt26kqQDBw5o9erVatCggf3+MAAAAADA9bkU0EJCQnT27Fnt3bvXHs6y/f7772rXrp1CQkL09NNPu1QkAAC4+WSkpysuLs6pPnFxccrM4EocADcvlwLazJkzNWzYsBzhTLo6o+KwYcP02muvEdAAAICDtJSLOn7sqEaMnZTrc0TzcuXyJZ08dUY1MzKKsDoAKDkuBbSTJ0/anyWWm3LlyunkyZOu7AIAANyEMtIuy2ryUNXmXVUlJP+zQp89sldxfyxSViYBDcDNyaWA1qBBA7311lvq1auXbrnlFod1J0+e1FtvvaWIiAiXCgQAADcvH78AmQOr57t9yrn4IqwGAEqeSwFt9uzZioqK0u23367HHntMderUkSQdOnRIq1atks1m09KlSwulUAAAAAC42bkU0O69915t375d48eP1xdffKHLly9LksqXL6+oqChNnjyZM2gAAAAAkE8uP6i6QYMG+uKLL2S1WpWYmChJCggIkJubm8vFAQAAAEBZ4nJAy+bm5iZvb29VrFiRcAYAAAAABeByktq5c6c6duwoHx8fValSRRs3bpQk/fnnn3r00Ue1YcMGV3cBAAAAAGWCSwFt69atuvfee3Xo0CH16dNHVqvVvq5q1aq6ePGi3nnnHZeLBAAAAICywKWANnbsWIWHh2v//v169dVXc6xv27attm/f7souAAAAAKDMcCmg7dixQ/3795eXl5dMJlOO9bfccovi43leCQAAAADkh0sBrVy5cg6XNf7VqVOnVLFiRVd2AQAAAABlhksBrXnz5vrss89yXZeamqrFixerdevWruwCAAAAAMoMlwLa5MmTtXPnTnXu3Fnff/+9JGn37t16//331bRpUyUmJmr8+PGFUigAAAAA3Oxceg5as2bN9N133+nZZ59V3759JUnPP/+8JKl27dr67rvv1LBhQ9erBACgDMpIT1dcXJxTfeLi4pSZkVlEFQEAilqBA5rNZlNycrJatGihgwcPKjY2VocOHZLValXt2rXVtGnTXCcOAQAAN5aWclHHjx3ViLGT5OXlle9+Vy5f0slTZ1QzI6MIqwMAFJUCB7T09HT5+/vr1Vdf1UsvvaTGjRurcePGhVgaAABlV0baZVlNHqravKuqhITmu9/ZI3sV98ciZWUS0ACgNCpwQPPy8lJwcLBT/9UDAADO8fELkDmwer7bp5zj8TYAUJq5NEnIU089pQ8//FDp6emFVQ8AAAAAlFkuTRISERGhVatWqX79+nrqqadUq1YtlS9fPke7rl27urIbAAAAACgTXApoPXv2tH+e13T6JpNJWVlZruwGAAAAAMoEpwPa2LFj1aNHDzVs2FDr168vipoAAAAAoExyOqBNnz5dDRo0UMOGDdW6dWudO3dOgYGBio6OVrt27YqiRgAAgFKnIM+xy5aeni5PT0+n+5nNZgUEBBRonwCMwaVLHLPZbLbC2AwAAMBNoaDPsZOuBrtTJ+JUPTRMHuWc+1PN39dHSxe/T0gDSrFCCWgAAAD4n4I+x066+iy7o8cXye+eR53qm5qUoMSYz2WxWAhoQClGQAMAACgizj7HTvrfs+wK0jfR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6kPRutHx3717t3r27KkaNWqofPnyCg8P15w5c4q/UBHQUIYdOHBAVqtV77zzjvbt26fZs2drwYIFGjt2rL3N1q1b1bBhQ33++efas2eP+vfvr759++qbb74pwcrhqvwce4vFog4dOig0NFS7du3SzJkzNWnSJL377rslWDkKS3p6urp3765nn3021/UpKSnq2LGjatasqe3bt2vLli3y9fVVVFSUMjIyirlaFKYbHXtJmjVrll5++WX985//1L59+7RmzRpFRUUVY5UoCvk59tkGDhyohg0bFkNVKC43Ov67du1SYGCgli5dqn379unll1/WmDFjNG/evGKuVJINgN1rr71mCwsLu26bBx980Na/f/9iqgjF5a/H/q233rL5+fnZ0tLS7MtGjx5tq1u3bkmUhyKyePFiW6VKlXIs37Fjh02S7cSJE/Zle/bssUmyHTp0qBgrRFHJ69gnJSXZypcvb1uzZk3xF4Vikdexz/bWW2/ZWrdubVu7dq1Nku38+fPFVhuK3o2O/7X+/ve/29q2bVu0BeWCM2jANS5evCh/f3+X26D0+etxjYmJUatWreTp6WlfFhUVpYMHD+r8+fMlUSKKUd26dVWlShUtXLhQ6enpunz5shYuXKjw8HDVqlWrpMtDEYqOjpbVatWpU6cUHh6u6tWr629/+5v++OOPki4NxWD//v2aMmWKPvzwQ7m58WdyWVdSf/PxlQf8v8OHD+vf//63nnnmmTzbrFixQjt27FD//v2LsTIUtdyOfXx8vIKCghzaZb+Oj48v1vpQ/Hx9fbVhwwYtXbpU5cuXV8WKFfXDDz/o+++/l4eHR0mXhyJ09OhRWa1Wvfrqq3rzzTf12WefKSkpSQ888ECO+1Rxc0lLS1PPnj01c+ZM1axZs6TLQQnbunWrPv30Uw0ePLjY901Aw03nn//8p0wm03U/Dhw44NDn1KlT6tixo7p3766nn3461+2uX79e/fv313vvvaf69esXx1DgpKI69igdCnL883L58mUNHDhQLVu21LZt2/TTTz+pQYMG6ty5sy5fvlzEI4GzCvPYW61WZWRkaO7cuYqKilLz5s318ccf69ChQ1q/fn0RjwTOKsxjP2bMGIWHh6tPnz5FXDUKS2Ee/2vt3btXjz76qCZOnKgOHToUQeXXx78BcdN5/vnn9dRTT123za233mr//PTp02rbtq1atGiR5wQQGzdu1MMPP6zZs2erb9++hVkuClFhHvvg4GAlJCQ4LMt+HRwcXDgFo1A5e/yvZ/ny5Tp+/LhiYmLslzktX75cfn5++vLLL9WjRw9Xy0UhKsxjX61aNUnSHXfcYV8WEBCgqlWr6sSJEwWuEUWjMI/9unXr9Ntvv+mzzz6TJNlsNklS1apV9fLLL2vy5Mku1YrCV5jHP9v+/fvVvn17DR48WOPGjXOhuoIjoOGmExAQoICAgHy1PXXqlNq2baumTZtq8eLFuV5vvmHDBj300EOaMWNGiZzmRv4V5rGPjIzUyy+/rIyMDJUrV07S1XtT6tatKz8/v0KvHa5z5vjfyKVLl+Tm5iaTyWRflv3aarUWyj5QeArz2Lds2VKSdPDgQVWvXl2SlJSUpD///FOhoaGFsg8UnsI89p9//rnDGfIdO3ZowIAB2rx5s2rXrl0o+0DhKszjL0n79u1Tu3bt1K9fP73yyiuFtl1nEdBQZp06dUpt2rRRaGioXn/9dSUmJtrXZZ8hWb9+vR566CENHz5c3bp1s9975OnpyUQhpVh+jn2vXr00efJkDRw4UKNHj9bevXs1Z84czZ49u6TKRiE6ceKEkpKSdOLECWVlZSk2NlaSVKdOHVWsWFEPPPCAXnzxRQ0dOlTPPfecrFarpk+fLg8PD7Vt27Zki4dLbnTsb7/9dj366KMaPny43n33XZnNZo0ZM0b16tXj2JdyNzr2fw1hf/75pyQpPDz8hs9Ng/Hd6Pjv3btX7dq1U1RUlEaNGmX/m8/d3b1QQ2C+FPu8kYBBLF682CYp149s/fr1y3V969atS65wuCw/x95ms9l2795tu/fee21eXl62W265xTZ9+vQSqhiFLa/v7fXr19vbrF692tayZUtbpUqVbH5+frZ27drZYmJiSq5oFIr8HPuLFy/aBgwYYKtcubLN39/f9thjjzk8cgGlU36O/bXWr1/PNPs3kRsd/4kTJ+a6PjQ0tNhrNdls/3+BLQAAAACgRDGLIwAAAAAYBAENAAAAAAyCgAYAAAAABkFAAwAAAACDIKABAAAAgEEQ0AAAAADAIAhoAAAAAGAQBDQAAAAAMAgCGgDgpnT8+HGZTCYtWbKkpEsBACDfCGgAgBL3yCOPyMfHR8nJyXm26d27tzw9PXXu3LlirKxgJk2aJJPJZP8oV66catWqpX/84x+6cOFCSZcHADAwAhoAoMT17t1bly9f1hdffJHr+kuXLunLL79Ux44dVaVKlWKuruDefvttffTRR5o3b57uuece/fvf/9ZDDz1U0mUBAAyMgAYAKHGPPPKIfH19tXz58lzXf/nll0pNTVXv3r2LuTLXPP744+rTp4+eeeYZrVixQk888YR++ukn/fzzzyVdGgDAoAhoAIASV758eXXt2lVr167V2bNnc6xfvny5fH199cgjjygpKUkvvPCCIiIiVLFiRZnNZnXq1Em7d+++4X7atGmjNm3a5Fj+1FNPqVatWg7LrFar3nzzTdWvX1/e3t4KCgrSM888o/Pnzxd0mLrvvvskSUeOHLEvy+94NmzYIJPJpBUrVuiVV15R9erV5e3trfbt2+vw4cM59jV//nzdeuutKl++vO655x5t3rw51/GnpaVp4sSJqlOnjry8vFSjRg299NJLSktLc2gXHR2te++9V5UrV1bFihVVt25djR07tsDvBQAgdx4lXQAAANLVyxw/+OADrVixQsOGDbMvT0pK0o8//qiePXuqfPny2rdvn1atWqXu3bsrLCxMCQkJeuedd9S6dWvt379fISEhhVLPM888oyVLlqh///76xz/+oWPHjmnevHn69ddf9dNPP6lcuXJOb/P48eOSJD8/P/uyo0ePOjWe6dOny83NTS+88IIuXryo1157Tb1799b27dvtbd5++20NGzZM9913n0aOHKnjx4+rS5cu8vPzU/Xq1e3trFarHnnkEW3ZskWDBw9WeHi4fvvtN82ePVv//e9/tWrVKknSvn379NBDD6lhw4aaMmWKvLy8dPjwYf30009OvwcAgOsjoAEADKFdu3aqVq2ali9f7hDQVq5cqYyMDPvljREREfrvf/8rN7f/XQTy5JNPql69elq4cKHGjx/vci1btmzR+++/r2XLlqlXr1725W3btlXHjh21cuVKh+V5SUpKkiSlpqZq3bp1mj9/vgICAtSqVSt7G2fHc+XKFcXGxsrT01PS1bA3fPhw7d27Vw0aNFB6errGjx+vu+++W+vWrZOHx9Vf9Q0bNtRTTz3lENCWL1+uNWvWaOPGjbr33nvtyxs0aKAhQ4Zo69atatGihaKjo5Wenq7vv/9eVatWdeatBAA4iUscAQCG4O7urh49eigmJsZ+pkm6GiKCgoLUvn17SZKXl5c9zGRlZencuXP2S+5++eWXQqll5cqVqlSpkh544AH9+eef9o+mTZuqYsWKWr9+fb62U7duXQUEBKhWrVoaMGCA6tSpo++//14+Pj72Ns6Op3///vZwJv3vssmjR49Kknbu3Klz587p6aeftocz6eoZymvP3GWPMzw8XPXq1XMYZ7t27STJPs7KlStLunovoNVqzdfYAQAFQ0ADABhG9lmy7MlCTp48qc2bN6tHjx5yd3eXdPWyvNmzZ+u2226Tl5eXqlatqoCAAO3Zs0cXL14slDoOHTqkixcvKjAwUAEBAQ4fKSkpud4nl5vPP/9c0dHRWr58uZo3b66zZ8+qfPnyDm2cHU/NmjUdXmeHrux74+Li4iRJderUcWjn4eGR4z67Q4cOad++fTnGePvtt0uSfZxPPPGEWrZsqUGDBikoKEg9evTQihUrCGsAUAS4xBEAYBhNmzZVvXr19PHHH2vs2LH6+OOPZbPZHGZvfPXVVzV+/HgNGDBAU6dOlb+/v9zc3DRixIgbBgaTySSbzZZjeVZWlsNrq9WqwMBALVu2LNftBAQE5Gs8rVq1sl8S+PDDDysiIkK9e/fWrl277GfNnB1PdlD9q9zGdSNWq1URERGaNWtWrutr1Kgh6eokLps2bdL69ev17bff6ocfftCnn36qdu3aafXq1XnWBABwHgENAGAovXv31vjx47Vnzx4tX75ct912m+6++277+s8++0xt27bVwoULHfpduHDhhvdH+fn52S8FvFb2WadstWvX1po1a9SyZcscZ7wKqmLFipo4caL69++vFStWqEePHpJcG09uQkNDJUmHDx9W27Zt7cszMzN1/PhxNWzY0L6sdu3a2r17t9q3by+TyXTd7bq5ual9+/Zq3769Zs2apVdffVUvv/yy1q9fr/vvv9/pOgEAueMSRwCAoWSfLZswYYJiY2NzPPvM3d09x9milStX6tSpUzfcdu3atXXgwAElJibal+3evTvHbIR/+9vflJWVpalTp+bYRmZmpi5cuJDf4Tjo3bu3qlevrhkzZtiXuTKe3Nx1112qUqWK3nvvPWVmZtqXL1u2LMcjAv72t7/p1KlTeu+993Js5/Lly0pNTZX0v8lOrtW4cWNJyjEdPwDANZxBAwAYSlhYmFq0aKEvv/xSknIEtIceekhTpkxR//791aJFC/32229atmyZbr311htue8CAAZo1a5aioqI0cOBAnT17VgsWLFD9+vVlsVjs7Vq3bq1nnnlG06ZNU2xsrDp06KBy5crp0KFDWrlypebMmaPHH3/c6bGVK1dOw4cP14svvqgffvhBHTt2dGk8ufH09NSkSZP03HPPqV27dvrb3/6m48ePa8mSJapdu7bDmbInn3xSK1as0JAhQ7R+/Xq1bNlSWVlZOnDggFasWKEff/xRd911l6ZMmaJNmzapc+fOCg0N1dmzZ/XWW2+pevXqDrM/AgBcxxk0AIDhZIeye+65J8dkF2PHjtXzzz+vH3/8UcOHD9cvv/yib7/91n6/1PWEh4frww8/1MWLFzVq1Ch99dVX+uijj9SkSZMcbRcsWKB3331XZ8+e1dixYzVmzBitW7dOffr0UcuWLQs8tsGDB6tSpUqaPn26y+PJy7BhwzR37lydOHFCL7zwgjZv3qyvvvpKlStXlre3t72dm5ubVq1apenTp+u3337TCy+8oMmTJ2vHjh0aPny4fbKQRx55RDVr1tSiRYs0dOhQzZ8/X61atdK6detUqVKlAtcJAMjJZCvIXcUAAKBUsVqtCggIUNeuXXO9pBEAYAycQQMA4CZz5cqVHPe1ffjhh0pKSlKbNm1KpigAQL5wBg0AgJvMhg0bNHLkSHXv3l1VqlTRL7/8ooULFyo8PFy7du1yeNA1AMBYmCQEAICbTK1atVSjRg3NnTtXSUlJ8vf3V9++fTV9+nTCGQAYHGfQAAAAAMAguAcNAAAAAAyCgAYAAAAABkFAAwAAAACDIKABAAAAgEEQ0AAAAADAIAhoAAAAAGAQBDQAAAAAMAgCGgAAAAAYxP8B1ClwdmYdudEAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random\n", "\n", "# 假设已有数据列表\n", "data = yes_target_logprob_7B_NImg \n", "sample_size = int(0.4 * len(data))\n", "sampled_data_rand40P = random.sample(data, sample_size)\n", " \n", "# 绘制柱状图查看数据分布\n", "plt.figure(figsize=(10, 6))\n", "plt.hist(sampled_data_rand40P, bins=50, edgecolor='black', alpha=0.7)\n", "plt.title(\"Histogram of Rand 40P\", fontsize=16)\n", "plt.xlabel(\"Value Ranges\", fontsize=12)\n", "plt.ylabel(\"Frequency\", fontsize=12)\n", "plt.grid(axis='y', alpha=0.3)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "124928" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(sampled_data_rand20P)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2gAAAIpCAYAAADXZRtAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWoRJREFUeJzt3XlcVPX+x/H3IAJuCCiLhCJpKbmUWikuuaVolppmaZqK2qpdzWuLlqa22OLN9KaZlVo3rbRu2s0yzX0hU0sN064L4ApOog6gss38/ujHXAnQGYaBA7yejwePh5zz/Z7zOXMGnDfne77HZLPZbAIAAAAAlDqP0i4AAAAAAPAnAhoAAAAAGAQBDQAAAAAMgoAGAAAAAAZBQAMAAAAAgyCgAQAAAIBBENAAAAAAwCAIaAAAAABgEAQ0AAAAADAIAhoAFKP69evLZDJp8eLFV23XqVMnmUwmTZ06Nc/yjRs3ymQyqVOnTm6rEaXrt99+U9++fRUUFKRKlSoV+D5wl3PnzunNN99Ut27dFBoaKm9vb1WrVk3169dX7969NWfOHCUlJZVILaVp79698vLykslkUsOGDa/aNjk5WWPGjFFERIS8vb0VHBysAQMG6Oeffy6wfUJCgkwmU76vatWqKTIyUmPGjFF8fLw7DgtAOUFAA4ByaPHixTKZTBo+fHhpl4IrpKenq1evXlq5cqXCw8P14IMPatiwYbrlllvcvu8lS5YoPDxczzzzjDZt2qTw8HD16dNHvXr1UlhYmNasWaOxY8eqfv36WrZsmdvrKS2ZmZkaOnSosrOzr9n2v//9r5o3b665c+fKw8NDffv2VXh4uL744gu1bt1aX3311VX79+/fX8OGDdOwYcPUtm1bnTx5UnPnzlXz5s21ZcuW4jokAOWMZ2kXAAD4n9tvv10HDhxQ1apVS7sUuMHOnTuVkJCgtm3batu2bSW233fffVdPPPGETCaTnnnmGT333HPy9/fP0+bSpUv69NNPNWPGDB09erTEaitp06dP1759+zRmzBi98847hbaz2WwaOHCgzpw5o4ceekiLFi1SpUqVJEkLFizQo48+qqFDh+rQoUMKCQkpcBszZ85U/fr17d+fPn1ad911l/bs2aNhw4bpv//9rzw9+SgGIC+uoAGAgVStWlWNGzdWvXr1SrsUuMGxY8ckSTfccEOJ7fPAgQMaO3asJGn27Nl6/fXX84UzSapSpYpGjBihffv2qVevXiVWX0nauXOnXnvtNQ0YMED9+/e/atvvvvtOv/zyi/z8/DRv3jx7OJOkRx55RF27dlVaWppmz57t8P7r1KmjWbNmSZLi4+O1a9euoh0IgHKNgAYABnK1e9B2796tBx54QGFhYfLy8pKvr6+uv/569e/fXytXrrS3q1+/vmJiYiRJH330UZ77YP663YsXL+q1115Ty5YtVaNGDVWtWlVNmjTRCy+8oHPnzhVa59atW9WjRw/5+fmpevXquu222/Txxx9Lkn1ff3Xl8kWLFikqKko1a9aUyWRSQkKCJCkxMVGvv/66unTponr16snb21t+fn5q37693nvvPVmt1nzbzb3np379+rJarZozZ46aN2+uqlWrqk6dOnrssceUkpIiScrIyNBLL72kxo0bq0qVKgoNDdXYsWOVnp5e+Em5iu+//1533323goKC5OXlpdDQUD3wwAP5Pnjnntdhw4ZJyn9e3On1119XVlaWWrZsqSeffPKa7atUqaJmzZrlW/7vf/9bo0aNUtOmTeXv7y8fHx9FRERoxIgR+v333wvcVkZGht588021atVKNWrUkJeXl0JCQnTbbbfpmWeesZ+XknD58mUNGzZM/v7+V71ylit3+GLv3r1VvXr1fOsffPBBSX++Ls5o1aqV/d+573sAuBLX1QGgDFi3bp169uyprKws3XzzzYqKilJOTo5OnjypVatWKScnR3369JEk3Xffffrxxx+1bds2NWjQQO3bt7dvp3HjxvZ/p6SkqGvXrtqzZ498fX3VpUsXVa5cWZs2bdIrr7yipUuXav369XmGaEnSZ599psGDB8tqtapZs2Zq2rSpTp48qZiYGP3222/XPJYnn3xS8+bNU9u2bdWrVy8dPXrUHlL+9a9/afLkyYqIiNCNN96odu3a6fTp04qNjdW2bdu0Zs0affHFF4WGmiFDhmjFihXq2LGjGjRooO3bt+u9997TTz/9pC1btqhHjx7at2+fOnXqpBtuuEFbtmzRnDlzdOjQIX377bdOnZPJkyfr5ZdflslkUtu2bVWvXj0dOHBAy5Yt05dffqkFCxZoxIgRkqSQkBANGzZMhw8fLvC8uIvNZtN//vMfSX++Nq64//775e3trZtuukldunRRdna24uLitGjRIi1btkxr1qxR27Zt7e2tVqt69eqldevWydfXVx06dJCfn5/MZrMOHTqkN998Uw8++KACAgJcqstRkydP1oEDB7R06VIFBQVd8736yy+/SJJuvfXWAtfnLj906JDS09NVrVo1h+qwWCz2f3t7ezvUB0AFYwMAFJvw8HCbJNuiRYuu2q5jx442SbYXX3wxz/INGzbYJNk6duyYZ3nnzp1tkmyffPJJvm2dP3/eFhsbm2fZokWLbJJsw4YNK7SGBx54wCbJ1rp1a9sff/xhX56ammrr2bOnTZKtbdu2efqcPHnSVr16dZsk2+zZs/Os27Rpk61atWo2SbaC/nvJXe7r65uv3lw//fST7ddff823/OTJk7abb77ZJsm2bNmyPOvi4+Pt227QoIEtISHBvu6PP/6w3XDDDTZJtmbNmtluv/32PMd69OhRm7+/v02SbevWrYW+Vn/13Xff2STZfHx8bGvWrMmz7oMPPrBJslWuXNkWFxeXZ50j56U4HTlyxP7abNmyxaVtffbZZ7a0tLQ8y6xWq23u3Lk2SbYmTZrYrFarfd2mTZtskmwtWrSwWSyWfNvbuXNnnnPhTtu2bbN5eHjY+vTpY1+W+7PWoEGDAvsEBATYJNlWrFhR4PqUlBT7a3vleb7y/RgfH5+v3zvvvGNff/ToUZeOC0D5xBBHAHCDmJiYAqfazv3atGmTU9tLTk6WJN1111351tWsWVNt2rRxanvHjh3T8uXLZTKZtGDBAtWqVcu+rnr16nr//ffl4+Oj7du3a/v27fZ1H374odLS0hQVFaW//e1vebZ5xx136PHHH7/mvidMmFBovbfddpuaNm2ab3loaKjeeOMNSdLy5csL3facOXMUHh5u/75WrVr2muLi4vThhx/mOdaIiAj7laV169Zds/ZcM2fOlCQ98cQT6tatW551I0eO1N13362srCyn7k9yhz/++MP+78DAwALbTJs2TcOHD8/zNWHChHztHnjggXxXiUwmk5544glFRUVp//79OnDggH1d7nu2Q4cOqlGjRr7t3XrrrXnOhbtcvHhRw4cPV82aNfXuu+863C81NVWSCr0yduWwxyuvihXm9OnTevfdd/Xcc89J+nPoZEREhMP1AKg4GOIIAG7Qrl27qz5fafXq1fYPsI64/fbb9dtvv2nw4MGaNGmS2rRp49Lsb5s3b5bValXLli3VvHnzfOuvu+46RUdHa+XKldqwYYN96FpusBw8eHCB2x08eLA9vBTmvvvuu+r6jIwMrVmzRjt37tSZM2eUkZEhm81m/8Bc2P1Onp6e6t69e77luRNy1KtXr8Dwl7v+1KlTV60rV3Z2tn0GxsIeYzBy5Eh988032rBhg0PbLE3/+c9/tHv37jzLwsPDCzyPhw8f1urVq3X48GGlpqYqJydH0v/C2O+//66bbrpJktSyZUtVqlRJCxcu1I033qh+/fqpTp06bj6a/J577jkdOnRIH330UYnvv7AAduedd17zWYkAKi4CGgC4wahRo676DLJOnTo5FdBmzJihffv26bvvvtN3332nKlWqqGXLlurUqZMGDx6syMhIp+o7efKkpMI/QEpSgwYN8rSVpBMnTkhSvvvSchW23NE2P/74ox544AH7bIcFKexqRZ06dQoMrblXOgqbGTP36s7ly5cL3eeVzp49a29b2OtX0GtXGmrXrm3/t9lsVqNGjfK1uXJCk61bt6pDhw752uTk5GjMmDF67733ZLPZCt3fleemQYMGmjVrlp5++mmNGTNGY8aMUXh4uKKionT33XdrwIAB8vLyKuqhOWTjxo165513dNddd2no0KFO9a1Ro4ZSUlIKnUAmLS3N/m9fX98C2/Tv31/Vq1eXyWSSj4+P6tatq65du6p169ZO1QKgYiGgAUAZEBISol27dmnTpk364YcftG3bNu3YsUPbtm3Tq6++qhkzZujZZ58tsXoKm6TDkRkJq1SpUuDyixcvqm/fvkpOTlZMTIwef/xxNWzYUL6+vqpUqZL++9//qlGjRoUGBA+Pq4/av9b68qh+/foKCAhQSkqKdu3aVeSJSWbPnq358+crJCREb731ltq2bavg4GD5+PhI+nNGw08//TTfuXnyySd1//336+uvv9bWrVu1detWffbZZ/rss8/04osvasuWLW69qrVixQrZbDYdO3Ys3wym58+fl/RniM5d9/bbb9sfGl6/fn2lpKQU+seC48ePS/rzPX/lsNor/fU5aADgiIr3vxUAlFG50+S//PLL2rBhg1JSUvTuu+/KZDJp0qRJOnLkiMPbuu666yTpqg8kzl2X2/bKfxc2Pbgr04Zv3rxZycnJatmypRYuXKjbbrtN/v7+9udPHTp0qMjbLk61atWyz75X2OtX0GtXGjw8POzPNPvkk0+KvJ1ly5ZJkt577z0NGjRI4eHh9nAmXf3cBAcH6+GHH9ZHH32kI0eO6MCBA4qKitKRI0fs92O5W1xcnDZt2pTna+/evZL+vHKauyw3tEl/DtGUVOizynKX33DDDQVOww8ARUVAA4AyysfHR4899piaN28uq9Wqffv22dflDh3Lzs4usO8dd9whDw8P7dmzx/5B9UqnT5/W6tWrJUmdO3fO00+SPv300wK3u3Tp0qIdjGR/JlZhQxFdCRjFydPT034lqrD7iBYuXCgp72tXWp577jl5enpq9+7dmjdvXpG2kXtuCrpStH//fu3Zs8fhbTVu3Nh+tdeZfkXx9ttvy2azFfiVe39ggwYN7MuuvMp27733SpK+/vrrAoc55r7X+/Xr59ZjAFDxENAAoAyYOXNmgUOtDh48aL96ceWH57CwMEkq9FlP9erV04ABA2Sz2fToo4/q7Nmz9nXp6el65JFHdPnyZbVt2zbPs61GjhypqlWrauvWrZo7d26ebW7btq3IAUCS/T66devW5at7wYIF+vzzz4u87eL297//XZL07rvv5pv9cfHixfr6669VuXJljR07tjTKy+Omm27SrFmzJEljxozRpEmT8lwpypWTk6Mff/yxwG3knpu5c+fmeVj46dOnNXTo0AL/ELB+/Xp9++23ysrKyrPcZrPpm2++kVRw4DOKnj17qkWLFjp//ryeeOIJ+4Qo0p/vx3Xr1ql69eqGOMcAyhfuQQOAMuDll1/W008/rcaNGysyMlJVqlTRqVOntHXrVmVnZ2vo0KH2IVmS1KZNG4WGhuqXX35Ry5Yt1axZM1WuXFmNGjXS008/LenPD9sHDx7Ujh071KBBA3Xu3Fmenp7atGmTzGazIiIitGTJkjx1hIWF6b333tOwYcM0ZswYLViwQE2aNNGpU6e0ZcsWjR8/XjNnzlTlypWdPsYWLVqoT58+WrlypVq0aKFOnTopICBAe/bs0e+//65JkybplVdece2FLCY9e/bUCy+8oJdfflndunVTu3btVK9ePR08eFA///yzKlWqpPnz56tJkyalXaqkP4NZjRo1NGbMGM2YMUP/+Mc/1KpVK4WFhaly5coym83avXu3UlJS5OXllW+WzkmTJmn16tV6//33tWHDBrVs2VIWi0WbNm3S9ddfr3vvvVdfffVVnj779u3TU089JV9fX7Vs2VKhoaG6dOmSfv75ZyUmJqpmzZqaPn16Sb4MTjGZTPr000/VoUMHffzxx9q6datuu+02xcfH66effpKnp6c+/vhjhYSElHapAMoZrqABQBkwd+5cxcTE2APUl19+qfj4eHXr1k1fffVVvqF2Xl5e+v7779W7d2+dOHFCn3zyiT788EOtWrXK3qZWrVravn27ZsyYoYiICK1Zs0bffPONateurUmTJmn37t0FTnAwZMgQrV+/Xt26dVNCQoJWrlyp1NRUvf/++/Zno105e6Azli9frjfffFONGjXS1q1btWbNGtWrV0/ff/+9Ro0aVaRtustLL72k7777Tj179tSBAwe0bNkynTp1SgMGDND27ds1YsSI0i4xj2HDhikxMVGvv/662rdvr/j4eK1cuVJfffWVDh48qDZt2uitt95SQkJCviDcunVr7dq1S71791Z6erq+/vprHTlyRE8++aRiY2MLnMXwnnvu0dSpU3Xbbbfp6NGj+ve//62NGzeqZs2aeu655xQXF2efkMOoGjVqpH379mn06NHKycnRV199pfj4ePXr1087duywD4MEgOJksl1tvlwAAJzw8ccfa9iwYbrnnnv09ddfl3Y5AACUOVxBAwA45dixY0pKSsq3fNu2bZowYYIkKSYmpqTLAgCgXOAeNACAU9avX6+RI0fq5ptvVr169VSpUiUdOXLEPhtkTEwMQ78AACgihjgCAJxy8OBBzZw5U1u2bFFycrLS09Pl5+enW265RSNGjNCgQYNKu0QAAMosAhoAAAAAGAT3oAEAAACAQRDQAAAAAMAgmCTETaxWq06dOqUaNWrIZDKVdjkAAAAASonNZlNqaqpCQ0Pl4XH1a2QENDc5deqU6tatW9plAAAAADCI48ePKyws7KptCGhuUqNGDUl/ngRfX99SrgYAAABAabFYLKpbt649I1wNAc1Ncoc1+vr6EtAAAAAAOHTrE5OEAAAAAIBBENAAAAAAwCAIaAAAAABgEAQ0AAAAADAIAhoAAAAAGAQBDQAAAAAMgoAGAAAAAAZBQAMAAAAAgyCgAQAAAIBBENAAAAAAwCAIaAAAAABgEAQ0AAAAADAIAhoAAAAAGAQBDQAAAAAMgoAGAAAAAAZBQAMAAAAAgyCgAQAAAIBBENAAAAAAwCA8S7sAAACA8shsNstisRSpr6+vrwIDA4u5IgBlAQENAACgmJnNZg2JGaWU1ItF6h9Q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vuUXLlzQhx9+qKVLl6pLly6SpEWLFikyMlI//vij2rRpozVr1ui3337TDz/8oODgYN1yyy166aWX9Oyzz2rq1Kny8vLS/PnzFRERoX/84x+SpMjISG3dulWzZs0ioAEAAPy/rIxLspo8VbtNP9UKDXe4X3pKssyxX8pisRDQgAKUuYB26NAhhYaGysfHR1FRUZoxY4bq1aun3bt3KysrS3feeae9bePGjVWvXj3FxsaqTZs2io2NVbNmzRQcHGxvEx0drccff1z79+9XixYtFBsbm2cbuW3GjRt31boyMjKUkZFh/95isUiSrFarrFZrMRw5ALifzWb7cwi5JJNsDvczSTKZTLLZbE79znNlfx4eHiXWrzT2Sb+K2a8s1Zrbr5p/oGoGXedUvz+K8PsCKMucea+XqYDWunVrLV68WI0aNdLp06c1bdo0dejQQXFxcUpKSpKXl5f8/Pzy9AkODlZSUpIkKSkpKU84y12fu+5qbSwWiy5duqQqVaoUWNuMGTM0bdq0fMvNZrMuX75cpOMFgJKWmpqqhhHhCqomVa2cce0O/696NckzIlypqak6c+aM2/fn6e+t9CaRqutbSX4l0K809km/itmvLNVa1H5F/X0BlGWpqakOty1TAa1nz572fzdv3lytW7dWeHi4li1bVmhwKikTJ07U+PHj7d9bLBbVrVtXgYGB8vX1LcXKAMBxaWlpOhyfqOxIybea4/eUWNKlhPhE1ahRQ0FBQW7f36lzGdq7/4B82+Uo09/9/Upjn/SrmP3KUq1F7VfU3xdAWebj4+Nw2zIV0P7Kz89PN954ow4fPqxu3bopMzNT58+fz3MVLTk52X7PWkhIiH766ac828id5fHKNn+d+TE5OVm+vr5XDYHe3t4F3iDr4eEhD48yNVkmgAosd5iiTZJNJof72fS/4YrO/M5zZX9Wq7XE+pXGPulXMfuVpVpd6VeU3xdAWebMe71M/1SkpaXpyJEjqlOnjlq1aqXKlStr3bp19vW///67jh07pqioKElSVFSUfv311zyX09euXStfX1/ddNNN9jZXbiO3Te42AAAAAMBdylRAmzBhgjZt2qSEhARt375d9957rypVqqRBgwapZs2aGjlypMaPH68NGzZo9+7diomJUVRUlNq0aSNJ6t69u2666SY99NBD2rt3r77//nu98MILGj16tP3q12OP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gkaOHKmIiAhVqVJFDRo00IsvvqjMzEx7m40bN6pPnz6qU6eOqlWrpltuuUVLliwpxapRXBw5/5K0b98+dejQQT4+Pqpbt67eeOONUqoYxe2VV15R27ZtVbVqVfn5+RXYZufOneratav8/Pzk7++v6Oho7d27t2QLhds48h6QpMWLF6t58+by8fFRUFCQRo8eXXJFwm0cPf+SdPbsWYWFhclkMun8+fMlUh/c61rnf+/evRo0aJDq1q2rKlWqKDIyUrNnzy6R2ghoqLAOHjwoq9Wq9957T/v379esWbM0f/58TZo0yd5m+/btat68ub788kvt27dPMTExGjp0qL755ptSrBzFwZHzb7FY1L17d4WHh2v37t168803NXXqVC1YsKAUK0dxyczM1IABA/T4448XuD4tLU09evRQvXr1tGPHDm3dulU1atRQdHS0srKySrhauMO13gOS9NZbb+n555/Xc889p/379+uHH35QdHR0CVYJd3Hk/OcaOXKkmjdvXgJVoaRc6/zv3r1bQUFB+uSTT7R//349//zzmjhxot555x33F2cDYPfGG2/YIiIirtrmrrvussXExJRQRShJfz3/8+bNs/n7+9syMjLsy5599llbo0aNSqM8uMmiRYtsNWvWzLd8586dNkm2Y8eO2Zft27fPJsl26NChEqwQ7lbYeyAlJcVWpUoV2w8//FDyRaHEFHb+c82bN8/WsWNH27p162ySbOfOnSux2uB+1zr/V3riiSdsnTt3dm9BNpuNK2jAFS5cuKCAgACX26Bs+uu5jY2N1R133CEvLy/7sujoaP3+++86d+5caZSIEtSoUSPVqlVLH374oTIzM3Xp0iV9+OGHioyMVP369Uu7PJSAtWvXymq16uTJk4qMjFRYWJjuv/9+HT9+vLRLQwn57bffNH36dH388cfy8OBjc0VXUp8BeacB/+/w4cP65z//qUcffbTQNsuWLdPOnTsVExNTgpWhJBR0/pOSkhQcHJynXe73SUlJJVofSl6NGjW0ceNGffLJJ6pSpYqqV6+u1atX67vvvpOnp2dpl4cScPToUVmtVr366qt6++239cUXXyglJUXdunXLd78qyp+MjAwNGjRIb775purVq1fa5aCUbd++XZ9//rkeeeQRt++LgIZy57nnnpPJZLrq18GDB/P0OXnypHr06KEBAwbo4YcfLnC7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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "\n", "# 假设已有数据列表\n", "data = yes_target_logprob_7B_NImg # 使用上传的数据\n", "\n", "# 划分数据范围\n", "min_value = min(data)\n", "max_value = max(data)\n", "intervals = np.linspace(min_value, max_value, 7) # 划分成6个区间\n", "\n", "# 为每个区间设置采样权重(例如:[0.1, 0.3, 0.5, 0.7, 0.9, 0.9])\n", "weights = [0.1, 0.3, 0.5, 0.7, 0.9, 0.9]\n", "weights = np.array(weights) / np.sum(weights) # 权重归一化\n", "\n", "# 根据权重和区间对数据进行分组并进行采样\n", "selected_samples = []\n", "for i in range(6):\n", " # 获取属于该区间的数据\n", " interval_data = [x for x in data if intervals[i] <= x < intervals[i+1]]\n", " \n", " # 按照权重从该区间数据中采样\n", " if interval_data:\n", " sample_size = int(weights[i] * len(data)) # 根据权重决定采样数量\n", " # 确保采样数量不大于区间内的数据量\n", " sample_size = min(sample_size, len(interval_data)) \n", " selected_samples.extend(np.random.choice(interval_data, size=sample_size, replace=False))\n", " \n", "\n", "# 假设已有数据列表\n", "data = selected_samples \n", "sample_size = int(0.4 * len(yes_target_logprob_7B_NImg))\n", "# sampled_data_gas20P = random.sample(data, sample_size)\n", "sampled_data_gas40P = random.sample(data, sample_size)\n", "# print(len(sampled_data_gas20P)) \n", "\n", "\n", "# 绘制柱状图查看数据分布\n", "plt.figure(figsize=(10, 6))\n", "plt.hist(sampled_data_gas40P, bins=50, edgecolor='black', alpha=0.7)\n", "plt.title(\"Histogram of Gas 40P\", fontsize=16)\n", "plt.xlabel(\"Value Ranges\", fontsize=12)\n", "plt.ylabel(\"Frequency\", fontsize=12)\n", "plt.grid(axis='y', alpha=0.3)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "624640" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(yes_target_logprob_7B_NImg)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[-16.75,\n", " -16.125,\n", " -19.5,\n", " -19.125,\n", " -16.75,\n", " -16.125,\n", " -16.625,\n", " -17.25,\n", " -15.375,\n", " -16.75,\n", " -15.625,\n", " -18.125,\n", " -18.375,\n", " -14.0,\n", " -18.125,\n", " -16.375,\n", " -13.5625,\n", " -16.25,\n", " -16.0,\n", " -15.875,\n", " -16.875,\n", " -18.125,\n", " -16.625,\n", " -19.25,\n", " -15.1875,\n", " -17.5,\n", " -17.375,\n", " -14.375,\n", " -18.375,\n", " -17.875,\n", " -15.5625,\n", " -15.3125,\n", " -15.3125,\n", " -18.125,\n", " -15.375,\n", " -14.8125,\n", " -19.375,\n", " -16.25,\n", " -20.5,\n", " -18.625,\n", " -18.375,\n", " -17.375,\n", " -18.0,\n", " -16.0,\n", " -15.6875,\n", " -14.125,\n", " -18.875,\n", " -15.4375,\n", " -17.0,\n", " -15.875,\n", " -17.625,\n", " -15.5625,\n", " -15.625,\n", " -15.5,\n", " -17.625,\n", " -17.75,\n", " -14.5625,\n", " -14.5,\n", " -16.0,\n", " -17.5,\n", " -18.125,\n", " -15.875,\n", " -16.75,\n", " -18.625,\n", " -18.0,\n", " -17.125,\n", " -17.5,\n", " -15.375,\n", " -20.125,\n", " -16.5,\n", " -15.6875,\n", " -18.375,\n", " -18.875,\n", " -17.25,\n", " -16.125,\n", " -16.375,\n", " -17.125,\n", " -17.0,\n", " -18.0,\n", " -15.3125,\n", " -15.0,\n", " -16.625,\n", " -15.375,\n", " -17.375,\n", " -17.375,\n", " -17.625,\n", " -19.125,\n", " -16.5,\n", " -15.9375,\n", " -18.0,\n", " -17.75,\n", " -15.125,\n", " -15.1875,\n", " -18.25,\n", " -15.9375,\n", " -17.875,\n", " -16.25,\n", " -16.125,\n", " -18.125,\n", " -15.5,\n", " -18.625,\n", " -14.5,\n", " -16.375,\n", " -16.5,\n", " -19.5,\n", " -15.25,\n", " -17.5,\n", " -20.375,\n", " -19.875,\n", " -16.875,\n", " -16.75,\n", " -15.25,\n", " -16.625,\n", " -15.4375,\n", " -15.0,\n", " -17.75,\n", " -17.875,\n", " -17.125,\n", " -15.3125,\n", " -17.25,\n", " -16.5,\n", " -18.75,\n", " -15.375,\n", " -18.25,\n", " -14.3125,\n", " -18.0,\n", " -16.625,\n", " -15.5,\n", " -17.375,\n", " -14.6875,\n", " -17.625,\n", " -17.5,\n", " -15.0625,\n", " -17.625,\n", " -15.875,\n", " -19.375,\n", " -14.9375,\n", " -15.625,\n", " -18.0,\n", " -19.25,\n", " -17.0,\n", " -16.25,\n", " -15.8125,\n", " -19.25,\n", " -19.75,\n", " -17.75,\n", " -16.25,\n", " -17.0,\n", " -17.375,\n", " -18.125,\n", " -18.875,\n", " -17.75,\n", " -16.375,\n", " -18.0,\n", " -15.75,\n", " -20.0,\n", " -16.75,\n", " -16.0,\n", " -17.75,\n", " -17.125,\n", " -17.25,\n", " -15.875,\n", " -17.125,\n", " -15.6875,\n", " -17.75,\n", " -16.75,\n", " -19.5,\n", " -14.75,\n", " -16.75,\n", " -16.625,\n", " -15.0625,\n", " -17.25,\n", " -15.6875,\n", " -15.6875,\n", " -14.75,\n", " -15.1875,\n", " -17.125,\n", " -15.9375,\n", " -18.625,\n", " -19.0,\n", " -18.75,\n", " -18.125,\n", " -18.0,\n", " -16.0,\n", " -15.75,\n", " -16.0,\n", " -14.6875,\n", " -19.875,\n", " -16.375,\n", " -17.625,\n", " -18.625,\n", " -15.4375,\n", " -17.375,\n", " -18.125,\n", " -15.8125,\n", " -18.625,\n", " -15.4375,\n", " -17.375,\n", " -20.125,\n", " -16.375,\n", " -16.125,\n", " -16.125,\n", " -19.75,\n", " -17.875,\n", " -19.5,\n", " -17.5,\n", " -16.875,\n", " -16.75,\n", " -18.5,\n", " -17.5,\n", " -15.625,\n", " -15.5,\n", " -17.875,\n", " -16.875,\n", " -15.25,\n", " -17.5,\n", " -18.5,\n", " -16.75,\n", " -14.6875,\n", " -17.125,\n", " -16.25,\n", " -15.6875,\n", " -15.625,\n", " -16.25,\n", " -17.625,\n", " -16.375,\n", " -18.0,\n", " -15.3125,\n", " -15.0625,\n", " -16.875,\n", " -16.625,\n", " -20.25,\n", " -15.75,\n", " -19.0,\n", " -17.25,\n", " -19.0,\n", " -17.625,\n", " -19.75,\n", " -15.75,\n", " -14.875,\n", " -16.125,\n", " -14.6875,\n", " -15.4375,\n", " -15.875,\n", " -15.6875,\n", " -14.5,\n", " -16.375,\n", " -15.75,\n", " -18.0,\n", " -15.625,\n", " -19.375,\n", " -16.5,\n", " -20.0,\n", " -15.6875,\n", " -18.25,\n", " -19.375,\n", " -18.375,\n", " -15.1875,\n", " -14.375,\n", " -15.4375,\n", " -15.9375,\n", " -14.125,\n", " -16.125,\n", " -16.125,\n", " -15.6875,\n", " -17.375,\n", " -18.25,\n", " -17.625,\n", " -17.875,\n", " -15.625,\n", " -16.5,\n", " -14.8125,\n", " -15.3125,\n", " -18.25,\n", " -16.625,\n", " -14.9375,\n", " -16.375,\n", " -17.25,\n", " -17.375,\n", " -18.5,\n", " -15.5625,\n", " -16.5,\n", " -19.375,\n", " -17.125,\n", " -17.875,\n", " -16.625,\n", " -15.625,\n", " -15.6875,\n", " -18.875,\n", " -16.625,\n", " -18.0,\n", " -16.25,\n", " -14.8125,\n", " -15.9375,\n", " -16.0,\n", " -17.5,\n", " -15.5625,\n", " -19.0,\n", " -15.75,\n", " -15.625,\n", " -15.5625,\n", " -14.8125,\n", " -18.375,\n", " -16.5,\n", " -16.25,\n", " -19.875,\n", " -19.75,\n", " -19.625,\n", " -15.25,\n", " -20.375,\n", " -16.875,\n", " -16.625,\n", " -15.9375,\n", " -15.625,\n", " -16.125,\n", " -15.8125,\n", " -14.9375,\n", " -17.875,\n", " -17.5,\n", " -17.25,\n", " -15.8125,\n", " -16.625,\n", " -13.0625,\n", " -15.1875,\n", " -13.625,\n", " -18.0,\n", " -15.5625,\n", " -18.25,\n", " -18.0,\n", " -16.75,\n", " -19.625,\n", " -15.4375,\n", " -16.125,\n", " -15.0625,\n", " -17.125,\n", " -17.0,\n", " -19.625,\n", " -15.75,\n", " -18.5,\n", " -15.0625,\n", " -18.125,\n", " -16.375,\n", " -19.25,\n", " -15.75,\n", " -19.625,\n", " -16.25,\n", " -15.25,\n", " -17.625,\n", " -16.625,\n", " -15.0625,\n", " -15.6875,\n", " -17.375,\n", " -18.875,\n", " -16.75,\n", " -19.375,\n", " -16.375,\n", " -16.875,\n", " -15.1875,\n", " -18.375,\n", " -15.6875,\n", " -16.625,\n", " -15.9375,\n", " -14.1875,\n", " -15.5625,\n", " -18.625,\n", " -16.125,\n", " -15.375,\n", " -16.0,\n", " -16.375,\n", " -17.625,\n", " -18.25,\n", " -17.125,\n", " -16.5,\n", " -18.5,\n", " -18.625,\n", " -16.5,\n", " -17.125,\n", " -18.0,\n", " -15.4375,\n", " -15.4375,\n", " -17.0,\n", " -16.125,\n", " -15.0625,\n", " -18.5,\n", " -14.625,\n", " -14.9375,\n", " -17.75,\n", " -15.4375,\n", " -17.75,\n", " -15.1875,\n", " -18.375,\n", " -16.5,\n", " -15.875,\n", " -19.75,\n", " -15.5625,\n", " -15.5625,\n", " -14.875,\n", " -20.375,\n", " -17.5,\n", " -17.5,\n", " -17.625,\n", " -17.0,\n", " -15.625,\n", " -15.75,\n", " -15.75,\n", " -18.625,\n", " -16.625,\n", " -16.125,\n", " -15.5,\n", " -17.875,\n", " -20.0,\n", " -15.5,\n", " -16.5,\n", " -17.75,\n", " -18.625,\n", " -17.0,\n", " -18.25,\n", " -16.625,\n", " -15.25,\n", " -17.5,\n", " -19.5,\n", " -15.75,\n", " -15.375,\n", " -16.875,\n", " -16.5,\n", " -17.625,\n", " -19.875,\n", " -16.75,\n", " -13.5,\n", " -15.5625,\n", " -14.5,\n", " -15.5,\n", " -14.6875,\n", " -20.125,\n", " -18.875,\n", " -15.4375,\n", " -15.5,\n", " -15.75,\n", " -15.5,\n", " -17.375,\n", " -15.4375,\n", " -16.875,\n", " -17.25,\n", " -18.0,\n", " -14.6875,\n", " -15.4375,\n", " -18.125,\n", " -16.375,\n", " -15.3125,\n", " -17.125,\n", " -16.375,\n", " -14.8125,\n", " -15.125,\n", " -16.75,\n", " -17.125,\n", " -18.125,\n", " -15.625,\n", " -16.625,\n", " -18.375,\n", " -17.625,\n", " -17.125,\n", " -15.5625,\n", " -20.375,\n", " -15.75,\n", " -17.125,\n", " -15.625,\n", " -15.5,\n", " -16.625,\n", " -15.4375,\n", " -15.6875,\n", " -15.4375,\n", " -17.25,\n", " -15.25,\n", " -18.0,\n", " -15.75,\n", " -20.0,\n", " -15.5,\n", " -19.0,\n", " -16.75,\n", " -18.125,\n", " -15.9375,\n", " -17.875,\n", " -17.5,\n", " -16.75,\n", " -20.625,\n", " -17.0,\n", " -17.625,\n", " -18.75,\n", " -19.125,\n", " -17.625,\n", " -17.375,\n", " -15.125,\n", " -16.0,\n", " -17.5,\n", " -14.1875,\n", " -14.0625,\n", " -17.125,\n", " -16.5,\n", " -18.25,\n", " -16.375,\n", " -15.75,\n", " -16.75,\n", " -15.625,\n", " -16.875,\n", " -16.625,\n", " -17.625,\n", " -18.875,\n", " -17.875,\n", " -15.75,\n", " -17.5,\n", " -16.375,\n", " -19.625,\n", " -17.25,\n", " -15.5,\n", " -17.625,\n", " -17.25,\n", " -17.75,\n", " -16.0,\n", " -18.5,\n", " -17.0,\n", " -15.6875,\n", " -16.125,\n", " -18.375,\n", " -14.875,\n", " -15.75,\n", " -16.0,\n", " -19.5,\n", " -17.125,\n", " -18.875,\n", " -18.5,\n", " -15.5,\n", " -16.375,\n", " -15.5625,\n", " -15.0,\n", " -16.0,\n", " -17.625,\n", " -15.3125,\n", " -17.75,\n", " -18.875,\n", " -15.0,\n", " -17.0,\n", " -18.25,\n", " -16.875,\n", " -18.5,\n", " -16.5,\n", " -17.875,\n", " -17.5,\n", " -16.625,\n", " -16.25,\n", " -15.5,\n", " -16.375,\n", " -17.0,\n", " -15.3125,\n", " -16.375,\n", " -18.5,\n", " -18.75,\n", " -17.0,\n", " -15.4375,\n", " -18.125,\n", " -16.25,\n", " -15.625,\n", " -16.625,\n", " -21.125,\n", " -15.25,\n", " -17.625,\n", " -15.625,\n", " -19.125,\n", " -16.125,\n", " -17.5,\n", " -15.75,\n", " -15.125,\n", " -15.75,\n", " -17.25,\n", " -17.125,\n", " -16.875,\n", " -18.0,\n", " -16.5,\n", " -16.25,\n", " -17.0,\n", " -16.125,\n", " -16.875,\n", " -18.25,\n", " -16.5,\n", " -15.9375,\n", " -15.0,\n", " -15.25,\n", " -16.875,\n", " -17.875,\n", " -14.875,\n", " -16.375,\n", " -17.75,\n", " -16.875,\n", " -18.625,\n", " -14.625,\n", " -14.625,\n", " -15.4375,\n", " -18.75,\n", " -19.25,\n", " -17.875,\n", " -18.0,\n", " -16.375,\n", " -17.625,\n", " -14.375,\n", " -14.5625,\n", " -15.5,\n", " -15.625,\n", " -14.5625,\n", " -19.125,\n", " -16.375,\n", " -16.25,\n", " -15.125,\n", " -15.5625,\n", " -15.75,\n", " -17.625,\n", " -14.8125,\n", " -18.5,\n", " -15.625,\n", " -17.75,\n", " -15.375,\n", " -17.625,\n", " -19.125,\n", " -18.25,\n", " -17.0,\n", " -16.875,\n", " -13.625,\n", " -17.875,\n", " -16.875,\n", " -17.25,\n", " -15.6875,\n", " -17.5,\n", " -15.375,\n", " -14.875,\n", " -18.5,\n", " -17.125,\n", " -15.0625,\n", " -17.5,\n", " -14.375,\n", " -15.4375,\n", " -15.4375,\n", " -16.5,\n", " -16.125,\n", " -16.375,\n", " -17.75,\n", " -14.9375,\n", " -20.75,\n", " -16.375,\n", " -19.25,\n", " -15.6875,\n", " -18.375,\n", " -18.125,\n", " -18.125,\n", " -19.75,\n", " -17.625,\n", " -18.375,\n", " -17.75,\n", " -16.125,\n", " -18.875,\n", " -14.625,\n", " -17.0,\n", " -19.75,\n", " -15.0,\n", " -16.0,\n", " -16.625,\n", " -16.375,\n", " -18.375,\n", " -17.125,\n", " -15.75,\n", " -16.25,\n", " -14.6875,\n", " -15.375,\n", " -15.25,\n", " -15.75,\n", " -15.875,\n", " -15.25,\n", " -19.625,\n", " -18.5,\n", " -15.1875,\n", " -18.125,\n", " -15.375,\n", " -15.5625,\n", " -16.375,\n", " -14.8125,\n", " -18.5,\n", " -17.75,\n", " -17.625,\n", " -14.875,\n", " -15.0625,\n", " -19.5,\n", " -18.75,\n", " -16.25,\n", " -16.625,\n", " -16.25,\n", " -16.75,\n", " -16.875,\n", " -16.75,\n", " -18.0,\n", " -15.8125,\n", " -17.375,\n", " -16.75,\n", " -14.25,\n", " -18.125,\n", " -17.75,\n", " -17.125,\n", " -18.0,\n", " -15.5625,\n", " -17.75,\n", " -17.0,\n", " -17.25,\n", " -16.25,\n", " -17.875,\n", " -17.75,\n", " -16.5,\n", " -16.375,\n", " -14.8125,\n", " -15.25,\n", " -16.5,\n", " -17.25,\n", " -16.125,\n", " -20.625,\n", " -18.0,\n", " -19.5,\n", " -18.875,\n", " -20.125,\n", " -16.75,\n", " -15.75,\n", " -19.375,\n", " -14.75,\n", " -16.25,\n", " -16.875,\n", " -16.625,\n", " -15.625,\n", " -17.5,\n", " -16.875,\n", " -18.125,\n", " -14.5625,\n", " -17.125,\n", " -17.625,\n", " -17.25,\n", " -16.0,\n", " -14.875,\n", " -17.0,\n", " -18.875,\n", " -19.625,\n", " -16.75,\n", " -14.5,\n", " -16.125,\n", " -16.625,\n", " -15.5625,\n", " -18.125,\n", " -16.0,\n", " -14.125,\n", " -14.375,\n", " -15.125,\n", " -18.375,\n", " -15.0,\n", " -17.125,\n", " -16.375,\n", " -17.75,\n", " -19.0,\n", " -16.0,\n", " -15.375,\n", " -16.125,\n", " -15.875,\n", " -17.25,\n", " -18.0,\n", " -19.125,\n", " -16.375,\n", " -15.9375,\n", " -16.5,\n", " -15.75,\n", " -20.125,\n", " -16.625,\n", " -19.875,\n", " -16.625,\n", " -15.8125,\n", " -17.125,\n", " -20.0,\n", " -15.5625,\n", " -17.5,\n", " -15.5625,\n", " -17.75,\n", " -18.875,\n", " -17.5,\n", " -17.25,\n", " -15.6875,\n", " -15.4375,\n", " -16.5,\n", " -15.25,\n", " -20.0,\n", " -17.625,\n", " -20.25,\n", " -15.8125,\n", " -16.0,\n", " -17.375,\n", " -15.5625,\n", " -17.375,\n", " -17.875,\n", " -19.25,\n", " -15.6875,\n", " -15.375,\n", " -18.5,\n", " -18.0,\n", " -18.125,\n", " -17.5,\n", " -18.625,\n", " -14.625,\n", " -18.5,\n", " -17.125,\n", " -16.125,\n", " -17.375,\n", " -17.5,\n", " -15.4375,\n", " -18.375,\n", " -18.375,\n", " -17.0,\n", " -16.25,\n", " -20.375,\n", " -19.25,\n", " -18.0,\n", " -17.5,\n", " -15.8125,\n", " -17.75,\n", " -15.75,\n", " -16.875,\n", " -15.4375,\n", " -14.5,\n", " -19.625,\n", " -18.0,\n", " -16.125,\n", " -16.875,\n", " -15.0625,\n", " -17.625,\n", " -18.125,\n", " -16.25,\n", " -14.875,\n", " -15.625,\n", " -19.25,\n", " -15.6875,\n", " -17.375,\n", " -17.875,\n", " -17.625,\n", " -15.6875,\n", " -16.625,\n", " -15.375,\n", " -18.25,\n", " -18.5,\n", " -16.25,\n", " -16.75,\n", " -19.625,\n", " -17.125,\n", " -19.625,\n", " -16.5,\n", " -17.0,\n", " -18.875,\n", " -19.125,\n", " -20.5,\n", " -15.5,\n", " -15.3125,\n", " -18.375,\n", " -17.5,\n", " -14.4375,\n", " -17.625,\n", " -18.25,\n", " -16.375,\n", " -15.5,\n", " -15.9375,\n", " -17.25,\n", " -17.625,\n", " -16.125,\n", " -18.625,\n", " -15.75,\n", " -20.125,\n", " -16.875,\n", " -18.125,\n", " -16.5,\n", " -15.8125,\n", " -14.4375,\n", " -15.8125,\n", " -16.125,\n", " -14.375,\n", " -18.625,\n", " -16.375,\n", " -15.5625,\n", " -14.625,\n", " -16.875,\n", " -15.375,\n", " -15.75,\n", " -19.75,\n", " -18.5,\n", " -16.25,\n", " -19.125,\n", " -19.25,\n", " -19.25,\n", " -18.0,\n", " -15.0,\n", " -17.0,\n", " -16.125,\n", " -17.25,\n", " -14.9375,\n", " -13.5,\n", " -15.75,\n", " -15.9375,\n", " -17.375,\n", " -15.125,\n", " -17.125,\n", " -16.75,\n", " -19.125,\n", " -17.5,\n", " -16.25,\n", " -17.625,\n", " -15.75,\n", " -17.5,\n", " -14.375,\n", " -15.25,\n", " -14.875,\n", " -16.25,\n", " -14.75,\n", " -16.375,\n", " -16.0,\n", " -15.125,\n", " -18.125,\n", " -14.9375,\n", " -17.125,\n", " -20.0,\n", " -14.5625,\n", " -16.25,\n", " -17.0,\n", " -18.375,\n", " -16.125,\n", " -16.125,\n", " -17.625,\n", " -18.0,\n", " -16.375,\n", " -14.5,\n", " -15.4375,\n", " -14.9375,\n", " -19.625,\n", " -14.9375,\n", " -17.0,\n", " -17.375,\n", " -17.625,\n", " -16.75,\n", " -15.9375,\n", " -18.875,\n", " -16.25,\n", " -15.5,\n", " -17.75,\n", " -15.25,\n", " -17.0,\n", " -18.125,\n", " -17.625,\n", " -18.25,\n", " -18.375,\n", " -17.75,\n", " -14.5,\n", " -15.75,\n", " -18.75,\n", " -16.0,\n", " -18.25,\n", " -16.25,\n", " -16.125,\n", " -16.25,\n", " -15.875,\n", " -17.625,\n", " -17.75,\n", " -15.9375,\n", " -15.4375,\n", " -15.5625,\n", " -17.375,\n", " -17.5,\n", " -18.0,\n", " -17.625,\n", " -15.9375,\n", " -16.375,\n", " -16.625,\n", " -18.125,\n", " -16.25,\n", " -15.375,\n", " -15.375,\n", " -18.875,\n", " -16.125,\n", " -15.5625,\n", " -18.25,\n", " -17.625,\n", " -16.625,\n", " -17.375,\n", " -14.9375,\n", " -15.9375,\n", " -15.75,\n", " -15.0625,\n", " -17.75,\n", " -16.375,\n", " -15.4375,\n", " -18.5,\n", " -19.75,\n", " -16.625,\n", " -15.6875,\n", " -16.75,\n", " -15.875,\n", " -15.9375,\n", " ...]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sampled_data_gas40P" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "249856\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2gAAAIpCAYAAADXZRtAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWrlJREFUeJzt3XlcVPX+x/H3IAIuIKAsEoqkpeRSaqW45JaiWWqapWkqaqt2Na8tctPUFq28md40s1LrppXWTbtZprkvZGqpYdp1AVzBSdQBVLaZ3x/9mCsXUIZh4ACv5+PB4+Gc8/2e8zlzBuTN+Z7vMdlsNpsAAAAAAGXOrawLAAAAAAD8iYAGAAAAAAZBQAMAAAAAgyCgAQAAAIBBENAAAAAAwCAIaAAAAABgEAQ0AAAAADAIAhoAAAAAGAQBDQAAAAAMgoAGACWoQYMGMplMWrJkyTXbde7cWSaTSVOnTs2zfNOmTTKZTOrcubPLakTZ+u2339SvXz8FBgaqSpUqBX4OXOX8+fN688031b17d4WEhMjT01M1atRQgwYN1KdPH82dO1dJSUmlUktZ2rdvnzw8PGQymdSoUaNrtk1OTtbYsWMVHh4uT09PBQUFaeDAgfr5558LbJ+QkCCTyZTvq0aNGoqIiNDYsWMVHx/visMCUEEQ0ACgAlqyZIlMJpNGjBhR1qXgKunp6erdu7dWrVqlsLAwPfzwwxo+fLhuu+02l+976dKlCgsL03PPPafNmzcrLCxMffv2Ve/evRUaGqq1a9dq3LhxatCggZYvX+7yespKZmamhg0bpuzs7Ou2/c9//qMWLVpo3rx5cnNzU79+/RQWFqYvvvhCbdq00VdffXXN/gMGDNDw4cM1fPhwtWvXTqdOndK8efPUokULbd26taQOCUAF417WBQAA/uvOO+/UwYMHVb169bIuBS6wa9cuJSQkqF27dtq+fXup7ffdd9/VU089JZPJpOeee04vvPCC/Pz88rS5fPmyPv30U82YMUPHjh0rtdpK2/Tp07V//36NHTtW77zzTqHtbDabBg0apLNnz+qRRx7R4sWLVaVKFUnSwoUL9fjjj2vYsGE6fPiwgoODC9zGrFmz1KBBA/vrM2fO6J577tHevXs1fPhw/ec//5G7O7+KAciLK2gAYCDVq1dXkyZNVL9+/bIuBS5w/PhxSdJNN91Uavs8ePCgxo0bJ0maM2eOXn/99XzhTJKqVaumkSNHav/+/erdu3ep1Veadu3apZkzZ2rgwIEaMGDANdt+9913+uWXX+Tr66v58+fbw5kkPfbYY+rWrZvS0tI0Z86cIu+/bt26mj17tiQpPj5eu3fvLt6BAKjQCGgAYCDXugdtz549euihhxQaGioPDw/5+Pjoxhtv1IABA7Rq1Sp7uwYNGig6OlqS9NFHH+W5D+Z/t3vp0iXNnDlTrVq1kre3t6pXr66mTZvqxRdf1Pnz5wutc9u2berZs6d8fX1Vs2ZN3XHHHfr4448lyb6v/3X18sWLFysyMlK1atWSyWRSQkKCJCkxMVGvv/66unbtqvr168vT01O+vr7q0KGD3nvvPVmt1nzbzb3np0GDBrJarZo7d65atGih6tWrq27dunriiSeUkpIiScrIyNDLL7+sJk2aqFq1agoJCdG4ceOUnp5e+Em5hu+//1733nuvAgMD5eHhoZCQED300EP5fvHOPa/Dhw+XlP+8uNLrr7+urKwstWrVSk8//fR121erVk3NmzfPt/xf//qXRo8erWbNmsnPz09eXl4KDw/XyJEj9fvvvxe4rYyMDL355ptq3bq1vL295eHhoeDgYN1xxx167rnn7OelNFy5ckXDhw+Xn5/fNa+c5codvtinTx/VrFkz3/qHH35Y0p/viyNat25t/3fu5x4ArsZ1dQAoB9avX69evXopKytLt956qyIjI5WTk6NTp05p9erVysnJUd++fSVJDzzwgH788Udt375dDRs2VIcOHezbadKkif3fKSkp6tatm/bu3SsfHx917dpVVatW1ebNm/Xqq69q2bJl2rBhQ54hWpL02WefaciQIbJarWrevLmaNWumU6dOKTo6Wr/99tt1j+Xpp5/W/Pnz1a5dO/Xu3VvHjh2zh5R//vOfmjx5ssLDw3XzzTerffv2OnPmjGJjY7V9+3atXbtWX3zxRaGhZujQoVq5cqU6deqkhg0baseOHXrvvff0008/aevWrerZs6f279+vzp0766abbtLWrVs1d+5cHT58WN9++61D52Ty5Ml65ZVXZDKZ1K5dO9WvX18HDx7U8uXL9eWXX2rhwoUaOXKkJCk4OFjDhw/XkSNHCjwvrmKz2fTvf/9b0p/vjTMefPBBeXp66pZbblHXrl2VnZ2tuLg4LV68WMuXL9fatWvVrl07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cuP8V25GPf/M4ggAAAAABsE9aAAAAABgEAQ0AAAAADAIAhoAAAAAGAQBDQAAAAAMgoCGSishIUGjRo1SeHi4qlWrpoYNG+qll15SZmamvc2mTZvUt29f1a1bVzVq1NBtt92mpUuXlmHVKClFOf+StH//fnXs2FFeXl6qV6+e3njjjTKqGCXt1VdfVbt27VS9enX5+voW2GbXrl3q1q2bfH195efnp6ioKO3bt690C4XLFOUzIElLlixRixYt5OXlpcDAQI0ZM6b0ioTLFPX8S9K5c+cUGhoqk8mkCxculEp9cK3rnf99+/Zp8ODBqlevnqpVq6aIiAjNmTOnVGojoKHSOnTokKxWq9577z0dOHBAs2fP1oIFCxQTE2Nvs2PHDrVo0UJffvml9u/fr+joaA0bNkzffPNNGVaOklCU82+xWNSjRw+FhYVpz549evPNNzV16lQtXLiwDCtHScnMzNTAgQP15JNPFrg+LS1NPXv2VP369bVz505t27ZN3t7eioqKUlZWVilXC1e43mdAkt566y397W9/0wsvvKADBw7ohx9+UFRUVClWCVcpyvnPNWrUKLVo0aIUqkJpud7537NnjwIDA/XJJ5/owIED+tvf/qZJkybpnXfecX1xNgB2b7zxhi08PPyabe655x5bdHR0KVWE0vS/53/+/Pk2Pz8/W0ZGhn3Z888/b2vcuHFZlAcXWbx4sa1WrVr5lu/atcsmyXb8+HH7sv3799sk2Q4fPlyKFcLVCvsMpKSk2KpVq2b74YcfSr8olJrCzn+u+fPn2zp16mRbv369TZLt/PnzpVYbXO965/9qTz31lK1Lly6uLchms3EFDbjKxYsX5e/v73QblE//e25jY2N11113ycPDw74sKipKv//+u86fP18WJaIUNW7cWLVr19aHH36ozMxMXb58WR9++KEiIiLUoEGDsi4PpWDdunWyWq06deqUIiIiFBoaqgcffFAnTpwo69JQSn777TdNnz5dH3/8sdzc+LW5siut3wH5pAH/78iRI/rHP/6hxx9/vNA2y5cv165duxQdHV2KlaE0FHT+k5KSFBQUlKdd7uukpKRSrQ+lz9vbW5s2bdInn3yiatWqqWbNmlqzZo2+++47ubu7l3V5KAXHjh2T1WrVa6+9prfffltffPGFUlJS1L1793z3q6LiycjI0ODBg/Xmm2+qfv36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v/1NGzdu1N133+1wnQCAgjHEEQBgKLlXy6ZMmaK9e/fme/ZZlSpV8l0tWrFihU6dOnXdbTds2FCHDh2S2Wy2L9u3b1++2QgffPBB5eTk6OWXX863jezsbF24cKGoh5PHkCFDFBoaqtdff92+zJnjKcjtt9+u2rVr6/3331d2drZ9+dKlS/M9IuDBBx/UqVOn9P777+fbzuXLl5Weni7pv5OdXO22226TpHzT8QMAnMMVNACAoYSHh6tdu3ZatWqVJOULaPfee6+mT5+u6OhotWvXTr/++quWLl2qG2+88brbHjlypN566y1FRUVp1KhROnv2rBYsWKCmTZvKYrHY23Xq1EmPP/64ZsyYob1796pHjx6qWrWqDh8+rBUrVmjOnDl64IEHHD62qlWraty4cXr22We1Zs0a9ezZ06njKYiHh4emTp2qp59+Wl27dtWDDz6ohIQELVmyRA0bNsxzpeyRRx7R8uXL9cQTT2jjxo1q3769cnJydOjQIS1fvlzff/+9br/9dk2fPl1btmxR7969FRYWprNnz2r+/PkKDQ3NM/sjAMB5XEEDABhObii788478012ERMTo7/+9a/6/vvvNW7cOP38889avXq1/X6pa4mIiNDHH3+sixcvasKECfr666/1z3/+U61atcrXdsGCBVq4cKHOnj2rmJgYTZo0SRs2bNDQoUPVvn37Yh/bY489plq1amnmzJlOH09hxo4dq7lz5+r48eOaOHGitm7dqq+//lq+vr7y8vKyt3Nzc9PKlSs1c+ZM/frrr5o4caKmTZumXbt2ady4cfbJQvr06aP69etr0aJFGjNmjObNm6e77rpLGzZsUK1atYpdJwAgP5OtOHcVAwCAcsVqtSogIED9+/cvcEgjAMAYuIIGAEAFc+XKlXz3tX388cdKSUlR586dy6YoAECRcAUNAIAKZtOmTXrmmWc0cOBA1a5dWz///LM+/PBDRUREaM+ePXkedA0AMBYmCQEAoIJp0KCB6tWrp7lz5yolJUX+/v4aNmyYZs6cSTgDAIPjChoAAAAAGAT3oAEAAACAQRDQAAAAAMAgCGgAAAAAYBAENAAAAAAwCAIaAAAAABgEAQ0AAAAADIKABgAAAAAGQUADAAAAAIP4P6W5JboWdsUcAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "\n", "# 假设已有数据列表\n", "data = yes_target_logprob_7B_NImg # 使用上传的数据\n", "\n", "# 划分数据范围\n", "min_value = min(data)\n", "max_value = max(data)\n", "intervals = np.linspace(min_value, max_value, 7) # 划分成6个区间\n", "\n", "# 为每个区间设置采样权重(例如:[0.1, 0.3, 0.5, 0.7, 0.9, 0.9])\n", "weights = [0.1, 0.3, 0.5, 0.7, 0.9, 0.9]\n", "weights = np.array(weights) / np.sum(weights) # 权重归一化\n", "\n", "# 根据权重和区间对数据进行分组并进行采样\n", "selected_samples = []\n", "for i in range(6):\n", " # 获取属于该区间的数据\n", " interval_data = [x for x in data_1 if intervals[i] <= x['yes_target_logprob_7B_NImg'] < intervals[i+1]]\n", " \n", " # 按照权重从该区间数据中采样\n", " if interval_data:\n", " sample_size = int(weights[i] * len(data)) # 根据权重决定采样数量\n", " # 确保采样数量不大于区间内的数据量\n", " sample_size = min(sample_size, len(interval_data)) \n", " selected_samples.extend(np.random.choice(interval_data, size=sample_size, replace=False))\n", " \n", "\n", "# 假设已有数据列表\n", "data = selected_samples \n", "sample_size = int(0.4 * len(yes_target_logprob_7B_NImg))\n", "sampled_data_gas20P = random.sample(data, sample_size)\n", "print(len(sampled_data_gas20P)) \n", "\n", "\n", "# sampled_data_gas20P_list = [x['yes_target_logprob_7B_NImg'] for x in sampled_data_gas20P]\n", "sampled_data_gas40P_list = [x['yes_target_logprob_7B_NImg'] for x in sampled_data_gas20P]\n", "\n", "\n", "# 绘制柱状图查看数据分布\n", "plt.figure(figsize=(10, 6))\n", "# plt.hist(sampled_data_gas20P_list, bins=50, edgecolor='black', alpha=0.7)\n", "plt.hist(sampled_data_gas40P_list, bins=50, edgecolor='black', alpha=0.7)\n", "plt.title(\"Histogram of Gas 40P\", fontsize=16)\n", "plt.xlabel(\"Value Ranges\", fontsize=12)\n", "plt.ylabel(\"Frequency\", fontsize=12)\n", "plt.grid(axis='y', alpha=0.3)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "# sampled_data_gas20P\n", "\n", "for i in sampled_data_gas20P:\n", " if 'Old_Path' in i:\n", " i['conversations'] = i['ori_conversations']\n", " i[\"image\"] = i.pop(\"Old_Path\")\n", " \n", " else:\n", " print(i)\n", " break \n", " " ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'id': 463372,\n", " 'conversations': [{'from': 'human',\n", " 'value': '\\nIs the plate on top of the table round and black?\\nAnswer the question using a single word or phrase.'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human', 'value': 'Are the buns on the right part of the picture?'},\n", " {'from': 'gpt', 'value': 'No'},\n", " {'from': 'human',\n", " 'value': 'What is used to make the plate on top of the table?'},\n", " {'from': 'gpt', 'value': 'Plastic'},\n", " {'from': 'human', 'value': 'What is the plate made of?'},\n", " {'from': 'gpt', 'value': 'Plastic'},\n", " {'from': 'human',\n", " 'value': 'Are there any mugs or plates that are made of glass?'},\n", " {'from': 'gpt', 'value': 'No'},\n", " {'from': 'human',\n", " 'value': 'Do you see any buns to the left of the food in the top of the picture?'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human',\n", " 'value': 'Which seems to be healthier, the lettuce or the fries?'},\n", " {'from': 'gpt', 'value': 'Lettuce'},\n", " {'from': 'human', 'value': 'What color is the jacket, beige or blue?'},\n", " {'from': 'gpt', 'value': 'Beige'},\n", " {'from': 'human', 'value': 'What food is to the right of the cheese?'},\n", " {'from': 'gpt', 'value': 'Fries'},\n", " {'from': 'human', 'value': 'What is the sauce that is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Ketchup'},\n", " {'from': 'human', 'value': \"What's the sandwich on?\"},\n", " {'from': 'gpt', 'value': 'Buns'},\n", " {'from': 'human', 'value': 'What is on the food on the left?'},\n", " {'from': 'gpt', 'value': 'Sandwich'},\n", " {'from': 'human', 'value': 'What is this sandwich on?'},\n", " {'from': 'gpt', 'value': 'Buns'},\n", " {'from': 'human', 'value': 'What food item is not long?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human', 'value': 'What is located on top of the green vegetable?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human',\n", " 'value': 'What kind of vegetable is on top of the green vegetable?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human', 'value': 'What kind of food in the image is not green?'},\n", " {'from': 'gpt', 'value': 'Cheese'},\n", " {'from': 'human',\n", " 'value': 'What is the food to the right of the food on the buns?'},\n", " {'from': 'gpt', 'value': 'Fries'},\n", " {'from': 'human',\n", " 'value': 'Are there both ketchup and cheese in the image?'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human', 'value': 'What vegetable is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Lettuce'},\n", " {'from': 'human',\n", " 'value': 'Is the green vegetable to the left or to the right of the sandwich that is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Right'},\n", " {'from': 'human',\n", " 'value': 'What kind of vegetable is on top of the lettuce?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human',\n", " 'value': 'Which type of furniture is colorful, the table or the chair?'},\n", " {'from': 'gpt', 'value': 'Table'},\n", " {'from': 'human', 'value': 'Is the tomato on top of a bottle?'},\n", " {'from': 'gpt', 'value': 'No'},\n", " {'from': 'human',\n", " 'value': 'Which kind of fast food is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Fries'},\n", " {'from': 'human', 'value': 'What kind of fast food is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Fries'},\n", " {'from': 'human',\n", " 'value': 'On which side of the image are the French fries?'},\n", " {'from': 'gpt', 'value': 'Right'},\n", " {'from': 'human',\n", " 'value': 'Which side is the purple onion on, the left or the right?'},\n", " {'from': 'gpt', 'value': 'Right'},\n", " {'from': 'human', 'value': 'What sauce is below the fries?'},\n", " {'from': 'gpt', 'value': 'Ketchup'},\n", " {'from': 'human', 'value': 'What is the food called?'},\n", " {'from': 'gpt', 'value': 'Buns'},\n", " {'from': 'human', 'value': 'Which kind of baked good is it?'},\n", " {'from': 'gpt', 'value': 'Buns'},\n", " {'from': 'human',\n", " 'value': 'Which seems to be healthier, the fries or the tomato?'},\n", " {'from': 'gpt', 'value': 'Tomato'},\n", " {'from': 'human', 'value': 'What kind of fast food is above the ketchup?'},\n", " {'from': 'gpt', 'value': 'Fries'},\n", " {'from': 'human',\n", " 'value': 'What vegetable is to the right of the sandwich?'},\n", " {'from': 'gpt', 'value': 'Tomato'},\n", " {'from': 'human',\n", " 'value': 'Are there any tomatoes to the right of the sandwich?'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human', 'value': 'What kind of vegetable is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human',\n", " 'value': 'What type of vegetable do you think is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human',\n", " 'value': 'How is the vegetable on top of the plate called?'},\n", " {'from': 'gpt', 'value': 'Tomato'},\n", " {'from': 'human',\n", " 'value': 'Which kind of vegetable is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Tomato'},\n", " {'from': 'human',\n", " 'value': 'What is the vegetable to the right of the buns on the left?'},\n", " {'from': 'gpt', 'value': 'Tomato'},\n", " {'from': 'human',\n", " 'value': 'Is the purple vegetable on top of the green vegetable?'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human',\n", " 'value': 'Is the chair in the bottom or in the top of the photo?'},\n", " {'from': 'gpt', 'value': 'Top'},\n", " {'from': 'human',\n", " 'value': 'What kind of food is crispy, the cheese or the lettuce?'},\n", " {'from': 'gpt', 'value': 'Lettuce'},\n", " {'from': 'human',\n", " 'value': 'Are there both a tomato and a plate in the picture?'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human',\n", " 'value': 'Is the long food to the left or to the right of the fries?'},\n", " {'from': 'gpt', 'value': 'Left'},\n", " {'from': 'human', 'value': 'Which kind of baked good is the sandwich on?'},\n", " {'from': 'gpt', 'value': 'Buns'}],\n", " 'ori_conversations': [{'from': 'human',\n", " 'value': '\\nIs the plate on top of the table round and black?\\nAnswer the question using a single word or phrase.'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human', 'value': 'Are the buns on the right part of the picture?'},\n", " {'from': 'gpt', 'value': 'No'},\n", " {'from': 'human',\n", " 'value': 'What is used to make the plate on top of the table?'},\n", " {'from': 'gpt', 'value': 'Plastic'},\n", " {'from': 'human', 'value': 'What is the plate made of?'},\n", " {'from': 'gpt', 'value': 'Plastic'},\n", " {'from': 'human',\n", " 'value': 'Are there any mugs or plates that are made of glass?'},\n", " {'from': 'gpt', 'value': 'No'},\n", " {'from': 'human',\n", " 'value': 'Do you see any buns to the left of the food in the top of the picture?'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human',\n", " 'value': 'Which seems to be healthier, the lettuce or the fries?'},\n", " {'from': 'gpt', 'value': 'Lettuce'},\n", " {'from': 'human', 'value': 'What color is the jacket, beige or blue?'},\n", " {'from': 'gpt', 'value': 'Beige'},\n", " {'from': 'human', 'value': 'What food is to the right of the cheese?'},\n", " {'from': 'gpt', 'value': 'Fries'},\n", " {'from': 'human', 'value': 'What is the sauce that is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Ketchup'},\n", " {'from': 'human', 'value': \"What's the sandwich on?\"},\n", " {'from': 'gpt', 'value': 'Buns'},\n", " {'from': 'human', 'value': 'What is on the food on the left?'},\n", " {'from': 'gpt', 'value': 'Sandwich'},\n", " {'from': 'human', 'value': 'What is this sandwich on?'},\n", " {'from': 'gpt', 'value': 'Buns'},\n", " {'from': 'human', 'value': 'What food item is not long?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human', 'value': 'What is located on top of the green vegetable?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human',\n", " 'value': 'What kind of vegetable is on top of the green vegetable?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human', 'value': 'What kind of food in the image is not green?'},\n", " {'from': 'gpt', 'value': 'Cheese'},\n", " {'from': 'human',\n", " 'value': 'What is the food to the right of the food on the buns?'},\n", " {'from': 'gpt', 'value': 'Fries'},\n", " {'from': 'human',\n", " 'value': 'Are there both ketchup and cheese in the image?'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human', 'value': 'What vegetable is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Lettuce'},\n", " {'from': 'human',\n", " 'value': 'Is the green vegetable to the left or to the right of the sandwich that is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Right'},\n", " {'from': 'human',\n", " 'value': 'What kind of vegetable is on top of the lettuce?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human',\n", " 'value': 'Which type of furniture is colorful, the table or the chair?'},\n", " {'from': 'gpt', 'value': 'Table'},\n", " {'from': 'human', 'value': 'Is the tomato on top of a bottle?'},\n", " {'from': 'gpt', 'value': 'No'},\n", " {'from': 'human',\n", " 'value': 'Which kind of fast food is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Fries'},\n", " {'from': 'human', 'value': 'What kind of fast food is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Fries'},\n", " {'from': 'human',\n", " 'value': 'On which side of the image are the French fries?'},\n", " {'from': 'gpt', 'value': 'Right'},\n", " {'from': 'human',\n", " 'value': 'Which side is the purple onion on, the left or the right?'},\n", " {'from': 'gpt', 'value': 'Right'},\n", " {'from': 'human', 'value': 'What sauce is below the fries?'},\n", " {'from': 'gpt', 'value': 'Ketchup'},\n", " {'from': 'human', 'value': 'What is the food called?'},\n", " {'from': 'gpt', 'value': 'Buns'},\n", " {'from': 'human', 'value': 'Which kind of baked good is it?'},\n", " {'from': 'gpt', 'value': 'Buns'},\n", " {'from': 'human',\n", " 'value': 'Which seems to be healthier, the fries or the tomato?'},\n", " {'from': 'gpt', 'value': 'Tomato'},\n", " {'from': 'human', 'value': 'What kind of fast food is above the ketchup?'},\n", " {'from': 'gpt', 'value': 'Fries'},\n", " {'from': 'human',\n", " 'value': 'What vegetable is to the right of the sandwich?'},\n", " {'from': 'gpt', 'value': 'Tomato'},\n", " {'from': 'human',\n", " 'value': 'Are there any tomatoes to the right of the sandwich?'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human', 'value': 'What kind of vegetable is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human',\n", " 'value': 'What type of vegetable do you think is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Onion'},\n", " {'from': 'human',\n", " 'value': 'How is the vegetable on top of the plate called?'},\n", " {'from': 'gpt', 'value': 'Tomato'},\n", " {'from': 'human',\n", " 'value': 'Which kind of vegetable is on top of the plate?'},\n", " {'from': 'gpt', 'value': 'Tomato'},\n", " {'from': 'human',\n", " 'value': 'What is the vegetable to the right of the buns on the left?'},\n", " {'from': 'gpt', 'value': 'Tomato'},\n", " {'from': 'human',\n", " 'value': 'Is the purple vegetable on top of the green vegetable?'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human',\n", " 'value': 'Is the chair in the bottom or in the top of the photo?'},\n", " {'from': 'gpt', 'value': 'Top'},\n", " {'from': 'human',\n", " 'value': 'What kind of food is crispy, the cheese or the lettuce?'},\n", " {'from': 'gpt', 'value': 'Lettuce'},\n", " {'from': 'human',\n", " 'value': 'Are there both a tomato and a plate in the picture?'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human',\n", " 'value': 'Is the long food to the left or to the right of the fries?'},\n", " {'from': 'gpt', 'value': 'Left'},\n", " {'from': 'human', 'value': 'Which kind of baked good is the sandwich on?'},\n", " {'from': 'gpt', 'value': 'Buns'}],\n", " 'yes_target_logprob_7B_NImg': -16.625,\n", " 'logits_shape': [1, 32000],\n", " 'image': 'llava_image_tune/gqa/images/2368240.jpg'}" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sampled_data_gas20P[10000]" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "# write_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/llava_image_tune_Logits_Rand_7B_NImg_Gas_20P.json', sampled_data_gas20P)\n", "# \n", "\n", "# data_temp = read_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/llava_image_tune_rand_20P.json')\n", "# write_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/llava_image_tune_Logits_Rand_7B_NImg_Gas_40P.json', sampled_data_gas20P + data_temp)\n", "# # \n", "\n", "\n", "\n", "# write_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/llava_image_tune_Gas_Rand_7B_NImg_Gas_40P.json', sampled_data_gas20P)\n", "# " ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "249850" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_temp = sampled_data_gas20P + data_temp\n", "len(new_temp)" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'id': 188548,\n", " 'conversations': [{'from': 'human',\n", " 'value': \"############\\n\\nIs the woman wearing a hat?\\nAnswer the question using a single word or phrase. Yes Is the woman's glass full? No Is this an outdoor scene? Yes ############\\n \\nDoes the previous paragraph demarcated within ### and ###\\ncontain informative signal for visual instruction tuning a vision-language model?\\nAn informative datapoint should be well-formatted, contain some\\nusable knowledge of the world, and strictly NOT have any harmful,\\nracist, sexist, etc. content.\\nOPTIONS:\\n- yes\\n- no\\n\"},\n", " {'from': 'gpt', 'value': 'response: yes'}],\n", " 'ori_conversations': [{'from': 'human',\n", " 'value': '\\nIs the woman wearing a hat?\\nAnswer the question using a single word or phrase.'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human', 'value': \"Is the woman's glass full?\"},\n", " {'from': 'gpt', 'value': 'No'},\n", " {'from': 'human', 'value': 'Is this an outdoor scene?'},\n", " {'from': 'gpt', 'value': 'Yes'}],\n", " 'Old_Path': 'llava_image_tune/coco/train2017/000000439784.jpg',\n", " 'yes_target_logprob_7B_NImg': -16.25,\n", " 'logits_shape': [1, 32000]}" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sampled_data_gas20P[0]" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(249856, 124928)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(sampled_data_gas20P), len(sampled_data_rand20P)" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(249856, 249856)" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "temp = sampled_data_gas20P + sampled_data_rand20P\n", "\n", "\n", "int(0.4 * len(yes_target_logprob_7B_NImg)), len(temp)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2gAAAIpCAYAAADXZRtAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAiVlJREFUeJzs3Xd8FHX+x/H3brIpm00nIYQuKB1RUDqILSBwIupZUBGxAydyNrB7dj2xIGdD0FPOXn6KDRFEaQKKNEGq1ITUTdmULfP7g8seMW03dUNez8eDx4PMfL8zn93ZTfa9M/P9mgzDMAQAAAAAaHTmxi4AAAAAAHAUAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENOE506NBBJpNJCxYsqLLdGWecIZPJpAceeKDM8mXLlslkMumMM86otxrRuLZu3apx48YpMTFRQUFBFb4OKnL11VfLZDKV+RccHKwWLVpo+PDhevHFF+V0Ouv/AdSB0vpra+7cud5tXXvttVW2Xb9+vS6++GK1bNlSYWFh6tixo6ZNm6YjR45U2H7BggXlnm+z2azo6GidfvrpeuSRR5Sfn1/rx9BY9u7dK5PJpA4dOtTL9n/++WdNmzZNffr0UXx8vCwWi2JjY9WnTx9de+21+vTTT+Vyuepl39Up/T375382m009evTQ3/72N+3du7dRavNX6e+F6v7mVOfgwYOKjY31/l6pSl5enmbNmqUuXbooPDxcLVq00OjRo/Xdd99V2qei5zs8PFydOnXSpEmTtHHjxlrVD9SHqt8JAOCnBQsWaNKkSZo4cWKt/3Cj7hQUFGj06NHau3ev+vXrp5SUFAUFBalPnz4+b6NTp04aMmSIJKmoqEjbtm3T8uXLtXz5cv3nP//R4sWLFR4eXk+PIHDs3r1bd9xxh0wmkwzDqLLtBx98oMsuu0wul0unnXaaOnbsqHXr1mnOnDl6//339eOPP6pz584V9o2IiNBFF10kSXK73dq9e7dWr16ttWvX6s0339Ty5cvVsmXLOn98TZXD4dANN9ygt956S5LUokULnXbaaYqPj1deXp5+//13zZs3T/PmzVOHDh20YcMGRUdHN1q9EydOlCQZhqEDBw5o9erVeuGFFzR//nx98803GjhwYKPV1pCuu+462e32atsdOXJEQ4cO1e+//65WrVpp7NixSktL05dffqkvv/xSzz33nKZNm1Zp/5SUFCUlJXm3tXbtWi1YsEBvv/223nrrLf31r3+ts8cE1JoB4LjQvn17Q5Ixf/78KtsNHz7ckGTcf//9ZZYXFBQYv/32m/HHH3/Uqo758+cbkoyJEyfWajuoW0uXLjUkGYMGDfK778SJEys9pv/5z38MSYYk48knn6yDSutXaa015Xa7jaFDhxo2m837vEyePLnCtgcPHjSsVqshyXj55Ze9y10ul3HFFVcYkozTTjvN8Hg8ZfqVvofat29fbptr1qwxbDabIcm48sora/w4GtOePXsqfXw1VVJSYgwdOtSQZLRq1cr46KOPyj2vpfueMWOGERoaahw+fLjO9u+r0vdhRa/Bffv2GSeeeKIhyejevXuD1+av0td/dX9zqvLqq68akoypU6cakoygoKBK255//vmGJOOss84yCgoKvMsXLVpkBAUFGWaz2fj111/L9St9vpcuXVpmeU5OjnHOOecYkoyoqCgjKyurxo8DqGtc4ghAkmS1WtW1a1e1a9eusUtBPdi3b58k6cQTT6zT7V566aU655xzJEmfffZZnW47ED333HP64Ycf9MQTT1R7id6zzz4rh8Ohs88+W9dff713eVBQkP71r38pOjpaa9eu1TfffOPz/k8//XT9/e9/lyR99NFHjXapXqB56KGH9MMPPyguLk4rV67UBRdcUOGlrB06dNA///lP/fzzz7LZbI1QaeXatm3rveR469at2r17d+MWVM/++OMPzZgxQwMGDNCtt95aZdutW7fq008/VVBQkObNmyer1epdd9555+nqq6+Wx+PRY4895vP+o6Oj9corr0iScnNz9fXXX9fsgQD1gIAGQFLV96CtX79el1xyidq0aaOQkBBFRUXphBNO0IUXXqhPP/3U265Dhw6aNGmSJOmNN94oc83/n7frcDj0+OOP69RTT1VkZKSsVqt69Oihe+65R9nZ2ZXW+eOPP2rkyJGKiYmRzWbTaaedpjfffFNS5fcXHbt8/vz5GjhwoKKjo2Uymbz3e/zxxx964okndOaZZ6pdu3YKDQ1VTEyMhgwZopdfflkej6fcdo+9l8bj8ej5559X7969ZbVa1apVK914443KysqSJBUXF+sf//iHunbtqvDwcCUnJ+uWW25RQUFB5QelCl9//bXGjBmjxMREhYSEKDk5WZdcconWrVtXpl3pcS29nOrPx6Uu9O7dW5KUlpZWbt3WrVt1//33a/DgwWrdurVCQkIUHx+vs88+W++9916F2zv2teh0OvXEE0+oR48eCg8PV3x8vMaPH6/ffvut0npWrVqlUaNGeV8j/fr10+uvv17rx7l9+3bdfffdGj58uG666aZq23/88ceSpMsvv7zcOpvNpr/85S+SjgYtf/Tt21fS0ctWMzIyfOrz008/6Y477tDpp5+upKQkhYSEqGXLlho7dqy+/fbbCvuU3gt39dVXq6CgQDNnzlTnzp0VGhqqpKQkTZw4UQcPHqx0n59//rmGDx+uyMhIRUdHa+jQoWV+X9SV3NxcPffcc5Kk+++/36d727p3714uoKWnp+v555/Xeeedp44dOyo8PFxRUVHq16+fnnjiCRUVFVW4rR07duiaa65Rx44dFRoaKpvNpvbt22v06NGaP3++X4+l9L0klX8/5eXl6dVXX9X48eN14oknKiIiQhEREerVq5fuvvtu5eTkVLjN0vuT9+7dq6VLl+rcc89VbGyswsPDdeqpp3p/f1YkKytL06dPV/v27RUaGqp27dpp6tSp3t9rNWUYhq655hqVlJTo9ddfl9lc9cfR0vfS4MGD1b59+3LrS99jn332mV/3w3bo0EFxcXGS1GTu/UPzwD1oAKq0ZMkSjRo1Sk6nUyeffLIGDhwot9utgwcPatGiRXK73Tr//PMlSRdddJFWr16tFStWlLlfSZK6du3q/X9WVpbOOussbdiwQVFRUTrzzDNlsVj0/fff65FHHtHChQv13Xfflfug9c4772jChAnyeDzq1auXevbsqYMHD2rSpEnaunVrtY9l2rRpmjt3rgYNGqTRo0dr9+7d3pDy73//W/fee686duyok046SYMHD9bhw4e1atUqrVixQt98840++OCDSkPNFVdcoU8++UTDhw9Xp06dtHLlSr388sv66aef9MMPP2jkyJHauHGjzjjjDJ144on64Ycf9Pzzz2vHjh364osv/Dom9957rx5++GGZTCYNGjRI7dq102+//ab33ntPH374oV555RVdc801kuT9IL1z584Kj0tdyM3NlaQK74d65plnNG/ePHXt2lW9evVSTEyM9u3bp6VLl2rJkiVavXq1nnnmmQq363Q6dd5552nlypUaNmyYunXrpp9++kkff/yxli5dql9++aXca+T999/XZZddJrfbrZ49e6pXr17av3+/rr32Wm3ZsqXGj9HtdmvixIkymUyaN29eteE2Ly9PO3fulCT169evwjb9+vXTv//9b/3yyy9+1VL6fEtSaGioT31mzZqlpUuXqkePHurbt68iIiK0a9cuff755/r888/17LPP6pZbbqmwr91u16BBg7Rv3z4NHTpUPXv21KpVq/Tmm2/q+++/16+//lruXq7Zs2drxowZko6e9evUqZN27NihcePGeZfXlaVLlyovL08mk0lXXHFFjbfz9ddf65ZbblHr1q3VuXNnDRgwQOnp6VqzZo3uuusuffrpp1q6dGmZ53zz5s0aPHiwcnNz1aVLF40ZM0ZBQUE6cOCAli9f7v395Ktjj+2f30+//vqrrr/+eiUkJKhLly7q27evsrOztX79ej366KN67733tHr1asXHx1e47ddff10PP/ywTj31VI0cOVJ79+7V6tWrNXHiRG8QO1ZaWpqGDh2qHTt2KDY2VmPGjJHH49Hbb7+tr776Sj169PD5cf3Z3Llz9d133+nRRx9Vt27dqg1Hpe+Rqt5L0tEvLXbs2KHu3bv7VIfH4/F+SebrewloEI19jSWAulHbe9BK740YPnx4meUjRowwJBlvvfVWuW3l5OQYq1atKrPMl3vQLrnkEkOS0b9/fyMjI8O7PC8vzxg1alSF90odPHjQe+/Nc889V2bd999/b0RERFR6b0fp8qioqHL1lvrpp5+MTZs2lVt+8OBB4+STTzYkGe+9916ZdaX30kgyOnXqZOzdu9e7LiMjw3s/Sa9evYzTTz+9zGPdvXu3ERsba0gyfvzxx0qfqz/78ssvDUlGWFiY8c0335RZ99prrxmSDIvFYmzevLnMutrcG1jVPWhFRUVGx44dDUnGU089VW79smXLjF27dpVbvm3bNqNNmzaGJGPNmjVl1h17n84pp5xS5l6hwsJCIyUlxZBkXH/99WX6HT582IiMjDQkGc8880yZdd9++60RFhZW43vQHnvsMUOSMXv2bO+y+++/v9J70DZu3OjdV05OToXb/OijjwxJRosWLcosr+oeNMMwjIsuusiQZLRr187n+r/44gvj0KFD5ZavXLnSiIqKMiwWi3HgwIEK65BkpKSkGHa73bsuKyvL6NOnjyHJePTRR8v0+/XXX733BL3//vtl1r311luGyWSq03vQ7r33Xu97sDa2bt1a4e+HrKws49xzz63wPstJkyYZkoyHH364XD+Hw2F8//33ZZZVdQ+aYRjGrFmzvL8z/nwP3f79+41vv/3WcLvdZZYXFBQYV111lSHJuPnmm8tts/Rvg8ViMT777LMy60qPcXR0tOFwOMqsK32dDR06tMxrODMz0+jfv7/3cfh7D9rOnTuNiIgIo2/fvobT6TQM43+/Syu7B+3UU081JBnPPvtspduNiooyJBmff/55meWldf75HjTDMIzPP//cu/67777z63EA9YmABhwnSv8I+/rP14DWvXt3Q5LPN1BXFwT++OMPw2w2GyaTqcIbug8cOOD9IL1ixQrv8oceesiQZAwcOLDC7d52223VBrSHHnrIp8fwZ19//bUhybj44ovLLD82oC1atKhcv2eeecaQZJhMpgrD37Rp0wxJxoMPPuhzLWeddZYhyZgxY0aF68eMGWNIMq677royy+s6oBUVFRm//PKLMXr0aEOScc455xiFhYV+bffll182JBm33357meWlr0WTyWRs2LChXL/Vq1cbkowTTjihzPKHH37YkGQMGDCgwv3dcsstNQpomzZtMkJCQoxBgwaV+XBcVUBbsWKFd1+lH0L/7JtvvjEkGSEhIWWWVxTQXC6XsWPHjjKP4c8htKZmzpxpSDJefPHFCuuIiIioMNy98847hiTjzDPPLLP82muvNSQZl1xySYX7Kx3soa4C2k033VTlcT9w4IAxceLEcv8+/vhjn/exfft2Q/8d1OVY5513niHJ+Pnnn33aTkUBzePxGPv27TOeeuopIyQkxIiNjTV++uknn2szjKMhLTg42EhISCi3rvRvQ2W/M7p27WpIMpYvX+5dtm/fPu/v6S1btpTr88svv9QooLndbmPIkCGGxWIxNm7c6F1eXUAr/bLr1VdfrXTbycnJhiRj4cKFZZZXFNDS09ONhQsXGomJiYYko0+fPuWCL9CYuMQROM4MHjy40mG7Jemrr76q8F6hypx++unaunWrJkyYoFmzZmnAgAHVzlVTleXLl8vj8ejUU08tc79FqdatWyslJcV7OdGgQYMkSd9//70kacKECRVud8KECXr66aer3HfpkOWVKS4u1jfffKO1a9fqyJEjKi4ulmEYysvLk3T0HqSKBAcH69xzzy23vHRAjnbt2qlnz56Vrj906FCVdZVyuVxasWKFpKNzEFVk8uTJ+vzzz7V06VKftumPN954Q2+88Ua55TfeeKNefPHFSu8jyc/P15dffqlffvlFGRkZKikpkSQdPnxYUuXPa7t27XTyySeXW96tWzdJKnf/07JlyyRV/hqZOHGi914lX7lcLk2cOFFms9mne2Xq0h9//FHhpZRms1nTp08vd0ladTIzM7Vo0SJt3rxZ2dnZ3nt1duzYIany49CvXz+1atWq3PLqjkNllxtOnDixXu5Fq0x2dnaFr9sOHTpo3LhxZZa53W4tW7ZMK1eu1OHDh1VYWCjj6JfZkso/R6effrq++OIL3XTTTXrwwQc1fPhwhYWF+VRXRce2U6dOWrZsmdq0aVNpv5UrV+qHH37Qvn375HA4vLWFhIQoPT1d2dnZio2NLddv7NixFW6vW7du2rZtW5njWPp7um/fvhVeLtinTx/17t3b7znEnn32Wf3444968MEH1atXL7/61taIESMqXH7qqafqo48+atD3NlAdAhpwnLn22msr/fAuHZ2o2p+A9thjj2njxo3euWZKbyw/44wzNGHCBO+HNF+Vfgjo2LFjpW06depUpq0kHThwQJIqHQDAl4EBqmqzevVqXXLJJd7RDity7P0hx2rVqlWFobV0EILKRsaMjIyUpEoHH/izzMxMb9vKnr+Knru6cuz9a7m5uVq3bp3279+vl156Sb169dLNN99crs9nn32mSZMmKTMzs9LtVva8Vva8RUVFSToaqI9V+hqp7Lmp6jVXmUceeUQ///yznnjiCXXp0sXnfqXHVjp6X0xF822VTjZd+nj+7Nh50EonMz7ppJM0ZswYvx/Lq6++qltvvbXKQWlqehz+/Pqtj+NQlRYtWkg6OshHRXr27Flmvrprr71W8+bNK9dux44duuCCC6q8V/HPz9Htt9+uH3/8Ud9++61Gjhwpi8Wik08+WcOGDdOll16q0047rdJtlQ7c43Q6tWvXLq1Zs0a7du3S5Zdfrm+//VYhISFl2h85ckQXXnihfvzxx0q3WVpjRQHNn+NY3TEsXedPQCsdZOfkk0/WzJkzfe4n/e/9VNXrt7r307HzoIWGhio5OVlDhw7ViBEj6mzAJKCuENAAVCkpKUnr1q3T999/r2+//VYrVqzQmjVrtGLFCj366KN67LHHdOeddzZYPZX9IfXlD2xlkyg7HA6NGzdOaWlpmjRpkm666SZ17txZUVFRCgoK0u+//64uXbpUOilxdd+8Hi/fzA4ZMqTM5ONut1szZ87UU089penTp2vw4MFlzngdPHhQl1xyiQoLC3XHHXdowoQJ6tChg2w2m8xms7755hulpKTU+HltCKWjx3322WflBnMpHdhg0aJF3lFKS88eHTvS3L59+yo8W7B//35JlX9x0KJFizqZ7H39+vW64YYbFBQUpCeeeEJjx45Vu3btZLVaZTKZ9Morr+iGG24I6ONQlVNPPVXS0QnEKzt75IuLLrpIW7Zs0ZgxY3THHXeoe/fuioqKksViUUlJSYWDSFitVi1evFhr167VV199pZUrV2rlypVat26dnnnmGd1888168cUXK9zfn4/tihUrNGrUKP3www+655579OSTT5ZZf+211+rHH3/UwIED9eCDD+rkk09WbGysLBaLJCk5OVmHDx8O2OP45ZdfqqioSAUFBd6pOUqVhkO32+19L911110aOXKkpKPvkZ9//rnSL9Byc3O94bmy99Ndd91V4SjFQCAioAGoVumQ56V/3IqKirRgwQJNmTJFs2bN0kUXXeQ9c1Od1q1bS1KVc/yUrittW/r/7du3VzraV22GSF6+fLnS0tJ06qmnVjgce+klYI0tPj5eoaGhKi4u1u7duyu8RLSi566+lH7gX7NmjZYvX66///3vZYZs/+yzz1RYWKgLLrhATzzxRLn+df28tm7dWtu2bauX10hVZy1SU1OVmppaZllUVJQ6d+6snTt3at26dRUGtNIpEUoDRn15//33ZRiGpk2bpjvuuKPc+vo4Drt27dLevXsrHOmvroczP/PMM2Wz2ZSfn6+3335bU6dO9Xsb27Zt08aNG5WYmKiPP/643Bnx6p6j0047zXu2zOVy6ZNPPtFVV12luXPn6qKLLqr08rpjDR48WLNnz9a1116r5557TjfeeKNOOOEESUfPHH3xxRcym8364osvFBMTU6ZvQUFBuddgbZT+/qjqWNX0OO7cudM7wmlFSi9nP/ZKkNLLEP88jUip0uURERE66aSTalQXEEgC+2sxAAEpLCxMN954o3r37i2Px1PmMpfSy3Iqm0B32LBhMpvN2rBhg3799ddy6w8fPqyvvvpKUtl7BoYNGyZJ+s9//lPhdhcuXFizByN55/Sp7BKgt956q8bbrkvBwcHeSwwrO7NSGjB9+UBYF0wmk2bPni2TyaQlS5aUufet9HmtaN4iwzBqdcwqMnz4cEnS22+/XeH6quZ7qsyGDRu89yD9+d/9998v6eh9f8fep1TqggsukFTxazM/P987sff48eP9rssfVR2HoqIiffjhh3W6v/o4DlWJiorStGnTJEkPPPCA98ykP0qfo+Tk5AovV/bnd0BwcLAuuugipaSkSDr6GvLVNddcoz59+qikpEQPPvigd7ndbpfb7VZUVFS5cFZaX2Vnzmpi2LBhMplM+vnnn7Vt27Zy63/99Ve/7z+bPn16pe+lPXv2SDr6pU/psmMDWum9gitWrKjwLFrpe2zs2LHeM4pAU0ZAA1Clp59+usI/iNu2bfN+q3zsB7/Sm9srm5esXbt2uvjii2UYhm644YYy9yYVFBTo+uuvV1FRkQYNGuQdIEQ6+iHYarXqxx9/LHfJ0IoVKzR37twaP8bS++iWLFlSru5XXnlF7777bo23Xdf+/ve/S5L+9a9/acmSJWXWLViwQP/3f/8ni8VS6ZxW9eHUU0/VxRdfLEne0CL973n94IMPvAOCSEcvY7rvvvu0cuXKOq1j8uTJstlsWrVqlZ5//vky65YtW6aXXnqpTvdXnenTp8tqterbb7/Vq6++6l3udrt18803KycnR6eddlqFA8zUpdLj8MYbb3gHvJGOhrObb77Z++G4rkybNk1BQUF67733vJeIlnrnnXf0ySef1On+pKPBbNCgQcrMzNTAgQP16aefVhhYjhw5ot9//73c8pNOOklBQUHatGmT9zLVUp999plmz55d4X7nzp1b4eAqqamp3rM6FQXjyphMJj366KOSjgbc0lpbtmyp2NhY5eTk6N///neZPqtXr/b7nq7qtGvXThdccIE8Ho9uuummMvfeZWdn6+abb67TQFidHj166Pzzz5fb7dbkyZNVWFjoXffll19qwYIFMpvNdf48AI2mAUaKBNAA6msetOjoaEOS0bVrV+OCCy4wLr/8cuOMM84wgoODDUnGVVddVaZ9cXGxd7jjU045xbjqqquMyZMnl5k/KCMjwzu3WHR0tDFu3DjjoosuMhISEgxJRseOHY09e/aUq/3f//63YTabDUlG7969jcsuu8wYPny4YTabvcPsWyyWcv3kw9DqpUN/h4SEGOee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DbKvrBr0GTlypObPny+n06n169dr4sSJMplMeuKJJ+q8vppau3atXn75ZfXu3bvcultvvVWLFi3S+++/r+joaE2dOlXjx4/XihUryrT79ttv1aNHDx04cEB/+9vfNGrUKG3btk0xMTEN9CiaDgYJAQAAABpJaGiokpKS1LZtW40bN05nn322Fi9e7F2fmZmpyy67TK1bt5bValWvXr30n//8p8w2zjjjDP3tb3/THXfcobi4OCUlJemBBx4o02bHjh0aNmyYwsLC1L179zL7qEp+fr4mTJigV199VbGxsWXW2e12zZs3T88884zOPPNM9e3bV/Pnz9fKlSu1evXqMm3j4+OVlJSkfv366emnn1ZaWprWrFnjxzPVfBDQAAAAgACwefNmrVy5UiEhId5lRUVF6tu3rxYtWqTNmzfr+uuv15VXXqmffvqpTN833nhDERERWrNmjZ588kk99NBD3hDm8Xg0fvx4hYSEaM2aNXrppZd05513+lTTlClTNHr0aJ199tnl1q1fv15Op7PMuq5du6pdu3ZatWpVpdsMDw+XdHQOO5THJY4AAABAI/n8889ls9nkcrlUXFwss9msOXPmeNe3bt1at912m/fnadOm6euvv9Z7772n008/3bu8d+/euv/++yVJJ554oubMmaMlS5bonHPO0bfffqtt27bp66+/VnJysiTp0Ucf1ahRo6qs7Z133tHPP/+stWvXVrg+NTVVISEh5S5TbNmypVJTUyvsk5OTo3/84x+y2Wxl6sf/ENAAAACARjJixAj961//UkFBgWbPnq3g4GBdeOGF3vVut1uPPvqo3nvvPR08eFAlJSUqLi6W1Wots50/3x/WqlUrHTlyRJL022+/qW3btt5wJkkDBw6ssq79+/frlltu0eLFi+tkwJJBgwbJbDaroKBAJ5xwgt59913vQCIoi4AGAAAANJKIiAh17txZkvT666/r5JNP1rx58zR58mRJ0lNPPaXnnntOzz77rHr16qWIiAhNnz693OWBFoulzM8mk0kej6fGda1fv15HjhzRqaee6l3mdru1fPlyzZkzR8XFxUpKSlJJSYlycnLKnEVLS0tTUlJSme29++676t69u+Lj4xkYpBoENAAAgDpU08mRmeQYZrNZs2bN0owZM3T55ZcrPDxcK1as0Pnnn68rrrhC0tH7yX7//Xd1797d5+1269ZN+/fv1+HDh9WqVStJKjeIx5+dddZZ2rRpU5llkyZNUteuXXXnnXcqKChIffv2lcVi0ZIlS7xn/bZv3659+/aVO0PXtm1bderUyeeamzMCGgAAQB2x2+2a89TDcuZl+N3XEtlCU2+/h5BWx/LtNRn8vvH2c/HFF+v222/Xiy++qNtuu00nnniiPvjgA61cuVKxsbF65plnlJaW5ldAO/vss3XSSSdp4sSJeuqpp5Sbm6u77767yj6RkZHq2bNnmWURERGKj4/3Lo+OjtbkyZM1Y8YMxcXFKSoqStOmTdPAgQM1YMAA/x88JBHQAAAA6ozD4ZAzL0Pje0UqISbC537pOQX6aFOGX5Mco2pWq1XxkVZlbvmxRvOT1UR8pLXcvWH+Cg4O1tSpU/Xkk0/qpptu0j333KPdu3crJSVFVqtV119/vcaNGye73e7zNs1msz7++GNNnjxZp59+ujp06KDnn39eI0eOrFWtkjR79myZzWZdeOGFZSaqRs2ZDMMwGruI41Fubq6io6Nlt9sVFRXV2OUAAIAGcPjwYb38+CzdMDRJreJ9//t/ODNXL/+QqhvuetR7CRp8U1RUpD179qhjx47lBrOo6eWmNcVlqs1bVa9Ff7IBZ9AAAABwXIqOjiYwoclhomoAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBDMgwYAAIDjEhNVoykioAEAAOC4Y7fbNeeph+XMy2iwfVoiW2jq7fcQ0urZ3r171bFjR/3yyy/q06dPY5dT5whoAAAAOO44HA458zI0vlekEmIi6n1/6TkF+mhThhwOh18BLTU1VY899pgWLVqkAwcOKDo6Wp07d9YVV1yhiRMnymq11mPVNXfGGWfo+++/lySFhoaqXbt2mjRpku666y6ZTKZGrq6sG2+8US+//LJmz56t6dOne5dnZWVp2rRp+uyzz2Q2m3XhhRfqueeek81mkyQtW7ZMI0aM8LZPTEzUkCFD9NRTT+mEE06ot3oJaAAAADhuJcREqFV8VAPtLc+v1rt379bgwYMVExOjRx99VL169VJoaKg2bdqkV155Ra1bt9Zf/vKXeqq1rA4dOmjBggU644wzfO5z3XXX6aGHHlJxcbG+++47XX/99YqJidFNN91Uf4X66eOPP9bq1auVnJxcbt2ECRN0+PBhLV68WE6nU5MmTdL111+vhQsXlmm3fft2RUZGaseOHbr++us1duxYbdy4UUFBQfVSM4OEAAAAAI3g5ptvVnBwsNatW6e//vWv6tatm0444QSdf/75WrRokcaOHett+8wzz6hXr16KiIhQ27ZtdfPNNys/P9+7/o8//tDYsWMVGxuriIgI9ejRQ1988UW91m+1WpWUlKT27dtr0qRJ6t27txYvXuxdv2vXLp1//vlq2bKlbDabTjvtNH377bdlttGhQwc9+uijuuaaaxQZGal27drplVdeKdPmp59+0imnnKKwsDD169dPv/zyi0/1HTx4UNOmTdPbb78ti8VSZt1vv/2mr776Sq+99pr69++vIUOG6IUXXtA777yjQ4cOlWmbmJioVq1aadiwYbrvvvu0detW7dy505+nyi8ENAAAAKCBZWZm6ptvvtGUKVMUEVHxJZjHXipoNpv1/PPPa8uWLXrjjTf03Xff6Y477vCunzJlioqLi7V8+XJt2rRJTzzxhPdSvfpmGIZ++OEHbdu2TSEhId7l+fn5Ou+887RkyRL98ssvGjlypMaOHat9+/aV6f/Pf/7TG7xuvvlm3XTTTdq+fbt3G2PGjFH37t21fv16PfDAA7rtttuqrcnj8ejKK6/U7bffrh49epRbv2rVKsXExKhfv37eZWeffbbMZrPWrFlT6XbDw8MlSSUlJdXWUFMENAAAAKCB7dy5U4ZhqEuXLmWWt2jRQjabTTabTXfeead3+fTp0zVixAh16NBBZ555ph5++GG999573vX79u3T4MGD1atXL51wwgkaM2aMhg0bVq+PYe7cubLZbAoNDdWwYcPk8Xj0t7/9zbv+5JNP1g033KCePXvqxBNP1D/+8Q916tRJ//d//1dmO+edd55uvvlmde7cWXfeeadatGihpUuXSpIWLlwoj8ejefPmqUePHhozZoxuv/32amt74oknFBwcXKaeY6WmpioxMbHMsuDgYMXFxSk1NbXCPocPH9bTTz+t1q1blztudYmABgAAAASIn376SRs2bFCPHj1UXFzsXf7tt9/qrLPOUuvWrRUZGakrr7xSmZmZ3mkE/va3v+nhhx/W4MGDdf/992vjxo1V7ufGG2/0BkGbzaZ9+/Zp1KhRZZZVZ8KECdqwYYNWrFihUaNG6e6779agQYO86/Pz83XbbbepW7duiomJkc1m02+//VbuDFrv3r29/zeZTEpKStKRI0ckHb0UsXfv3goLC/O2GThwYJV1rV+/Xs8995wWLFhQJwOWtGnTRhEREUpOTlZBQYE+/PDDMmcK6xoBDQAAAGhgnTt3lslk8l7KV+qEE05Q586dvZfSSUeHlR8zZox69+6tDz/8UOvXr9eLL74o6X+X2l177bXavXu3rrzySm3atEn9+vXTCy+8UOn+H3roIW3YsMH7Lzk5Wa+99lqZZdUpHXHytNNO03vvvac5c+aUucfstttu08cff6xHH31UP/zwgzZs2KBevXqVuzzwz/eHmUwmeTyeavdfmR9++EFHjhxRu3btFBwcrODgYP3xxx/6+9//rg4dOkhSmRBYyuVyKSsrS0lJSeW2t3HjRuXm5mrDhg3q379/jWvzBQENAAAAaGDx8fE655xzNGfOHBUUFFTZdv369fJ4PPrnP/+pAQMG6KSTTio3kIUktW3bVjfeeKM++ugj/f3vf9err75a6TYTExPVuXNn77/g4GC1bt26zDJ/2Gw23XLLLbrttttkGIYkacWKFbr66qt1wQUXqFevXkpKStLevXv92m63bt20ceNGFRUVeZetXr26yj5XXnmlNm7cWC6A3n777fr6668lHT0Ll5OTo/Xr13v7fffdd/J4POUCWMeOHdWpUydFRkb6VXtNMcw+AAAAjlvpOVWHn8bcz9y5czV48GD169dPDzzwgHr37i2z2ay1a9dq27Zt6tu3r6SjZ9ucTqdeeOEFjR07VitWrNBLL71UZlvTp0/XqFGjdNJJJyk7O1tLly5Vt27d6uSx+eqGG27QP/7xD3344Ye66KKLdOKJJ+qjjz7S2LFjZTKZdO+99/p9Zuzyyy/X3Xffreuuu04zZ87U3r179fTTT1fZJz4+XvHx8WWWWSwWJSUlee8d69atm0aOHKnrrrtOL730kpxOp6ZOnapLL720wiH5GxIBDQAAAMcdq9UqS2QLfbQpQ/7OT1ZTlsgWfk0s3alTJ/3yyy969NFHNXPmTB04cEChoaHq3r27brvtNt18882Sjg628cwzz+iJJ57QzJkzNWzYMD322GO66qqrvNtyu92aMmWKDhw4oKioKI0cOVKzZ8+u88dYlbi4OF111VV64IEHNH78eD3zzDO65pprNGjQILVo0UJ33nmncnNz/dqmzWbTZ599phtvvFGnnHKKunfvrieeeEIXXnhhret9++23NXXqVJ111lneiaqff/75Wm+3tkxG6TlI1Knc3FxFR0fLbrcrKqqhJkcEAACN6fDhw3r58Vm6YWiSX5MjH87M1cs/pOqGux5Vq1at6rHC409RUZH27Nmjjh07lhlIQpLsdrt3EI2GYLVaFR0d3WD7Q2Cp6rXoTzbgDBoAAACOS9HR0QQmNDkMEgIAAAAAASKgAtpjjz2m0047TZGRkUpMTNS4cePKDT1aVFSkKVOmKD4+XjabTRdeeKHS0tLKtNm3b59Gjx4tq9WqxMRE3X777XK5XGXaLFu2TKeeeqpCQ0PVuXNnLViwoFw9L774ojp06KCwsDD1799fP/30U50/ZgAAAAAoFVAB7fvvv9eUKVO0evVqLV68WE6nU+eee26ZoUdvvfVWffbZZ3r//ff1/fff69ChQxo/frx3vdvt1ujRo1VSUqKVK1fqjTfe0IIFC3Tfffd52+zZs0ejR4/WiBEjtGHDBk2fPl3XXnutd9hNSXr33Xc1Y8YM3X///fr555918sknKyUlpdx8CQAAAABQVwJ6kJD09HQlJibq+++/17Bhw2S325WQkKCFCxfqoosukiRt27ZN3bp106pVqzRgwAB9+eWXGjNmjA4dOqSWLVtKkl566SXdeeedSk9PV0hIiO68804tWrRImzdv9u7r0ksvVU5Ojr766itJUv/+/XXaaadpzpw5kiSPx6O2bdtq2rRpuuuuu6qtnUFCAABofhgkpOGVDszQoUOHMpM7Aw2tsLBQe/fuPb4HCbHb7ZKODtkpHZ2kz+l06uyzz/a26dq1q9q1a+cNaKtWrVKvXr284UySUlJSdNNNN2nLli065ZRTtGrVqjLbKG0zffp0SUdnZF+/fr1mzpzpXW82m3X22Wdr1apVFdZaXFys4uJi78+lQ4h6PJ5azYQOAACaDsMwJJNJhiSPH1+BG9LRfobB5wY/BQUFyTAMFRQUlPtQDDSkgoICGYahoKCgcu9jf97XARvQPB6Ppk+frsGDB6tnz56SpNTUVIWEhCgmJqZM25YtWyo1NdXb5thwVrq+dF1VbXJzc1VYWKjs7Gy53e4K22zbtq3Ceh977DE9+OCD5Zanp6eXmfkcAAAcv3JychQV11I5phiZXb7Ph5VjMisq7mh/szmg7kBpEiwWi1JTU+XxeBQWFiaTydTYJaEZMQxDRUVFOnLkiEJDQ5WZmVmuTV6e73PxBWxAmzJlijZv3qwff/yxsUvxycyZMzVjxgzvz7m5uWrbtq0SEhK4xBEAgGbC4/EoNytNMYaUGOz7N+YeI/dov5gYJSYm1mOFx6eEhASlpaUpIyOjsUtBMxYXF6eWLVtW+AWBP2d3AzKgTZ06VZ9//rmWL1+uNm3aeJcnJSWppKREOTk5Zc6ipaWlKSkpydvmz6Mtlo7yeGybP4/8mJaWpqioKIWHhysoKEhBQUEVtindxp+FhoYqNDS03HKz2cw3YQAANBMmk0kyDJkkmf04iWOSjvYzmfjcUEPJyclq2bKlnE5nY5eCZshisSgoKKjS9f68rwMqoBmGoWnTpunjjz/WsmXL1LFjxzLr+/btK4vFoiVLlujCCy+UJG3fvl379u3TwIEDJUkDBw7UI488oiNHjni/gVq8eLGioqLUvXt3b5svvviizLYXL17s3UZISIj69u2rJUuWaNy4cZKOfiO2ZMkSTZ06td4ePwAAAGqu9Et2oCkLqIA2ZcoULVy4UJ9++qkiIyO994xFR0crPDxc0dHRmjx5smbMmKG4uDhFRUVp2rRpGjhwoAYMGCBJOvfcc9W9e3ddeeWVevLJJ5Wamqp77rlHU6ZM8Z7huvHGGzVnzhzdcccduuaaa/Tdd9/pvffe06JFi7y1zJgxQxMnTlS/fv10+umn69lnn1VBQYEmTZrU8E8MAAAAgGYhoALav/71L0nSGWecUWb5/PnzdfXVV0uSZs+eLbPZrAsvvFDFxcVKSUnR3LlzvW2DgoL0+eef66abbtLAgQMVERGhiRMn6qGHHvK26dixoxYtWqRbb71Vzz33nNq0aaPXXntNKSkp3jaXXHKJ0tPTdd999yk1NVV9+vTRV199VW7gEAAAAACoKwE9D1pTxjxoAAA0P8yDBqAi/mQD7kIFAAAAgABBQAMAAACAABFQ96ABAICmx263y+Fw+N3ParUqOjq6HioCgKaLgAYAACTVLGjl5uZq7msLlF/s9nt/8ZFW3X3HrYQ0ADgGAQ0AAMhut+uRJ2crM8+/gOYoyNdvv+/U8L9er7iEJJ/75duzlLnlRzkcDgIaAByDgAYAAORwOJSZ51BcjyGyRcf53C91304Vb9mmUGukouIT/dpnlr9FAkAzQEADAABetug4v4JWXnZGPVYDAM0PozgCAAAAQIAgoAEAAABAgCCgAQAAAECAIKABAAAAQIAgoAEAAABAgCCgAQAAAECAIKABAAAAQIAgoAEAAABAgGCiagAA0KTY7XY5HA6/+1mtVkVHR9dDRQBQdwhoAACgybDb7XrkydnKzPM/oMVHWnX3HbcS0gAENAIaAABoMhwOhzLzHIrrMUS26Dif++Xbs5S55Uc5HA4CGoCARkADAABNji06TlHxiX71yaqnWgCgLjFICAAAAAAECAIaAAAAAAQILnEEAOA4U5NRDtPS0uR0ltRTRQAAXxHQAAA4jtR0lENHQb5++32n2gwsrqfKAAC+IKABAHAcqekoh6n7dqp4yza5nK56rA4AUB0CGgAAxyF/RznMy86ox2oAAL5ikBAAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQwY1dAAAAxzu73S6Hw+F3P6vVqujo6HqoCAAQqAhoAADUI7vdrkeenK3MPP8DWnykVXffcSshDQCaEQIaAAD1yOFwKDPPobgeQ2SLjvO5X749S5lbfpTD4SCgAUAzQkADAKAB2KLjFBWf6FefrHqqBQAQuBgkBAAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0AAAAAAkRwYxcAAEBTYbfb5XA4/OqTlpYmp7OknioCABxvCGgAAPjAbrfrkSdnKzPPv4DmKMjXb7/vVJuBxfVUGQDgeEJAAwDABw6HQ5l5DsX1GCJbdJzP/VL37VTxlm1yOV31WB3qQ03PmJY4nfVUEYDmgIAGAIAfbNFxiopP9Ll9XnZGPVaD+mK32zXnqYflzPPv+OUVOLT7960qGuL7awQAjkVAAwAA+BOHwyFnXobG94pUQkyEz/227j2iF7YUc8YUQI0R0AAAACqREBOhVvFRPrdPy86vx2oANAcMsw8AAAAAAYKABgAAAAABgoAGAAAAAAGCgAYAAAAAAYKABgAAAAABgoAGAAAAAAGCgAYAAAAAAYKABgAAAAABgoAGAAAAAAGCgAYAAAAAAYKABgAAAAABIqAC2vLlyzV27FglJyfLZDLpk08+KbP+6quvlslkKvNv5MiRZdpkZWVpwoQJioqKUkxMjCZPnqz8/PwybTZu3KihQ4cqLCxMbdu21ZNPPlmulvfff19du3ZVWFiYevXqpS+++KLOHy8AAAAAHCugAlpBQYFOPvlkvfjii5W2GTlypA4fPuz995///KfM+gkTJmjLli1avHixPv/8cy1fvlzXX3+9d31ubq7OPfdctW/fXuvXr9dTTz2lBx54QK+88oq3zcqVK3XZZZdp8uTJ+uWXXzRu3DiNGzdOmzdvrvsHDQAAAAD/FdzYBRxr1KhRGjVqVJVtQkNDlZSUVOG63377TV999ZXWrl2rfv36SZJeeOEFnXfeeXr66aeVnJyst99+WyUlJXr99dcVEhKiHj16aMOGDXrmmWe8Qe65557TyJEjdfvtt0uS/vGPf2jx4sWaM2eOXnrppTp8xAAAAADwPwEV0HyxbNkyJSYmKjY2VmeeeaYefvhhxcfHS5JWrVqlmJgYbziTpLPPPltms1lr1qzRBRdcoFWrVmnYsGEKCQnxtklJSdETTzyh7OxsxcbGatWqVZoxY0aZ/aakpJS75PJYxcXFKi4u9v6cm5srSfJ4PPJ4PHXx0AEAjcgwDJlMkmRIhuFXX7PJVIN+R/dnGIZff0cavs6m8vj8259hGJLJJEOSx4/dGDLJZDLLkMnPfjq6Pz+fDwBNgz/v6yYV0EaOHKnx48erY8eO2rVrl2bNmqVRo0Zp1apVCgoKUmpqqhITE8v0CQ4OVlxcnFJTUyVJqamp6tixY5k2LVu29K6LjY1Vamqqd9mxbUq3UZHHHntMDz74YLnl6enpKioqqtHjBQAEjpycHCXGxyrK7JTVnV99h/+KC5W6dOqg2BCPX/1kdioxPlY5OTkym32/I6Gh62wqj8/f/eXk5CgqrqVyTDEyu6w+76YwJF5tOnVRfnC8jrhsPvfLMZkVFSe/nw8ATUNeXp7PbZtUQLv00ku9/+/Vq5d69+6tTp06admyZTrrrLMasTJp5syZZc665ebmqm3btkpISFBUVFQjVgYAqAsej0dHMrMV6rFIQb5/8M4qlrbv2qvOJWaF+dEv1+PQkcxsxcTElPvyMZDqbCqPz9/9eTwe5WalKcaQEoN9/+b7cEmmDuzaLpurgxKDLT738xi5R/fn5/MBoGkICwvzuW2TCmh/dsIJJ6hFixbauXOnzjrrLCUlJenIkSNl2rhcLmVlZXnvW0tKSlJaWlqZNqU/V9emsnvfpKP3xoWGhpZbbjab+SYMAI4DJpPpv1fUmfTfa+x85jGMGvQ7uj+TyeTX35GGr7OpPD7/9mc6ej2kTJLMfuzGJEOG4ZFJhp/9dHR/fj4fAJoGf97XTfo3wIEDB5SZmalWrVpJkgYOHKicnBytX7/e2+a7776Tx+NR//79vW2WL18up9PpbbN48WJ16dJFsbGx3jZLliwps6/Fixdr4MCB9f2QAAAAADRjARXQ8vPztWHDBm3YsEGStGfPHm3YsEH79u1Tfn6+br/9dq1evVp79+7VkiVLdP7556tz585KSUmRJHXr1k0jR47Uddddp59++kkrVqzQ1KlTdemllyo5OVmSdPnllyskJESTJ0/Wli1b9O677+q5554rc3niLbfcoq+++kr//Oc/tW3bNj3wwANat26dpk6d2uDPCQAAAIDmI6AucVy3bp1GjBjh/bk0NE2cOFH/+te/tHHjRr3xxhvKyclRcnKyzj33XP3jH/8oc2nh22+/ralTp+qss86S2WzWhRdeqOeff967Pjo6Wt98842mTJmivn37qkWLFrrvvvvKzJU2aNAgLVy4UPfcc49mzZqlE088UZ988ol69uzZAM8CAACoDyXFxeVuYahMWlqaHIWFyi8oUJEtRGGhvt8/AgC1EVAB7Ywzzjg6rG0lvv7662q3ERcXp4ULF1bZpnfv3vrhhx+qbHPxxRfr4osvrnZ/AAAg8BU58rVx00Y9+eI8hYeHV9veUZCvjK1b9aNlv9rE2TR08ABCGoAGEVABDQAAoD44i4tU4jEptvtgJbZqU237vOwMFab/obD4CDmKM+R0OgloABoEAQ0AADQbEVGxior3bRh7S1iYQkLCpOJ6LgoAjhFQg4QAAAAAQHNGQAMAAACAAEFAAwAAAIAAwT1oAAAAVXC7XCrIL/CpbYHDIZfbJUeBQ0XFRQwsAsBvBDQAAIBKuFxOZR1J04q1PyvYYqm2/e60PGVm2/XTho06cng/w/MD8BsBDQAAoBIet0tuw6SwhHaKsEVV2z5S6bKEpSo0NkmOknyG5wfgNwIaAKBZsdvtcjgcfvdLS0uT01lSDxWhKQgJDVOoNaLadpawfJmCgmQJCZVK8hugMgDHGwIaAKDZsNvteuTJ2crM8z+gOQry9dvvO9VmIJNiAQDqDwENANBsOBwOZeY5FNdjiGzRcX71Td23U8VbtsnldNVTdQAAENAAAM2QLTpOUfGJfvXJy86op2oAAPgfAhoAAGhQhQV5ysvOkKMgX2lpaT73s1qt9VgVAAQGAhoAAGgwhQV5Wvvhv2TYD6sgfb8Wzs2SNTzcp76WyBa66Mpr67lCAGhcBDQAAOpJYUGe8u1ZcpUUKz8nU7kR1Y8CKEmWMN8CS1PkLCpUcHG2RnaPkDkvUkNOT5TNh+clPadAH23KUGFhYQNUCQCNh4AGAEA9KD1TVJK+R9a8Pdq35A2l22w+9XWFxqrriIvqucL/aYwgGWMLU7ARqqQ4myJtkT72yqvx/gCgqSCgAQBQD0rPFKV0j1BmhFWdesUpIjK62n45eYX6v63ZchYXNUCVtQ+SbU4ZUc8VAkDzQkADAKAeRUeEyhUerPgoq2zRvgUfqeEmOK51kCxhXjgAqEsENAAAEPBBEgCaC3NjFwAAAAAAOIqABgAAAAABgoAGAAAAAAGCe9AAAM1Gbm6uHAX5ysvO8Kvf8TwvGQAgsBDQAADNgt1u14KXnlXG1hUqTP9DlrAwn/s2leHk7Xa70tLS/AqhedkZcjudkkLrtzgAgE8IaACAZsHhcMhdkK0xXcPUplO8QsKtPvVrKsPJ2+12zXnqYdmP7FfG1q0+h9DCwkLlHtwld5duDVAlAKA6BDQAQLMSZbUoPjpCodYIP3oF/nDyDodDzrwMXdDTpm6WSEW18i2E7j2UqQ/2F8vjcTdAlQCA6hDQAAA4jrSItirOFqpoH0NoVm5BA1RVN4qKS5Senu73fYTcQwigKSGgAQCAgJdbUKRNmzbKUTBHGTv3+HUfYVO5hxAAJAIaAABoAgpLXLJ4ijWup02nRPl+CWdTuYcQAEoR0AAAQJMRHxmuPD8u4Twq8O8hBIBStZqo+vDhw3VVBwAAAAA0e7UKaG3bttW5556rf//73yooaDo3GQMAAABAIKpVQHvooYd06NAhTZw4US1bttQVV1yhr776Sh6Pp67qAwAAAIBmo1YBbdasWdq8ebPWr1+vG2+8UcuWLdN5552n5ORk3XrrrVq3bl1d1QkAAAAAx71aBbRSp5xyip5++mnt379fixcv1ujRozV//nz1799f3bt316OPPqp9+/bVxa4AAAAA4LhVJwGtlMlk0tChQ3XeeedpwIABMgxDO3bs0AMPPKATTjhBF198MQOLAAAAAEAl6iygLV26VNdee61atmypv/71r0pNTdXTTz+tAwcO6PDhw3r88ce1ZMkSXXnllXW1SwAAAAA4rtRqHrRff/1Vb7/9tv7zn//o0KFDSkpK0rXXXqurrrpKvXr1KtP2tttuU1hYmG677bZaFQwAAAAAx6taBbRTTjlF4eHhGjdunK666iqdc845MpsrPynXo0cPDRw4sDa7BAAAAIDjVq0C2uuvv66LLrpINpvNp/YjRozQiBEjarNLAACOe06nU/n2LDkK8pWWluZTn7S0NJU4nfVcGQCgvtUqoF199dV1VAYAAJCkgsJiHd69Tc7Ct1ViT9fCuVmyhodX2y+vwKHdv29V8SmDGqBKAEB9qVVAe/7557Vo0SJ9/fXXFa4fNWqU/vKXv+imm26qzW4AAGg2ip0uhZlKNLZ7hEKLizTk9ETZIiKq7bd17xG9sKVYbqe7AaoEANSXWgW0efPm6cwzz6x0fffu3fXKK68Q0AAA8FN0RKisllAlxdkUaYustn1adn4DVAUAqG+1GmZ/165d6tatW6Xru3btql27dtVmFwAAAADQbNQqoIWEhCg1NbXS9YcPH65yVEcAAAAAwP/UKj0NGDBACxYsUF5eXrl1drtd8+fP14ABA2qzCwAAAABoNmp1D9r999+v4cOHq0+fPpo+fbp69OghSdq8ebOeffZZHT58WAsXLqyTQgEAAI5nRcUlPk+rcCyr1aro6Oh6qAhAY6hVQOvfv78+++wz3XDDDbrllltkMpkkSYZhqGPHjvq///s/JqYGAACoRm5BkTZt2ijP3Md9mlbhWJbIFpp6+z2ENOA4UauAJknnnHOOdu7cqV9++cU7IEinTp106qmnegMbAAAAKldY4pLFU6wLetrUITnB537pOQX6aFOGHA4HAQ04TtQ6oEmS2WxW37591bdv37rYHAAAQLPUItqqVvFRfvYqPxYAgKarTgLa1q1btXv3bmVnZ8swjHLrr7rqqrrYDQAAAAAc12oV0Hbt2qUrrrhCP/30U4XBTJJMJhMBDQAAAAB8UKuAdsMNN2jTpk169tlnNXToUMXGxtZVXQAAAADQ7NQqoK1YsUKzZs3StGnT6qoeAAAAAGi2ajVRdYsWLRgxCAAAAADqSK0C2o033qi33npLbre7ruoBAAAAgGarVpc4nnTSSXK73Tr55JN1zTXXqG3btgoKCirXbvz48bXZDQAAAAA0C7UKaJdccon3/7fddluFbUwmE2fYAAB1zm63y+Fw+Nw+LS1NRYWF8pj5mwQACFy1CmhLly6tqzoAAPCZ3W7XI0/OVmae7wHNUZCv1G2/q3V7lzq4XfVYHQAANVergDZ8+PC6qgMAAJ85HA5l5jkU12OIbNFxPvXJy85Q1t5NchmH5fF46rlCAABqplYBrVRxcbF+/vlnHTlyRIMHD1aLFi3qYrMAAFTJFh2nqPhEn9sHW0LqsRoAAGqvVqM4StLzzz+vVq1aaciQIRo/frw2btwoScrIyFCLFi30+uuv17pIAAAAAGgOanUGbf78+Zo+fbouvfRSnXvuubrmmmu861q0aKEzzzxT77zzTpnlAAAAqDtFxSVKS0vzu5/VamU+WyAA1Sqg/fOf/9T555+vhQsXKjMzs9z6vn376vnnn6/NLgAAAFCJ3IIibdq0UZ65j8saHu5XX0tkC029/R5CGhBgahXQdu7cqb/97W+Vro+Li6swuAEAAKD2CktcsniKdUFPmzokJ/jcLz2nQB9typDD4SCgAQGmVgEtJiZGGRkZla7funWrkpKSarMLAAAAVKNFtFWt4qP87JVXL7UAqJ1aDRJy3nnn6ZVXXlFOTk65dVu2bNGrr76qv/zlL7XZBQAAAAA0G7U6g/bwww+rf//+6tmzp8aOHSuTyaQ33nhDr7/+uj788EO1atVK9913X13VCgCAJCk3N1eOgnzlZVd+Fcef5WVnyM0E1QCAAFergJacnKz169dr1qxZevfdd2UYhv79738rMjJSl112mR5//HHmRAMA1Cm73a4FLz2rjK0rVJj+hyxhYT71KywslP3wXhm2oHquEACAmqv1RNWJiYl67bXX9Nprryk9PV0ej0cJCQkym2s9xRoAAOU4HA65C7I1pmuY2nSKV0i41ad+ew9l6t3dThmGqZ4rBACg5mod0I6VkOD76EEAANRGlNWi+OgIhVojfGqflVtQzxUBAFB7tQpoDz30ULVtTCaT7r333trsBgAAAACahVoFtAceeKDSdSaTSYZhENAAAAAAwEe1ulHM4/GU++dyubRr1y7deuut6tevn44cOVJXtQIAAADAca3OR/Iwm83q2LGjnn76aZ144omaNm1aXe8CAAAAAI5L9TrU4rBhw/TFF1/U5y4AAAAA4LhRrwFt3bp1DLcPAAAAAD6q1SAhb775ZoXLc3JytHz5cn300Ue69tpra7MLAAAAAGg2ahXQrr766krXtWjRQnfddZfuu+++2uwCAAAAAJqNWgW0PXv2lFtmMpkUGxuryMjI2mwaAAAAAJqdWgW09u3b11UdAAAA9cLpdKogN0eukmLl52QqNyKi2j552RlyO52SQuu/QAA4Rq0CGgAAQCArKCzW4d3bVGjPljVvj/YteUPpNlu1/QoLC5V7cJfcXbo1QJUA8D+1Cmhms1kmk8mvPiaTSS6Xqza7BQAA8Emx06UwU4nGdAtXbqxVnXrFKSIyutp+ew9l6oP9xfJ43A1QJQD8T60C2n333adPPvlEW7ZsUUpKirp06SJJ2rZtm7755hv17NlT48aNq4s6AQAAaiw6IlSm8GDFR1lli67+DFpWbkEDVAUA5dUqoCUnJ+vIkSPavHmzN5yV+u2333TmmWcqOTlZ1113Xa2KBAAAAIDmoFazSD/11FOaOnVquXAmSd26ddPUqVP15JNP1mYXAAAAANBs1CqgHThwQBaLpdL1FotFBw4cqM0uAAAAAKDZqFVA69mzp+bOnauDBw+WW3fgwAHNnTtXvXr1qs0uAAAAAKDZqNU9aLNnz1ZKSopOOukkXXDBBercubMkaceOHfrkk09kGIbeeuutOikUAAAAAI53tQpoQ4YM0Zo1a3Tvvffq448/VmFhoSQpPDxcKSkpevDBBzmDBgAAAAA+qvVE1T179tTHH38sj8ej9PR0SVJCQoLM5lpdPQkAAAAAzU6tA1ops9mssLAw2Ww2whkAAAAA1ECtk9S6des0cuRIWa1WxcfH6/vvv5ckZWRk6Pzzz9eyZct83tby5cs1duxYJScny2Qy6ZNPPimz3jAM3XfffWrVqpXCw8N19tlna8eOHWXaZGVlacKECYqKilJMTIwmT56s/Pz8Mm02btyooUOHKiwsTG3btq1wKoD3339fXbt2VVhYmHr16qUvvvjC58cBAAAAADVRq4C2cuVKDRkyRDt27NAVV1whj8fjXdeiRQvZ7Xa9/PLLPm+voKBAJ598sl588cUK1z/55JN6/vnn9dJLL2nNmjWKiIhQSkqKioqKvG0mTJigLVu2aPHixfr888+1fPlyXX/99d71ubm5Ovfcc9W+fXutX79eTz31lB544AG98sorZR7XZZddpsmTJ+uXX37RuHHjNG7cOG3evNmfpwcAAAAA/FKrSxxnzZqlbt26afXq1crLy9Nrr71WZv2IESP0xhtv+Ly9UaNGadSoURWuMwxDzz77rO655x6df/75kqQ333xTLVu21CeffKJLL71Uv/32m7766iutXbtW/fr1kyS98MILOu+88/T0008rOTlZb7/9tkpKSvT6668rJCREPXr00IYNG/TMM894g9xzzz2nkSNH6vbbb5ck/eMf/9DixYs1Z84cvfTSS34/TwAAAADgi1oFtLVr1+qxxx5TaGhoucsIJal169ZKTU2tzS689uzZo9TUVJ199tneZdHR0erfv79WrVqlSy+9VKtWrVJMTIw3nEnS2WefLbPZrDVr1uiCCy7QqlWrNGzYMIWEhHjbpKSk6IknnlB2drZiY2O1atUqzZgxo8z+U1JSyl1yeazi4mIVFxd7f87NzZUkeTyeMmcWAQC1YxiGZDJJJpMMmWT43NMkk9ksmcx+9TNkkslkkkmS2WSSZEiGL70NmUwmSSY/9/nfOnW0r8eQPD50PFrn0f1I/jw3x+zPjzrr5HkJ4MdXJ/1q+Ph8aV/7fjr6HjIMPqcADcCf91mtAprFYqlyZwcPHpTNZqvNLrxKg17Lli3LLG/ZsqV3XWpqqhITE8usDw4OVlxcXJk2HTt2LLeN0nWxsbFKTU2tcj8Veeyxx/Tggw+WW56enl7mEkwAQO3k5OQoNqGVLMEWucJbyBQS5lO/4GizTjiphyKTg+W2JqokxMe/T1arkpNDFGWzqEunDooN8cjqLv+lZDlmp5KTWyso2qSwJKfP+wyONqtj524Kik6WXJHKUowKXeHV9isMiVebTl1UGJYoxXp8fm5K9xcc21ZhRpDvz00tnxdTZJgUHBywj6+2/Wp6/PKD43XE5ftnp5r2yzGZFRV39P3E4G5A/cvLy/O5ba0C2oABA/TBBx9o+vTp5dYVFBRo/vz5Gj58eG120WTMnDmzzFm33NxctW3bVgkJCYqKimrEygDg+OLxeJSdflhJlv0KjrcpxGT1qZ/LfkS7f9+izp4QBXVspRBLiW87dBTo0KF0Fbc8Wdt37VXnErPCgqr/IJzrcejQoYNy28wqSt2uoFbxPu3TZT+iPTt/k7tLhFSSqTi1VGSwu9p+h0sydWDXdoUPTJSy9yo4ItSn56Z0f64OQSpK3elznbV9Xoz4CCnvQMA+vtr2q+nxs7k6KDHYUm372vbzGLnKzUpTTExMuS+3AdS9sDDfvkyUahnQHnzwQQ0fPlyjR4/WZZddJkn69ddftXv3bj399NNKT0/XvffeW5tdeCUlJUmS0tLS1KpVK+/ytLQ09enTx9vmyJEjZfq5XC5lZWV5+yclJSktLa1Mm9Kfq2tTur4ioaGhCg0NLbfcbDbzzRQA1CGTyXT0UjrD+O+Fbr4yZHg8kuHxq59JhgzDkCHJYxg6esmbL72PXj529NI/f/b53zp1tK/ZJJl96Hi0Ts9/L8Tz57k5Zn9+1Fknz0sAP7466VfDx+dL+9r309H3kMnE5xSgAfjzPqvVO7J///764osvtHPnTl111VWSpL///e+6/vrr5Xa79cUXX6h379612YVXx44dlZSUpCVLlniX5ebmas2aNRo4cKAkaeDAgcrJydH69eu9bb777jt5PB7179/f22b58uVyOp3eNosXL1aXLl0UGxvrbXPsfkrblO4HAAAAAOpDjc+gGYahvLw8DRo0SNu3b9eGDRu0Y8cOeTwederUSX379v3vTcC+y8/P186dO70/79mzRxs2bFBcXJzatWun6dOn6+GHH9aJJ56ojh076t5771VycrLGjRsnSerWrZtGjhyp6667Ti+99JKcTqemTp2qSy+9VMnJyZKkyy+/XA8++KAmT56sO++8U5s3b9Zzzz2n2bNne/d7yy23aPjw4frnP/+p0aNH65133tG6devKDMUPAAAAAHWtxgGtpKREcXFxevTRR3XHHXeoT58+3ksNa2rdunUaMWKE9+fSe7omTpyoBQsW6I477lBBQYGuv/565eTkaMiQIfrqq6/KXNP59ttva+rUqTrrrLNkNpt14YUX6vnnn/euj46O1jfffKMpU6aob9++atGihe67774y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wsJ87ptT6JbbxRD7AADUFgENACDp6Bxo7oJsjekapjad4hUSbvWpX05eod5ZfUCGx13PFQIAcPwjoAEAyoiyWhQfHaFQa0RjlwKgHhUVlygtLc3vflarVdHR0fVQEQCJgAYAANDs5BYUadOmjfLMfVzW8HC/+loiW2jq7fcQ0oB6QkADAABoZgpLXLJ4inVBT5s6JCf43C89p0AfbcqQw+EgoAH1hIAGAADQTLWItqpVfJSfvfLqpRYARzEPGgAAAAAECAIaAAAAAAQIAhoAAAAABAgCGgAAAAAECAIaAAAAAAQIAhoAAAAABAgCGgAAAAAECAIaAAAAAAQIAhoAAAAABAgCGgAAAAAECAIaAAAAAAQIAhoAAAAABAgCGgAAAAAEiCYV0B544AGZTKYy/7p27epdX1RUpClTpig+Pl42m00XXnih0tLSymxj3759Gj16tKxWqxITE3X77bfL5XKVabNs2TKdeuqpCg0NVefOnbVgwYKGeHgAAAABr6i4RGlpaTp8+LBf/+x2e2OXDjQJwY1dgL969Oihb7/91vtzcPD/HsKtt96qRYsW6f3331d0dLSmTp2q8ePHa8WKFZIkt9ut0aNHKykpSStXrtThw4d11VVXyWKx6NFHH5Uk7dmzR6NHj9aNN96ot99+W0uWLNG1116rVq1aKSUlpWEfLAAAQADJLSjSpk0b5Zn7uKzh4X71tUS20NTb71F0dHQ9VQccH5pcQAsODlZSUlK55Xa7XfPmzdPChQt15plnSpLmz5+vbt26afXq1RowYIC++eYbbd26Vd9++61atmypPn366B//+IfuvPNOPfDAAwoJCdFLL72kjh076p///KckqVu3bvrxxx81e/ZsAhoA1AOPy62C/AKf2xc4HHK73PJ43PVYFYCKFJa4ZPEU64KeNnVITvC5X3pOgT7alCGHw0FAA6rR5ALajh07lJycrLCwMA0cOFCPPfaY2rVrp/Xr18vpdOrss8/2tu3atavatWunVatWacCAAVq1apV69eqlli1betukpKTopptu0pYtW3TKKado1apVZbZR2mb69OlV1lVcXKzi4mLvz7m5uZIkj8cjj8dTB48cAOqXYRiSySSZTDJkkuFrPx295NxsMkkyJMP3nh6PS+mZmVqx9hcFWyw+9dp9JE85efnKzLbI5XYrxMe9SSaZzGbJZPbr8Xn7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H+/32SA0rNzcXLVt21b79+/3eUhcHB849s0bx7/54tg3bxz/5qsxj71hGMrLy1NycnK1bQlolWjRooWCgoKUlpZWZnlaWpqSkpLKtQ8NDVVoaNnrhWNiYuqzRNSxqKgoflE3Uxz75o3j33xx7Js3jn/z1VjH3td78fy/uaiZCAkJUd++fbVkyRLvMo/HoyVLlpS55BEAAAAA6gpn0KowY8YMTZw4Uf369dPpp5+uZ599VgUFBd5RHQEAAACgLhHQqnDJJZcoPT1d9913n1JTU9WnTx999dVXfk8kiMAWGhqq+++/v9wlqjj+ceybN45/88Wxb944/s1XUzn2jOIIAAAAAAGCe9AAAAAAIEAQ0AAAAAAgQBDQAAAAACBAENAAAAAAIEAQ0NBs7d27V5MnT1bHjh0VHh6uTp066f7771dJSYm3zbJly3T++eerVatWioiIUJ8+ffT22283YtWoC74ce0nauHGjhg4dqrCwMLVt21ZPPvlkI1WMuvbII49o0KBBslqtiomJqbDN2rVrddZZZykmJkaxsbFKSUnRr7/+2rCFos75cuwlacGCBerdu7fCwsKUmJioKVOmNFyRqBe+HntJyszMVJs2bWQymZSTk9Mg9aF+VXf8f/31V1122WVq27atwsPD1a1bNz333HMNX6gIaGjGtm3bJo/Ho5dffllbtmzR7Nmz9dJLL2nWrFneNitXrlTv3r314YcfauPGjZo0aZKuuuoqff75541YOWrLl2Ofm5urc889V+3bt9f69ev11FNP6YEHHtArr7zSiJWjrpSUlOjiiy/WTTfdVOH6/Px8jRw5Uu3atdOaNWv0448/KjIyUikpKXI6nQ1cLepSdcdekp555hndfffduuuuu7RlyxZ9++23SklJacAqUR98OfalJk+erN69ezdAVWgo1R3/9evXKzExUW+99Za2bNmiu+++WzNnztScOXMauFJJBgCvJ5980ujYsWOVbc477zxj0qRJDVQRGsqfj/3cuXON2NhYo7i42LvszjvvNLp06dIY5aGezJ8/34iOji63fO3atYYkY9++fd5lGzduNCQZO3bsaMAKUV8qO/ZZWVlGeHi48e233zZ8UWgQlR37UnPnzjWGDx9uLFmyxJBkZGdnN1htqH/VHf9j3XzzzcaIESPqt6AKcAYNOIbdbldcXFyt26Dp+fNxXbVqlYYN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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random\n", "import matplotlib.pyplot as plt\n", "\n", " \n", " \n", " \n", "plt.figure(figsize=(10, 6))\n", "plt.hist(sampled_data_rand40P, bins=50, edgecolor='black', alpha=0.5, label=\"Rand 40P\")\n", "plt.hist(sampled_data_gas40P_list, bins=50, edgecolor='black', alpha=0.5, label=\"Gas + Rand 40P\")\n", "plt.title(\"Histogram of Rand 40P and GasRand 40P\", fontsize=16)\n", "plt.xlabel(\"Value Ranges\", fontsize=12)\n", "plt.ylabel(\"Frequency\", fontsize=12)\n", "\n", "plt.legend()\n", "plt.grid(axis='y', alpha=0.3)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "unhashable type: 'dict'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/20P_40P_60P_Select.ipynb Cell 32\u001b[0m line \u001b[0;36m7\n\u001b[1;32m 5\u001b[0m plt\u001b[39m.\u001b[39mfigure(figsize\u001b[39m=\u001b[39m(\u001b[39m10\u001b[39m, \u001b[39m6\u001b[39m))\n\u001b[1;32m 6\u001b[0m plt\u001b[39m.\u001b[39mhist(sampled_data_rand40P, bins\u001b[39m=\u001b[39m\u001b[39m50\u001b[39m, edgecolor\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mblack\u001b[39m\u001b[39m'\u001b[39m, alpha\u001b[39m=\u001b[39m\u001b[39m0.5\u001b[39m, label\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mRand 40P\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m----> 7\u001b[0m plt\u001b[39m.\u001b[39;49mhist(sampled_data_gas20P, bins\u001b[39m=\u001b[39;49m\u001b[39m50\u001b[39;49m, edgecolor\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39mblack\u001b[39;49m\u001b[39m'\u001b[39;49m, alpha\u001b[39m=\u001b[39;49m\u001b[39m0.5\u001b[39;49m, label\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mGasLogits 40P\u001b[39;49m\u001b[39m\"\u001b[39;49m)\n\u001b[1;32m 8\u001b[0m plt\u001b[39m.\u001b[39mtitle(\u001b[39m\"\u001b[39m\u001b[39mHistogram of Rand 40P and GasLogits 40P\u001b[39m\u001b[39m\"\u001b[39m, fontsize\u001b[39m=\u001b[39m\u001b[39m16\u001b[39m)\n\u001b[1;32m 9\u001b[0m plt\u001b[39m.\u001b[39mxlabel(\u001b[39m\"\u001b[39m\u001b[39mValue Ranges\u001b[39m\u001b[39m\"\u001b[39m, fontsize\u001b[39m=\u001b[39m\u001b[39m12\u001b[39m)\n", "File \u001b[0;32m/opt/conda/envs/llava/lib/python3.10/site-packages/matplotlib/_api/deprecation.py:453\u001b[0m, in \u001b[0;36mmake_keyword_only..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 447\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(args) \u001b[39m>\u001b[39m name_idx:\n\u001b[1;32m 448\u001b[0m warn_deprecated(\n\u001b[1;32m 449\u001b[0m since, message\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mPassing the \u001b[39m\u001b[39m%(name)s\u001b[39;00m\u001b[39m \u001b[39m\u001b[39m%(obj_type)s\u001b[39;00m\u001b[39m \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 450\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mpositionally is deprecated since Matplotlib \u001b[39m\u001b[39m%(since)s\u001b[39;00m\u001b[39m; the \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 451\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mparameter will become keyword-only in \u001b[39m\u001b[39m%(removal)s\u001b[39;00m\u001b[39m.\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 452\u001b[0m name\u001b[39m=\u001b[39mname, obj_type\u001b[39m=\u001b[39m\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mparameter of \u001b[39m\u001b[39m{\u001b[39;00mfunc\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\u001b[39m}\u001b[39;00m\u001b[39m()\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m--> 453\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", "File \u001b[0;32m/opt/conda/envs/llava/lib/python3.10/site-packages/matplotlib/pyplot.py:3469\u001b[0m, in \u001b[0;36mhist\u001b[0;34m(x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, data, **kwargs)\u001b[0m\n\u001b[1;32m 3444\u001b[0m \u001b[39m@_copy_docstring_and_deprecators\u001b[39m(Axes\u001b[39m.\u001b[39mhist)\n\u001b[1;32m 3445\u001b[0m \u001b[39mdef\u001b[39;00m\u001b[39m \u001b[39m\u001b[39mhist\u001b[39m(\n\u001b[1;32m 3446\u001b[0m x: ArrayLike \u001b[39m|\u001b[39m Sequence[ArrayLike],\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3467\u001b[0m BarContainer \u001b[39m|\u001b[39m Polygon \u001b[39m|\u001b[39m \u001b[39mlist\u001b[39m[BarContainer \u001b[39m|\u001b[39m Polygon],\n\u001b[1;32m 3468\u001b[0m ]:\n\u001b[0;32m-> 3469\u001b[0m \u001b[39mreturn\u001b[39;00m gca()\u001b[39m.\u001b[39;49mhist(\n\u001b[1;32m 3470\u001b[0m x,\n\u001b[1;32m 3471\u001b[0m bins\u001b[39m=\u001b[39;49mbins,\n\u001b[1;32m 3472\u001b[0m \u001b[39mrange\u001b[39;49m\u001b[39m=\u001b[39;49m\u001b[39mrange\u001b[39;49m,\n\u001b[1;32m 3473\u001b[0m density\u001b[39m=\u001b[39;49mdensity,\n\u001b[1;32m 3474\u001b[0m weights\u001b[39m=\u001b[39;49mweights,\n\u001b[1;32m 3475\u001b[0m cumulative\u001b[39m=\u001b[39;49mcumulative,\n\u001b[1;32m 3476\u001b[0m bottom\u001b[39m=\u001b[39;49mbottom,\n\u001b[1;32m 3477\u001b[0m histtype\u001b[39m=\u001b[39;49mhisttype,\n\u001b[1;32m 3478\u001b[0m align\u001b[39m=\u001b[39;49malign,\n\u001b[1;32m 3479\u001b[0m orientation\u001b[39m=\u001b[39;49morientation,\n\u001b[1;32m 3480\u001b[0m rwidth\u001b[39m=\u001b[39;49mrwidth,\n\u001b[1;32m 3481\u001b[0m log\u001b[39m=\u001b[39;49mlog,\n\u001b[1;32m 3482\u001b[0m color\u001b[39m=\u001b[39;49mcolor,\n\u001b[1;32m 3483\u001b[0m label\u001b[39m=\u001b[39;49mlabel,\n\u001b[1;32m 3484\u001b[0m stacked\u001b[39m=\u001b[39;49mstacked,\n\u001b[1;32m 3485\u001b[0m \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49m({\u001b[39m\"\u001b[39;49m\u001b[39mdata\u001b[39;49m\u001b[39m\"\u001b[39;49m: data} \u001b[39mif\u001b[39;49;00m data \u001b[39mis\u001b[39;49;00m \u001b[39mnot\u001b[39;49;00m \u001b[39mNone\u001b[39;49;00m \u001b[39melse\u001b[39;49;00m {}),\n\u001b[1;32m 3486\u001b[0m \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs,\n\u001b[1;32m 3487\u001b[0m )\n", "File \u001b[0;32m/opt/conda/envs/llava/lib/python3.10/site-packages/matplotlib/_api/deprecation.py:453\u001b[0m, in \u001b[0;36mmake_keyword_only..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 447\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(args) \u001b[39m>\u001b[39m name_idx:\n\u001b[1;32m 448\u001b[0m warn_deprecated(\n\u001b[1;32m 449\u001b[0m since, message\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mPassing the \u001b[39m\u001b[39m%(name)s\u001b[39;00m\u001b[39m \u001b[39m\u001b[39m%(obj_type)s\u001b[39;00m\u001b[39m \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 450\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mpositionally is deprecated since Matplotlib \u001b[39m\u001b[39m%(since)s\u001b[39;00m\u001b[39m; the \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 451\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mparameter will become keyword-only in \u001b[39m\u001b[39m%(removal)s\u001b[39;00m\u001b[39m.\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 452\u001b[0m name\u001b[39m=\u001b[39mname, obj_type\u001b[39m=\u001b[39m\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mparameter of \u001b[39m\u001b[39m{\u001b[39;00mfunc\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\u001b[39m}\u001b[39;00m\u001b[39m()\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m--> 453\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", "File \u001b[0;32m/opt/conda/envs/llava/lib/python3.10/site-packages/matplotlib/__init__.py:1521\u001b[0m, in \u001b[0;36m_preprocess_data..inner\u001b[0;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1518\u001b[0m \u001b[39m@functools\u001b[39m\u001b[39m.\u001b[39mwraps(func)\n\u001b[1;32m 1519\u001b[0m \u001b[39mdef\u001b[39;00m\u001b[39m \u001b[39m\u001b[39minner\u001b[39m(ax, \u001b[39m*\u001b[39margs, data\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[1;32m 1520\u001b[0m \u001b[39mif\u001b[39;00m data \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m-> 1521\u001b[0m \u001b[39mreturn\u001b[39;00m func(\n\u001b[1;32m 1522\u001b[0m ax,\n\u001b[1;32m 1523\u001b[0m \u001b[39m*\u001b[39;49m\u001b[39mmap\u001b[39;49m(cbook\u001b[39m.\u001b[39;49msanitize_sequence, args),\n\u001b[1;32m 1524\u001b[0m \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49m{k: cbook\u001b[39m.\u001b[39;49msanitize_sequence(v) \u001b[39mfor\u001b[39;49;00m k, v \u001b[39min\u001b[39;49;00m kwargs\u001b[39m.\u001b[39;49mitems()})\n\u001b[1;32m 1526\u001b[0m bound \u001b[39m=\u001b[39m new_sig\u001b[39m.\u001b[39mbind(ax, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[1;32m 1527\u001b[0m auto_label \u001b[39m=\u001b[39m (bound\u001b[39m.\u001b[39marguments\u001b[39m.\u001b[39mget(label_namer)\n\u001b[1;32m 1528\u001b[0m \u001b[39mor\u001b[39;00m bound\u001b[39m.\u001b[39mkwargs\u001b[39m.\u001b[39mget(label_namer))\n", "File \u001b[0;32m/opt/conda/envs/llava/lib/python3.10/site-packages/matplotlib/axes/_axes.py:7014\u001b[0m, in \u001b[0;36mAxes.hist\u001b[0;34m(self, x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, **kwargs)\u001b[0m\n\u001b[1;32m 7012\u001b[0m \u001b[39mif\u001b[39;00m orientation \u001b[39m==\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mvertical\u001b[39m\u001b[39m\"\u001b[39m:\n\u001b[1;32m 7013\u001b[0m convert_units \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconvert_xunits\n\u001b[0;32m-> 7014\u001b[0m x \u001b[39m=\u001b[39m [\u001b[39m*\u001b[39m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_process_unit_info([(\u001b[39m\"\u001b[39;49m\u001b[39mx\u001b[39;49m\u001b[39m\"\u001b[39;49m, x[\u001b[39m0\u001b[39;49m])], kwargs),\n\u001b[1;32m 7015\u001b[0m \u001b[39m*\u001b[39m\u001b[39mmap\u001b[39m(convert_units, x[\u001b[39m1\u001b[39m:])]\n\u001b[1;32m 7016\u001b[0m \u001b[39melse\u001b[39;00m: \u001b[39m# horizontal\u001b[39;00m\n\u001b[1;32m 7017\u001b[0m convert_units \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconvert_yunits\n", "File \u001b[0;32m/opt/conda/envs/llava/lib/python3.10/site-packages/matplotlib/axes/_base.py:2617\u001b[0m, in \u001b[0;36m_AxesBase._process_unit_info\u001b[0;34m(self, datasets, kwargs, convert)\u001b[0m\n\u001b[1;32m 2615\u001b[0m \u001b[39m# Update from data if axis is already set but no unit is set yet.\u001b[39;00m\n\u001b[1;32m 2616\u001b[0m \u001b[39mif\u001b[39;00m axis \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39mand\u001b[39;00m data \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39mand\u001b[39;00m \u001b[39mnot\u001b[39;00m axis\u001b[39m.\u001b[39mhave_units():\n\u001b[0;32m-> 2617\u001b[0m axis\u001b[39m.\u001b[39;49mupdate_units(data)\n\u001b[1;32m 2618\u001b[0m \u001b[39mfor\u001b[39;00m axis_name, axis \u001b[39min\u001b[39;00m axis_map\u001b[39m.\u001b[39mitems():\n\u001b[1;32m 2619\u001b[0m \u001b[39m# Return if no axis is set.\u001b[39;00m\n\u001b[1;32m 2620\u001b[0m \u001b[39mif\u001b[39;00m axis \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n", "File \u001b[0;32m/opt/conda/envs/llava/lib/python3.10/site-packages/matplotlib/axis.py:1765\u001b[0m, in \u001b[0;36mAxis.update_units\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 1763\u001b[0m neednew \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_converter \u001b[39m!=\u001b[39m converter\n\u001b[1;32m 1764\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_set_converter(converter)\n\u001b[0;32m-> 1765\u001b[0m default \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_converter\u001b[39m.\u001b[39;49mdefault_units(data, \u001b[39mself\u001b[39;49m)\n\u001b[1;32m 1766\u001b[0m \u001b[39mif\u001b[39;00m default \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39mand\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39munits \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 1767\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mset_units(default)\n", "File \u001b[0;32m/opt/conda/envs/llava/lib/python3.10/site-packages/matplotlib/category.py:106\u001b[0m, in \u001b[0;36mStrCategoryConverter.default_units\u001b[0;34m(data, axis)\u001b[0m\n\u001b[1;32m 104\u001b[0m \u001b[39m# the conversion call stack is default_units -> axis_info -> convert\u001b[39;00m\n\u001b[1;32m 105\u001b[0m \u001b[39mif\u001b[39;00m axis\u001b[39m.\u001b[39munits \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m--> 106\u001b[0m axis\u001b[39m.\u001b[39mset_units(UnitData(data))\n\u001b[1;32m 107\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 108\u001b[0m axis\u001b[39m.\u001b[39munits\u001b[39m.\u001b[39mupdate(data)\n", "File \u001b[0;32m/opt/conda/envs/llava/lib/python3.10/site-packages/matplotlib/category.py:182\u001b[0m, in \u001b[0;36mUnitData.__init__\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 180\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_counter \u001b[39m=\u001b[39m itertools\u001b[39m.\u001b[39mcount()\n\u001b[1;32m 181\u001b[0m \u001b[39mif\u001b[39;00m data \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m--> 182\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mupdate(data)\n", "File \u001b[0;32m/opt/conda/envs/llava/lib/python3.10/site-packages/matplotlib/category.py:215\u001b[0m, in \u001b[0;36mUnitData.update\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 213\u001b[0m \u001b[39m# check if convertible to number:\u001b[39;00m\n\u001b[1;32m 214\u001b[0m convertible \u001b[39m=\u001b[39m \u001b[39mTrue\u001b[39;00m\n\u001b[0;32m--> 215\u001b[0m \u001b[39mfor\u001b[39;00m val \u001b[39min\u001b[39;00m OrderedDict\u001b[39m.\u001b[39;49mfromkeys(data):\n\u001b[1;32m 216\u001b[0m \u001b[39m# OrderedDict just iterates over unique values in data.\u001b[39;00m\n\u001b[1;32m 217\u001b[0m _api\u001b[39m.\u001b[39mcheck_isinstance((\u001b[39mstr\u001b[39m, \u001b[39mbytes\u001b[39m), value\u001b[39m=\u001b[39mval)\n\u001b[1;32m 218\u001b[0m \u001b[39mif\u001b[39;00m convertible:\n\u001b[1;32m 219\u001b[0m \u001b[39m# this will only be called so long as convertible is True.\u001b[39;00m\n", "\u001b[0;31mTypeError\u001b[0m: unhashable type: 'dict'" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1AAAAH5CAYAAACPl98+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAP2FJREFUeJzt3Xt0VOW9//FPuOQGyZAEcjuJkWLL/aJYMYIIigmYWjmldIkXUKOIJ1gl/gAjFAMchIYiomA5HlHaJdRbW7RgkRC5iAQVJAaiRGOxscqMJYGZJAOThMzvD0+mTrk9E2YSkrxfa81a2Xt/n72/O7sWPszezw5yu91uAQAAAADOq0NLNwAAAAAArQUBCgAAAAAMEaAAAAAAwBABCgAAAAAMEaAAAAAAwBABCgAAAAAMEaAAAAAAwFCnlm6gJTU0NOibb75RRESEgoKCWrodAAAAAC3E7XarqqpKiYmJ6tDh7N8ztesA9c033yg5Obml2wAAAABwkfjqq6+UlJR01u3tOkBFRERI+u6XFBkZ2cLdAAAAAGgpDodDycnJnoxwNu06QDXethcZGUmAAgAAAHDeR3uYRAIAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADPkUoBYvXqwf//jHioiIUGxsrMaPH6/S0lKvmpMnTyorK0sxMTHq2rWrJkyYIJvN5lVTXl6ujIwMhYeHKzY2VjNnzlR9fb1Xzfbt23XFFVcoJCREl112mdauXXtaP6tWrdKll16q0NBQDRs2TB988IEvpwMAAAAAPvEpQO3YsUNZWVnas2eP8vPzVVdXp7S0NNXU1HhqZsyYob/85S967bXXtGPHDn3zzTf62c9+5tl+6tQpZWRkqLa2Vrt379bvfvc7rV27VvPmzfPUHD58WBkZGRo9erSKior08MMP695779Xbb7/tqXnllVeUnZ2txx9/XB999JEGDx6s9PR0ffvttxfy+wAAAACAswpyu93upg7+5z//qdjYWO3YsUMjR46U3W5Xjx49tH79ev385z+XJB06dEh9+/ZVYWGhrr76av31r3/VT37yE33zzTeKi4uTJK1evVqzZ8/WP//5TwUHB2v27NnatGmTDh486DnWrbfequPHj2vz5s2SpGHDhunHP/6xVq5cKUlqaGhQcnKyHnzwQT366KNn7NflcsnlcnmWG1+WZbfbeQ8UAAAA0I45HA5ZLJbzZoMLegbKbrdLkqKjoyVJ+/btU11dncaMGeOp6dOnjy655BIVFhZKkgoLCzVw4EBPeJKk9PR0ORwOlZSUeGq+v4/GmsZ91NbWat++fV41HTp00JgxYzw1Z7J48WJZLBbPJzk5+UJOHwAAAEA70+QA1dDQoIcffljDhw/XgAEDJElWq1XBwcHq1q2bV21cXJysVqun5vvhqXF747Zz1TgcDp04cUJHjx7VqVOnzljTuI8zycnJkd1u93y++uor308cAAAAQLvVqakDs7KydPDgQe3atcuf/QRUSEiIQkJCWroNAAAAAK1Uk76Bmj59ujZu3Kht27YpKSnJsz4+Pl61tbU6fvy4V73NZlN8fLyn5t9n5WtcPl9NZGSkwsLC1L17d3Xs2PGMNY37AAAAAAB/8ylAud1uTZ8+XX/+85/1zjvvqGfPnl7bhw4dqs6dO6ugoMCzrrS0VOXl5UpNTZUkpaam6sCBA16z5eXn5ysyMlL9+vXz1Hx/H401jfsIDg7W0KFDvWoaGhpUUFDgqQEAAAAAf/PpFr6srCytX79eb7zxhiIiIjzPG1ksFoWFhclisSgzM1PZ2dmKjo5WZGSkHnzwQaWmpurqq6+WJKWlpalfv3668847lZeXJ6vVqrlz5yorK8tze920adO0cuVKzZo1S/fcc4/eeecdvfrqq9q0aZOnl+zsbE2ZMkVXXnmlrrrqKj311FOqqanR3Xff7a/fDQAAAAB48Wka86CgoDOuf/HFF3XXXXdJ+u5Fuo888oj+8Ic/yOVyKT09Xc8++6zXrXV///vf9cADD2j79u3q0qWLpkyZoiVLlqhTp3/lue3bt2vGjBn65JNPlJSUpF/96leeYzRauXKlli5dKqvVqiFDhujpp5/WsGHDjE/edKpCAAAAAG2baTa4oPdAtXYEKAAAAABSM70HCgAAAADaEwIUAAAAABhq8nugAABA62C32+V0Ops0Njw8XBaLxc8dAUDrRYACAKCVaEoQcjgcevb5tap2nWrSMWMiwjVn1gxCFAD8HwIUAACtgN1u16K85aqo8i1AOWuq9elnZbruF1MV3cO3l81X2ytVUbJLTqeTAAUA/4cABQBAK+B0OlVR5VR0/xHqaok2HmctL5Or5JBCwiMUGRPr83ErfR4BAG0bAQoAgFakqyXapyBUdexoALsBgPaHWfgAAAAAwBABCgAAAAAMEaAAAAAAwBABCgAAAAAMEaAAAAAAwBABCgAAAAAMEaAAAAAAwBABCgAAAAAMEaAAAAAAwBABCgAAAAAMdWrpBgAAQNtjt9vldDp9HhceHi6LxRKAjgDAPwhQAADAr+x2uxblLVdFle8BKiYiXHNmzSBEAbhoEaAAAIBfOZ1OVVQ5Fd1/hLpaoo3HVdsrVVGyS06nkwAF4KJFgAIAAAHR1RKtyJhYn8ZUBqgXAPAXJpEAAAAAAEMEKAAAAAAwxC18AAA0s6bMUGez2VRXVxugjgAApghQAAA0o6bOUOesqdann5UpKdUVoM4AACYIUAAANKOmzlBnLS+Tq+SQ6uvqA9gdAOB8CFAAALQAX2eoqzp2NIDdAABMMYkEAAAAABgiQAEAAACAIQIUAAAAABgiQAEAAACAIQIUAAAAABgiQAEAAACAIQIUAAAAABgiQAEAAACAIQIUAAAAABgiQAEAAACAIQIUAAAAABgiQAEAAACAIQIUAAAAABgiQAEAAACAIQIUAAAAABgiQAEAAACAIQIUAAAAABgiQAEAAACAIZ8D1M6dO3XzzTcrMTFRQUFB2rBhg9f2oKCgM36WLl3qqbn00ktP275kyRKv/RQXF+vaa69VaGiokpOTlZeXd1ovr732mvr06aPQ0FANHDhQb731lq+nAwAAAADGfA5QNTU1Gjx4sFatWnXG7UeOHPH6vPDCCwoKCtKECRO86hYsWOBV9+CDD3q2ORwOpaWlKSUlRfv27dPSpUuVm5ur5557zlOze/duTZo0SZmZmdq/f7/Gjx+v8ePH6+DBg76eEgAAAAAY6eTrgHHjxmncuHFn3R4fH++1/MYbb2j06NH6wQ9+4LU+IiLitNpG69atU21trV544QUFBwerf//+Kioq0pNPPqmpU6dKklasWKGxY8dq5syZkqSFCxcqPz9fK1eu1OrVq309LQAAAAA4r4A+A2Wz2bRp0yZlZmaetm3JkiWKiYnR5ZdfrqVLl6q+vt6zrbCwUCNHjlRwcLBnXXp6ukpLS3Xs2DFPzZgxY7z2mZ6ersLCwrP243K55HA4vD4AAAAAYMrnb6B88bvf/U4RERH62c9+5rX+l7/8pa644gpFR0dr9+7dysnJ0ZEjR/Tkk09KkqxWq3r27Ok1Ji4uzrMtKipKVqvVs+77NVar9az9LF68WPPnz/fHqQEAAABohwIaoF544QXdfvvtCg0N9VqfnZ3t+XnQoEEKDg7W/fffr8WLFyskJCRg/eTk5Hgd2+FwKDk5OWDHAwAAANC2BCxAvfvuuyotLdUrr7xy3tphw4apvr5eX375pXr37q34+HjZbDavmsblxuemzlZztueqJCkkJCSgAQ0A0DrZ7XY5nU6fx4WHh8tisQSgIwDAxSpgAWrNmjUaOnSoBg8efN7aoqIidejQQbGxsZKk1NRUzZkzR3V1dercubMkKT8/X71791ZUVJSnpqCgQA8//LBnP/n5+UpNTfX/yQAA2iy73a5FectVUeV7gIqJCNecWTMIUQDQjvgcoKqrq1VWVuZZPnz4sIqKihQdHa1LLrlE0ne3xr322mtatmzZaeMLCwv1/vvva/To0YqIiFBhYaFmzJihO+64wxOObrvtNs2fP1+ZmZmaPXu2Dh48qBUrVmj58uWe/Tz00EO67rrrtGzZMmVkZOjll1/W3r17vaY6BwDgfJxOpyqqnIruP0JdLdHG46rtlaoo2SWn00mAAoB2xOcAtXfvXo0ePdqz3PhM0ZQpU7R27VpJ0ssvvyy3261JkyadNj4kJEQvv/yycnNz5XK51LNnT82YMcPr2SSLxaItW7YoKytLQ4cOVffu3TVv3jzPFOaSdM0112j9+vWaO3euHnvsMf3whz/Uhg0bNGDAAF9PCQAAdbVEKzIm1qcxlQHqBQBw8fI5QI0aNUput/ucNVOnTvUKO993xRVXaM+ePec9zqBBg/Tuu++es2bixImaOHHiefcFAAAAAP4Q0PdAAQAAAEBbQoACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEOdWroBAAD8xW63y+l0+jTGZrOprq42QB0BANoaAhQAoE2w2+1alLdcFVW+BShnTbU+/axMSamuAHUGAGhLCFAAgDbB6XSqosqp6P4j1NUSbTzOWl4mV8kh1dfVB7A7AEBbQYACALQpXS3RioyJNa6vOnY0gN0AANoaJpEAAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEM+B6idO3fq5ptvVmJiooKCgrRhwwav7XfddZeCgoK8PmPHjvWqqays1O23367IyEh169ZNmZmZqq6u9qopLi7Wtddeq9DQUCUnJysvL++0Xl577TX16dNHoaGhGjhwoN566y1fTwcAAAAAjPkcoGpqajR48GCtWrXqrDVjx47VkSNHPJ8//OEPXttvv/12lZSUKD8/Xxs3btTOnTs1depUz3aHw6G0tDSlpKRo3759Wrp0qXJzc/Xcc895anbv3q1JkyYpMzNT+/fv1/jx4zV+/HgdPHjQ11MCAAAAACOdfB0wbtw4jRs37pw1ISEhio+PP+O2Tz/9VJs3b9aHH36oK6+8UpL0zDPP6KabbtJvfvMbJSYmat26daqtrdULL7yg4OBg9e/fX0VFRXryySc9QWvFihUaO3asZs6cKUlauHCh8vPztXLlSq1evdrX0wIAAACA8wrIM1Dbt29XbGysevfurQceeEAVFRWebYWFherWrZsnPEnSmDFj1KFDB73//vuempEjRyo4ONhTk56ertLSUh07dsxTM2bMGK/jpqenq7Cw8Kx9uVwuORwOrw8AAAAAmPJ7gBo7dqx+//vfq6CgQL/+9a+1Y8cOjRs3TqdOnZIkWa1WxcbGeo3p1KmToqOjZbVaPTVxcXFeNY3L56tp3H4mixcvlsVi8XySk5Mv7GQBAAAAtCs+38J3Prfeeqvn54EDB2rQoEHq1auXtm/frhtuuMHfh/NJTk6OsrOzPcsOh4MQBQAAAMBYwKcx/8EPfqDu3burrKxMkhQfH69vv/3Wq6a+vl6VlZWe56bi4+Nls9m8ahqXz1dztmevpO+ezYqMjPT6AAAAAICpgAeof/zjH6qoqFBCQoIkKTU1VcePH9e+ffs8Ne+8844aGho0bNgwT83OnTtVV1fnqcnPz1fv3r0VFRXlqSkoKPA6Vn5+vlJTUwN9SgAAAADaKZ8DVHV1tYqKilRUVCRJOnz4sIqKilReXq7q6mrNnDlTe/bs0ZdffqmCggLdcsstuuyyy5Seni5J6tu3r8aOHav77rtPH3zwgd577z1Nnz5dt956qxITEyVJt912m4KDg5WZmamSkhK98sorWrFihdftdw899JA2b96sZcuW6dChQ8rNzdXevXs1ffp0P/xaAAAAAOB0PgeovXv36vLLL9fll18uScrOztbll1+uefPmqWPHjiouLtZPf/pT/ehHP1JmZqaGDh2qd999VyEhIZ59rFu3Tn369NENN9ygm266SSNGjPB6x5PFYtGWLVt0+PBhDR06VI888ojmzZvn9a6oa665RuvXr9dzzz2nwYMH6/XXX9eGDRs0YMCAC/l9AAAAAMBZ+TyJxKhRo+R2u8+6/e233z7vPqKjo7V+/fpz1gwaNEjvvvvuOWsmTpyoiRMnnvd4AACgdah1uU57xtlEeHi4LBZLADoCAG9+n4UPAACgKU46q1V8oFh5q9YoLCzMp7ExEeGaM2sGIQpAwBGgAADARaHOdVK1DUGK6jdcsQlJxuOq7ZWqKNklp9NJgAIQcAQoAABwUekSGaXImFifxlQGqBcA+HcBn8YcAAAAANoKAhQAAAAAGCJAAQAAAIAhnoECAACtHtOfA2guBCgAANCqMf05gOZEgAIAAK0a058DaE4EKAAA0CYw/TmA5kCAAgBcdOx2u5xOp09jbDab6upqA9QRAADfIUABAC4qdrtdi/KWq6LKtwDlrKnWp5+VKSnVFaDOAAAgQAEALjJOp1MVVU5F9x+hrpZo43HW8jK5Sg6pvq4+gN0BANo7AhQA4KLU1RLt0/MsVceOBrAbAAC+w4t0AQAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADPkcoHbu3Kmbb75ZiYmJCgoK0oYNGzzb6urqNHv2bA0cOFBdunRRYmKiJk+erG+++cZrH5deeqmCgoK8PkuWLPGqKS4u1rXXXqvQ0FAlJycrLy/vtF5ee+019enTR6GhoRo4cKDeeustX08HAAAAAIz5HKBqamo0ePBgrVq16rRtTqdTH330kX71q1/po48+0p/+9CeVlpbqpz/96Wm1CxYs0JEjRzyfBx980LPN4XAoLS1NKSkp2rdvn5YuXarc3Fw999xznprdu3dr0qRJyszM1P79+zV+/HiNHz9eBw8e9PWUAAAAAMBIJ18HjBs3TuPGjTvjNovFovz8fK91K1eu1FVXXaXy8nJdcsklnvURERGKj48/437WrVun2tpavfDCCwoODlb//v1VVFSkJ598UlOnTpUkrVixQmPHjtXMmTMlSQsXLlR+fr5Wrlyp1atXn3G/LpdLLpfLs+xwOMxPHAAAAEC7F/BnoOx2u4KCgtStWzev9UuWLFFMTIwuv/xyLV26VPX19Z5thYWFGjlypIKDgz3r0tPTVVpaqmPHjnlqxowZ47XP9PR0FRYWnrWXxYsXy2KxeD7Jycl+OEMAAAAA7UVAA9TJkyc1e/ZsTZo0SZGRkZ71v/zlL/Xyyy9r27Ztuv/++/XEE09o1qxZnu1Wq1VxcXFe+2pctlqt56xp3H4mOTk5stvtns9XX311wecIAAAAoP3w+RY+U3V1dfrFL34ht9ut3/72t17bsrOzPT8PGjRIwcHBuv/++7V48WKFhIQEqiWFhIQEdP8AAAAA2raAfAPVGJ7+/ve/Kz8/3+vbpzMZNmyY6uvr9eWXX0qS4uPjZbPZvGoalxufmzpbzdmeqwIAAACAC+X3ANUYnj7//HNt3bpVMTEx5x1TVFSkDh06KDY2VpKUmpqqnTt3qq6uzlOTn5+v3r17KyoqylNTUFDgtZ/8/Hylpqb68WwAAAAA4F98voWvurpaZWVlnuXDhw+rqKhI0dHRSkhI0M9//nN99NFH2rhxo06dOuV5Jik6OlrBwcEqLCzU+++/r9GjRysiIkKFhYWaMWOG7rjjDk84uu222zR//nxlZmZq9uzZOnjwoFasWKHly5d7jvvQQw/puuuu07Jly5SRkaGXX35Ze/fu9ZrqHAAAAAD8yecAtXfvXo0ePdqz3Pg805QpU5Sbm6s333xTkjRkyBCvcdu2bdOoUaMUEhKil19+Wbm5uXK5XOrZs6dmzJjh9VyUxWLRli1blJWVpaFDh6p79+6aN2+eZwpzSbrmmmu0fv16zZ07V4899ph++MMfasOGDRowYICvpwQAAAAARnwOUKNGjZLb7T7r9nNtk6QrrrhCe/bsOe9xBg0apHffffecNRMnTtTEiRPPuy8AAAAA8IeAvwcKAAAAANoKAhQAAAAAGCJAAQAAAIAhAhQAAAAAGCJAAQAAAIAhAhQAAAAAGPJ5GnMAAEzZ7XY5nU6fxthsNtXV1QaoIwAALgwBCgAQEHa7XYvylquiyrcA5ayp1qeflSkp1RWgzgAAaDoCFAAgIJxOpyqqnIruP0JdLdHG46zlZXKVHFJ9XX0AuwMAoGkIUACAgOpqiVZkTKxxfdWxowHsBgCAC8MkEgAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIYIUAAAAABgyOcAtXPnTt18881KTExUUFCQNmzY4LXd7XZr3rx5SkhIUFhYmMaMGaPPP//cq6ayslK33367IiMj1a1bN2VmZqq6utqrpri4WNdee61CQ0OVnJysvLy803p57bXX1KdPH4WGhmrgwIF66623fD0dAAAAADDmc4CqqanR4MGDtWrVqjNuz8vL09NPP63Vq1fr/fffV5cuXZSenq6TJ096am6//XaVlJQoPz9fGzdu1M6dOzV16lTPdofDobS0NKWkpGjfvn1aunSpcnNz9dxzz3lqdu/erUmTJikzM1P79+/X+PHjNX78eB08eNDXUwIAAAAAI518HTBu3DiNGzfujNvcbreeeuopzZ07V7fccosk6fe//73i4uK0YcMG3Xrrrfr000+1efNmffjhh7ryyislSc8884xuuukm/eY3v1FiYqLWrVun2tpavfDCCwoODlb//v1VVFSkJ5980hO0VqxYobFjx2rmzJmSpIULFyo/P18rV67U6tWrm/TLAAAAAIBz8eszUIcPH5bVatWYMWM86ywWi4YNG6bCwkJJUmFhobp16+YJT5I0ZswYdejQQe+//76nZuTIkQoODvbUpKenq7S0VMeOHfPUfP84jTWNxzkTl8slh8Ph9QEAAAAAU34NUFarVZIUFxfntT4uLs6zzWq1KjY21mt7p06dFB0d7VVzpn18/xhnq2ncfiaLFy+WxWLxfJKTk309RQAAAADtWLuahS8nJ0d2u93z+eqrr1q6JQAAAACtiF8DVHx8vCTJZrN5rbfZbJ5t8fHx+vbbb72219fXq7Ky0qvmTPv4/jHOVtO4/UxCQkIUGRnp9QEAAAAAU34NUD179lR8fLwKCgo86xwOh95//32lpqZKklJTU3X8+HHt27fPU/POO++ooaFBw4YN89Ts3LlTdXV1npr8/Hz17t1bUVFRnprvH6expvE4AAAAAOBvPgeo6upqFRUVqaioSNJ3E0cUFRWpvLxcQUFBevjhh/Xf//3fevPNN3XgwAFNnjxZiYmJGj9+vCSpb9++Gjt2rO677z598MEHeu+99zR9+nTdeuutSkxMlCTddtttCg4OVmZmpkpKSvTKK69oxYoVys7O9vTx0EMPafPmzVq2bJkOHTqk3Nxc7d27V9OnT7/w3woAAAAAnIHP05jv3btXo0eP9iw3hpopU6Zo7dq1mjVrlmpqajR16lQdP35cI0aM0ObNmxUaGuoZs27dOk2fPl033HCDOnTooAkTJujpp5/2bLdYLNqyZYuysrI0dOhQde/eXfPmzfN6V9Q111yj9evXa+7cuXrsscf0wx/+UBs2bNCAAQOa9IsAAAAAgPPxOUCNGjVKbrf7rNuDgoK0YMECLViw4Kw10dHRWr9+/TmPM2jQIL377rvnrJk4caImTpx47oYBAAAAwE/a1Sx8AAAAAHAhCFAAAAAAYMjnW/gAAED7UetynfbakPOx2Wyqq6sNUEcA0LIIUAAA4IxOOqtVfKBYeavWKCwszHics6Zan35WpqRUVwC7A4CWQYACAABnVOc6qdqGIEX1G67YhCTjcdbyMrlKDqm+rj6A3QFAyyBAAQCAc+oSGaXImFjj+qpjRwPYDQC0LCaRAAAAAABDBCgAAAAAMESAAgAAAABDBCgAAAAAMESAAgAAAABDBCgAAAAAMESAAgAAAABDBCgAAAAAMESAAgAAAABDBCgAAAAAMNSppRsAAKC1qnW5ZLPZfBpjs9lUV1cboI4AAIFGgAIAoAlOOqtVfKBYeavWKCwszHics6Zan35WpqRUVwC7AwAECgEKAIAmqHOdVG1DkKL6DVdsQpLxOGt5mVwlh1RfVx/A7gAAgUKAAgDgAnSJjFJkTKxxfdWxowHsBgAQaEwiAQAAAACGCFAAAAAAYIgABQAAAACGCFAAAAAAYIhJJAAAQLvVlHd5SVJdXZ06d+7s87jw8HBZLBafxwG4eBCgAABAu9TUd3nVulz67NAn6t2vvzp3DvbpmDER4ZozawYhCmjFCFAAAKBdupB3eTk+PqCIH13t07hqe6UqSnbJ6XQSoIBWjAAFAADataa+y8vXcZJU6VM1gIsRk0gAAAAAgCECFAAAAAAY4hY+AGhH7Ha7nE6nz+OYOQwAgO8QoACgnbDb7VqUt1wVVb4HKGYOAwDgOwQoAGgnnE6nKqqciu4/Ql0t0cbjmDkMAIB/IUABQDvT1RLNzGEAADQRk0gAAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCG/B6hLL71UQUFBp32ysrIkSaNGjTpt27Rp07z2UV5eroyMDIWHhys2NlYzZ85UfX29V8327dt1xRVXKCQkRJdddpnWrl3r71MBAAAAAC+d/L3DDz/8UKdOnfIsHzx4UDfeeKMmTpzoWXffffdpwYIFnuXw8HDPz6dOnVJGRobi4+O1e/duHTlyRJMnT1bnzp31xBNPSJIOHz6sjIwMTZs2TevWrVNBQYHuvfdeJSQkKD093d+nBAAAAACSAhCgevTo4bW8ZMkS9erVS9ddd51nXXh4uOLj4884fsuWLfrkk0+0detWxcXFaciQIVq4cKFmz56t3NxcBQcHa/Xq1erZs6eWLVsmSerbt6927dql5cuXE6AAAAAABExAn4Gqra3VSy+9pHvuuUdBQUGe9evWrVP37t01YMAA5eTkyOl0erYVFhZq4MCBiouL86xLT0+Xw+FQSUmJp2bMmDFex0pPT1dhYeE5+3G5XHI4HF4fAAAAADDl92+gvm/Dhg06fvy47rrrLs+62267TSkpKUpMTFRxcbFmz56t0tJS/elPf5IkWa1Wr/AkybNstVrPWeNwOHTixAmFhYWdsZ/Fixdr/vz5/jo9AAAAAO1MQAPUmjVrNG7cOCUmJnrWTZ061fPzwIEDlZCQoBtuuEFffPGFevXqFch2lJOTo+zsbM+yw+FQcnJyQI8JAAAAoO0IWID6+9//rq1bt3q+WTqbYcOGSZLKysrUq1cvxcfH64MPPvCqsdlskuR5bio+Pt6z7vs1kZGRZ/32SZJCQkIUEhLi87kAAAAAgBTAZ6BefPFFxcbGKiMj45x1RUVFkqSEhARJUmpqqg4cOKBvv/3WU5Ofn6/IyEj169fPU1NQUOC1n/z8fKWmpvrxDAAAAADAW0ACVENDg1588UVNmTJFnTr960uuL774QgsXLtS+ffv05Zdf6s0339TkyZM1cuRIDRo0SJKUlpamfv366c4779THH3+st99+W3PnzlVWVpbn26Np06bpb3/7m2bNmqVDhw7p2Wef1auvvqoZM2YE4nQAAAAAQFKAAtTWrVtVXl6ue+65x2t9cHCwtm7dqrS0NPXp00ePPPKIJkyYoL/85S+emo4dO2rjxo3q2LGjUlNTdccdd2jy5Mle743q2bOnNm3apPz8fA0ePFjLli3T888/zxTmAAAAAAIqIM9ApaWlye12n7Y+OTlZO3bsOO/4lJQUvfXWW+esGTVqlPbv39/kHgEAAADAVwF9DxQAAAAAtCUEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAw1KmlGwAA+M5ut8vpdPo0xmazqa6uNkAdAQDQPhCgAKCVsdvtWpS3XBVVvgUoZ021Pv2sTEmprgB1BgBA20eAAoBWxul0qqLKqej+I9TVEm08zlpeJlfJIdXX1QewOwAA2jYCFAC0Ul0t0YqMiTWurzp2NIDdAADQPjCJBAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCECFAAAAAAYIkABAAAAgCG/B6jc3FwFBQV5ffr06ePZfvLkSWVlZSkmJkZdu3bVhAkTZLPZvPZRXl6ujIwMhYeHKzY2VjNnzlR9fb1Xzfbt23XFFVcoJCREl112mdauXevvUwEAAAAAL50CsdP+/ftr69at/zpIp38dZsaMGdq0aZNee+01WSwWTZ8+XT/72c/03nvvSZJOnTqljIwMxcfHa/fu3Tpy5IgmT56szp0764knnpAkHT58WBkZGZo2bZrWrVungoIC3XvvvUpISFB6enogTgkA2rVal+u0f+w6H5vNprq62gB1BABAywhIgOrUqZPi4+NPW2+327VmzRqtX79e119/vSTpxRdfVN++fbVnzx5dffXV2rJliz755BNt3bpVcXFxGjJkiBYuXKjZs2crNzdXwcHBWr16tXr27Klly5ZJkvr27atdu3Zp+fLlBCgA8LOTzmoVHyhW3qo1CgsLMx7nrKnWp5+VKSnVFcDuAABoXgEJUJ9//rkSExMVGhqq1NRULV68WJdccon27dunuro6jRkzxlPbp08fXXLJJSosLNTVV1+twsJCDRw4UHFxcZ6a9PR0PfDAAyopKdHll1+uwsJCr3001jz88MPn7Mvlcsnl+tcf5A6Hwz8nDABtWJ3rpGobghTVb7hiE5KMx1nLy+QqOaT6uvrzFwMA0Er4PUANGzZMa9euVe/evXXkyBHNnz9f1157rQ4ePCir1arg4GB169bNa0xcXJysVqskyWq1eoWnxu2N285V43A4dOLEibP+C+nixYs1f/58f5wmALQ7XSKjFBkTa1xfdexoALsBAKBl+D1AjRs3zvPzoEGDNGzYMKWkpOjVV1/16daPQMjJyVF2drZn2eFwKDk5uQU7AtCe2e12OZ1On8fxbBEAAC0nILfwfV+3bt30ox/9SGVlZbrxxhtVW1ur48ePe30LZbPZPM9MxcfH64MPPvDaR+ODy9+v+feHmW02myIjI88Z0kJCQhQSEuKP0wKAC2K327Uob7kqqnwPUDxbBABAywl4gKqurtYXX3yhO++8U0OHDlXnzp1VUFCgCRMmSJJKS0tVXl6u1NRUSVJqaqoWLVqkb7/9VrGx390qkp+fr8jISPXr189T89Zbb3kdJz8/37MPALjYOZ1OVVQ5Fd1/hLpaon0ay7NFAAC0HL8HqP/3//6fbr75ZqWkpOibb77R448/ro4dO2rSpEmyWCzKzMxUdna2oqOjFRkZqQcffFCpqam6+uqrJUlpaWnq16+f7rzzTuXl5clqtWru3LnKysryfHs0bdo0rVy5UrNmzdI999yjd955R6+++qo2bdrk79MBgIDqaon26bkiiWeLAABoSX4PUP/4xz80adIkVVRUqEePHhoxYoT27NmjHj16SJKWL1+uDh06aMKECXK5XEpPT9ezzz7rGd+xY0dt3LhRDzzwgFJTU9WlSxdNmTJFCxYs8NT07NlTmzZt0owZM7RixQolJSXp+eefZwpzAAAAAAHl9wD18ssvn3N7aGioVq1apVWrVp21JiUl5bRb9P7dqFGjtH///ib1CAAA0BKa8lJqSQoPD5fFYglARwB8FfBnoAAAAND0l1JLUkxEuObMmkGIAi4CBCgAAIBm0NSXUlfbK1VRsktOp5MABVwECFAAAADNyNeXUktSZYB6AeC7Di3dAAAAAAC0FgQoAAAAADBEgAIAAAAAQwQoAAAAADBEgAIAAAAAQwQoAAAAADBEgAIAAAAAQwQoAAAAADBEgAIAAAAAQwQoAAAAADDUqaUbAAAAwLnVulyy2Ww+jwsPD5fFYglAR0D7RYACAAC4iJ10Vqv4QLHyVq1RWFiYT2NjIsI1Z9YMQhTgRwQoAACAi1id66RqG4IU1W+4YhOSjMdV2ytVUbJLTqeTAAX4EQEKAACgFegSGaXImFifxlQGqBegPWMSCQAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAwRIACAAAAAEMEKAAAAAAw1KmlGwCAi4XdbpfT6fR5XHh4uCwWSwA6AgAAFxsCFADou/C0KG+5Kqp8D1AxEeGaM2sGIQoAgHaAAAUAkpxOpyqqnIruP0JdLdHG46rtlaoo2SWn00mAAgCgHSBAAcD3dLVEKzIm1qcxlQHqBQAAXHyYRAIAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADPk9QC1evFg//vGPFRERodjYWI0fP16lpaVeNaNGjVJQUJDXZ9q0aV415eXlysjIUHh4uGJjYzVz5kzV19d71Wzfvl1XXHGFQkJCdNlll2nt2rX+Ph0AAAAA8PB7gNqxY4eysrK0Z88e5efnq66uTmlpaaqpqfGqu++++3TkyBHPJy8vz7Pt1KlTysjIUG1trXbv3q3f/e53Wrt2rebNm+epOXz4sDIyMjR69GgVFRXp4Ycf1r333qu3337b36cEAAAAAJIC8B6ozZs3ey2vXbtWsbGx2rdvn0aOHOlZHx4ervj4+DPuY8uWLfrkk0+0detWxcXFaciQIVq4cKFmz56t3NxcBQcHa/Xq1erZs6eWLVsmSerbt6927dql5cuXKz093d+nBQAAAACBfwbKbrdLkqKjo73Wr1u3Tt27d9eAAQOUk5Mjp9Pp2VZYWKiBAwcqLi7Osy49PV0Oh0MlJSWemjFjxnjtMz09XYWFhWftxeVyyeFweH0AAADaqlqXSzabzeuuH5NP49/fAJzO799AfV9DQ4MefvhhDR8+XAMGDPCsv+2225SSkqLExEQVFxdr9uzZKi0t1Z/+9CdJktVq9QpPkjzLVqv1nDUOh0MnTpxQWFjYaf0sXrxY8+fP9+s5AgAAXIxOOqtVfKBYeavWnPHvRecSExGuObNmyGKxBKg7oPUKaIDKysrSwYMHtWvXLq/1U6dO9fw8cOBAJSQk6IYbbtAXX3yhXr16BayfnJwcZWdne5YdDoeSk5MDdjwAAICWUuc6qdqGIEX1G67YhCTjcdX2SlWU7JLT6SRAAWcQsAA1ffp0bdy4UTt37lRS0rn/ox02bJgkqaysTL169VJ8fLw++OADrxqbzSZJnuem4uPjPeu+XxMZGXnWf2UJCQlRSEhIk84HAACgNeoSGaXImFifxlQGqBegLfD7M1But1vTp0/Xn//8Z73zzjvq2bPneccUFRVJkhISEiRJqampOnDggL799ltPTX5+viIjI9WvXz9PTUFBgdd+8vPzlZqa6qczAQAAAABvfg9QWVlZeumll7R+/XpFRETIarXKarXqxIkTkqQvvvhCCxcu1L59+/Tll1/qzTff1OTJkzVy5EgNGjRIkpSWlqZ+/frpzjvv1Mcff6y3335bc+fOVVZWlucbpGnTpulvf/ubZs2apUOHDunZZ5/Vq6++qhkzZvj7lAAAAABAUgAC1G9/+1vZ7XaNGjVKCQkJns8rr7wiSQoODtbWrVuVlpamPn366JFHHtGECRP0l7/8xbOPjh07auPGjerYsaNSU1N1xx13aPLkyVqwYIGnpmfPntq0aZPy8/M1ePBgLVu2TM8//zxTmAMAAAAIGL8/A+V2u8+5PTk5WTt27DjvflJSUvTWW2+ds2bUqFHav3+/T/0BAAAAQFMF/D1QAAAAANBWEKAAAAAAwFBA3wMFAC3BbrfL6XT6NMZms6murjZAHQEAgLaCAAWgTbHb7VqUt1wVVb4FKGdNtT79rExJqa4AdQYAANoCAhSANsXpdKqiyqno/iPU1RJtPM5aXiZXySHV19UHsDsAANDaEaAAtEldLdGKjIk1rq86djSA3QAAgLaCAAUAF6jW5ZLNZvNpDM9cAQDQOhGgAOACnHRWq/hAsfJWrVFYWJjxOJ65AgCgdSJAAcAFqHOdVG1DkKL6DVdsQpLxOJ65AgCgdSJAAYAfdImM4pkrAADaAV6kCwAAAACGCFAAAAAAYIgABQAAAACGCFAAAAAAYIgABQAAAACGCFAAAAAAYIhpzAFctOx2u5xOp09jbDab6upqA9QRAABo7whQAC5Kdrtdi/KWq6LKtwDlrKnWp5+VKSnVFaDOAABAe0aAAnBRcjqdqqhyKrr/CHW1RBuPs5aXyVVySPV19QHsDgAAtFcEKAAXta6WaEXGxBrXVx07GsBuAABAe8ckEgAAAABgiAAFAAAAAIYIUAAAAABgiAAFAAAAAIaYRAIAAABeal0u2Ww2n8eFh4fLYrEEoCPg4kGAAgAAgMdJZ7WKDxQrb9UahYWF+TQ2JiJcc2bNIEShTSNAAQAAwKPOdVK1DUGK6jdcsQlJxuOq7ZWqKNklp9NJgEKbRoACAADAabpERvn0Hj5JqgxQL8DFhEkkAAAAAMAQAQoAAAAADHELHwAAAPyiqbP3Sczgh9aDAAXAmN1ul9Pp9HkcfygCQNt3IbP3Sczgh9aDAAXAiN1u16K85aqo8j1A8YciALR9TZ29T2IGP7QuBCgARpxOpyqqnIruP0JdLdHG4/hDEQDal6bM3icxgx9aDwIUAJ90tUQzrS0AAGi3CFAAAq4pDxXbbDbV1dUGqCMAAICmIUABCKimPlTsrKnWp5+VKSnVFcDuAAAAfEOAAhBQTX2o2FpeJlfJIdXX1QewOwAAAN8QoIB2qCnTkV/oLXW+PlRcdexok48FAAAQKAQooJ1p6nTk3FIHAABAgALanaZOR84tdQAAAAQooN3ydTpybqkDAARSU2ZslaTw8HDeM4hmRYACWrGWeJYJAAB/a+qMrZIUExGuObNmEKLQbAhQQCvFs0wAgLaiqTO2VtsrdeSjAh0+fFhxcXE+HZNvrtBUBCigleJZJgBAW+PrjK18c4WWQIACLgIXcisezzIBANqrC/nmqqJkl5xOJwEKPmv1AWrVqlVaunSprFarBg8erGeeeUZXXXVVS7cFGONWPAAALoyv31xJUmWAekHb16oD1CuvvKLs7GytXr1aw4YN01NPPaX09HSVlpYqNta3/4iARk35NqhRXV2dOnfu7NMYm80ma+VxxQ25nlvxAABoJk2d9a8pf9ZLPHPVlrTqAPXkk0/qvvvu09133y1JWr16tTZt2qQXXnhBjz766Gn1LpdLLte//rXebrdLkhwOR/M0fB5VVVWqqanxeZzb7VZQUBDj/DCuqqpKz/9+vapdvoeSWpdLX3xWqsv69FHnzsHG407U1Ki07G8a3vMKdeocYn68kyd0qr5ex779Wh19OM1j/zzCuFY8rjX1yrjWPa419cq41j2uRXr99h/av/8jLVp+UqFhocbjmvpnvSR17dxR9951uyIiInwa1xr+/nQh47p06eLz7yRQGjOB2+0+Z12Q+3wVF6na2lqFh4fr9ddf1/jx4z3rp0yZouPHj+uNN944bUxubq7mz5/fjF0CAAAAaE2++uorJSWd/Zm6VvsN1NGjR3Xq1KnTpqyMi4vToUOHzjgmJydH2dnZnuWGhgZVVlYqJiamSYkZzcPhcCg5OVlfffWVIiMjW7odNDOuf/vFtW/fuP7tF9e+/Wrpa+92u1VVVaXExMRz1rXaANUUISEhCgnxvkWqW7duLdMMfBYZGcn/kbZjXP/2i2vfvnH92y+uffvVktfe5Dm1Ds3QR0B0795dHTt2PO3hP5vNpvj4+BbqCgAAAEBb1moDVHBwsIYOHaqCggLPuoaGBhUUFCg1NbUFOwMAAADQVrXqW/iys7M1ZcoUXXnllbrqqqv01FNPqaamxjMrH9qGkJAQPf7446fdfon2gevffnHt2zeuf/vFtW+/Wsu1b7Wz8DVauXKl50W6Q4YM0dNPP61hw4a1dFsAAAAA2qBWH6AAAAAAoLm02megAAAAAKC5EaAAAAAAwBABCgAAAAAMEaAAAAAAwBABChetL7/8UpmZmerZs6fCwsLUq1cvPf7446qtrfXUbN++XbfccosSEhLUpUsXDRkyROvWrWvBruEvJtdfkoqLi3XttdcqNDRUycnJysvLa6GO4U+LFi3SNddco/DwcHXr1u2MNR9++KFuuOEGdevWTVFRUUpPT9fHH3/cvI3C70yuvSStXbtWgwYNUmhoqGJjY5WVldV8TSJgTK+/JFVUVCgpKUlBQUE6fvx4s/SHwDnftf/44481adIkJScnKywsTH379tWKFSuav1ERoHARO3TokBoaGvQ///M/Kikp0fLly7V69Wo99thjnprdu3dr0KBB+uMf/6ji4mLdfffdmjx5sjZu3NiCncMfTK6/w+FQWlqaUlJStG/fPi1dulS5ubl67rnnWrBz+ENtba0mTpyoBx544Izbq6urNXbsWF1yySV6//33tWvXLkVERCg9PV11dXXN3C386XzXXpKefPJJzZkzR48++qhKSkq0detWpaenN2OXCBST698oMzNTgwYNaoau0BzOd+337dun2NhYvfTSSyopKdGcOXOUk5OjlStXNnOnktxAK5KXl+fu2bPnOWtuuukm9913391MHaE5/fv1f/bZZ91RUVFul8vlWTd79mx37969W6I9BMCLL77otlgsp63/8MMP3ZLc5eXlnnXFxcVuSe7PP/+8GTtEoJzt2ldWVrrDwsLcW7dubf6m0GzOdv0bPfvss+7rrrvOXVBQ4JbkPnbsWLP1hsA637X/vv/6r/9yjx49OrANnQHfQKFVsdvtio6OvuAatE7/fm0LCws1cuRIBQcHe9alp6ertLRUx44da4kW0Ux69+6tmJgYrVmzRrW1tTpx4oTWrFmjvn376tJLL23p9hBA+fn5amho0Ndff62+ffsqKSlJv/jFL/TVV1+1dGtoJp988okWLFig3//+9+rQgb/Ktmct9Xc+/leHVqOsrEzPPPOM7r///rPWvPrqq/rwww919913N2NnaA5nuv5Wq1VxcXFedY3LVqu1WftD84qIiND27dv10ksvKSwsTF27dtXmzZv117/+VZ06dWrp9hBAf/vb39TQ0KAnnnhCTz31lF5//XVVVlbqxhtvPO0ZSbQ9LpdLkyZN0tKlS3XJJZe0dDtoQbt379Yrr7yiqVOnNvuxCVBodo8++qiCgoLO+Tl06JDXmK+//lpjx47VxIkTdd99951xv9u2bdPdd9+t//3f/1X//v2b41TQBIG6/rj4NeXan82JEyeUmZmp4cOHa8+ePXrvvfc0YMAAZWRk6MSJEwE+E/jKn9e+oaFBdXV1evrpp5Wenq6rr75af/jDH/T5559r27ZtAT4TNIU/r39OTo769u2rO+64I8Bdwx/8ee2/7+DBg7rlllv0+OOPKy0tLQCdnxv/TIdm98gjj+iuu+46Z80PfvADz8/ffPONRo8erWuuueaskwPs2LFDN998s5YvX67Jkyf7s134mT+vf3x8vGw2m9e6xuX4+Hj/NAy/8fXan8v69ev15ZdfqrCw0HMLz/r16xUVFaU33nhDt95664W2Cz/y57VPSEiQJPXr18+zrkePHurevbvKy8ub3CMCx5/X/5133tGBAwf0+uuvS5LcbrckqXv37pozZ47mz59/Qb3Cv/x57Rt98sknuuGGGzR16lTNnTv3ArprOgIUml2PHj3Uo0cPo9qvv/5ao0eP1tChQ/Xiiy+e8V7n7du36yc/+Yl+/etft8jXuPCNP69/amqq5syZo7q6OnXu3FnSd89H9O7dW1FRUX7vHRfGl2t/Pk6nUx06dFBQUJBnXeNyQ0ODX44B//HntR8+fLgkqbS0VElJSZKkyspKHT16VCkpKX45BvzLn9f/j3/8o9e3zB9++KHuuecevfvuu+rVq5dfjgH/8ee1l6SSkhJdf/31mjJlihYtWuS3/fqKAIWL1tdff61Ro0YpJSVFv/nNb/TPf/7Ts63x24Vt27bpJz/5iR566CFNmDDB89xLcHAwE0m0cibX/7bbbtP8+fOVmZmp2bNn6+DBg1qxYoWWL1/eUm3DT8rLy1VZWany8nKdOnVKRUVFkqTLLrtMXbt21Y033qiZM2cqKytLDz74oBoaGrRkyRJ16tRJo0ePbtnmcUHOd+1/9KMf6ZZbbtFDDz2k5557TpGRkcrJyVGfPn249m3A+a7/v4eko0ePSpL69u173vdG4eJ2vmt/8OBBXX/99UpPT1d2drbn73wdO3b0a0gz0uzz/gGGXnzxRbekM34aTZky5Yzbr7vuupZrHH5hcv3dbrf7448/do8YMcIdEhLi/o//+A/3kiVLWqhj+NPZ/tvetm2bp2bLli3u4cOHuy0WizsqKsp9/fXXuwsLC1uuafiFybW32+3ue+65x92tWzd3dHS0+z//8z+9prRH62Vy/b9v27ZtTGPeRpzv2j/++ONn3J6SktLsvQa53f938ygAAAAA4JyYhQ8AAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADBGgAAAAAMAQAQoAAAAADP1/n6NAY7dEJ1cAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random\n", "import matplotlib.pyplot as plt\n", "\n", " \n", "plt.figure(figsize=(10, 6))\n", "plt.hist(sampled_data_rand40P, bins=50, edgecolor='black', alpha=0.5, label=\"Rand 40P\")\n", "plt.hist(sampled_data_gas20P, bins=50, edgecolor='black', alpha=0.5, label=\"GasLogits 40P\")\n", "plt.title(\"Histogram of Rand 40P and GasLogits 40P\", fontsize=16)\n", "plt.xlabel(\"Value Ranges\", fontsize=12)\n", "plt.ylabel(\"Frequency\", fontsize=12)\n", "\n", "plt.legend()\n", "plt.grid(axis='y', alpha=0.3)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ " " ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "image/png": "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vWSz2ZSamqpbbrlFOTk5kiSXy6UHH3xQxx9/vCIiItS2bVv97W9/U1FRUfVvSg0+++wznX/++UpOTpbValXbtm11+eWX6/vvv6/Qrvx9LR8Wdej70hh69eolScrMzKy0b9OmTbrvvvs0cOBAHXXUUbJarUpISNCQIUOq/dJ38Lno8Xg0Y8YMde/eXREREUpISNAll1yiX375pdp6Vq1apXPPPdd/jvTt21cvvvhiozzXQ5144omSpF27dlXat2jRIknSVVddVWlfVFSULrzwQkllQasu+vTpI6ls2OqBAwcC6vPdd99pypQpOvnkk5WSkiKr1ao2bdroggsu0BdffFFln/J74a677joVFRVp6tSp6tKli8LCwpSSkqLRo0drz5491R7zww8/1ODBgxUdHS273a7TTjutwudFY8nPz/cPwbvvvvsCuretW7dulQJaVlaWnnzySZ133nlKS0tTRESEYmJi1LdvX82YMUMlJSVVPtaWLVt0/fXXKy0tTWFhYYqKilLHjh01fPhwLViwoMHPTyoLTOW/Z4eea6tWrVJGRobCwsI0cuTISn1Hjhwpq9WqvXv3avXq1QEf8+Ah0OWfk8CRinvQAASVJUuW6Nxzz5XH49EJJ5ygAQMGqLS0VHv27NFHH32k0tJSXXTRRZKkSy+9VN9++61WrFhR4X4lSTr++OP9/z8nJ0dnn3221q1bp5iYGJ111lmyWCz6+uuv9fDDD2vhwoX68ssvK33Rev311zVq1Cj5fD717NlTPXr00J49ezRmzBht2rSp1ucyceJEPfPMMzr11FM1fPhwbdu2zR9S/u///k/33HOP0tLSdOyxx2rgwIHat2+fVq1apRUrVujzzz/X22+/XW2oufrqq/Xee+9p8ODB6ty5s1auXKnnnntO3333nb755hsNGzZM69ev1xlnnKFjjjlG33zzjZ588klt2bJFH3/8cZ3ek3vuuUcPPfSQTCaTTj31VHXo0EG//PKL3nzzTb3zzjt6/vnndf3110uS/4v01q1bq3xfGkN+fr4kVXk/1OzZszV//nwdf/zx6tmzp2JjY7Vz504tXbpUS5Ys0bfffqvZs2dX+bgej0fnnXeeVq5cqdNPP11du3bVd999p0WLFmnp0qX68ccfK50jb731lq688kqVlpaqR48e6tmzp3bt2qUbbrhBGzdubNTnLZV9OZek1NTUCtsLCgq0detWSVLfvn2r7Nu3b1/93//9n3788cc6HbP89ZaksLCwgPpMmzZNS5cuVffu3dWnTx9FRkbq999/999n9Pjjj+tvf/tblX0dDodOPfVU7dy5U6eddpp69OihVatW6ZVXXtHXX3+tn376qdK9XHPmzNHkyZMllV3169y5s7Zs2aIRI0b4tzeWpUuXqqCgQCaTSVdffXW9H+ezzz7T3/72Nx111FHq0qWLTjnlFGVlZWn16tW666679N///ldLly6t8Jr//PPPGjhwoPLz83Xcccfp/PPPV0hIiHbv3q1ly5b5P58aQ3XnWvn50717d4WHh1fqFxERoe7du+vHH3/Ujz/+qAEDBgR8zPJzLdDzDDhstfQYSwCtU0PvQSu/R2nw4MEVtp955pmGJOPVV1+t9Fh5eXnGqlWrKmwL5B60yy+/3JBk9O/f3zhw4IB/e0FBgXHuuedWea/Unj17/PfePPHEExX2ff311/57gar6GC3fHhMTU6nect99952xYcOGStv37NljnHDCCYYk480336ywr/xeGklG586djR07dvj3HThwwDjmmGMMSUbPnj2Nk08+ucJz3bZtmxEXF2dIMpYvX17ta3WoTz75xJBkhIeHG59//nmFff/+978NSYbFYjF+/vnnCvsacm9gTfeglZSUGGlpaYYkY9asWZX2f/XVV8bvv/9eafvmzZuNdu3aGZKM1atXV9hXfi5KMk488cQK9woVFxcb6enphiTjpptuqtBv3759RnR0tCHJmD17doV9X3zxhREeHl7ne9BqUlRU5H/ukydPrrBv/fr1/mPl5eVV2f/dd981JBmJiYkVttd0D5phGMall15qSDI6dOgQcK0ff/yxsXfv3krbV65cacTExBgWi8XYvXt3lXVIMtLT0w2Hw+Hfl5OTY/Tu3duQZDzyyCMV+v30009GSEiIYTabjbfeeqvCvldffdUwmUyNeg/aPffc4/8dbIhNmzZV+fmQk5NjDB06tMr7LMeMGWNIMh566KFK/ZxOp/H11183qKZy5b/3JpPJ+Omnnyrsmzx5siHJGDFiRLX9L7zwQkOScfvtt1fYXt1/DwzDMPbu3ev/fbr33nsb5XkArRUBDUC9lAe0QP8FGtC6detmSDJycnICqqO2IPDHH38YZrO5yi8ahmEYu3fv9n+RXrFihX/79OnTDUnGgAEDqnzc22+/vdaANn369ICew6E+++wzQ5Jx2WWXVdh+cED76KOPKvWbPXu2/0tVVeFv4sSJ1U4wUZ2zzz67ykBQ7vzzzzckGTfeeGOF7Y0d0EpKSowff/zRGD58uCHJOOecc4zi4uI6Pe5zzz1nSDLuuOOOCtvLz0WTyWSsW7euUr9vv/3WkGQcffTRFbY/9NBDhiTjlFNOqfJ4f/vb3xo1oJW/Lm3btq0Qvg3DMFasWOE/lsfjqbL/559/7p/44WBVBTSv12ts2bKlwnM4NITWV/lkEHPnzq2yjsjIyCrD3euvv25IMs4666wK22+44QZDknH55ZdXebyLLrqoUQPauHHjanzfd+/ebYwePbrSv0WLFgV8jF9//dU/qcvBzjvvPEOS8cMPPzTkKdRoz549/ok+Dv2jhGEYxo033mhIMkaNGlXtY1x11VVV9q8qoBUWFhpff/21cdJJJ/nf/507dzba8wFaI4Y4AmiQgQMHVjtttyR9+umnVd4rVJ2TTz5ZmzZt0qhRozRt2jSdcsopCg2t/0fVsmXL5PP5dNJJJ/nvqTjYUUcdpfT0dP9wolNPPVWS9PXXX0uSRo0aVeXjjho1So899liNxy6fsrw6LpdLn3/+udasWaP9+/fL5XLJMAwVFBRIkn799dcq+4WGhmro0KGVtpff7N+hQwf16NGj2v179+6tsa5yXq9XK1askFS2NllVxo4dqw8//FBLly4N6DHr4uWXX9bLL79cafstt9yiuXPnVjuFd2FhoT755BP9+OOPOnDggNxutyRp3759kqp/XTt06KATTjih0vauXbtKUqX7n7766itJ1Z8jo0ePbrTpwh988EG9/PLLCg8P15tvvqmEhIRGedyD/fHHH1UOqTWbzZo0aZImTZpUp8fLzs7WRx99pJ9//lm5ubn+tevKh85V9z707du30rA6qfb3obrhhqNHj26Se9Gqk5ubW+V526lTJ40YMaLCttLSUn311VdauXKl9u3bp+LiYhllfzyXVPk1Ovnkk/Xxxx9r3LhxeuCBBzR48OAqhxnWV35+vs4//3zt3btXJ598cpNNd//AAw/ogQceqLQ9OTlZCxcuVPv27ZvkuEBrQUAD0CA33HBDtV/epbKFSesS0B599FGtX79en3zyiT755BNFRETopJNO0hlnnKFRo0b5v6QFqvzL3MEzjR2qc+fOFdpK0u7duyWp2gkAApkYoKY23377rS6//HL/bIdVOfjen4OlpqZWGVrLJyGobmbM6OhoSap28oFDZWdn+9tW9/pV9do1loPvX8vPz9f333+vXbt2ad68eerZs6duvfXWSn0++OADjRkzRtnZ2dU+bnWva3WvW0xMjKSyQH2w8nOkutempnOuLmbPnq17771XYWFhWrRokX+dtIOVv7dS2WQeVa23Vb7YdPnzOdTB66CZTCZFRUXp2GOP1fnnn1/n5/LCCy/otttuq3FSmvq+D4eev831PpRLTEyUVDbJR1V69OhRYaHmG264QfPnz6/UbsuWLbr44otrvFfx0Nfojjvu0PLly/XFF19o2LBhslgsOuGEE3T66afriiuuUL9+/erzlCSVnR/nnnuufvzxR5144on69NNPqwx/5edaTe9tbefaweugWSwWxcfHq0+fPrrgggsOu7UNgfogoAEIKikpKfr+++/19ddf64svvtCKFSu0evVqrVixQo888ogeffRR3Xnnnc1WT3WTdAQyI2F1XzScTqdGjBihzMxMjRkzRuPGjVOXLl0UExOjkJAQ/fbbbzruuOMqfMk7WHVXjgLd31oMGjSowuLjpaWlmjp1qmbNmqVJkyZp4MCBFa547dmzR5dffrmKi4s1ZcoUjRo1Sp06dVJUVJTMZrM+//xzpaen1/t1bQlPPfWU/v73v8tqteqdd97RsGHDqmzXsWNH///fuXOnevbsWalN+Wx81f3hIDExsVEWe1+7dq1uvvlmhYSEaMaMGbrgggvUoUMH2Ww2mUwmPf/887r55ptb1ftwsJNOOklS2aLiubm5iouLq9fjXHrppdq4caPOP/98TZkyRd26dVNMTIwsFovcbneVE2XYbDYtXrxYa9as0aeffqqVK1dq5cqV+v777zV79mzdeuutmjt3bp1rKV9YfuXKlerVq5cWL15c7fMqP39q+uNSbefaiBEjdP/999e5TuBIEdyfggCOSOVTnj/00ENaunSpcnJy9Oyzz8pkMmnatGn6/fffA36so446SlLZl6nqlO8rb3vw/69uuueGTAO9bNkyZWZm6qSTTtKLL76ofv36KS4uzr/uVfkQsJaWkJDg/5JY3etX1WvXVMq/8J9++unyeDz+9bnKffDBByouLtbFF1+sGTNmqFevXoqJifF/4W/s17UpzxFJmjt3rv76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n5ycrEGDBmnWrFk6+uijG73uuiCgAQAAAEEoyh6vmITkZjlWTh3bb9u2TQMHDlRsbKweeeQR9ezZU2FhYdqwYYOef/55HXXUUbrwwgsbvU6n06kffvhB99xzj0444QTl5ubqb3/7my688EJ9//33/najRo3Svn37tHjxYnk8Ho0ZM0Y33XSTFi5cWOHxfv31V0VHR2vLli266aabdMEFF2j9+vUKCQlp9NoDRUADAAAAUCe33nqrQkND9f333ysyMtK//eijj9ZFF10kwzD822bPnq0FCxZo27Ztio+P1wUXXKCZM2f6r2b98ccfmjBhgpYvXy63261OnTpp1qxZOu+88yod1263a/HixRW2Pf300zr55JO1c+dOdejQQb/88os+/fRTrVmzRn379pUkPfXUUzrvvPP02GOPVbjSlpycrNjYWKWmpuree+/VqFGjtHXrVh133HGN+nrVBbM4AgAAAAhYdna2Pv/8c40fP75CODvYwQtum81mPfnkk9q4caNefvllffnll5oyZYp///jx4+VyubRs2TJt2LBBM2bM8Ie3QDgcDplMJsXGxkqSVq1apdjYWH84k6QhQ4bIbDZr9erV1T5ORESEpLL16VoSV9AAAAAABGzr1q0yDKPSVabExESVlJRIKgtdM2bMkCRNmjTJ36ZTp0566KGHdMstt+iZZ56RJO3cuVMjR45Uz549JalO94CVlJTozjvv1JVXXqmYmBhJZffGJSdXHBoaGhqq+Ph4ZWRkVPk4+/bt02OPPaajjjqqRa+eSVxBAwAAANAIvvvuO61bt07du3eXy+Xyb//iiy909tln66ijjlJ0dLSuueYaZWdn+5cR+Otf/6qHHnpIAwcO1H333af169cHdDyPx6O//OUvMgxDzz77bL1qbteunSIjI9W2bVsVFRXpnXfekdVqrddjNRYCGgAAAICAdenSRSaTSb/++muF7UcffbS6dOniHyooSTt27ND555+vXr166Z133tHatWs1d+5cSf8bSnjDDTdo27Ztuuaaa7Rhwwb17dtXTz31VI01lIezP/74Q4sXL/ZfPZOklJQU7d+/v0J7r9ernJwcpaSkVNj+zTffaP369crPz9e6devUv3//ur8gjYwhjgAAAE2gIQsNs2gwgllCQoLOOeccPf3005o4cWK196FJ0tq1a+Xz+fSvf/1LZnPZtaE3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XXaZpk+fXqcZC5vKo48+qnfffVebN29WRESETj31VM2YMUPHHXecv01JSYn+/ve/6/XXX5fL5VJ6erqeeeYZ/3JbO3bsqLA8V3x8vPr06aMZM2boxBNPbLLaCWgAAKBO6vPlsT5fAIEjXVJspFITmmu5psDX6So3bNgwLViwQB6PR2vXrtXo0aNlMpk0Y8aMJqivbr7++muNHz9e/fr1k9fr1bRp0zR06FBt2rRJkZFln1u33XabPvroI7311luy2+2aMGGCLrnkEq1YsaLCY33xxRfq3r27du/erb/+9a8699xztXnzZsXGxjZJ7QQ0AACOYPUZqpiZmSm3x1OPL491/wIIIHiFhYX5l6Fq3769hgwZosWLF/sDWnZ2tiZMmKBly5YpNzdXnTt31rRp03TllVf6H+OMM85Qr169FB4ern//+9+yWq265ZZbdP/99/vbbNmyRWPHjtV3332no48+Wk888USttX366acVfn7ppZeUnJystWvX6vTTT5fD4dD8+fO1cOFCnXXWWZKkBQsWqGvXrvr22291yimn+PsmJCQoJSVFKSkpeuyxxzRw4ECtXr1a6enp9X7takJAAwDgCFXfoYoFRU5t+22TSgaxiDKAMj///LNWrlypjh07+reVlJSoT58+uvPOOxUTE6OPPvpI11xzjTp37qyTTz7Z3+7ll1/W5MmTtXr1aq1atUrXXXedBg4cqHPOOUc+n0+XXHKJ2rRpo9WrV8vhcGjSpEl1rs/hcEgqG6YoSWvXrpXH49GQIUP8bY4//nh16NBBq1atqhDQDhYRESFJcrvdda4hUAQ0AACOUPW9z2XTjv16aqNLXo+3CasDEOw+/PBDRUVFyev1yuVyyWw26+mnn/bvP+qoo3T77bf7f544caI+++wzvfnmmxUCWq9evXTfffdJko455hg9/fTTWrJkic455xx98cUX2rx5sz777DP/slmPPPKIzj333IDr9Pl8mjRpkgYOHOiflT0jI0NWq7XSMMU2bdooIyOjysfJy8vTgw8+qKioqAr1NzYCGgAAR7i6DlXMzC1swmoAtBZnnnmmnn32WRUVFWnOnDkKDQ3VyJEj/ftLS0v1yCOP6M0339SePXvkdrvlcrlks9kqPE6vXr0q/Jyamqr9+/dLkn755Re1b9/eH84kacCAAXWqc/z48fr555+1fPnyuj5FSWVL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ajXCw8PR39+PK1euQKVSoby8HPPmzcO2bdtw7tw5PPvss/D29kZHRwc++ugjeHp6Gpz+SEREY8cZNCIisjiDRVloaKjRYReZmZl44403UF5ejvT0dNTV1eHkyZPCfql/ExgYiMOHD6OnpwebNm3CiRMncOTIETz++ONGfffv348DBw6go6MDmZmZ2LJlCyorK7FixQqEh4ePOreUlBQ4OztDoVCMOZ97SUtLw549e9DW1oaMjAxUV1fjxIkTcHFxgYODg9DPysoKpaWlUCgUaGxsREZGBnJzc3HhwgWkp6cLh4XEx8dj+vTp+PTTT7Fu3ToUFBQgMjISlZWVcHZ2HnWcRERkTKQfza5iIiIi+k/R6XSQSCRYvHixySWNRERkGTiDRkRE9IC5deuW0b62w4cPQ6vVIjo6emKCIiKiYeEMGhER0QOmqqoKGzduxNKlS+Hm5oa6ujoUFhYiMDAQFy9eNHjRNRERWRYeEkJERPSA8fHxgZeXF/bs2QOtVgtXV1e88sorUCgULM6IiCwcZ9CIiIiIiIgsBPegERERERERWQgWaERERERERBaCBRoREREREZGFYIFGRERERERkIVigERERERERWQgWaERERERERBaCBRoREREREZGFYIFGRERERERkIf4HuB5Or5UfRI4AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random\n", "import matplotlib.pyplot as plt\n", "\n", " \n", " \n", " \n", "plt.figure(figsize=(10, 6))\n", "plt.hist(sampled_data_gas20P_list, bins=50, edgecolor='black', alpha=0.5, label=\"Gas 20P\")\n", "plt.hist(sampled_data_rand20P, bins=50, edgecolor='black', alpha=0.5, label=\"Rand 20P\")\n", "plt.title(\"Histogram of Rand 20P and Gas 20P\", fontsize=16)\n", "plt.xlabel(\"Value Ranges\", fontsize=12)\n", "plt.ylabel(\"Frequency\", fontsize=12)\n", "\n", "plt.legend()\n", "plt.grid(axis='y', alpha=0.3)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "# # 假设已有数据列表\n", "# data = data_1\n", "# # 获取数据的最小值和最大值\n", "# min_value = min(x['yes_target_logprob_7B_NImg'] for x in data)\n", "# max_value = max(x['yes_target_logprob_7B_NImg'] for x in data)\n", "\n", "# # 按分布划分为 6 段\n", "# num_splits = 6\n", "# interval_size = (max_value - min_value) / num_splits\n", "# intervals = [(min_value + i * interval_size, min_value + (i + 1) * interval_size) for i in range(num_splits)]\n", "\n", "# # 按区间划分数据\n", "# split_lists = [[] for _ in range(num_splits)]\n", "# for item in data:\n", "# value = item['yes_target_logprob_7B_NImg']\n", "# for idx, (low, high) in enumerate(intervals):\n", "# if low <= value < high or (idx == num_splits - 1 and value == high): # 包含最后一个区间的上界\n", "# split_lists[idx].append(item)\n", "# break\n", "\n", "# # # 输出每个组\n", "# # for idx, sublist in enumerate(split_lists):\n", "# # print(f\"Group {idx + 1} ({intervals[idx][0]:.2f} ~ {intervals[idx][1]:.2f}): {sublist}\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# len(split_lists[0]) + len(split_lists[1]) + len(split_lists[2]) + len(split_lists[3]) + len(split_lists[4]) + len(split_lists[5])\n", "\n", "# len(split_lists[0]) , len(split_lists[1]) , len(split_lists[2]) , len(split_lists[3]) , len(split_lists[4]) , len(split_lists[5])" ] }, { "cell_type": "code", "execution_count": 278, "metadata": {}, "outputs": [], "source": [ "# from collections import defaultdict\n", "# import numpy as np\n", "# from tqdm import tqdm\n", "\n", "# # 预处理数据,将数据按区间分组\n", "# interval_groups = defaultdict(list)\n", "# for x in data_1:\n", "# value = x['yes_target_logprob_7B_NImg']\n", "# for idx, (begin, end) in enumerate(intervals):\n", "# if begin <= value < end:\n", "# interval_groups[idx].append(x)\n", "# break\n", "\n", "# # 在选定区间内采样\n", "# selected_samples = []\n", "# for i in tqdm(chosen_intervals):\n", "# interval_data = interval_groups[i]\n", "# if interval_data: # 确保区间内有数据\n", "# selected_samples.append(np.random.choice(interval_data))" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "data = read_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/llava_image_tune_Logits_Rand_7B_NImg_Gas_40P.json')\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'id': 188548,\n", " 'conversations': [{'from': 'human',\n", " 'value': \"############\\n\\nIs the woman wearing a hat?\\nAnswer the question using a single word or phrase. Yes Is the woman's glass full? No Is this an outdoor scene? Yes ############\\n \\nDoes the previous paragraph demarcated within ### and ###\\ncontain informative signal for visual instruction tuning a vision-language model?\\nAn informative datapoint should be well-formatted, contain some\\nusable knowledge of the world, and strictly NOT have any harmful,\\nracist, sexist, etc. content.\\nOPTIONS:\\n- yes\\n- no\\n\"},\n", " {'from': 'gpt', 'value': 'response: yes'}],\n", " 'ori_conversations': [{'from': 'human',\n", " 'value': '\\nIs the woman wearing a hat?\\nAnswer the question using a single word or phrase.'},\n", " {'from': 'gpt', 'value': 'Yes'},\n", " {'from': 'human', 'value': \"Is the woman's glass full?\"},\n", " {'from': 'gpt', 'value': 'No'},\n", " {'from': 'human', 'value': 'Is this an outdoor scene?'},\n", " {'from': 'gpt', 'value': 'Yes'}],\n", " 'Old_Path': 'llava_image_tune/coco/train2017/000000439784.jpg',\n", " 'yes_target_logprob_7B_NImg': -16.25,\n", " 'logits_shape': [1, 32000]}" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[0]" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "249850" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(data)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "for i in data:\n", " if 'Old_Path' in i:\n", " i['conversations'] = i['ori_conversations']\n", " i[\"image\"] = i.pop(\"Old_Path\")\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'id': 425326,\n", " 'image': 'llava_image_tune/vg/VG_100K/2341248.jpg',\n", " 'conversations': [{'from': 'human',\n", " 'value': '\\nPlease provide the bounding box coordinate of the region this sentence describes: section of metal railing in snow.'},\n", " {'from': 'gpt', 'value': '[0.33, 0.54, 0.72, 0.74]'},\n", " {'from': 'human',\n", " 'value': 'Please provide a short description for this region: [0.62, 0.41, 0.77, 0.53].'},\n", " {'from': 'gpt', 'value': 'Pants worn by human.'},\n", " {'from': 'human',\n", " 'value': 'Please provide a short description for this region: [0.28, 0.42, 0.42, 0.52].'},\n", " {'from': 'gpt', 'value': 'Blue sky with no clouds.'},\n", " {'from': 'human',\n", " 'value': 'Please provide the bounding box coordinate of the region this sentence describes: blue sky with no clouds.'},\n", " {'from': 'gpt', 'value': '[0.71, 0.22, 0.8, 0.28]'},\n", " {'from': 'human',\n", " 'value': 'Please provide a short description for this region: [0.53, 0.27, 0.87, 0.59].'},\n", " {'from': 'gpt', 'value': 'Person doing trick on rail.'},\n", " {'from': 'human',\n", " 'value': 'Please provide the bounding box coordinate of the region this sentence describes: two feet on bright colored snowboard.'},\n", " {'from': 'gpt', 'value': '[0.57, 0.52, 0.76, 0.55]'},\n", " {'from': 'human',\n", " 'value': 'Please provide the bounding box coordinate of the region this sentence describes: yellow skate board on wall.'},\n", " {'from': 'gpt', 'value': '[0.57, 0.52, 0.8, 0.55]'},\n", " {'from': 'human',\n", " 'value': 'Please provide a short description for this region: [0.56, 0.51, 0.76, 0.55].'},\n", " {'from': 'gpt', 'value': 'A snowboard on the fence.'},\n", " {'from': 'human',\n", " 'value': 'Please provide a short description for this region: [0.56, 0.3, 0.88, 0.43].'},\n", " {'from': 'gpt', 'value': 'Man wearing two white mittens.'},\n", " {'from': 'human',\n", " 'value': 'Please provide a short description for this region: [0.81, 0.22, 0.9, 0.29].'},\n", " {'from': 'gpt', 'value': 'Blue sky with no clouds.'}]}" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[200000]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# write_json('/inspire/hdd/ws-ba572160-47f8-4ca1-984e-d6bcdeb95dbb/a100-maybe/albus/DataSet/LLaVA-Select/llava_image_tune_Logits_Rand_7B_NImg_Gas_40P.json',data)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "llava", "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.10.16" } }, "nbformat": 4, "nbformat_minor": 2 }