Files

634 lines
198 KiB
Plaintext
Raw Permalink Normal View History

2024-11-27 00:58:19 +03:30
{
"cells": [
{
"cell_type": "markdown",
"id": "2111825f",
"metadata": {
"id": "2111825f"
},
"source": [
2024-11-27 10:02:00 +03:30
"<h1 align='center' dir='rtl' style='color:yellow'>IpsofactoModel</h1>"
2024-11-27 00:58:19 +03:30
]
},
{
"cell_type": "markdown",
"id": "1ab61eab",
"metadata": {
"id": "1ab61eab"
},
"source": [
"<h2 align='center' dir='rtl'>فراخوانی کتابخانه های مورد نیاز</h2>"
]
},
{
"cell_type": "code",
2024-11-27 10:02:00 +03:30
"execution_count": 2,
2024-11-27 00:58:19 +03:30
"id": "b97c8a8b",
"metadata": {
"id": "b97c8a8b"
},
2024-11-27 10:02:00 +03:30
"outputs": [],
2024-11-27 00:58:19 +03:30
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import tensorflow as tf\n",
"from tensorflow import keras\n",
"from tensorflow.keras.layers import Dense, Input, Flatten, Conv2D\n",
"from tensorflow.keras.models import Model\n",
"from tensorflow.keras.datasets import mnist"
]
},
{
"cell_type": "markdown",
"id": "79ef7ea0",
"metadata": {
"id": "79ef7ea0"
},
"source": [
"<h2 align='center' dir='rtl'> لود کردن دیتاست MNIST</h2>"
]
},
{
"cell_type": "code",
2024-11-27 10:02:00 +03:30
"execution_count": 3,
2024-11-27 00:58:19 +03:30
"id": "511bc7e3",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "511bc7e3",
"outputId": "b627dc6a-3c34-49c0-a89e-698f2e4ead7e"
},
2024-11-27 10:02:00 +03:30
"outputs": [],
2024-11-27 00:58:19 +03:30
"source": [
"train_set, test_set = mnist.load_data()"
]
},
{
"cell_type": "markdown",
"id": "8af0ed71",
"metadata": {
"id": "8af0ed71"
},
"source": [
"<h2 align='center' dir='rtl'>طراحی لایه های استخراج ویژگی و سنجش نسبت ها</h2>"
]
},
{
"cell_type": "markdown",
"id": "bb994741",
"metadata": {
"id": "bb994741"
},
"source": [
"<h3 align='center' dir='rtl'>لایه استخراج ویژگی</h3>"
]
},
{
"cell_type": "code",
2024-11-27 10:02:00 +03:30
"execution_count": 4,
2024-11-27 00:58:19 +03:30
"id": "8494ca6d",
"metadata": {
"id": "8494ca6d"
},
"outputs": [],
"source": [
"# لایه استخراج ویژگی\n",
"kernel_initializer = 'normal'\n",
"activation = \"relu\"\n",
"\n",
"dtype = tf.float32\n",
"\n",
"\n",
2024-11-27 10:02:00 +03:30
"def feature_extractor():\n",
2024-11-27 00:58:19 +03:30
" shape=(28,28,1)\n",
" chs=1\n",
" inputs = Input(shape)\n",
" layer = Conv2D(filters=32*chs, kernel_size=(3,3), activation=activation, kernel_initializer=kernel_initializer)(inputs)\n",
" layer = Conv2D(filters=16*chs, kernel_size=(3,3), strides=(2, 2), activation=activation, kernel_initializer=kernel_initializer)(layer)\n",
" layer = Conv2D(filters=8*chs, kernel_size=(3,3), activation=activation, kernel_initializer=kernel_initializer)(layer)\n",
" layer = Conv2D(filters=4*chs, kernel_size=(3,3), strides=(2, 2), activation='linear', kernel_initializer=kernel_initializer)(layer)\n",
" layer = Conv2D(filters=64*2, kernel_size=(4,4), activation='softplus', kernel_initializer=kernel_initializer)(layer)\n",
" layer = Flatten()(layer)\n",
"\n",
" model = Model(inputs, layer)\n",
"\n",
" return model"
]
},
{
"cell_type": "markdown",
"id": "ed717db9",
"metadata": {
"id": "ed717db9"
},
"source": [
"<h3 align='center' dir='rtl'>لایه سنجش نسبت ها</h3>"
]
},
{
"cell_type": "code",
2024-11-27 10:02:00 +03:30
"execution_count": 5,
2024-11-27 00:58:19 +03:30
"id": "f63a27eb",
"metadata": {
"id": "f63a27eb"
},
"outputs": [],
"source": [
"# لایه سنجش نسبت ها\n",
"kernel_initializer = 'normal'\n",
"activation = \"relu\"\n",
"\n",
"dtype = tf.float32\n",
"\n",
"\n",
2024-11-27 10:02:00 +03:30
"def comparator():\n",
2024-11-27 00:58:19 +03:30
" shape=(64*2+10,)\n",
" chs=1\n",
" inputs = Input(shape)\n",
" layer = Flatten()(inputs)\n",
" layer = Dense(32, activation='relu', use_bias=True, kernel_initializer=kernel_initializer)(layer)\n",
" layer = Dense(16, activation='relu', use_bias=True, kernel_initializer=kernel_initializer)(layer)\n",
" log_prob = Dense(10, activation='softmax', use_bias=True, kernel_initializer=kernel_initializer)(layer)\n",
"\n",
" model = Model(inputs, log_prob)\n",
"\n",
" return model"
]
},
{
"cell_type": "markdown",
"id": "614adfad",
"metadata": {
"id": "614adfad"
},
"source": [
"<h2 align='center' dir='rtl'>طراحی‌ و ساختن شبکه عصبی</h2>"
]
},
{
"cell_type": "code",
2024-11-27 10:02:00 +03:30
"execution_count": 6,
2024-11-27 00:58:19 +03:30
"id": "6a14ab0a",
"metadata": {
"id": "6a14ab0a"
},
"outputs": [],
"source": [
2024-11-27 10:02:00 +03:30
"def combiner(f0, f1, lbl1):\n",
2024-11-27 00:58:19 +03:30
" # ترکیب ویژگی های کلاس مورد مطالعه با کلاس های دیگر\n",
"\n",
" inp = f0 * f1\n",
" return tf.concat([inp, lbl1], axis=1)\n",
"\n",
"\n",
"class InfluenceModel(keras.Model):\n",
2024-11-27 10:02:00 +03:30
" def __init__(self, feature_extractor, comparator):\n",
2024-11-27 00:58:19 +03:30
" super(InfluenceModel, self).__init__()\n",
" # لایه استخراج ویژگی\n",
2024-11-27 10:02:00 +03:30
" self.feature_extractor = feature_extractor\n",
2024-11-27 00:58:19 +03:30
" # لایه تمام متصل (سنجش نسبت ها)\n",
2024-11-27 10:02:00 +03:30
" self.comparator = comparator\n",
2024-11-27 00:58:19 +03:30
"\n",
" self.loss = keras.losses.SparseCategoricalCrossentropy(from_logits=False)\n",
" self.metric = keras.metrics.SparseCategoricalAccuracy()\n",
"\n",
"\n",
" def compile(self, optimizer_1, optimizer_2):\n",
" super(InfluenceModel, self).compile()\n",
" self.optimizer_1 = optimizer_1\n",
" self.optimizer_2 = optimizer_2\n",
"\n",
" def call_at_zero(self, x):\n",
" # جدا کردن تصاویر\n",
" imgs = x[0]\n",
" # جدا کردن برچسب\n",
2024-11-27 10:02:00 +03:30
" labels = tf.one_hot(x[1], 10)\n",
2024-11-27 00:58:19 +03:30
"\n",
" # استخراج ویژگی های تصاویر\n",
2024-11-27 10:02:00 +03:30
" features = self.feature_extractor(imgs)\n",
2024-11-27 00:58:19 +03:30
"\n",
" n_feat = features.shape[0]\n",
" # جدا سازی ویژگی های هر تصویر\n",
" features = tf.split(features, n_feat, axis=0)\n",
"\n",
" # ویژگی های استحراج شده تصویر مورد مطالعه\n",
" f0 = features[0]\n",
"\n",
" res_mtx = []\n",
" res_row = []\n",
" for j in range(1, n_feat):\n",
" # ترکیب هر نمونه با تصویر مورد مطالعه\n",
" f1 = features[j]\n",
2024-11-27 10:02:00 +03:30
" lbl1 = labels[j:j+1,:]\n",
" inp = combiner(f0, f1, lbl1)\n",
2024-11-27 00:58:19 +03:30
"\n",
" res_row += [inp]\n",
"\n",
" # محاسبه نسبت هر نمونه با تصویر مورد مطالعه\n",
" res_row = tf.concat(res_row, axis=0)\n",
2024-11-27 10:02:00 +03:30
" res_mtx = self.comparator(res_row)\n",
2024-11-27 00:58:19 +03:30
"\n",
" # میانگین بر روی نمونه ها\n",
" res = tf.reduce_sum(res_mtx, axis=0) / (n_feat-1)\n",
" return res, res_mtx\n",
"\n",
" # Feed - Forward\n",
" def call(self, x):\n",
"\n",
" # جدا کردن تصاویر\n",
" imgs = x[0]\n",
" # جدا کردن برچسب\n",
2024-11-27 10:02:00 +03:30
" labels = tf.one_hot(x[1], 10)\n",
2024-11-27 00:58:19 +03:30
"\n",
" # استخراج ویژگی های تصاویر\n",
2024-11-27 10:02:00 +03:30
" features = self.feature_extractor(imgs)\n",
2024-11-27 00:58:19 +03:30
"\n",
" # جدا سازی ویژگی های هر تصویر\n",
" n_feat = features.shape[0]\n",
" features = tf.split(features, n_feat, axis=0)\n",
"\n",
"\n",
" res_mtx = []\n",
" # ساخت جفت های ترکیب شده به ازای هر تصویر برای اموزش مدل\n",
" for i in range(n_feat):\n",
" res_row = []\n",
" for j in range(n_feat):\n",
" f0 = features[i]\n",
" f1 = features[j]\n",
2024-11-27 10:02:00 +03:30
" lbl1 = labels[j:j+1,:]\n",
" inp = combiner(f0, f1, lbl1)\n",
2024-11-27 00:58:19 +03:30
" res_row += [inp]\n",
" res_row = tf.concat(res_row, axis=0)\n",
"\n",
" # محاسبه سنجش تاثیر حضور تصاویر دیگر در پیش بینی تصویر مورد مطالعه\n",
2024-11-27 10:02:00 +03:30
" res_mtx += [self.comparator(res_row)]\n",
2024-11-27 00:58:19 +03:30
"\n",
2024-11-27 10:02:00 +03:30
" # میانگین گیری بر روی نتایج حاصل\n",
2024-11-27 00:58:19 +03:30
" res_mtx = tf.stack(res_mtx)\n",
2024-11-27 10:02:00 +03:30
"\n",
2024-11-27 00:58:19 +03:30
" res_mtx = tf.transpose(res_mtx, [2, 1, 0])\n",
2024-11-27 10:02:00 +03:30
"\n",
2024-11-27 00:58:19 +03:30
" res_mtx -= tf.linalg.diag(tf.linalg.diag_part(res_mtx))\n",
2024-11-27 10:02:00 +03:30
"\n",
2024-11-27 00:58:19 +03:30
" res_mtx = tf.transpose(res_mtx, [2, 1, 0])\n",
2024-11-27 10:02:00 +03:30
"\n",
2024-11-27 00:58:19 +03:30
" res = tf.reduce_sum(res_mtx, axis=1) / (n_feat-1)\n",
"\n",
" return res, res_mtx\n",
"\n",
" def train_step(self, x):\n",
" # تعریف تابع ضرر\n",
" loss = keras.losses.SparseCategoricalCrossentropy(from_logits=True)\n",
"\n",
" # محاسبه گرادیان و اعمال گرادیان\n",
" with tf.GradientTape() as tape_1, tf.GradientTape() as tape_2:\n",
" output, _ = self.call(x)\n",
" loss_batch = loss(x[1], output)\n",
2024-11-27 10:02:00 +03:30
" gradient_1 = tape_1.gradient(loss_batch, self.feature_extractor.trainable_variables)\n",
" self.optimizer_1.apply_gradients(zip(gradient_1, self.feature_extractor.trainable_variables))\n",
" gradient_2 = tape_2.gradient(loss_batch, self.comparator.trainable_variables)\n",
" self.optimizer_2.apply_gradients(zip(gradient_2, self.comparator.trainable_variables))\n",
2024-11-27 00:58:19 +03:30
"\n",
" # اعمال معیار ارزیابی\n",
" metric_batch = self.metric(x[1], output)\n",
"\n",
" return {\"loss\": loss_batch, \"metric\": metric_batch}\n"
]
},
{
"cell_type": "markdown",
"id": "c1a0891a",
"metadata": {
"id": "c1a0891a"
},
"source": [
"<h2 align='center' dir='rtl'>اموزش مدل</h2>"
]
},
{
"cell_type": "markdown",
"id": "67d4458d",
"metadata": {
"id": "67d4458d"
},
"source": [
"<h3 align='center' dir='rtl'>اتصال لایه ها</h3>"
]
},
{
"cell_type": "code",
2024-11-27 10:02:00 +03:30
"execution_count": 8,
2024-11-27 00:58:19 +03:30
"id": "f6ed77af",
"metadata": {
"id": "f6ed77af"
},
"outputs": [],
"source": [
2024-11-27 10:02:00 +03:30
"m1 = feature_extractor()\n",
"m2 = comparator()\n",
2024-11-27 00:58:19 +03:30
"\n",
"model = InfluenceModel(m1, m2)"
]
},
{
"cell_type": "markdown",
"id": "16f4ec08",
"metadata": {
"id": "16f4ec08"
},
"source": [
"<h3 align='center' dir='rtl'>کامپایل کردن مدل</h3>"
]
},
{
"cell_type": "code",
2024-11-27 10:02:00 +03:30
"execution_count": 9,
2024-11-27 00:58:19 +03:30
"id": "0bbddc92",
"metadata": {
"id": "0bbddc92"
},
"outputs": [],
"source": [
"optimizer_1 = tf.optimizers.Adam(learning_rate=1e-3, beta_1=0.9)\n",
"optimizer_2 = tf.optimizers.Adam(learning_rate=1e-3, beta_1=0.9)\n",
"\n",
"m1.compile(optimizer_1)\n",
"m2.compile(optimizer_2)\n",
"model.compile(optimizer_1, optimizer_2)\n"
]
},
{
"cell_type": "markdown",
"id": "ac325eb7",
"metadata": {
"id": "ac325eb7"
},
"source": [
"<h3 align='center' dir='rtl'>اموزش مدل</h3>"
]
},
{
"cell_type": "code",
2024-11-27 10:02:00 +03:30
"execution_count": 10,
2024-11-27 00:58:19 +03:30
"id": "c5e948ab",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "c5e948ab",
"outputId": "137ff429-1ccf-4e2d-dc78-6247b58e893f",
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/3\n",
2024-11-27 10:02:00 +03:30
"1875/1875 [==============================] - 274s 119ms/step - loss: 1.9457 - metric: 0.5935\n",
2024-11-27 00:58:19 +03:30
"Epoch 2/3\n",
2024-11-27 10:02:00 +03:30
"1875/1875 [==============================] - 232s 124ms/step - loss: 1.6846 - metric: 0.7640\n",
2024-11-27 00:58:19 +03:30
"Epoch 3/3\n",
2024-11-27 10:02:00 +03:30
"1875/1875 [==============================] - 236s 126ms/step - loss: 1.5131 - metric: 0.9450\n"
2024-11-27 00:58:19 +03:30
]
},
{
"data": {
"text/plain": [
2024-11-27 10:02:00 +03:30
"<keras.callbacks.History at 0x7fd574be5550>"
2024-11-27 00:58:19 +03:30
]
},
2024-11-27 10:02:00 +03:30
"execution_count": 10,
2024-11-27 00:58:19 +03:30
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.fit(train_set[0], train_set[1], epochs=3, batch_size=32)\n"
]
},
{
"cell_type": "markdown",
"id": "a42879cd",
"metadata": {
"id": "a42879cd"
},
"source": [
"<h2 align='center' dir='rtl'>اماده سازی نمونه ها و محاسبه اهمیت هر نمونه نسبت به حضور دیگر نمونه ها</h2>"
]
},
{
"cell_type": "code",
2024-11-27 10:02:00 +03:30
"execution_count": 11,
2024-11-27 00:58:19 +03:30
"id": "2a669978",
"metadata": {
"id": "2a669978"
},
"outputs": [],
"source": [
"def get_samples(sample_ind, batch_size=64):\n",
"\n",
" # اماده سازی نمونه ها\n",
" sample_image = test_set[0][sample_ind:sample_ind+batch_size,...]\n",
" sample_label = test_set[1][sample_ind:sample_ind+batch_size,...]\n",
" return sample_image, sample_label"
]
},
{
"cell_type": "code",
2024-11-27 10:02:00 +03:30
"execution_count": 12,
2024-11-27 00:58:19 +03:30
"id": "c910c017",
"metadata": {
"id": "c910c017"
},
"outputs": [],
"source": [
"def get_imporance_function(sample_ind):\n",
" loss_fnc = tf.keras.losses.SparseCategoricalCrossentropy(reduction='none', from_logits=False)\n",
" img, lbl = get_samples(sample_ind, 1)\n",
"\n",
" def get_batch_importance(batch_ind, batch_size=64):\n",
" sample_images, sample_labels = get_samples(batch_ind, batch_size)\n",
" sample_images = np.concatenate([img, sample_images])\n",
" sample_labels = np.concatenate([lbl, sample_labels])\n",
"\n",
" probs_vec, probs_mtx = model.call_at_zero([sample_images, sample_labels])\n",
" samples = probs_mtx.numpy()\n",
" probs_vec = probs_vec.numpy()\n",
"\n",
" m = samples.mean(axis=0)\n",
"\n",
" # حذف نمونه مورد مطالعه و مشاهده تاثیر حضور دیگر نمونه و عدم حضور نمونه بر پیس بینی\n",
" sample_output = samples.sum(axis=0, keepdims=True) - samples\n",
" sample_output = sample_output/(batch_size-1)\n",
" loss_with_sample = loss_fnc(lbl, m)\n",
" loss_without_sample = loss_fnc(np.array([lbl]*batch_size), sample_output)\n",
" sample_importance = loss_with_sample-loss_without_sample\n",
" return sample_images[1:,...], sample_importance, probs_vec, samples\n",
" return get_batch_importance, img, lbl"
]
},
{
"cell_type": "code",
2024-11-27 10:02:00 +03:30
"execution_count": 83,
2024-11-27 00:58:19 +03:30
"id": "a4761918",
"metadata": {
"id": "a4761918"
},
"outputs": [],
"source": [
"batch_size = 64\n",
"\n",
2024-11-27 10:02:00 +03:30
"batch_ind = batch_size+1\n",
2024-11-27 00:58:19 +03:30
"\n",
"sample_ind = batch_ind-1\n",
"importance_function_batch, img, lbl = get_imporance_function(sample_ind)\n",
"sample_images, importance, probs_vec, sample_output = importance_function_batch(batch_ind)"
]
},
{
"cell_type": "markdown",
"id": "52cfc350",
"metadata": {
"id": "52cfc350"
},
"source": [
"<h2 align='center' dir='rtl'>مشاهده تاثیر دیگر نمونه ها بر پیش بینی مدل</h2>"
]
},
{
"cell_type": "code",
2024-11-27 10:44:06 +03:30
"execution_count": 89,
2024-11-27 00:58:19 +03:30
"id": "7b17b3c2",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 486
},
"id": "7b17b3c2",
"outputId": "de0f988f-0e8d-4572-a28e-e3acecca9d1b"
},
"outputs": [
{
"data": {
2024-11-27 10:02:00 +03:30
"image/png": "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mzZt0rhx4zRp0iRVVVVJkvbv368JEybo3HPP1eeff64lS5Zo6dKlevzxx33POXv2bP373//WW2+9pXfffVfvv/++Nm7c2Ox1b7nlFq1du1avvfaavvjiC11zzTW64oorlJeX16H6Z8+erXvvvVebN2/W6NGjddVVV6mkpKTZY+677z7Nnz9f27Zt05lnnqn77rtPb7zxhv74xz9q06ZNysrK0rhx43T48OEWz/2rX/1KGzZsUGpqqq666irfP1wcO3ZMw4cP19///nd99dVXuuOOOzRp0iR98sknLb6/drtdn3zyiX7zm9/o6aef1vPPP9+h9yjVHwt64403JEnffvutCgoK9Otf/7rVx57se3vnnXequrpaH374ob788ks99dRTio+P73BN7RU8/UEAAACtOH4NovEDdVvrEefPn69HH320y+sKaw89JD3+uFRTIzkchCoAWjha69bpc98x5bW3zhunWEf7/yo7bNgw/exnP5MkzZkzR08++aRSUlJ0++23S5Lmzp2rJUuW6IsvvtD555+vxYsXKz09Xc8884wsFosGDRqkAwcO6P7779fcuXNVVVWlpUuX6sUXX9Tll18uqT5c6Nu3r+81d+zYoVdffVX79u1TWlqaJOmnP/2pVq1apRdeeEFPPPFEu+u/6667fMdflyxZolWrVmnp0qW67777fI+ZN2+er5bKykotWbJEy5cv9x2/fe6557R69WotXbpUs2fP9l338MMPt3gPb731lq699lr16dNHP/3pT32PnTFjhlatWqXXX39dI0eO9N2enp6up59+WhaLRaeddpq+/PJLPf30077vb3vZbDbfkZ/U1NQ2B/u253ubn5+vq6++WkOHDpUkDRgwoEO1dBTBCgAACFq9evXSwYMHm91WVFQku92u5OTkVq+ZM2eOZs2a5fu6rKxM6enpXVpn2HnsscZQpaam/mvCFQAh6swzz/R9brPZlJyc7PsLtyRfZ2RRUZEkadu2bRo1alSzAH/MmDGqqKjQvn37dOTIEdXU1GjUqFG++3v06KHTTjvN9/WmTZvk9XqVk5PTrJbq6uo2//vVlqavY7fbNWLECG3btq3ZY0aMGOH7fMeOHaqtrdWYMWN8t0VFRem8885rcV1r78F4jNvt1pNPPqkVK1Zo//79qq6uVnV1dYtBtOeff36z79WoUaO0YMECud1u2Wy2Dr3X9mjP9/buu+/Wj3/8Y7377ru67LLLdPXVVzf7c9DZCFYAAEDQGjVqlP72t781u+3dd9/ViBEj2twOEB0drejo6ECUF56On6lifC0RrgDwiYmyaeu8caa9dkcc/98Li8XS7DYjFPB4PJLqOyNP1C3ZnqNIHo9HNptNGzdubBEudMaRlOPraxp2tNXZ2dr7OtFzL1iwQE8//bQWLVqkoUOHKi4uTjNnzlRNTc2pln9K2vO9ve222zRu3Dj93//9n959913Nnz9fCxYs0IwZM7qkJmasAACAgKmoqNCWLVu0ZcsWSfXrlLds2aL8/HxJ9d0mkydP9j1+2rRp2rNnj2bNmqVt27Zp2bJlWrp0abPWZHSi1gbVtjbQFkDEs1gsinXYTfloTzhwKk4//XStW7euWYCybt06JSQkqE+fPsrKylJUVJTWr1/vu//IkSPKzc31fX322WfL7XarqKhIW
2024-11-27 00:58:19 +03:30
"text/plain": [
"<Figure size 1500x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(15,5))\n",
"plt.subplot(121)\n",
"plt.imshow(img[0])\n",
"plt.title(lbl[0])\n",
"plt.axis('off')\n",
"\n",
"plt.subplot(122)\n",
"plt.plot(probs_vec, label='model probabilities')\n",
"plt.plot(lbl, 1, 'rx', label='correct label')\n",
2024-11-27 10:44:06 +03:30
"plt.legend();"
2024-11-27 00:58:19 +03:30
]
},
{
"cell_type": "code",
2024-11-27 10:44:06 +03:30
"execution_count": 86,
2024-11-27 00:58:19 +03:30
"id": "e1124039",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "e1124039",
"outputId": "a9579fb9-09e7-467a-f897-73eec99eb1ec"
},
"outputs": [
{
"data": {
2024-11-27 10:02:00 +03:30
"image/png": "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
2024-11-27 00:58:19 +03:30
"text/plain": [
"<Figure size 1500x1500 with 64 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from matplotlib import pyplot as plt\n",
"import numpy as np\n",
"\n",
"inds = np.argsort(importance)\n",
"\n",
"plt.figure(figsize=(15,15))\n",
"for i in range(len(inds)):\n",
" plt.subplot(batch_size//8+1, 8, i+1)\n",
" plt.imshow(sample_images[inds[i],...])\n",
" plt.title(\"%.7f\"%(importance[inds[i]]))\n",
" plt.axis('off')"
]
2024-11-27 10:44:06 +03:30
},
{
"cell_type": "code",
"execution_count": 88,
"id": "7751107a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fd4f2e92ed0>]"
]
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# نمایش تاثیر پنج داده مهمتر در بین نمونه های همراه با نمونه اصلی\n",
"plt.figure()\n",
"plt.plot(sample_output[inds[:5]].mean(axis=0))"
]
2024-11-27 00:58:19 +03:30
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "CV",
"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.11.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}