{ "cells": [ { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import tensorflow as tf\n", "import matplotlib.pyplot as plt\n", "import os\n", "import glob\n", "import cv2\n", "from tqdm import tqdm" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv(\"../data/HAM10000_metadata.csv\")" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
lesion_idimage_iddxdx_typeagesexlocalization
0HAM_0000118ISIC_0027419bklhisto80.0malescalp
1HAM_0000118ISIC_0025030bklhisto80.0malescalp
2HAM_0002730ISIC_0026769bklhisto80.0malescalp
3HAM_0002730ISIC_0025661bklhisto80.0malescalp
4HAM_0001466ISIC_0031633bklhisto75.0maleear
\n", "
" ], "text/plain": [ " lesion_id image_id dx dx_type age sex localization\n", "0 HAM_0000118 ISIC_0027419 bkl histo 80.0 male scalp\n", "1 HAM_0000118 ISIC_0025030 bkl histo 80.0 male scalp\n", "2 HAM_0002730 ISIC_0026769 bkl histo 80.0 male scalp\n", "3 HAM_0002730 ISIC_0025661 bkl histo 80.0 male scalp\n", "4 HAM_0001466 ISIC_0031633 bkl histo 75.0 male ear" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 histo\n", "1 histo\n", "2 histo\n", "3 histo\n", "4 histo\n", " ... \n", "10010 histo\n", "10011 histo\n", "10012 histo\n", "10013 histo\n", "10014 histo\n", "Name: dx_type, Length: 10015, dtype: object" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.dx_type" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dx\n", "nv 6705\n", "mel 1113\n", "bkl 1099\n", "bcc 514\n", "akiec 327\n", "vasc 142\n", "df 115\n", "Name: count, dtype: int64" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.dx.value_counts()" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAHdCAYAAAD8YWZMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHJUlEQVR4nO3deXxOd/7//2cSSSQiiSWLVBDLILZaikxbLVVhoq1Srdbe4EODBkXNqK2LoiitMq1aOqqWTnWRscSuxBY7pWppKEkUyUVUFjm/P/rL9XU1oVLhJM7jfrud263X+7yuc73O6QzPnuV9nAzDMAQAAGBhzmY3AAAAYDYCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQDcA//5z39Uo0YNubq6ytfXt8C26+TkpDFjxhTY9gCrIhAB96F58+bJyckpz+X11183uz3LOXLkiHr06KEqVarok08+0ccff/yn39m7d6+6dOmi4OBgubu7q3Tp0mrZsqXmzp2r69ev34OuAWspZnYDAO6ecePGKSQkxGGsdu3aJnVjXRs2bFB2dramTZumqlWr/mn97Nmz1bdvXwUEBKhr166qVq2aLl++rLVr1yoyMlLnzp3TP//5z3vQOWAdBCLgPtamTRs1atTotmqvXbsmNzc3OTtz4rigJScnS9JtXSrbtm2b+vbtq7CwMP3vf/9TyZIl7euio6O1a9cuHTx48G61ClgWf/IBFrRhwwY5OTlp0aJFGjlypB544AF5enrKZrNJkrZv367WrVvLx8dHnp6eeuyxx7Rly5Zc2/nll18UGRmpoKAgubu7KyQkRP369VNGRoYkacyYMXJycsr1vZxLeqdOnXIYX7FihR599FGVKFFCJUuWVEREhA4dOuRQ06NHD3l5eemXX35Ru3bt5OXlJT8/P7322mu5LiXlnJWpU6eOihcvLj8/P7Vu3Vq7du2SJD322GOqV69enseoevXqCg8P/9Nj+dFHH6lWrVpyd3dXUFCQoqKilJKSYl9fqVIljR49WpLk5+f3p/f8jB07Vk5OTvr8888dwlCORo0aqUePHjf9/s8//6xXXnlF1atXl4eHh8qUKaOOHTvmOtaZmZkaO3asqlWrpuLFi6tMmTJ65JFHFBsba69JTExUz549Vb58ebm7u6tcuXJ65plncm0LuB9whgi4j6WmpurXX391GCtbtqz9n9988025ubnptddeU3p6utzc3LRu3Tq1adNGDRs21OjRo+Xs7Ky5c+eqRYsW2rx5sxo3bixJOnv2rBo3bqyUlBT16dNHNWrU0C+//KIvv/xSV69elZubW756/c9//qPu3bsrPDxcEyZM0NWrVzVz5kw98sgj2rNnjypVqmSvvX79usLDw9WkSRO99957WrNmjSZPnqwqVaqoX79+9rrIyEjNmzdPbdq0Ua9evZSVlaXNmzdr27ZtatSokbp27arevXvr4MGDDpcSd+7cqR9//FEjR468Zc9jxozR2LFj1bJlS/Xr109Hjx7VzJkztXPnTm3ZskWurq56//339dlnn2nZsmWaOXOmvLy8VLdu3Ty3d/XqVa1du1bNmjVThQoV8nX8bux969at6tSpk8qXL69Tp05p5syZevzxx3X48GF5enraex8/frx69eqlxo0by2azadeuXdq9e7eefPJJSVKHDh106NAhDRgwQJUqVVJycrJiY2OVkJDg8O8DuC8YAO47c+fONSTluRiGYaxfv96QZFSuXNm4evWq/XvZ2dlGtWrVjPDwcCM7O9s+fvXqVSMkJMR48skn7WPdunUznJ2djZ07d+b6/Zzvjh492sjrj5mc/k6ePGkYhmFcvnzZ8PX1NXr37u1Ql5iYaPj4+DiMd+/e3ZBkjBs3zqG2fv36RsOGDe2f161bZ0gyBg4ceNP+UlJSjOLFixvDhw93WD9w4ECjRIkSxpUrV3J9N0dycrLh5uZmtGrVyrh+/bp9/MMPPzQkGXPmzLGP5RyH8+fP33R7hmEY+/btMyQZr7766i3rbiTJGD16tP3zjf8+c8TFxRmSjM8++8w+Vq9ePSMiIuKm27106ZIhyZg0adJt9wIUZVwyA+5jM2bMUGxsrMNyo+7du8vDw8P+ee/evTp27JheeuklXbhwQb/++qt+/fVXpaWl6YknntCmTZuUnZ2t7Oxsff3113rqqafyvEcpr8tktxIbG6uUlBS9+OKL9t/89ddf5eLioiZNmmj9+vW5vtO3b1+Hz48++qhOnDhh//zf//5XTk5O9stVefXn4+OjZ555Rl988YUMw5D0+9mnxYsXq127dipRosRNe16zZo0yMjIUHR3tcN9V79695e3trZiYmHwdA0n2S5Z5XSq7XTf++8zMzNSFCxdUtWpV+fr6avfu3fZ1vr6+OnTokI4dO3bT7bi5uWnDhg26dOnSX+4HKCq4ZAbcxxo3bnzLm6r/+ARazl+O3bt3v+l3UlNTlZGRIZvNVmBPrOX8bosWLfJc7+3t7fA5536gG5UqVcrhL+7jx48rKChIpUuXvuVvd+vWTYsXL9bmzZvVrFkzrVmzRklJSeratestv/fzzz9L+v1eoxu5ubmpcuXK9vX5kbOfly9fzvd3c/z2228aP3685s6dq19++cUe9KTf/93lGDdunJ555hn97W9/U+3atdW6dWt17drVfjnP3d1dEyZM0JAhQxQQEKCmTZuqbdu26tatmwIDA/9yf0BhRSACLOzGswnS7zchS9KkSZP04IMP5vkdLy8vXbx48ba2f7MzRXnd/Cz9fh9RXn/ZFivm+EeVi4vLbf3+7QgPD1dAQIAWLFigZs2aacGCBQoMDFTLli0L7DduV9WqVVWsWDEdOHDgL29jwIABmjt3rqKjoxUWFiYfHx85OTmpU6dO9uMsSc2aNdPx48f1zTffaPXq1Zo9e7amTp2qWbNmqVevXpJ+f6rtqaee0tdff61Vq1bpjTfe0Pjx47Vu3TrVr1//jvcXKEwIRADsqlSpIun3MxW3CgR+fn7y9vb+08e/S5UqJUlKSUlxeOT8j2dPcn7X39+/wIJIlSpVtGrVKl28ePGWZ4lcXFz00ksvad68eZowYYK+/vpr9e7d+09DV8WKFSVJR48eVeXKle3jGRkZOnny5F/aD09PT7Vo0ULr1q3T6dOnFRwcnO9tfPnll+revbsmT55sH7t27ZrDk285SpcurZ49e6pnz566cuWKmjVrpjFjxtgDkfT7cRwyZIiGDBmiY8eO6cEHH9TkyZO1YMGCfPcGFGbcQwTArmHDhqpSpYree+89XblyJdf68+fPS5KcnZ3Vrl07fffdd/ZH2G+Uc5kmJ+hs2rTJvi4tLU3z5893qA8PD5e3t7feeecdZWZm3vR386NDhw4yDENjx469aX85unbtqkuXLun//u//dOXKFXXp0uVPt9+yZUu5ublp+vTpDtv79NNPlZqaqoiIiHz3LEmjR4+WYRjq2rVrnv8O4uPjcx2/G7m4uOTavw8++CDXWbkLFy44fPby8lLVqlWVnp4u6fcn3q5du+ZQU6VKFZUsWdJeA9xPOEMEwM7Z2VmzZ89WmzZtVKtWLfXs2VMPPPCAfvnlF61fv17e3t767rvvJEnvvPOOVq9erccee0x9+vRRzZo1de7cOS1dulTff/+9fH191apVK1WoUEGRkZEaOnSoXFxcNGfOHPn5+SkhIcH+u97e3po5c6a6du2qBg0aqFOnTvaamJgYPfzww/rwww/ztS/NmzdX165dNX36dB07dkytW7dWdna2Nm/erObNm6t///722vr166t27dpaunSpatasqQYNGvzp9v38/DRixAiNHTtWrVu31tNPP62jR4/qo48+0kMPPXRboSovf//73zVjxgy98sorqlGjhsNM1Rs2bNC3336rt95666bfb9u2rf7zn//Ix8dHoaGhiouL05o1a1SmTBmHutDQUD3++ONq2LChSpcurV27dunLL7+0H5cff/xRTzzxhJ5//nmFhoaqWLFiWrZsmZKSktSpU6e/tG9AoWbeA24A7pacx9rzeiTeMP7fY/dLly7Nc/2ePXuM9u3bG2XKlDHc3d2NihUrGs8//7yxdu1ah7qff/7Z6Natm+Hn52e4u7sblStXNqKiooz09HR7TXx8vNGkSRPDzc3NqFChgjFlypRcj93f2Fd4eLjh4+NjFC9e3KhSpYrRo0cPY9euXfaa7t27GyVKlMjVc16P+GdlZRmTJk0yatSoYbi5uRl+fn5GmzZtjPj4+FzfnzhxoiHJeOedd/I8Jjfz4YcfGjVq1DBcXV2NgIAAo1+/fsalS5fy7O3PHru/UXx8vPHSSy8ZQUFBhqurq1GqVCnjiSeeMObPn+/wmL/+8Nj9pUuXjJ49exply5Y1vLy8jPDwcOPIkSNGxYoVje7du9vr3nrrLaNx48aGr6+v4eHhYdSoUcN4++23jYyMDMMwDOPXX381oqKijBo1ahglSpQwfHx8jCZNmhhLlizJ1/EBigonw/jDuVUAsKBp06Zp0KBBOnXq1F+eFBFA0UUgAmB5hmGoXr16KlOmTJ5zHgG4/3EPEQDLSktL07fffqv169frwIED+uabb8xuCYBJOEMEwLJOnTqlkJAQ+fr66pVXXtHbb79tdksATEIgAgAAlsc8RAAAwPJMvYeoUqVKeb7v55VXXtGMGTN07do1DRkyRIsWLVJ6errCw8P10UcfKSAgwF6bkJCgfv36af369fLy8lL37t01fvx4h6n+N2zYoMGDB+vQoUMKDg7WyJEj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29thAQAA9y9TA9HDDz+so0ePOoz9+OOPqlixoiQpJCREgYGBWrt2rX29zWbT9u3bFRYWJkkKCwtTSkqK4uPj7TXr1q1Tdna2mjRpYq/ZtGmTMjMz7TWxsbGqXr26wxNtAADAmkwNRIMGDdK2bdv0zjvv6KefftLChQv18ccfKyoqSpLk5OSk6OhovfXWW/r222914MABdevWTUFBQWrXrp2k388otW7dWr1799aOHTu0ZcsW9e/fX506dVJQUJAk6aWXXpKbm5siIyN16NAhLV68WNOmTdPgwYPN2nUAAFCIFDPzxx966CEtW7ZMI0aM0Lhx4xQSEqL3339fnTt3ttcMGzZMaWlp6tOnj1JSUvTII49o5cqVKl68uL3m888/V//+/fXEE0/I2dlZHTp00PTp0+3rfXx8tHr1akVFRalhw4YqW7asRo0a5TBXEQAAsC5T5yEqKpiHCACAoqfIzEMEAABQGBCIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5RGIAACA5ZkaiMaMGSMnJyeHpUaNGvb1165dU1RUlMqUKSMvLy916NBBSUlJDttISEhQRESEPD095e/vr6FDhyorK8uhZsOGDWrQoIHc3d1VtWpVzZs3717sHgAAKCJMP0NUq1YtnTt3zr58//339nWDBg3Sd999p6VLl2rjxo06e/as2rdvb19//fp1RUREKCMjQ1u3btX8+fM1b948jRo1yl5z8uRJRUREqHnz5tq7d6+io6PVq1cvrVq16p7uJwAAKLyKmd5AsWIKDAzMNZ6amqpPP/1UCxcuVIsWLSRJc+fOVc2aNbVt2zY1bdpUq1ev1uHDh7VmzRoFBATowQcf1Jtvvqnhw4drzJgxcnNz06xZsxQSEqLJkydLkmrWrKnvv/9eU6dOVXh4eJ49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xMRElStXLte4n5+fzp07Z0JH5mrZsqWaN2+umjVrSpKeffZZubm55Vm7bt26e9naX0IgKiLOnTunlStX6osvvtDzzz8vT09PdezYUZ07d9bf//53s9u75/bs2XNbdU5OTne5k8Lndo+N1e3ZsyfPMyFNmzZV//79TeiocKhatapWrlyZ6xisWLFClStXNqmrwiE4OFhbtmxRSEiIw/iWLVsUFBRkUlfmWbBggebPn6+ffvpJGzduVK1ateTp6Wl2W38ZgaiIKFasmNq2bau2bdvq6tWrWrZsmRYuXKjmzZurfPnyOn78uNkt3lPr1683u4VCi2Nze5ycnHT58uVc46mpqbp+/boJHRUOgwcPVv/+/XX+/Hm1aNFCkrR27VpNnjxZ77//vrnNmax3796Kjo5WZmamw7EZNmyYhgwZYnJ3956Hh4f69u0rSYqPj9eECRPk6+trblN3gHeZFVG//vqrFi1apFmzZumHH36w9B/gOX766ScdP35czZo1k4eHhwzDsOQZohutX79ezZs3z3PdjBkzFBUVdY87KjyeeuopeXh46IsvvrBffr5+/bpeeOEFpaWlacWKFSZ3aJ6ZM2fq7bff1tmzZyVJlSpV0pgxY9StWzeTOzOXYRh6/fXXNX36dGVkZEiSihcvruHDh2vUqFEmd3fv3W+X5wlERUjOmaHPP/9ca9euVXBwsF588UV17tw5zxv9rOLChQt6/vnntX79ejk5OenYsWOqXLmyXn75ZZUqVUqTJ082u0XTlCpVSmvWrFHDhg0dxqdNm6Y33njjvntsNj8OHz6sZs2aydfXV48++qgkafPmzbLZbFq3bp1q165tcofmO3/+vDw8POTl5WV2K4XKlStX9MMPP8jDw0PVqlUrcm91Lyh//I+t3bt3KysrS9WrV5ck/fjjj3JxcVHDhg2LxD1EPGVWRHTq1En+/v4aNGiQKleurA0bNuinn37Sm2++aekwJP1+w7mrq6sSEhIcrl+/8MILWrlypYmdmW/SpElq06aNjhw5Yh+bPHmyRo0apZiYGBM7M19oaKj279+v559/XsnJybp8+bK6deumI0eOWD4MZWVlac2aNfrqq6+U89/MZ8+e1ZUrV0zurHDw8vLSQw89pAoVKmjFihX64YcfzG7JFOvXr7cvTz31lB577DGdOXNGu3fv1u7du3X69Gk1b95cERER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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df.dx.value_counts().plot(kind=\"bar\", title=\"Frecuency of Class\", ylabel=\"frecuency\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [], "source": [ "# Reading the data\n", "path = '../data'\n", "images_path = {os.path.splitext(os.path.basename(x))[0]:x for x in glob.glob(os.path.join(path,'*','*.jpg'))}" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10015" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(images_path)" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'ISIC_0026784': '../data/HAM10000_images_part_1/ISIC_0026784.jpg',\n", " 'ISIC_0028971': '../data/HAM10000_images_part_1/ISIC_0028971.jpg',\n", " 'ISIC_0026948': '../data/HAM10000_images_part_1/ISIC_0026948.jpg',\n", " 'ISIC_0026790': '../data/HAM10000_images_part_1/ISIC_0026790.jpg',\n", " 'ISIC_0028965': '../data/HAM10000_images_part_1/ISIC_0028965.jpg',\n", " 'ISIC_0025299': '../data/HAM10000_images_part_1/ISIC_0025299.jpg',\n", " 'ISIC_0024839': '../data/HAM10000_images_part_1/ISIC_0024839.jpg',\n", " 'ISIC_0024811': '../data/HAM10000_images_part_1/ISIC_0024811.jpg',\n", " 'ISIC_0026960': '../data/HAM10000_images_part_1/ISIC_0026960.jpg',\n", " 'ISIC_0028795': '../data/HAM10000_images_part_1/ISIC_0028795.jpg',\n", " 'ISIC_0026974': '../data/HAM10000_images_part_1/ISIC_0026974.jpg',\n", " 'ISIC_0028781': '../data/HAM10000_images_part_1/ISIC_0028781.jpg',\n", " 'ISIC_0028959': '../data/HAM10000_images_part_1/ISIC_0028959.jpg',\n", " 'ISIC_0024805': '../data/HAM10000_images_part_1/ISIC_0024805.jpg',\n", " 'ISIC_0025528': '../data/HAM10000_images_part_1/ISIC_0025528.jpg',\n", " 'ISIC_0024636': '../data/HAM10000_images_part_1/ISIC_0024636.jpg',\n", " 'ISIC_0026021': '../data/HAM10000_images_part_1/ISIC_0026021.jpg',\n", " 'ISIC_0026747': '../data/HAM10000_images_part_1/ISIC_0026747.jpg',\n", " 'ISIC_0027459': '../data/HAM10000_images_part_1/ISIC_0027459.jpg',\n", " 'ISIC_0026753': '../data/HAM10000_images_part_1/ISIC_0026753.jpg',\n", " 'ISIC_0028018': '../data/HAM10000_images_part_1/ISIC_0028018.jpg',\n", " 'ISIC_0026035': '../data/HAM10000_images_part_1/ISIC_0026035.jpg',\n", " 'ISIC_0024622': '../data/HAM10000_images_part_1/ISIC_0024622.jpg',\n", " 'ISIC_0028030': '../data/HAM10000_images_part_1/ISIC_0028030.jpg',\n", " 'ISIC_0027303': '../data/HAM10000_images_part_1/ISIC_0027303.jpg',\n", " 'ISIC_0025514': '../data/HAM10000_images_part_1/ISIC_0025514.jpg',\n", " 'ISIC_0025272': '../data/HAM10000_images_part_1/ISIC_0025272.jpg',\n", " 'ISIC_0028756': '../data/HAM10000_images_part_1/ISIC_0028756.jpg',\n", " 'ISIC_0027465': '../data/HAM10000_images_part_1/ISIC_0027465.jpg',\n", " 'ISIC_0028742': '../data/HAM10000_images_part_1/ISIC_0028742.jpg',\n", " 'ISIC_0027471': '../data/HAM10000_images_part_1/ISIC_0027471.jpg',\n", " 'ISIC_0025266': '../data/HAM10000_images_part_1/ISIC_0025266.jpg',\n", " 'ISIC_0025500': '../data/HAM10000_images_part_1/ISIC_0025500.jpg',\n", " 'ISIC_0028024': '../data/HAM10000_images_part_1/ISIC_0028024.jpg',\n", " 'ISIC_0027317': '../data/HAM10000_images_part_1/ISIC_0027317.jpg',\n", " 'ISIC_0026009': '../data/HAM10000_images_part_1/ISIC_0026009.jpg',\n", " 'ISIC_0027840': '../data/HAM10000_images_part_1/ISIC_0027840.jpg',\n", " 'ISIC_0026586': '../data/HAM10000_images_part_1/ISIC_0026586.jpg',\n", " 'ISIC_0027698': '../data/HAM10000_images_part_1/ISIC_0027698.jpg',\n", " 'ISIC_0024391': '../data/HAM10000_images_part_1/ISIC_0024391.jpg',\n", " 'ISIC_0025931': '../data/HAM10000_images_part_1/ISIC_0025931.jpg',\n", " 'ISIC_0025925': '../data/HAM10000_images_part_1/ISIC_0025925.jpg',\n", " 'ISIC_0024385': '../data/HAM10000_images_part_1/ISIC_0024385.jpg',\n", " 'ISIC_0027854': '../data/HAM10000_images_part_1/ISIC_0027854.jpg',\n", " 'ISIC_0026592': '../data/HAM10000_images_part_1/ISIC_0026592.jpg',\n", " 'ISIC_0028597': '../data/HAM10000_images_part_1/ISIC_0028597.jpg',\n", " 'ISIC_0025919': '../data/HAM10000_images_part_1/ISIC_0025919.jpg',\n", " 'ISIC_0027868': '../data/HAM10000_images_part_1/ISIC_0027868.jpg',\n", " 'ISIC_0028583': '../data/HAM10000_images_part_1/ISIC_0028583.jpg',\n", " 'ISIC_0024352': '../data/HAM10000_images_part_1/ISIC_0024352.jpg',\n", " 'ISIC_0028568': '../data/HAM10000_images_part_1/ISIC_0028568.jpg',\n", " 'ISIC_0027883': '../data/HAM10000_images_part_1/ISIC_0027883.jpg',\n", " 'ISIC_0026545': '../data/HAM10000_images_part_1/ISIC_0026545.jpg',\n", " 'ISIC_0029110': '../data/HAM10000_images_part_1/ISIC_0029110.jpg',\n", " 'ISIC_0026223': '../data/HAM10000_images_part_1/ISIC_0026223.jpg',\n", " 'ISIC_0024434': '../data/HAM10000_images_part_1/ISIC_0024434.jpg',\n", " 'ISIC_0024420': '../data/HAM10000_images_part_1/ISIC_0024420.jpg',\n", " 'ISIC_0029104': '../data/HAM10000_images_part_1/ISIC_0029104.jpg',\n", " 'ISIC_0026237': '../data/HAM10000_images_part_1/ISIC_0026237.jpg',\n", " 'ISIC_0027129': '../data/HAM10000_images_part_1/ISIC_0027129.jpg',\n", " 'ISIC_0027897': '../data/HAM10000_images_part_1/ISIC_0027897.jpg',\n", " 'ISIC_0026551': '../data/HAM10000_images_part_1/ISIC_0026551.jpg',\n", " 'ISIC_0025058': '../data/HAM10000_images_part_1/ISIC_0025058.jpg',\n", " 'ISIC_0024346': '../data/HAM10000_images_part_1/ISIC_0024346.jpg',\n", " 'ISIC_0027667': '../data/HAM10000_images_part_1/ISIC_0027667.jpg',\n", " 'ISIC_0028554': '../data/HAM10000_images_part_1/ISIC_0028554.jpg',\n", " 'ISIC_0026579': '../data/HAM10000_images_part_1/ISIC_0026579.jpg',\n", " 'ISIC_0025070': '../data/HAM10000_images_part_1/ISIC_0025070.jpg',\n", " 'ISIC_0024408': '../data/HAM10000_images_part_1/ISIC_0024408.jpg',\n", " 'ISIC_0025716': '../data/HAM10000_images_part_1/ISIC_0025716.jpg',\n", " 'ISIC_0027101': '../data/HAM10000_images_part_1/ISIC_0027101.jpg',\n", " 'ISIC_0028232': '../data/HAM10000_images_part_1/ISIC_0028232.jpg',\n", " 'ISIC_0029138': '../data/HAM10000_images_part_1/ISIC_0029138.jpg',\n", " 'ISIC_0027115': '../data/HAM10000_images_part_1/ISIC_0027115.jpg',\n", " 'ISIC_0028226': '../data/HAM10000_images_part_1/ISIC_0028226.jpg',\n", " 'ISIC_0025702': '../data/HAM10000_images_part_1/ISIC_0025702.jpg',\n", " 'ISIC_0025064': '../data/HAM10000_images_part_1/ISIC_0025064.jpg',\n", " 'ISIC_0027673': '../data/HAM10000_images_part_1/ISIC_0027673.jpg',\n", " 'ISIC_0028540': '../data/HAM10000_images_part_1/ISIC_0028540.jpg',\n", " 'ISIC_0027934': '../data/HAM10000_images_part_1/ISIC_0027934.jpg',\n", " 'ISIC_0025845': '../data/HAM10000_images_part_1/ISIC_0025845.jpg',\n", " 'ISIC_0024583': '../data/HAM10000_images_part_1/ISIC_0024583.jpg',\n", " 'ISIC_0026394': '../data/HAM10000_images_part_1/ISIC_0026394.jpg',\n", " 'ISIC_0026380': '../data/HAM10000_images_part_1/ISIC_0026380.jpg',\n", " 'ISIC_0025851': '../data/HAM10000_images_part_1/ISIC_0025851.jpg',\n", " 'ISIC_0024597': '../data/HAM10000_images_part_1/ISIC_0024597.jpg',\n", " 'ISIC_0025689': '../data/HAM10000_images_part_1/ISIC_0025689.jpg',\n", " 'ISIC_0027920': '../data/HAM10000_images_part_1/ISIC_0027920.jpg',\n", " 'ISIC_0027908': '../data/HAM10000_images_part_1/ISIC_0027908.jpg',\n", " 'ISIC_0028385': '../data/HAM10000_images_part_1/ISIC_0028385.jpg',\n", " 'ISIC_0025879': '../data/HAM10000_images_part_1/ISIC_0025879.jpg',\n", " 'ISIC_0028391': '../data/HAM10000_images_part_1/ISIC_0028391.jpg',\n", " 'ISIC_0025138': '../data/HAM10000_images_part_1/ISIC_0025138.jpg',\n", " 'ISIC_0026431': '../data/HAM10000_images_part_1/ISIC_0026431.jpg',\n", " 'ISIC_0027049': '../data/HAM10000_images_part_1/ISIC_0027049.jpg',\n", " 'ISIC_0029064': '../data/HAM10000_images_part_1/ISIC_0029064.jpg',\n", " 'ISIC_0026357': '../data/HAM10000_images_part_1/ISIC_0026357.jpg',\n", " 'ISIC_0025886': '../data/HAM10000_images_part_1/ISIC_0025886.jpg',\n", " 'ISIC_0024540': '../data/HAM10000_images_part_1/ISIC_0024540.jpg',\n", " 'ISIC_0025892': '../data/HAM10000_images_part_1/ISIC_0025892.jpg',\n", " 'ISIC_0024554': '../data/HAM10000_images_part_1/ISIC_0024554.jpg',\n", " 'ISIC_0029070': '../data/HAM10000_images_part_1/ISIC_0029070.jpg',\n", " 'ISIC_0026343': '../data/HAM10000_images_part_1/ISIC_0026343.jpg',\n", " 'ISIC_0026425': '../data/HAM10000_images_part_1/ISIC_0026425.jpg',\n", " 'ISIC_0028408': '../data/HAM10000_images_part_1/ISIC_0028408.jpg',\n", " 'ISIC_0027713': '../data/HAM10000_images_part_1/ISIC_0027713.jpg',\n", " 'ISIC_0028420': '../data/HAM10000_images_part_1/ISIC_0028420.jpg',\n", " 'ISIC_0025104': '../data/HAM10000_images_part_1/ISIC_0025104.jpg',\n", " 'ISIC_0025662': '../data/HAM10000_images_part_1/ISIC_0025662.jpg',\n", " 'ISIC_0027075': '../data/HAM10000_images_part_1/ISIC_0027075.jpg',\n", " 'ISIC_0028346': '../data/HAM10000_images_part_1/ISIC_0028346.jpg',\n", " 'ISIC_0029058': '../data/HAM10000_images_part_1/ISIC_0029058.jpg',\n", " 'ISIC_0027061': '../data/HAM10000_images_part_1/ISIC_0027061.jpg',\n", " 'ISIC_0028352': '../data/HAM10000_images_part_1/ISIC_0028352.jpg',\n", " 'ISIC_0025676': '../data/HAM10000_images_part_1/ISIC_0025676.jpg',\n", " 'ISIC_0024568': '../data/HAM10000_images_part_1/ISIC_0024568.jpg',\n", " 'ISIC_0025110': '../data/HAM10000_images_part_1/ISIC_0025110.jpg',\n", " 'ISIC_0026419': '../data/HAM10000_images_part_1/ISIC_0026419.jpg',\n", " 'ISIC_0027707': '../data/HAM10000_images_part_1/ISIC_0027707.jpg',\n", " 'ISIC_0028434': '../data/HAM10000_images_part_1/ISIC_0028434.jpg',\n", " 'ISIC_0027288': '../data/HAM10000_images_part_1/ISIC_0027288.jpg',\n", " 'ISIC_0026196': '../data/HAM10000_images_part_1/ISIC_0026196.jpg',\n", " 'ISIC_0024959': '../data/HAM10000_images_part_1/ISIC_0024959.jpg',\n", " 'ISIC_0024781': '../data/HAM10000_images_part_1/ISIC_0024781.jpg',\n", " 'ISIC_0028805': '../data/HAM10000_images_part_1/ISIC_0028805.jpg',\n", " 'ISIC_0026828': '../data/HAM10000_images_part_1/ISIC_0026828.jpg',\n", " 'ISIC_0028811': '../data/HAM10000_images_part_1/ISIC_0028811.jpg',\n", " 'ISIC_0024795': '../data/HAM10000_images_part_1/ISIC_0024795.jpg',\n", " 'ISIC_0026182': '../data/HAM10000_images_part_1/ISIC_0026182.jpg',\n", " 'ISIC_0024965': '../data/HAM10000_images_part_1/ISIC_0024965.jpg',\n", " 'ISIC_0028187': '../data/HAM10000_images_part_1/ISIC_0028187.jpg',\n", " 'ISIC_0029299': '../data/HAM10000_images_part_1/ISIC_0029299.jpg',\n", " 'ISIC_0028839': '../data/HAM10000_images_part_1/ISIC_0028839.jpg',\n", " 'ISIC_0026814': '../data/HAM10000_images_part_1/ISIC_0026814.jpg',\n", " 'ISIC_0026800': '../data/HAM10000_images_part_1/ISIC_0026800.jpg',\n", " 'ISIC_0028193': '../data/HAM10000_images_part_1/ISIC_0028193.jpg',\n", " 'ISIC_0024971': '../data/HAM10000_images_part_1/ISIC_0024971.jpg',\n", " 'ISIC_0024742': '../data/HAM10000_images_part_1/ISIC_0024742.jpg',\n", " 'ISIC_0026155': '../data/HAM10000_images_part_1/ISIC_0026155.jpg',\n", " 'ISIC_0029266': '../data/HAM10000_images_part_1/ISIC_0029266.jpg',\n", " 'ISIC_0028178': '../data/HAM10000_images_part_1/ISIC_0028178.jpg',\n", " 'ISIC_0026633': '../data/HAM10000_images_part_1/ISIC_0026633.jpg',\n", " 'ISIC_0027539': '../data/HAM10000_images_part_1/ISIC_0027539.jpg',\n", " 'ISIC_0026627': '../data/HAM10000_images_part_1/ISIC_0026627.jpg',\n", " 'ISIC_0026141': '../data/HAM10000_images_part_1/ISIC_0026141.jpg',\n", " 'ISIC_0029272': '../data/HAM10000_images_part_1/ISIC_0029272.jpg',\n", " 'ISIC_0024756': '../data/HAM10000_images_part_1/ISIC_0024756.jpg',\n", " 'ISIC_0025448': '../data/HAM10000_images_part_1/ISIC_0025448.jpg',\n", " 'ISIC_0026169': '../data/HAM10000_images_part_1/ISIC_0026169.jpg',\n", " 'ISIC_0028144': '../data/HAM10000_images_part_1/ISIC_0028144.jpg',\n", " 'ISIC_0027277': '../data/HAM10000_images_part_1/ISIC_0027277.jpg',\n", " 'ISIC_0025460': '../data/HAM10000_images_part_1/ISIC_0025460.jpg',\n", " 'ISIC_0025306': '../data/HAM10000_images_part_1/ISIC_0025306.jpg',\n", " 'ISIC_0028622': '../data/HAM10000_images_part_1/ISIC_0028622.jpg',\n", " 'ISIC_0027511': '../data/HAM10000_images_part_1/ISIC_0027511.jpg',\n", " 'ISIC_0028636': '../data/HAM10000_images_part_1/ISIC_0028636.jpg',\n", " 'ISIC_0027505': '../data/HAM10000_images_part_1/ISIC_0027505.jpg',\n", " 'ISIC_0025312': '../data/HAM10000_images_part_1/ISIC_0025312.jpg',\n", " 'ISIC_0025474': '../data/HAM10000_images_part_1/ISIC_0025474.jpg',\n", " 'ISIC_0028150': '../data/HAM10000_images_part_1/ISIC_0028150.jpg',\n", " 'ISIC_0027263': '../data/HAM10000_images_part_1/ISIC_0027263.jpg',\n", " 'ISIC_0025313': '../data/HAM10000_images_part_1/ISIC_0025313.jpg',\n", " 'ISIC_0027504': '../data/HAM10000_images_part_1/ISIC_0027504.jpg',\n", " 'ISIC_0028637': '../data/HAM10000_images_part_1/ISIC_0028637.jpg',\n", " 'ISIC_0027262': '../data/HAM10000_images_part_1/ISIC_0027262.jpg',\n", " 'ISIC_0028151': '../data/HAM10000_images_part_1/ISIC_0028151.jpg',\n", " 'ISIC_0025475': '../data/HAM10000_images_part_1/ISIC_0025475.jpg',\n", " 'ISIC_0025461': '../data/HAM10000_images_part_1/ISIC_0025461.jpg',\n", " 'ISIC_0027276': '../data/HAM10000_images_part_1/ISIC_0027276.jpg',\n", " 'ISIC_0028145': '../data/HAM10000_images_part_1/ISIC_0028145.jpg',\n", " 'ISIC_0026168': '../data/HAM10000_images_part_1/ISIC_0026168.jpg',\n", " 'ISIC_0027510': '../data/HAM10000_images_part_1/ISIC_0027510.jpg',\n", " 'ISIC_0028623': '../data/HAM10000_images_part_1/ISIC_0028623.jpg',\n", " 'ISIC_0025307': '../data/HAM10000_images_part_1/ISIC_0025307.jpg',\n", " 'ISIC_0026626': '../data/HAM10000_images_part_1/ISIC_0026626.jpg',\n", " 'ISIC_0027538': '../data/HAM10000_images_part_1/ISIC_0027538.jpg',\n", " 'ISIC_0025449': '../data/HAM10000_images_part_1/ISIC_0025449.jpg',\n", " 'ISIC_0024757': '../data/HAM10000_images_part_1/ISIC_0024757.jpg',\n", " 'ISIC_0029273': '../data/HAM10000_images_part_1/ISIC_0029273.jpg',\n", " 'ISIC_0026140': '../data/HAM10000_images_part_1/ISIC_0026140.jpg',\n", " 'ISIC_0028179': '../data/HAM10000_images_part_1/ISIC_0028179.jpg',\n", " 'ISIC_0029267': '../data/HAM10000_images_part_1/ISIC_0029267.jpg',\n", " 'ISIC_0026154': '../data/HAM10000_images_part_1/ISIC_0026154.jpg',\n", " 'ISIC_0024743': '../data/HAM10000_images_part_1/ISIC_0024743.jpg',\n", " 'ISIC_0026632': '../data/HAM10000_images_part_1/ISIC_0026632.jpg',\n", " 'ISIC_0026801': '../data/HAM10000_images_part_1/ISIC_0026801.jpg',\n", " 'ISIC_0024970': '../data/HAM10000_images_part_1/ISIC_0024970.jpg',\n", " 'ISIC_0028192': '../data/HAM10000_images_part_1/ISIC_0028192.jpg',\n", " 'ISIC_0029298': '../data/HAM10000_images_part_1/ISIC_0029298.jpg',\n", " 'ISIC_0028186': '../data/HAM10000_images_part_1/ISIC_0028186.jpg',\n", " 'ISIC_0024964': '../data/HAM10000_images_part_1/ISIC_0024964.jpg',\n", " 'ISIC_0026815': '../data/HAM10000_images_part_1/ISIC_0026815.jpg',\n", " 'ISIC_0028838': '../data/HAM10000_images_part_1/ISIC_0028838.jpg',\n", " 'ISIC_0028810': '../data/HAM10000_images_part_1/ISIC_0028810.jpg',\n", " 'ISIC_0026183': '../data/HAM10000_images_part_1/ISIC_0026183.jpg',\n", " 'ISIC_0024794': '../data/HAM10000_images_part_1/ISIC_0024794.jpg',\n", " 'ISIC_0024780': '../data/HAM10000_images_part_1/ISIC_0024780.jpg',\n", " 'ISIC_0024958': '../data/HAM10000_images_part_1/ISIC_0024958.jpg',\n", " 'ISIC_0026197': '../data/HAM10000_images_part_1/ISIC_0026197.jpg',\n", " 'ISIC_0027289': '../data/HAM10000_images_part_1/ISIC_0027289.jpg',\n", " 'ISIC_0026829': '../data/HAM10000_images_part_1/ISIC_0026829.jpg',\n", " 'ISIC_0028804': '../data/HAM10000_images_part_1/ISIC_0028804.jpg',\n", " 'ISIC_0024569': '../data/HAM10000_images_part_1/ISIC_0024569.jpg',\n", " 'ISIC_0025677': '../data/HAM10000_images_part_1/ISIC_0025677.jpg',\n", " 'ISIC_0028353': '../data/HAM10000_images_part_1/ISIC_0028353.jpg',\n", " 'ISIC_0027060': '../data/HAM10000_images_part_1/ISIC_0027060.jpg',\n", " 'ISIC_0028435': '../data/HAM10000_images_part_1/ISIC_0028435.jpg',\n", " 'ISIC_0027706': '../data/HAM10000_images_part_1/ISIC_0027706.jpg',\n", " 'ISIC_0026418': '../data/HAM10000_images_part_1/ISIC_0026418.jpg',\n", " 'ISIC_0025111': '../data/HAM10000_images_part_1/ISIC_0025111.jpg',\n", " 'ISIC_0025105': '../data/HAM10000_images_part_1/ISIC_0025105.jpg',\n", " 'ISIC_0028421': '../data/HAM10000_images_part_1/ISIC_0028421.jpg',\n", " 'ISIC_0027712': '../data/HAM10000_images_part_1/ISIC_0027712.jpg',\n", " 'ISIC_0029059': '../data/HAM10000_images_part_1/ISIC_0029059.jpg',\n", " 'ISIC_0028347': '../data/HAM10000_images_part_1/ISIC_0028347.jpg',\n", " 'ISIC_0027074': '../data/HAM10000_images_part_1/ISIC_0027074.jpg',\n", " 'ISIC_0025663': '../data/HAM10000_images_part_1/ISIC_0025663.jpg',\n", " 'ISIC_0026342': '../data/HAM10000_images_part_1/ISIC_0026342.jpg',\n", " 'ISIC_0029071': '../data/HAM10000_images_part_1/ISIC_0029071.jpg',\n", " 'ISIC_0024555': '../data/HAM10000_images_part_1/ISIC_0024555.jpg',\n", " 'ISIC_0025893': '../data/HAM10000_images_part_1/ISIC_0025893.jpg',\n", " 'ISIC_0028409': '../data/HAM10000_images_part_1/ISIC_0028409.jpg',\n", " 'ISIC_0026424': '../data/HAM10000_images_part_1/ISIC_0026424.jpg',\n", " 'ISIC_0026430': '../data/HAM10000_images_part_1/ISIC_0026430.jpg',\n", " 'ISIC_0025139': '../data/HAM10000_images_part_1/ISIC_0025139.jpg',\n", " 'ISIC_0024541': '../data/HAM10000_images_part_1/ISIC_0024541.jpg',\n", " 'ISIC_0025887': '../data/HAM10000_images_part_1/ISIC_0025887.jpg',\n", " 'ISIC_0026356': '../data/HAM10000_images_part_1/ISIC_0026356.jpg',\n", " 'ISIC_0029065': '../data/HAM10000_images_part_1/ISIC_0029065.jpg',\n", " 'ISIC_0027048': '../data/HAM10000_images_part_1/ISIC_0027048.jpg',\n", " 'ISIC_0028390': '../data/HAM10000_images_part_1/ISIC_0028390.jpg',\n", " 'ISIC_0027909': '../data/HAM10000_images_part_1/ISIC_0027909.jpg',\n", " 'ISIC_0025878': '../data/HAM10000_images_part_1/ISIC_0025878.jpg',\n", " 'ISIC_0028384': '../data/HAM10000_images_part_1/ISIC_0028384.jpg',\n", " 'ISIC_0025688': '../data/HAM10000_images_part_1/ISIC_0025688.jpg',\n", " 'ISIC_0024596': '../data/HAM10000_images_part_1/ISIC_0024596.jpg',\n", " 'ISIC_0025850': '../data/HAM10000_images_part_1/ISIC_0025850.jpg',\n", " 'ISIC_0026381': '../data/HAM10000_images_part_1/ISIC_0026381.jpg',\n", " 'ISIC_0027921': '../data/HAM10000_images_part_1/ISIC_0027921.jpg',\n", " 'ISIC_0027935': '../data/HAM10000_images_part_1/ISIC_0027935.jpg',\n", " 'ISIC_0026395': '../data/HAM10000_images_part_1/ISIC_0026395.jpg',\n", " 'ISIC_0024582': '../data/HAM10000_images_part_1/ISIC_0024582.jpg',\n", " 'ISIC_0025844': '../data/HAM10000_images_part_1/ISIC_0025844.jpg',\n", " 'ISIC_0025703': '../data/HAM10000_images_part_1/ISIC_0025703.jpg',\n", " 'ISIC_0028227': '../data/HAM10000_images_part_1/ISIC_0028227.jpg',\n", " 'ISIC_0027114': '../data/HAM10000_images_part_1/ISIC_0027114.jpg',\n", " 'ISIC_0029139': '../data/HAM10000_images_part_1/ISIC_0029139.jpg',\n", " 'ISIC_0028541': '../data/HAM10000_images_part_1/ISIC_0028541.jpg',\n", " 'ISIC_0027672': '../data/HAM10000_images_part_1/ISIC_0027672.jpg',\n", " 'ISIC_0025065': '../data/HAM10000_images_part_1/ISIC_0025065.jpg',\n", " 'ISIC_0025071': '../data/HAM10000_images_part_1/ISIC_0025071.jpg',\n", " 'ISIC_0026578': '../data/HAM10000_images_part_1/ISIC_0026578.jpg',\n", " 'ISIC_0028555': '../data/HAM10000_images_part_1/ISIC_0028555.jpg',\n", " 'ISIC_0027666': '../data/HAM10000_images_part_1/ISIC_0027666.jpg',\n", " 'ISIC_0028233': '../data/HAM10000_images_part_1/ISIC_0028233.jpg',\n", " 'ISIC_0027100': '../data/HAM10000_images_part_1/ISIC_0027100.jpg',\n", " 'ISIC_0025717': '../data/HAM10000_images_part_1/ISIC_0025717.jpg',\n", " 'ISIC_0024409': '../data/HAM10000_images_part_1/ISIC_0024409.jpg',\n", " 'ISIC_0027128': '../data/HAM10000_images_part_1/ISIC_0027128.jpg',\n", " 'ISIC_0026236': '../data/HAM10000_images_part_1/ISIC_0026236.jpg',\n", " 'ISIC_0029105': '../data/HAM10000_images_part_1/ISIC_0029105.jpg',\n", " 'ISIC_0024421': '../data/HAM10000_images_part_1/ISIC_0024421.jpg',\n", " 'ISIC_0024347': '../data/HAM10000_images_part_1/ISIC_0024347.jpg',\n", " 'ISIC_0025059': '../data/HAM10000_images_part_1/ISIC_0025059.jpg',\n", " 'ISIC_0026550': '../data/HAM10000_images_part_1/ISIC_0026550.jpg',\n", " 'ISIC_0027896': '../data/HAM10000_images_part_1/ISIC_0027896.jpg',\n", " 'ISIC_0026544': '../data/HAM10000_images_part_1/ISIC_0026544.jpg',\n", " 'ISIC_0027882': '../data/HAM10000_images_part_1/ISIC_0027882.jpg',\n", " 'ISIC_0028569': '../data/HAM10000_images_part_1/ISIC_0028569.jpg',\n", " 'ISIC_0024353': '../data/HAM10000_images_part_1/ISIC_0024353.jpg',\n", " 'ISIC_0024435': '../data/HAM10000_images_part_1/ISIC_0024435.jpg',\n", " 'ISIC_0026222': '../data/HAM10000_images_part_1/ISIC_0026222.jpg',\n", " 'ISIC_0029111': '../data/HAM10000_images_part_1/ISIC_0029111.jpg',\n", " 'ISIC_0025918': '../data/HAM10000_images_part_1/ISIC_0025918.jpg',\n", " 'ISIC_0028582': '../data/HAM10000_images_part_1/ISIC_0028582.jpg',\n", " 'ISIC_0027869': '../data/HAM10000_images_part_1/ISIC_0027869.jpg',\n", " 'ISIC_0028596': '../data/HAM10000_images_part_1/ISIC_0028596.jpg',\n", " 'ISIC_0025924': '../data/HAM10000_images_part_1/ISIC_0025924.jpg',\n", " 'ISIC_0026593': '../data/HAM10000_images_part_1/ISIC_0026593.jpg',\n", " 'ISIC_0027855': '../data/HAM10000_images_part_1/ISIC_0027855.jpg',\n", " 'ISIC_0024384': '../data/HAM10000_images_part_1/ISIC_0024384.jpg',\n", " 'ISIC_0024390': '../data/HAM10000_images_part_1/ISIC_0024390.jpg',\n", " 'ISIC_0027699': '../data/HAM10000_images_part_1/ISIC_0027699.jpg',\n", " 'ISIC_0026587': '../data/HAM10000_images_part_1/ISIC_0026587.jpg',\n", " 'ISIC_0027841': '../data/HAM10000_images_part_1/ISIC_0027841.jpg',\n", " 'ISIC_0025930': '../data/HAM10000_images_part_1/ISIC_0025930.jpg',\n", " 'ISIC_0025267': '../data/HAM10000_images_part_1/ISIC_0025267.jpg',\n", " 'ISIC_0027470': '../data/HAM10000_images_part_1/ISIC_0027470.jpg',\n", " 'ISIC_0028743': '../data/HAM10000_images_part_1/ISIC_0028743.jpg',\n", " 'ISIC_0026008': '../data/HAM10000_images_part_1/ISIC_0026008.jpg',\n", " 'ISIC_0027316': '../data/HAM10000_images_part_1/ISIC_0027316.jpg',\n", " 'ISIC_0028025': '../data/HAM10000_images_part_1/ISIC_0028025.jpg',\n", " 'ISIC_0025501': '../data/HAM10000_images_part_1/ISIC_0025501.jpg',\n", " 'ISIC_0025515': '../data/HAM10000_images_part_1/ISIC_0025515.jpg',\n", " 'ISIC_0027302': '../data/HAM10000_images_part_1/ISIC_0027302.jpg',\n", " 'ISIC_0028031': '../data/HAM10000_images_part_1/ISIC_0028031.jpg',\n", " 'ISIC_0027464': '../data/HAM10000_images_part_1/ISIC_0027464.jpg',\n", " 'ISIC_0028757': '../data/HAM10000_images_part_1/ISIC_0028757.jpg',\n", " 'ISIC_0025273': '../data/HAM10000_images_part_1/ISIC_0025273.jpg',\n", " 'ISIC_0026752': '../data/HAM10000_images_part_1/ISIC_0026752.jpg',\n", " 'ISIC_0024623': '../data/HAM10000_images_part_1/ISIC_0024623.jpg',\n", " 'ISIC_0026034': '../data/HAM10000_images_part_1/ISIC_0026034.jpg',\n", " 'ISIC_0028019': '../data/HAM10000_images_part_1/ISIC_0028019.jpg',\n", " 'ISIC_0026020': '../data/HAM10000_images_part_1/ISIC_0026020.jpg',\n", " 'ISIC_0024637': '../data/HAM10000_images_part_1/ISIC_0024637.jpg',\n", " 'ISIC_0025529': '../data/HAM10000_images_part_1/ISIC_0025529.jpg',\n", " 'ISIC_0027458': '../data/HAM10000_images_part_1/ISIC_0027458.jpg',\n", " 'ISIC_0026746': '../data/HAM10000_images_part_1/ISIC_0026746.jpg',\n", " 'ISIC_0028958': '../data/HAM10000_images_part_1/ISIC_0028958.jpg',\n", " 'ISIC_0028780': '../data/HAM10000_images_part_1/ISIC_0028780.jpg',\n", " 'ISIC_0026975': '../data/HAM10000_images_part_1/ISIC_0026975.jpg',\n", " 'ISIC_0024804': '../data/HAM10000_images_part_1/ISIC_0024804.jpg',\n", " 'ISIC_0024810': '../data/HAM10000_images_part_1/ISIC_0024810.jpg',\n", " 'ISIC_0028794': '../data/HAM10000_images_part_1/ISIC_0028794.jpg',\n", " 'ISIC_0026961': '../data/HAM10000_images_part_1/ISIC_0026961.jpg',\n", " 'ISIC_0025298': '../data/HAM10000_images_part_1/ISIC_0025298.jpg',\n", " 'ISIC_0028964': '../data/HAM10000_images_part_1/ISIC_0028964.jpg',\n", " 'ISIC_0026791': '../data/HAM10000_images_part_1/ISIC_0026791.jpg',\n", " 'ISIC_0026949': '../data/HAM10000_images_part_1/ISIC_0026949.jpg',\n", " 'ISIC_0024838': '../data/HAM10000_images_part_1/ISIC_0024838.jpg',\n", " 'ISIC_0028970': '../data/HAM10000_images_part_1/ISIC_0028970.jpg',\n", " 'ISIC_0026785': '../data/HAM10000_images_part_1/ISIC_0026785.jpg',\n", " 'ISIC_0026793': '../data/HAM10000_images_part_1/ISIC_0026793.jpg',\n", " 'ISIC_0028966': '../data/HAM10000_images_part_1/ISIC_0028966.jpg',\n", " 'ISIC_0027499': '../data/HAM10000_images_part_1/ISIC_0027499.jpg',\n", " 'ISIC_0026787': '../data/HAM10000_images_part_1/ISIC_0026787.jpg',\n", " 'ISIC_0028972': '../data/HAM10000_images_part_1/ISIC_0028972.jpg',\n", " 'ISIC_0024806': '../data/HAM10000_images_part_1/ISIC_0024806.jpg',\n", " 'ISIC_0026977': '../data/HAM10000_images_part_1/ISIC_0026977.jpg',\n", " 'ISIC_0028782': '../data/HAM10000_images_part_1/ISIC_0028782.jpg',\n", " 'ISIC_0026963': '../data/HAM10000_images_part_1/ISIC_0026963.jpg',\n", " 'ISIC_0028796': '../data/HAM10000_images_part_1/ISIC_0028796.jpg',\n", " 'ISIC_0024812': '../data/HAM10000_images_part_1/ISIC_0024812.jpg',\n", " 'ISIC_0027328': '../data/HAM10000_images_part_1/ISIC_0027328.jpg',\n", " 'ISIC_0029305': '../data/HAM10000_images_part_1/ISIC_0029305.jpg',\n", " 'ISIC_0026036': '../data/HAM10000_images_part_1/ISIC_0026036.jpg',\n", " 'ISIC_0024621': '../data/HAM10000_images_part_1/ISIC_0024621.jpg',\n", " 'ISIC_0025259': '../data/HAM10000_images_part_1/ISIC_0025259.jpg',\n", " 'ISIC_0026750': '../data/HAM10000_images_part_1/ISIC_0026750.jpg',\n", " 'ISIC_0026988': '../data/HAM10000_images_part_1/ISIC_0026988.jpg',\n", " 'ISIC_0026744': '../data/HAM10000_images_part_1/ISIC_0026744.jpg',\n", " 'ISIC_0028769': '../data/HAM10000_images_part_1/ISIC_0028769.jpg',\n", " 'ISIC_0024635': '../data/HAM10000_images_part_1/ISIC_0024635.jpg',\n", " 'ISIC_0026022': '../data/HAM10000_images_part_1/ISIC_0026022.jpg',\n", " 'ISIC_0025503': '../data/HAM10000_images_part_1/ISIC_0025503.jpg',\n", " 'ISIC_0027314': '../data/HAM10000_images_part_1/ISIC_0027314.jpg',\n", " 'ISIC_0028027': '../data/HAM10000_images_part_1/ISIC_0028027.jpg',\n", " 'ISIC_0028999': '../data/HAM10000_images_part_1/ISIC_0028999.jpg',\n", " 'ISIC_0027472': '../data/HAM10000_images_part_1/ISIC_0027472.jpg',\n", " 'ISIC_0028741': '../data/HAM10000_images_part_1/ISIC_0028741.jpg',\n", " 'ISIC_0025265': '../data/HAM10000_images_part_1/ISIC_0025265.jpg',\n", " 'ISIC_0025271': '../data/HAM10000_images_part_1/ISIC_0025271.jpg',\n", " 'ISIC_0026778': '../data/HAM10000_images_part_1/ISIC_0026778.jpg',\n", " 'ISIC_0027466': '../data/HAM10000_images_part_1/ISIC_0027466.jpg',\n", " 'ISIC_0028755': '../data/HAM10000_images_part_1/ISIC_0028755.jpg',\n", " 'ISIC_0027300': '../data/HAM10000_images_part_1/ISIC_0027300.jpg',\n", " 'ISIC_0028033': '../data/HAM10000_images_part_1/ISIC_0028033.jpg',\n", " 'ISIC_0025517': '../data/HAM10000_images_part_1/ISIC_0025517.jpg',\n", " 'ISIC_0024609': '../data/HAM10000_images_part_1/ISIC_0024609.jpg',\n", " 'ISIC_0024386': '../data/HAM10000_images_part_1/ISIC_0024386.jpg',\n", " 'ISIC_0025098': '../data/HAM10000_images_part_1/ISIC_0025098.jpg',\n", " 'ISIC_0027857': '../data/HAM10000_images_part_1/ISIC_0027857.jpg',\n", " 'ISIC_0026591': '../data/HAM10000_images_part_1/ISIC_0026591.jpg',\n", " 'ISIC_0025926': '../data/HAM10000_images_part_1/ISIC_0025926.jpg',\n", " 'ISIC_0025932': '../data/HAM10000_images_part_1/ISIC_0025932.jpg',\n", " 'ISIC_0027843': '../data/HAM10000_images_part_1/ISIC_0027843.jpg',\n", " 'ISIC_0026585': '../data/HAM10000_images_part_1/ISIC_0026585.jpg',\n", " 'ISIC_0024392': '../data/HAM10000_images_part_1/ISIC_0024392.jpg',\n", " 'ISIC_0028580': '../data/HAM10000_images_part_1/ISIC_0028580.jpg',\n", " 'ISIC_0028594': '../data/HAM10000_images_part_1/ISIC_0028594.jpg',\n", " 'ISIC_0027894': '../data/HAM10000_images_part_1/ISIC_0027894.jpg',\n", " 'ISIC_0026552': '../data/HAM10000_images_part_1/ISIC_0026552.jpg',\n", " 'ISIC_0024345': '../data/HAM10000_images_part_1/ISIC_0024345.jpg',\n", " 'ISIC_0024423': '../data/HAM10000_images_part_1/ISIC_0024423.jpg',\n", " 'ISIC_0026234': '../data/HAM10000_images_part_1/ISIC_0026234.jpg',\n", " 'ISIC_0029107': '../data/HAM10000_images_part_1/ISIC_0029107.jpg',\n", " 'ISIC_0028219': '../data/HAM10000_images_part_1/ISIC_0028219.jpg',\n", " 'ISIC_0026220': '../data/HAM10000_images_part_1/ISIC_0026220.jpg',\n", " 'ISIC_0029113': '../data/HAM10000_images_part_1/ISIC_0029113.jpg',\n", " 'ISIC_0024437': '../data/HAM10000_images_part_1/ISIC_0024437.jpg',\n", " 'ISIC_0025729': '../data/HAM10000_images_part_1/ISIC_0025729.jpg',\n", " 'ISIC_0024351': '../data/HAM10000_images_part_1/ISIC_0024351.jpg',\n", " 'ISIC_0027658': '../data/HAM10000_images_part_1/ISIC_0027658.jpg',\n", " 'ISIC_0027880': '../data/HAM10000_images_part_1/ISIC_0027880.jpg',\n", " 'ISIC_0026546': '../data/HAM10000_images_part_1/ISIC_0026546.jpg',\n", " 'ISIC_0025067': '../data/HAM10000_images_part_1/ISIC_0025067.jpg',\n", " 'ISIC_0024379': '../data/HAM10000_images_part_1/ISIC_0024379.jpg',\n", " 'ISIC_0028543': '../data/HAM10000_images_part_1/ISIC_0028543.jpg',\n", " 'ISIC_0027670': '../data/HAM10000_images_part_1/ISIC_0027670.jpg',\n", " 'ISIC_0026208': '../data/HAM10000_images_part_1/ISIC_0026208.jpg',\n", " 'ISIC_0028225': '../data/HAM10000_images_part_1/ISIC_0028225.jpg',\n", " 'ISIC_0027116': '../data/HAM10000_images_part_1/ISIC_0027116.jpg',\n", " 'ISIC_0025701': '../data/HAM10000_images_part_1/ISIC_0025701.jpg',\n", " 'ISIC_0025715': '../data/HAM10000_images_part_1/ISIC_0025715.jpg',\n", " 'ISIC_0028231': '../data/HAM10000_images_part_1/ISIC_0028231.jpg',\n", " 'ISIC_0027102': '../data/HAM10000_images_part_1/ISIC_0027102.jpg',\n", " 'ISIC_0028557': '../data/HAM10000_images_part_1/ISIC_0028557.jpg',\n", " 'ISIC_0027664': '../data/HAM10000_images_part_1/ISIC_0027664.jpg',\n", " 'ISIC_0025073': '../data/HAM10000_images_part_1/ISIC_0025073.jpg',\n", " 'ISIC_0027923': '../data/HAM10000_images_part_1/ISIC_0027923.jpg',\n", " 'ISIC_0026383': '../data/HAM10000_images_part_1/ISIC_0026383.jpg',\n", " 'ISIC_0025852': '../data/HAM10000_images_part_1/ISIC_0025852.jpg',\n", " 'ISIC_0024594': '../data/HAM10000_images_part_1/ISIC_0024594.jpg',\n", " 'ISIC_0025846': '../data/HAM10000_images_part_1/ISIC_0025846.jpg',\n", " 'ISIC_0024580': '../data/HAM10000_images_part_1/ISIC_0024580.jpg',\n", " 'ISIC_0026397': '../data/HAM10000_images_part_1/ISIC_0026397.jpg',\n", " 'ISIC_0027089': '../data/HAM10000_images_part_1/ISIC_0027089.jpg',\n", " 'ISIC_0027937': '../data/HAM10000_images_part_1/ISIC_0027937.jpg',\n", " 'ISIC_0028392': '../data/HAM10000_images_part_1/ISIC_0028392.jpg',\n", " 'ISIC_0029098': '../data/HAM10000_images_part_1/ISIC_0029098.jpg',\n", " 'ISIC_0028386': '../data/HAM10000_images_part_1/ISIC_0028386.jpg',\n", " 'ISIC_0026426': '../data/HAM10000_images_part_1/ISIC_0026426.jpg',\n", " 'ISIC_0027738': '../data/HAM10000_images_part_1/ISIC_0027738.jpg',\n", " 'ISIC_0025649': '../data/HAM10000_images_part_1/ISIC_0025649.jpg',\n", " 'ISIC_0025891': '../data/HAM10000_images_part_1/ISIC_0025891.jpg',\n", " 'ISIC_0024557': '../data/HAM10000_images_part_1/ISIC_0024557.jpg',\n", " 'ISIC_0026340': '../data/HAM10000_images_part_1/ISIC_0026340.jpg',\n", " 'ISIC_0029073': '../data/HAM10000_images_part_1/ISIC_0029073.jpg',\n", " 'ISIC_0028379': '../data/HAM10000_images_part_1/ISIC_0028379.jpg',\n", " 'ISIC_0026354': '../data/HAM10000_images_part_1/ISIC_0026354.jpg',\n", " 'ISIC_0029067': '../data/HAM10000_images_part_1/ISIC_0029067.jpg',\n", " 'ISIC_0025885': '../data/HAM10000_images_part_1/ISIC_0025885.jpg',\n", " 'ISIC_0024543': '../data/HAM10000_images_part_1/ISIC_0024543.jpg',\n", " 'ISIC_0026432': '../data/HAM10000_images_part_1/ISIC_0026432.jpg',\n", " 'ISIC_0025113': '../data/HAM10000_images_part_1/ISIC_0025113.jpg',\n", " 'ISIC_0028437': '../data/HAM10000_images_part_1/ISIC_0028437.jpg',\n", " 'ISIC_0027704': '../data/HAM10000_images_part_1/ISIC_0027704.jpg',\n", " 'ISIC_0028351': '../data/HAM10000_images_part_1/ISIC_0028351.jpg',\n", " 'ISIC_0027062': '../data/HAM10000_images_part_1/ISIC_0027062.jpg',\n", " 'ISIC_0025675': '../data/HAM10000_images_part_1/ISIC_0025675.jpg',\n", " 'ISIC_0025661': '../data/HAM10000_images_part_1/ISIC_0025661.jpg',\n", " 'ISIC_0028345': '../data/HAM10000_images_part_1/ISIC_0028345.jpg',\n", " 'ISIC_0027076': '../data/HAM10000_images_part_1/ISIC_0027076.jpg',\n", " 'ISIC_0026368': '../data/HAM10000_images_part_1/ISIC_0026368.jpg',\n", " 'ISIC_0028423': '../data/HAM10000_images_part_1/ISIC_0028423.jpg',\n", " 'ISIC_0027710': '../data/HAM10000_images_part_1/ISIC_0027710.jpg',\n", " 'ISIC_0025107': '../data/HAM10000_images_part_1/ISIC_0025107.jpg',\n", " 'ISIC_0025488': '../data/HAM10000_images_part_1/ISIC_0025488.jpg',\n", " 'ISIC_0024796': '../data/HAM10000_images_part_1/ISIC_0024796.jpg',\n", " 'ISIC_0026181': '../data/HAM10000_images_part_1/ISIC_0026181.jpg',\n", " 'ISIC_0028812': '../data/HAM10000_images_part_1/ISIC_0028812.jpg',\n", " 'ISIC_0028806': '../data/HAM10000_images_part_1/ISIC_0028806.jpg',\n", " 'ISIC_0026195': '../data/HAM10000_images_part_1/ISIC_0026195.jpg',\n", " 'ISIC_0024782': '../data/HAM10000_images_part_1/ISIC_0024782.jpg',\n", " 'ISIC_0028190': '../data/HAM10000_images_part_1/ISIC_0028190.jpg',\n", " 'ISIC_0024972': '../data/HAM10000_images_part_1/ISIC_0024972.jpg',\n", " 'ISIC_0026803': '../data/HAM10000_images_part_1/ISIC_0026803.jpg',\n", " 'ISIC_0026817': '../data/HAM10000_images_part_1/ISIC_0026817.jpg',\n", " 'ISIC_0024966': '../data/HAM10000_images_part_1/ISIC_0024966.jpg',\n", " 'ISIC_0028184': '../data/HAM10000_images_part_1/ISIC_0028184.jpg',\n", " 'ISIC_0029271': '../data/HAM10000_images_part_1/ISIC_0029271.jpg',\n", " 'ISIC_0026142': '../data/HAM10000_images_part_1/ISIC_0026142.jpg',\n", " 'ISIC_0024755': '../data/HAM10000_images_part_1/ISIC_0024755.jpg',\n", " 'ISIC_0028609': '../data/HAM10000_images_part_1/ISIC_0028609.jpg',\n", " 'ISIC_0026624': '../data/HAM10000_images_part_1/ISIC_0026624.jpg',\n", " 'ISIC_0026630': '../data/HAM10000_images_part_1/ISIC_0026630.jpg',\n", " 'ISIC_0025339': '../data/HAM10000_images_part_1/ISIC_0025339.jpg',\n", " 'ISIC_0024741': '../data/HAM10000_images_part_1/ISIC_0024741.jpg',\n", " 'ISIC_0024999': '../data/HAM10000_images_part_1/ISIC_0024999.jpg',\n", " 'ISIC_0029265': '../data/HAM10000_images_part_1/ISIC_0029265.jpg',\n", " 'ISIC_0026156': '../data/HAM10000_images_part_1/ISIC_0026156.jpg',\n", " 'ISIC_0027248': '../data/HAM10000_images_part_1/ISIC_0027248.jpg',\n", " 'ISIC_0024769': '../data/HAM10000_images_part_1/ISIC_0024769.jpg',\n", " 'ISIC_0025477': '../data/HAM10000_images_part_1/ISIC_0025477.jpg',\n", " 'ISIC_0027260': '../data/HAM10000_images_part_1/ISIC_0027260.jpg',\n", " 'ISIC_0028153': '../data/HAM10000_images_part_1/ISIC_0028153.jpg',\n", " 'ISIC_0027506': '../data/HAM10000_images_part_1/ISIC_0027506.jpg',\n", " 'ISIC_0028635': '../data/HAM10000_images_part_1/ISIC_0028635.jpg',\n", " 'ISIC_0026618': '../data/HAM10000_images_part_1/ISIC_0026618.jpg',\n", " 'ISIC_0025311': '../data/HAM10000_images_part_1/ISIC_0025311.jpg',\n", " 'ISIC_0025305': '../data/HAM10000_images_part_1/ISIC_0025305.jpg',\n", " 'ISIC_0027512': '../data/HAM10000_images_part_1/ISIC_0027512.jpg',\n", " 'ISIC_0028621': '../data/HAM10000_images_part_1/ISIC_0028621.jpg',\n", " 'ISIC_0029259': '../data/HAM10000_images_part_1/ISIC_0029259.jpg',\n", " 'ISIC_0027274': '../data/HAM10000_images_part_1/ISIC_0027274.jpg',\n", " 'ISIC_0028147': '../data/HAM10000_images_part_1/ISIC_0028147.jpg',\n", " 'ISIC_0025463': '../data/HAM10000_images_part_1/ISIC_0025463.jpg',\n", " 'ISIC_0028620': '../data/HAM10000_images_part_1/ISIC_0028620.jpg',\n", " 'ISIC_0027513': '../data/HAM10000_images_part_1/ISIC_0027513.jpg',\n", " 'ISIC_0025304': '../data/HAM10000_images_part_1/ISIC_0025304.jpg',\n", " 'ISIC_0025462': '../data/HAM10000_images_part_1/ISIC_0025462.jpg',\n", " 'ISIC_0028146': '../data/HAM10000_images_part_1/ISIC_0028146.jpg',\n", " 'ISIC_0027275': '../data/HAM10000_images_part_1/ISIC_0027275.jpg',\n", " 'ISIC_0029258': '../data/HAM10000_images_part_1/ISIC_0029258.jpg',\n", " 'ISIC_0028152': '../data/HAM10000_images_part_1/ISIC_0028152.jpg',\n", " 'ISIC_0027261': '../data/HAM10000_images_part_1/ISIC_0027261.jpg',\n", " 'ISIC_0025476': '../data/HAM10000_images_part_1/ISIC_0025476.jpg',\n", " 'ISIC_0024768': '../data/HAM10000_images_part_1/ISIC_0024768.jpg',\n", " 'ISIC_0025310': '../data/HAM10000_images_part_1/ISIC_0025310.jpg',\n", " 'ISIC_0026619': '../data/HAM10000_images_part_1/ISIC_0026619.jpg',\n", " 'ISIC_0028634': '../data/HAM10000_images_part_1/ISIC_0028634.jpg',\n", " 'ISIC_0027507': '../data/HAM10000_images_part_1/ISIC_0027507.jpg',\n", " 'ISIC_0025338': '../data/HAM10000_images_part_1/ISIC_0025338.jpg',\n", " 'ISIC_0026631': '../data/HAM10000_images_part_1/ISIC_0026631.jpg',\n", " 'ISIC_0027249': '../data/HAM10000_images_part_1/ISIC_0027249.jpg',\n", " 'ISIC_0026157': '../data/HAM10000_images_part_1/ISIC_0026157.jpg',\n", " 'ISIC_0029264': '../data/HAM10000_images_part_1/ISIC_0029264.jpg',\n", " 'ISIC_0024998': '../data/HAM10000_images_part_1/ISIC_0024998.jpg',\n", " 'ISIC_0024740': '../data/HAM10000_images_part_1/ISIC_0024740.jpg',\n", " 'ISIC_0024754': '../data/HAM10000_images_part_1/ISIC_0024754.jpg',\n", " 'ISIC_0026143': '../data/HAM10000_images_part_1/ISIC_0026143.jpg',\n", " 'ISIC_0029270': '../data/HAM10000_images_part_1/ISIC_0029270.jpg',\n", " 'ISIC_0026625': '../data/HAM10000_images_part_1/ISIC_0026625.jpg',\n", " 'ISIC_0028608': '../data/HAM10000_images_part_1/ISIC_0028608.jpg',\n", " 'ISIC_0026816': '../data/HAM10000_images_part_1/ISIC_0026816.jpg',\n", " 'ISIC_0028185': '../data/HAM10000_images_part_1/ISIC_0028185.jpg',\n", " 'ISIC_0024967': '../data/HAM10000_images_part_1/ISIC_0024967.jpg',\n", " 'ISIC_0024973': '../data/HAM10000_images_part_1/ISIC_0024973.jpg',\n", " 'ISIC_0028191': '../data/HAM10000_images_part_1/ISIC_0028191.jpg',\n", " 'ISIC_0026802': '../data/HAM10000_images_part_1/ISIC_0026802.jpg',\n", " 'ISIC_0028807': '../data/HAM10000_images_part_1/ISIC_0028807.jpg',\n", " 'ISIC_0024783': '../data/HAM10000_images_part_1/ISIC_0024783.jpg',\n", " 'ISIC_0026194': '../data/HAM10000_images_part_1/ISIC_0026194.jpg',\n", " 'ISIC_0026180': '../data/HAM10000_images_part_1/ISIC_0026180.jpg',\n", " 'ISIC_0024797': '../data/HAM10000_images_part_1/ISIC_0024797.jpg',\n", " 'ISIC_0025489': '../data/HAM10000_images_part_1/ISIC_0025489.jpg',\n", " 'ISIC_0028813': '../data/HAM10000_images_part_1/ISIC_0028813.jpg',\n", " 'ISIC_0026369': '../data/HAM10000_images_part_1/ISIC_0026369.jpg',\n", " 'ISIC_0027077': '../data/HAM10000_images_part_1/ISIC_0027077.jpg',\n", " 'ISIC_0028344': '../data/HAM10000_images_part_1/ISIC_0028344.jpg',\n", " 'ISIC_0025660': '../data/HAM10000_images_part_1/ISIC_0025660.jpg',\n", " 'ISIC_0025106': '../data/HAM10000_images_part_1/ISIC_0025106.jpg',\n", " 'ISIC_0027711': '../data/HAM10000_images_part_1/ISIC_0027711.jpg',\n", " 'ISIC_0028422': '../data/HAM10000_images_part_1/ISIC_0028422.jpg',\n", " 'ISIC_0027705': '../data/HAM10000_images_part_1/ISIC_0027705.jpg',\n", " 'ISIC_0028436': '../data/HAM10000_images_part_1/ISIC_0028436.jpg',\n", " 'ISIC_0025112': '../data/HAM10000_images_part_1/ISIC_0025112.jpg',\n", " 'ISIC_0025674': '../data/HAM10000_images_part_1/ISIC_0025674.jpg',\n", " 'ISIC_0027063': '../data/HAM10000_images_part_1/ISIC_0027063.jpg',\n", " 'ISIC_0028350': '../data/HAM10000_images_part_1/ISIC_0028350.jpg',\n", " 'ISIC_0024542': '../data/HAM10000_images_part_1/ISIC_0024542.jpg',\n", " 'ISIC_0025884': '../data/HAM10000_images_part_1/ISIC_0025884.jpg',\n", " 'ISIC_0029066': '../data/HAM10000_images_part_1/ISIC_0029066.jpg',\n", " 'ISIC_0026355': '../data/HAM10000_images_part_1/ISIC_0026355.jpg',\n", " 'ISIC_0028378': '../data/HAM10000_images_part_1/ISIC_0028378.jpg',\n", " 'ISIC_0026433': '../data/HAM10000_images_part_1/ISIC_0026433.jpg',\n", " 'ISIC_0027739': '../data/HAM10000_images_part_1/ISIC_0027739.jpg',\n", " 'ISIC_0026427': '../data/HAM10000_images_part_1/ISIC_0026427.jpg',\n", " 'ISIC_0029072': '../data/HAM10000_images_part_1/ISIC_0029072.jpg',\n", " 'ISIC_0026341': '../data/HAM10000_images_part_1/ISIC_0026341.jpg',\n", " 'ISIC_0024556': '../data/HAM10000_images_part_1/ISIC_0024556.jpg',\n", " 'ISIC_0025890': '../data/HAM10000_images_part_1/ISIC_0025890.jpg',\n", " 'ISIC_0025648': '../data/HAM10000_images_part_1/ISIC_0025648.jpg',\n", " 'ISIC_0028387': '../data/HAM10000_images_part_1/ISIC_0028387.jpg',\n", " 'ISIC_0029099': '../data/HAM10000_images_part_1/ISIC_0029099.jpg',\n", " 'ISIC_0028393': '../data/HAM10000_images_part_1/ISIC_0028393.jpg',\n", " 'ISIC_0027088': '../data/HAM10000_images_part_1/ISIC_0027088.jpg',\n", " 'ISIC_0026396': '../data/HAM10000_images_part_1/ISIC_0026396.jpg',\n", " 'ISIC_0024581': '../data/HAM10000_images_part_1/ISIC_0024581.jpg',\n", " 'ISIC_0025847': '../data/HAM10000_images_part_1/ISIC_0025847.jpg',\n", " 'ISIC_0027936': '../data/HAM10000_images_part_1/ISIC_0027936.jpg',\n", " 'ISIC_0027922': '../data/HAM10000_images_part_1/ISIC_0027922.jpg',\n", " 'ISIC_0024595': '../data/HAM10000_images_part_1/ISIC_0024595.jpg',\n", " 'ISIC_0025853': '../data/HAM10000_images_part_1/ISIC_0025853.jpg',\n", " 'ISIC_0026382': '../data/HAM10000_images_part_1/ISIC_0026382.jpg',\n", " 'ISIC_0027103': '../data/HAM10000_images_part_1/ISIC_0027103.jpg',\n", " 'ISIC_0028230': '../data/HAM10000_images_part_1/ISIC_0028230.jpg',\n", " 'ISIC_0025714': '../data/HAM10000_images_part_1/ISIC_0025714.jpg',\n", " 'ISIC_0025072': '../data/HAM10000_images_part_1/ISIC_0025072.jpg',\n", " 'ISIC_0027665': '../data/HAM10000_images_part_1/ISIC_0027665.jpg',\n", " 'ISIC_0028556': '../data/HAM10000_images_part_1/ISIC_0028556.jpg',\n", " 'ISIC_0027671': '../data/HAM10000_images_part_1/ISIC_0027671.jpg',\n", " 'ISIC_0028542': '../data/HAM10000_images_part_1/ISIC_0028542.jpg',\n", " 'ISIC_0024378': '../data/HAM10000_images_part_1/ISIC_0024378.jpg',\n", " 'ISIC_0025066': '../data/HAM10000_images_part_1/ISIC_0025066.jpg',\n", " 'ISIC_0025700': '../data/HAM10000_images_part_1/ISIC_0025700.jpg',\n", " 'ISIC_0027117': '../data/HAM10000_images_part_1/ISIC_0027117.jpg',\n", " 'ISIC_0028224': '../data/HAM10000_images_part_1/ISIC_0028224.jpg',\n", " 'ISIC_0026209': '../data/HAM10000_images_part_1/ISIC_0026209.jpg',\n", " 'ISIC_0025728': '../data/HAM10000_images_part_1/ISIC_0025728.jpg',\n", " 'ISIC_0024436': '../data/HAM10000_images_part_1/ISIC_0024436.jpg',\n", " 'ISIC_0029112': '../data/HAM10000_images_part_1/ISIC_0029112.jpg',\n", " 'ISIC_0026221': '../data/HAM10000_images_part_1/ISIC_0026221.jpg',\n", " 'ISIC_0026547': '../data/HAM10000_images_part_1/ISIC_0026547.jpg',\n", " 'ISIC_0027881': '../data/HAM10000_images_part_1/ISIC_0027881.jpg',\n", " 'ISIC_0027659': '../data/HAM10000_images_part_1/ISIC_0027659.jpg',\n", " 'ISIC_0024350': '../data/HAM10000_images_part_1/ISIC_0024350.jpg',\n", " 'ISIC_0024344': '../data/HAM10000_images_part_1/ISIC_0024344.jpg',\n", " 'ISIC_0026553': '../data/HAM10000_images_part_1/ISIC_0026553.jpg',\n", " 'ISIC_0027895': '../data/HAM10000_images_part_1/ISIC_0027895.jpg',\n", " 'ISIC_0028218': '../data/HAM10000_images_part_1/ISIC_0028218.jpg',\n", " 'ISIC_0029106': '../data/HAM10000_images_part_1/ISIC_0029106.jpg',\n", " 'ISIC_0026235': '../data/HAM10000_images_part_1/ISIC_0026235.jpg',\n", " 'ISIC_0024422': '../data/HAM10000_images_part_1/ISIC_0024422.jpg',\n", " 'ISIC_0028595': '../data/HAM10000_images_part_1/ISIC_0028595.jpg',\n", " 'ISIC_0028581': '../data/HAM10000_images_part_1/ISIC_0028581.jpg',\n", " 'ISIC_0025933': '../data/HAM10000_images_part_1/ISIC_0025933.jpg',\n", " 'ISIC_0024393': '../data/HAM10000_images_part_1/ISIC_0024393.jpg',\n", " 'ISIC_0026584': '../data/HAM10000_images_part_1/ISIC_0026584.jpg',\n", " 'ISIC_0027842': '../data/HAM10000_images_part_1/ISIC_0027842.jpg',\n", " 'ISIC_0026590': '../data/HAM10000_images_part_1/ISIC_0026590.jpg',\n", " 'ISIC_0027856': '../data/HAM10000_images_part_1/ISIC_0027856.jpg',\n", " 'ISIC_0025099': '../data/HAM10000_images_part_1/ISIC_0025099.jpg',\n", " 'ISIC_0024387': '../data/HAM10000_images_part_1/ISIC_0024387.jpg',\n", " 'ISIC_0025927': '../data/HAM10000_images_part_1/ISIC_0025927.jpg',\n", " 'ISIC_0028754': '../data/HAM10000_images_part_1/ISIC_0028754.jpg',\n", " 'ISIC_0027467': '../data/HAM10000_images_part_1/ISIC_0027467.jpg',\n", " 'ISIC_0026779': '../data/HAM10000_images_part_1/ISIC_0026779.jpg',\n", " 'ISIC_0025270': '../data/HAM10000_images_part_1/ISIC_0025270.jpg',\n", " 'ISIC_0024608': '../data/HAM10000_images_part_1/ISIC_0024608.jpg',\n", " 'ISIC_0025516': '../data/HAM10000_images_part_1/ISIC_0025516.jpg',\n", " 'ISIC_0028032': '../data/HAM10000_images_part_1/ISIC_0028032.jpg',\n", " 'ISIC_0027301': '../data/HAM10000_images_part_1/ISIC_0027301.jpg',\n", " 'ISIC_0028026': '../data/HAM10000_images_part_1/ISIC_0028026.jpg',\n", " 'ISIC_0027315': '../data/HAM10000_images_part_1/ISIC_0027315.jpg',\n", " 'ISIC_0025502': '../data/HAM10000_images_part_1/ISIC_0025502.jpg',\n", " 'ISIC_0025264': '../data/HAM10000_images_part_1/ISIC_0025264.jpg',\n", " 'ISIC_0028740': '../data/HAM10000_images_part_1/ISIC_0028740.jpg',\n", " 'ISIC_0027473': '../data/HAM10000_images_part_1/ISIC_0027473.jpg',\n", " 'ISIC_0028998': '../data/HAM10000_images_part_1/ISIC_0028998.jpg',\n", " 'ISIC_0028768': '../data/HAM10000_images_part_1/ISIC_0028768.jpg',\n", " 'ISIC_0026745': '../data/HAM10000_images_part_1/ISIC_0026745.jpg',\n", " 'ISIC_0026023': '../data/HAM10000_images_part_1/ISIC_0026023.jpg',\n", " 'ISIC_0024634': '../data/HAM10000_images_part_1/ISIC_0024634.jpg',\n", " 'ISIC_0024620': '../data/HAM10000_images_part_1/ISIC_0024620.jpg',\n", " 'ISIC_0026037': '../data/HAM10000_images_part_1/ISIC_0026037.jpg',\n", " 'ISIC_0029304': '../data/HAM10000_images_part_1/ISIC_0029304.jpg',\n", " 'ISIC_0027329': '../data/HAM10000_images_part_1/ISIC_0027329.jpg',\n", " 'ISIC_0026989': '../data/HAM10000_images_part_1/ISIC_0026989.jpg',\n", " 'ISIC_0026751': '../data/HAM10000_images_part_1/ISIC_0026751.jpg',\n", " 'ISIC_0025258': '../data/HAM10000_images_part_1/ISIC_0025258.jpg',\n", " 'ISIC_0028797': '../data/HAM10000_images_part_1/ISIC_0028797.jpg',\n", " 'ISIC_0026962': '../data/HAM10000_images_part_1/ISIC_0026962.jpg',\n", " 'ISIC_0024813': '../data/HAM10000_images_part_1/ISIC_0024813.jpg',\n", " 'ISIC_0024807': '../data/HAM10000_images_part_1/ISIC_0024807.jpg',\n", " 'ISIC_0028783': '../data/HAM10000_images_part_1/ISIC_0028783.jpg',\n", " 'ISIC_0026976': '../data/HAM10000_images_part_1/ISIC_0026976.jpg',\n", " 'ISIC_0028973': '../data/HAM10000_images_part_1/ISIC_0028973.jpg',\n", " 'ISIC_0026786': '../data/HAM10000_images_part_1/ISIC_0026786.jpg',\n", " 'ISIC_0027498': '../data/HAM10000_images_part_1/ISIC_0027498.jpg',\n", " 'ISIC_0028967': '../data/HAM10000_images_part_1/ISIC_0028967.jpg',\n", " 'ISIC_0026792': '../data/HAM10000_images_part_1/ISIC_0026792.jpg',\n", " 'ISIC_0028787': '../data/HAM10000_images_part_1/ISIC_0028787.jpg',\n", " 'ISIC_0026972': '../data/HAM10000_images_part_1/ISIC_0026972.jpg',\n", " 'ISIC_0024803': '../data/HAM10000_images_part_1/ISIC_0024803.jpg',\n", " 'ISIC_0024817': '../data/HAM10000_images_part_1/ISIC_0024817.jpg',\n", " 'ISIC_0028793': '../data/HAM10000_images_part_1/ISIC_0028793.jpg',\n", " 'ISIC_0026966': '../data/HAM10000_images_part_1/ISIC_0026966.jpg',\n", " 'ISIC_0027488': '../data/HAM10000_images_part_1/ISIC_0027488.jpg',\n", " 'ISIC_0028963': '../data/HAM10000_images_part_1/ISIC_0028963.jpg',\n", " 'ISIC_0026796': '../data/HAM10000_images_part_1/ISIC_0026796.jpg',\n", " 'ISIC_0028977': '../data/HAM10000_images_part_1/ISIC_0028977.jpg',\n", " 'ISIC_0026782': '../data/HAM10000_images_part_1/ISIC_0026782.jpg',\n", " 'ISIC_0026769': '../data/HAM10000_images_part_1/ISIC_0026769.jpg',\n", " 'ISIC_0027477': '../data/HAM10000_images_part_1/ISIC_0027477.jpg',\n", " 'ISIC_0028744': '../data/HAM10000_images_part_1/ISIC_0028744.jpg',\n", " 'ISIC_0025260': '../data/HAM10000_images_part_1/ISIC_0025260.jpg',\n", " 'ISIC_0025506': '../data/HAM10000_images_part_1/ISIC_0025506.jpg',\n", " 'ISIC_0024618': '../data/HAM10000_images_part_1/ISIC_0024618.jpg',\n", " 'ISIC_0027311': '../data/HAM10000_images_part_1/ISIC_0027311.jpg',\n", " 'ISIC_0028022': '../data/HAM10000_images_part_1/ISIC_0028022.jpg',\n", " 'ISIC_0027305': '../data/HAM10000_images_part_1/ISIC_0027305.jpg',\n", " 'ISIC_0028036': '../data/HAM10000_images_part_1/ISIC_0028036.jpg',\n", " 'ISIC_0025512': '../data/HAM10000_images_part_1/ISIC_0025512.jpg',\n", " 'ISIC_0025274': '../data/HAM10000_images_part_1/ISIC_0025274.jpg',\n", " 'ISIC_0028988': '../data/HAM10000_images_part_1/ISIC_0028988.jpg',\n", " 'ISIC_0027463': '../data/HAM10000_images_part_1/ISIC_0027463.jpg',\n", " 'ISIC_0028750': '../data/HAM10000_images_part_1/ISIC_0028750.jpg',\n", " 'ISIC_0026755': '../data/HAM10000_images_part_1/ISIC_0026755.jpg',\n", " 'ISIC_0028778': '../data/HAM10000_images_part_1/ISIC_0028778.jpg',\n", " 'ISIC_0029300': '../data/HAM10000_images_part_1/ISIC_0029300.jpg',\n", " 'ISIC_0026033': '../data/HAM10000_images_part_1/ISIC_0026033.jpg',\n", " 'ISIC_0024624': '../data/HAM10000_images_part_1/ISIC_0024624.jpg',\n", " 'ISIC_0024630': '../data/HAM10000_images_part_1/ISIC_0024630.jpg',\n", " 'ISIC_0027339': '../data/HAM10000_images_part_1/ISIC_0027339.jpg',\n", " 'ISIC_0026027': '../data/HAM10000_images_part_1/ISIC_0026027.jpg',\n", " 'ISIC_0026741': '../data/HAM10000_images_part_1/ISIC_0026741.jpg',\n", " 'ISIC_0026999': '../data/HAM10000_images_part_1/ISIC_0026999.jpg',\n", " 'ISIC_0025248': '../data/HAM10000_images_part_1/ISIC_0025248.jpg',\n", " 'ISIC_0028585': '../data/HAM10000_images_part_1/ISIC_0028585.jpg',\n", " 'ISIC_0028591': '../data/HAM10000_images_part_1/ISIC_0028591.jpg',\n", " 'ISIC_0025923': '../data/HAM10000_images_part_1/ISIC_0025923.jpg',\n", " 'ISIC_0024383': '../data/HAM10000_images_part_1/ISIC_0024383.jpg',\n", " 'ISIC_0026594': '../data/HAM10000_images_part_1/ISIC_0026594.jpg',\n", " 'ISIC_0027852': '../data/HAM10000_images_part_1/ISIC_0027852.jpg',\n", " 'ISIC_0026580': '../data/HAM10000_images_part_1/ISIC_0026580.jpg',\n", " 'ISIC_0027846': '../data/HAM10000_images_part_1/ISIC_0027846.jpg',\n", " 'ISIC_0024397': '../data/HAM10000_images_part_1/ISIC_0024397.jpg',\n", " 'ISIC_0025089': '../data/HAM10000_images_part_1/ISIC_0025089.jpg',\n", " 'ISIC_0025937': '../data/HAM10000_images_part_1/ISIC_0025937.jpg',\n", " 'ISIC_0028220': '../data/HAM10000_images_part_1/ISIC_0028220.jpg',\n", " 'ISIC_0027113': '../data/HAM10000_images_part_1/ISIC_0027113.jpg',\n", " 'ISIC_0025704': '../data/HAM10000_images_part_1/ISIC_0025704.jpg',\n", " 'ISIC_0025062': '../data/HAM10000_images_part_1/ISIC_0025062.jpg',\n", " 'ISIC_0028546': '../data/HAM10000_images_part_1/ISIC_0028546.jpg',\n", " 'ISIC_0027675': '../data/HAM10000_images_part_1/ISIC_0027675.jpg',\n", " 'ISIC_0028552': '../data/HAM10000_images_part_1/ISIC_0028552.jpg',\n", " 'ISIC_0027661': '../data/HAM10000_images_part_1/ISIC_0027661.jpg',\n", " 'ISIC_0025076': '../data/HAM10000_images_part_1/ISIC_0025076.jpg',\n", " 'ISIC_0024368': '../data/HAM10000_images_part_1/ISIC_0024368.jpg',\n", " 'ISIC_0025710': '../data/HAM10000_images_part_1/ISIC_0025710.jpg',\n", " 'ISIC_0026219': '../data/HAM10000_images_part_1/ISIC_0026219.jpg',\n", " 'ISIC_0028234': '../data/HAM10000_images_part_1/ISIC_0028234.jpg',\n", " 'ISIC_0027107': '../data/HAM10000_images_part_1/ISIC_0027107.jpg',\n", " 'ISIC_0024426': '../data/HAM10000_images_part_1/ISIC_0024426.jpg',\n", " 'ISIC_0025738': '../data/HAM10000_images_part_1/ISIC_0025738.jpg',\n", " 'ISIC_0026231': '../data/HAM10000_images_part_1/ISIC_0026231.jpg',\n", " 'ISIC_0029102': '../data/HAM10000_images_part_1/ISIC_0029102.jpg',\n", " 'ISIC_0027649': '../data/HAM10000_images_part_1/ISIC_0027649.jpg',\n", " 'ISIC_0026557': '../data/HAM10000_images_part_1/ISIC_0026557.jpg',\n", " 'ISIC_0027891': '../data/HAM10000_images_part_1/ISIC_0027891.jpg',\n", " 'ISIC_0024340': '../data/HAM10000_images_part_1/ISIC_0024340.jpg',\n", " 'ISIC_0024354': '../data/HAM10000_images_part_1/ISIC_0024354.jpg',\n", " 'ISIC_0026543': '../data/HAM10000_images_part_1/ISIC_0026543.jpg',\n", " 'ISIC_0027885': '../data/HAM10000_images_part_1/ISIC_0027885.jpg',\n", " 'ISIC_0026225': '../data/HAM10000_images_part_1/ISIC_0026225.jpg',\n", " 'ISIC_0029116': '../data/HAM10000_images_part_1/ISIC_0029116.jpg',\n", " 'ISIC_0028208': '../data/HAM10000_images_part_1/ISIC_0028208.jpg',\n", " 'ISIC_0024432': '../data/HAM10000_images_part_1/ISIC_0024432.jpg',\n", " 'ISIC_0029089': '../data/HAM10000_images_part_1/ISIC_0029089.jpg',\n", " 'ISIC_0028397': '../data/HAM10000_images_part_1/ISIC_0028397.jpg',\n", " 'ISIC_0028383': '../data/HAM10000_images_part_1/ISIC_0028383.jpg',\n", " 'ISIC_0026386': '../data/HAM10000_images_part_1/ISIC_0026386.jpg',\n", " 'ISIC_0027098': '../data/HAM10000_images_part_1/ISIC_0027098.jpg',\n", " 'ISIC_0024591': '../data/HAM10000_images_part_1/ISIC_0024591.jpg',\n", " 'ISIC_0025857': '../data/HAM10000_images_part_1/ISIC_0025857.jpg',\n", " 'ISIC_0027926': '../data/HAM10000_images_part_1/ISIC_0027926.jpg',\n", " 'ISIC_0027932': '../data/HAM10000_images_part_1/ISIC_0027932.jpg',\n", " 'ISIC_0024585': '../data/HAM10000_images_part_1/ISIC_0024585.jpg',\n", " 'ISIC_0025843': '../data/HAM10000_images_part_1/ISIC_0025843.jpg',\n", " 'ISIC_0026392': '../data/HAM10000_images_part_1/ISIC_0026392.jpg',\n", " 'ISIC_0028354': '../data/HAM10000_images_part_1/ISIC_0028354.jpg',\n", " 'ISIC_0027067': '../data/HAM10000_images_part_1/ISIC_0027067.jpg',\n", " 'ISIC_0026379': '../data/HAM10000_images_part_1/ISIC_0026379.jpg',\n", " 'ISIC_0025670': '../data/HAM10000_images_part_1/ISIC_0025670.jpg',\n", " 'ISIC_0025116': '../data/HAM10000_images_part_1/ISIC_0025116.jpg',\n", " 'ISIC_0028432': '../data/HAM10000_images_part_1/ISIC_0028432.jpg',\n", " 'ISIC_0027701': '../data/HAM10000_images_part_1/ISIC_0027701.jpg',\n", " 'ISIC_0028426': '../data/HAM10000_images_part_1/ISIC_0028426.jpg',\n", " 'ISIC_0027715': '../data/HAM10000_images_part_1/ISIC_0027715.jpg',\n", " 'ISIC_0025102': '../data/HAM10000_images_part_1/ISIC_0025102.jpg',\n", " 'ISIC_0025664': '../data/HAM10000_images_part_1/ISIC_0025664.jpg',\n", " 'ISIC_0028340': '../data/HAM10000_images_part_1/ISIC_0028340.jpg',\n", " 'ISIC_0027073': '../data/HAM10000_images_part_1/ISIC_0027073.jpg',\n", " 'ISIC_0024552': '../data/HAM10000_images_part_1/ISIC_0024552.jpg',\n", " 'ISIC_0025894': '../data/HAM10000_images_part_1/ISIC_0025894.jpg',\n", " 'ISIC_0028368': '../data/HAM10000_images_part_1/ISIC_0028368.jpg',\n", " 'ISIC_0026345': '../data/HAM10000_images_part_1/ISIC_0026345.jpg',\n", " 'ISIC_0029076': '../data/HAM10000_images_part_1/ISIC_0029076.jpg',\n", " 'ISIC_0026423': '../data/HAM10000_images_part_1/ISIC_0026423.jpg',\n", " 'ISIC_0026437': '../data/HAM10000_images_part_1/ISIC_0026437.jpg',\n", " 'ISIC_0027729': '../data/HAM10000_images_part_1/ISIC_0027729.jpg',\n", " 'ISIC_0026351': '../data/HAM10000_images_part_1/ISIC_0026351.jpg',\n", " 'ISIC_0029062': '../data/HAM10000_images_part_1/ISIC_0029062.jpg',\n", " 'ISIC_0025658': '../data/HAM10000_images_part_1/ISIC_0025658.jpg',\n", " 'ISIC_0024546': '../data/HAM10000_images_part_1/ISIC_0024546.jpg',\n", " 'ISIC_0025880': '../data/HAM10000_images_part_1/ISIC_0025880.jpg',\n", " 'ISIC_0026806': '../data/HAM10000_images_part_1/ISIC_0026806.jpg',\n", " 'ISIC_0028195': '../data/HAM10000_images_part_1/ISIC_0028195.jpg',\n", " 'ISIC_0024977': '../data/HAM10000_images_part_1/ISIC_0024977.jpg',\n", " 'ISIC_0024963': '../data/HAM10000_images_part_1/ISIC_0024963.jpg',\n", " 'ISIC_0028181': '../data/HAM10000_images_part_1/ISIC_0028181.jpg',\n", " 'ISIC_0026812': '../data/HAM10000_images_part_1/ISIC_0026812.jpg',\n", " 'ISIC_0028817': '../data/HAM10000_images_part_1/ISIC_0028817.jpg',\n", " 'ISIC_0024793': '../data/HAM10000_images_part_1/ISIC_0024793.jpg',\n", " 'ISIC_0026184': '../data/HAM10000_images_part_1/ISIC_0026184.jpg',\n", " 'ISIC_0026190': '../data/HAM10000_images_part_1/ISIC_0026190.jpg',\n", " 'ISIC_0025499': '../data/HAM10000_images_part_1/ISIC_0025499.jpg',\n", " 'ISIC_0024787': '../data/HAM10000_images_part_1/ISIC_0024787.jpg',\n", " 'ISIC_0028803': '../data/HAM10000_images_part_1/ISIC_0028803.jpg',\n", " 'ISIC_0027503': '../data/HAM10000_images_part_1/ISIC_0027503.jpg',\n", " 'ISIC_0028630': '../data/HAM10000_images_part_1/ISIC_0028630.jpg',\n", " 'ISIC_0025314': '../data/HAM10000_images_part_1/ISIC_0025314.jpg',\n", " 'ISIC_0025472': '../data/HAM10000_images_part_1/ISIC_0025472.jpg',\n", " 'ISIC_0029248': '../data/HAM10000_images_part_1/ISIC_0029248.jpg',\n", " 'ISIC_0027265': '../data/HAM10000_images_part_1/ISIC_0027265.jpg',\n", " 'ISIC_0028156': '../data/HAM10000_images_part_1/ISIC_0028156.jpg',\n", " 'ISIC_0027271': '../data/HAM10000_images_part_1/ISIC_0027271.jpg',\n", " 'ISIC_0028142': '../data/HAM10000_images_part_1/ISIC_0028142.jpg',\n", " 'ISIC_0024778': '../data/HAM10000_images_part_1/ISIC_0024778.jpg',\n", " 'ISIC_0025466': '../data/HAM10000_images_part_1/ISIC_0025466.jpg',\n", " 'ISIC_0025300': '../data/HAM10000_images_part_1/ISIC_0025300.jpg',\n", " 'ISIC_0027517': '../data/HAM10000_images_part_1/ISIC_0027517.jpg',\n", " 'ISIC_0028624': '../data/HAM10000_images_part_1/ISIC_0028624.jpg',\n", " 'ISIC_0026609': '../data/HAM10000_images_part_1/ISIC_0026609.jpg',\n", " 'ISIC_0025328': '../data/HAM10000_images_part_1/ISIC_0025328.jpg',\n", " 'ISIC_0026621': '../data/HAM10000_images_part_1/ISIC_0026621.jpg',\n", " 'ISIC_0029274': '../data/HAM10000_images_part_1/ISIC_0029274.jpg',\n", " 'ISIC_0026147': '../data/HAM10000_images_part_1/ISIC_0026147.jpg',\n", " 'ISIC_0027259': '../data/HAM10000_images_part_1/ISIC_0027259.jpg',\n", " 'ISIC_0024750': '../data/HAM10000_images_part_1/ISIC_0024750.jpg',\n", " 'ISIC_0024988': '../data/HAM10000_images_part_1/ISIC_0024988.jpg',\n", " 'ISIC_0024744': '../data/HAM10000_images_part_1/ISIC_0024744.jpg',\n", " 'ISIC_0029260': '../data/HAM10000_images_part_1/ISIC_0029260.jpg',\n", " 'ISIC_0026153': '../data/HAM10000_images_part_1/ISIC_0026153.jpg',\n", " 'ISIC_0028618': '../data/HAM10000_images_part_1/ISIC_0028618.jpg',\n", " 'ISIC_0026635': '../data/HAM10000_images_part_1/ISIC_0026635.jpg',\n", " 'ISIC_0026152': '../data/HAM10000_images_part_1/ISIC_0026152.jpg',\n", " 'ISIC_0029261': '../data/HAM10000_images_part_1/ISIC_0029261.jpg',\n", " 'ISIC_0024745': '../data/HAM10000_images_part_1/ISIC_0024745.jpg',\n", " 'ISIC_0026634': '../data/HAM10000_images_part_1/ISIC_0026634.jpg',\n", " 'ISIC_0028619': '../data/HAM10000_images_part_1/ISIC_0028619.jpg',\n", " 'ISIC_0026620': '../data/HAM10000_images_part_1/ISIC_0026620.jpg',\n", " 'ISIC_0025329': '../data/HAM10000_images_part_1/ISIC_0025329.jpg',\n", " 'ISIC_0024989': '../data/HAM10000_images_part_1/ISIC_0024989.jpg',\n", " 'ISIC_0024751': '../data/HAM10000_images_part_1/ISIC_0024751.jpg',\n", " 'ISIC_0027258': '../data/HAM10000_images_part_1/ISIC_0027258.jpg',\n", " 'ISIC_0026146': '../data/HAM10000_images_part_1/ISIC_0026146.jpg',\n", " 'ISIC_0029275': '../data/HAM10000_images_part_1/ISIC_0029275.jpg',\n", " 'ISIC_0025467': '../data/HAM10000_images_part_1/ISIC_0025467.jpg',\n", " 'ISIC_0024779': '../data/HAM10000_images_part_1/ISIC_0024779.jpg',\n", " 'ISIC_0028143': '../data/HAM10000_images_part_1/ISIC_0028143.jpg',\n", " 'ISIC_0027270': '../data/HAM10000_images_part_1/ISIC_0027270.jpg',\n", " 'ISIC_0026608': '../data/HAM10000_images_part_1/ISIC_0026608.jpg',\n", " 'ISIC_0028625': '../data/HAM10000_images_part_1/ISIC_0028625.jpg',\n", " 'ISIC_0027516': '../data/HAM10000_images_part_1/ISIC_0027516.jpg',\n", " 'ISIC_0025301': '../data/HAM10000_images_part_1/ISIC_0025301.jpg',\n", " 'ISIC_0025315': '../data/HAM10000_images_part_1/ISIC_0025315.jpg',\n", " 'ISIC_0028631': '../data/HAM10000_images_part_1/ISIC_0028631.jpg',\n", " 'ISIC_0027502': '../data/HAM10000_images_part_1/ISIC_0027502.jpg',\n", " 'ISIC_0028157': '../data/HAM10000_images_part_1/ISIC_0028157.jpg',\n", " 'ISIC_0027264': '../data/HAM10000_images_part_1/ISIC_0027264.jpg',\n", " 'ISIC_0029249': '../data/HAM10000_images_part_1/ISIC_0029249.jpg',\n", " 'ISIC_0025473': '../data/HAM10000_images_part_1/ISIC_0025473.jpg',\n", " 'ISIC_0024786': '../data/HAM10000_images_part_1/ISIC_0024786.jpg',\n", " 'ISIC_0025498': '../data/HAM10000_images_part_1/ISIC_0025498.jpg',\n", " 'ISIC_0026191': '../data/HAM10000_images_part_1/ISIC_0026191.jpg',\n", " 'ISIC_0028802': '../data/HAM10000_images_part_1/ISIC_0028802.jpg',\n", " 'ISIC_0028816': '../data/HAM10000_images_part_1/ISIC_0028816.jpg',\n", " 'ISIC_0026185': '../data/HAM10000_images_part_1/ISIC_0026185.jpg',\n", " 'ISIC_0024792': '../data/HAM10000_images_part_1/ISIC_0024792.jpg',\n", " 'ISIC_0028180': '../data/HAM10000_images_part_1/ISIC_0028180.jpg',\n", " 'ISIC_0024962': '../data/HAM10000_images_part_1/ISIC_0024962.jpg',\n", " 'ISIC_0026813': '../data/HAM10000_images_part_1/ISIC_0026813.jpg',\n", " 'ISIC_0026807': '../data/HAM10000_images_part_1/ISIC_0026807.jpg',\n", " 'ISIC_0024976': '../data/HAM10000_images_part_1/ISIC_0024976.jpg',\n", " 'ISIC_0028194': '../data/HAM10000_images_part_1/ISIC_0028194.jpg',\n", " 'ISIC_0027728': '../data/HAM10000_images_part_1/ISIC_0027728.jpg',\n", " 'ISIC_0026436': '../data/HAM10000_images_part_1/ISIC_0026436.jpg',\n", " 'ISIC_0025881': '../data/HAM10000_images_part_1/ISIC_0025881.jpg',\n", " 'ISIC_0024547': '../data/HAM10000_images_part_1/ISIC_0024547.jpg',\n", " 'ISIC_0025659': '../data/HAM10000_images_part_1/ISIC_0025659.jpg',\n", " 'ISIC_0029063': '../data/HAM10000_images_part_1/ISIC_0029063.jpg',\n", " 'ISIC_0026350': '../data/HAM10000_images_part_1/ISIC_0026350.jpg',\n", " 'ISIC_0029077': '../data/HAM10000_images_part_1/ISIC_0029077.jpg',\n", " 'ISIC_0026344': '../data/HAM10000_images_part_1/ISIC_0026344.jpg',\n", " 'ISIC_0028369': '../data/HAM10000_images_part_1/ISIC_0028369.jpg',\n", " 'ISIC_0025895': '../data/HAM10000_images_part_1/ISIC_0025895.jpg',\n", " 'ISIC_0024553': '../data/HAM10000_images_part_1/ISIC_0024553.jpg',\n", " 'ISIC_0026422': '../data/HAM10000_images_part_1/ISIC_0026422.jpg',\n", " 'ISIC_0025103': '../data/HAM10000_images_part_1/ISIC_0025103.jpg',\n", " 'ISIC_0027714': '../data/HAM10000_images_part_1/ISIC_0027714.jpg',\n", " 'ISIC_0028427': '../data/HAM10000_images_part_1/ISIC_0028427.jpg',\n", " 'ISIC_0027072': '../data/HAM10000_images_part_1/ISIC_0027072.jpg',\n", " 'ISIC_0028341': '../data/HAM10000_images_part_1/ISIC_0028341.jpg',\n", " 'ISIC_0025665': '../data/HAM10000_images_part_1/ISIC_0025665.jpg',\n", " 'ISIC_0025671': '../data/HAM10000_images_part_1/ISIC_0025671.jpg',\n", " 'ISIC_0026378': '../data/HAM10000_images_part_1/ISIC_0026378.jpg',\n", " 'ISIC_0027066': '../data/HAM10000_images_part_1/ISIC_0027066.jpg',\n", " 'ISIC_0028355': '../data/HAM10000_images_part_1/ISIC_0028355.jpg',\n", " 'ISIC_0027700': '../data/HAM10000_images_part_1/ISIC_0027700.jpg',\n", " 'ISIC_0028433': '../data/HAM10000_images_part_1/ISIC_0028433.jpg',\n", " 'ISIC_0025117': '../data/HAM10000_images_part_1/ISIC_0025117.jpg',\n", " 'ISIC_0027933': '../data/HAM10000_images_part_1/ISIC_0027933.jpg',\n", " 'ISIC_0026393': '../data/HAM10000_images_part_1/ISIC_0026393.jpg',\n", " 'ISIC_0025842': '../data/HAM10000_images_part_1/ISIC_0025842.jpg',\n", " 'ISIC_0024584': '../data/HAM10000_images_part_1/ISIC_0024584.jpg',\n", " 'ISIC_0025856': '../data/HAM10000_images_part_1/ISIC_0025856.jpg',\n", " 'ISIC_0024590': '../data/HAM10000_images_part_1/ISIC_0024590.jpg',\n", " 'ISIC_0027099': '../data/HAM10000_images_part_1/ISIC_0027099.jpg',\n", " 'ISIC_0026387': '../data/HAM10000_images_part_1/ISIC_0026387.jpg',\n", " 'ISIC_0027927': '../data/HAM10000_images_part_1/ISIC_0027927.jpg',\n", " 'ISIC_0028382': '../data/HAM10000_images_part_1/ISIC_0028382.jpg',\n", " 'ISIC_0028396': '../data/HAM10000_images_part_1/ISIC_0028396.jpg',\n", " 'ISIC_0029088': '../data/HAM10000_images_part_1/ISIC_0029088.jpg',\n", " 'ISIC_0027884': '../data/HAM10000_images_part_1/ISIC_0027884.jpg',\n", " 'ISIC_0026542': '../data/HAM10000_images_part_1/ISIC_0026542.jpg',\n", " 'ISIC_0024355': '../data/HAM10000_images_part_1/ISIC_0024355.jpg',\n", " 'ISIC_0024433': '../data/HAM10000_images_part_1/ISIC_0024433.jpg',\n", " 'ISIC_0028209': '../data/HAM10000_images_part_1/ISIC_0028209.jpg',\n", " 'ISIC_0029117': '../data/HAM10000_images_part_1/ISIC_0029117.jpg',\n", " 'ISIC_0026224': '../data/HAM10000_images_part_1/ISIC_0026224.jpg',\n", " 'ISIC_0029103': '../data/HAM10000_images_part_1/ISIC_0029103.jpg',\n", " 'ISIC_0026230': '../data/HAM10000_images_part_1/ISIC_0026230.jpg',\n", " 'ISIC_0025739': '../data/HAM10000_images_part_1/ISIC_0025739.jpg',\n", " 'ISIC_0024427': '../data/HAM10000_images_part_1/ISIC_0024427.jpg',\n", " 'ISIC_0024341': '../data/HAM10000_images_part_1/ISIC_0024341.jpg',\n", " 'ISIC_0027890': '../data/HAM10000_images_part_1/ISIC_0027890.jpg',\n", " 'ISIC_0026556': '../data/HAM10000_images_part_1/ISIC_0026556.jpg',\n", " 'ISIC_0027648': '../data/HAM10000_images_part_1/ISIC_0027648.jpg',\n", " 'ISIC_0024369': '../data/HAM10000_images_part_1/ISIC_0024369.jpg',\n", " 'ISIC_0025077': '../data/HAM10000_images_part_1/ISIC_0025077.jpg',\n", " 'ISIC_0027660': '../data/HAM10000_images_part_1/ISIC_0027660.jpg',\n", " 'ISIC_0028553': '../data/HAM10000_images_part_1/ISIC_0028553.jpg',\n", " 'ISIC_0027106': '../data/HAM10000_images_part_1/ISIC_0027106.jpg',\n", " 'ISIC_0028235': '../data/HAM10000_images_part_1/ISIC_0028235.jpg',\n", " 'ISIC_0026218': '../data/HAM10000_images_part_1/ISIC_0026218.jpg',\n", " 'ISIC_0025711': '../data/HAM10000_images_part_1/ISIC_0025711.jpg',\n", " 'ISIC_0025705': '../data/HAM10000_images_part_1/ISIC_0025705.jpg',\n", " 'ISIC_0027112': '../data/HAM10000_images_part_1/ISIC_0027112.jpg',\n", " 'ISIC_0028221': '../data/HAM10000_images_part_1/ISIC_0028221.jpg',\n", " 'ISIC_0027674': '../data/HAM10000_images_part_1/ISIC_0027674.jpg',\n", " 'ISIC_0028547': '../data/HAM10000_images_part_1/ISIC_0028547.jpg',\n", " 'ISIC_0025063': '../data/HAM10000_images_part_1/ISIC_0025063.jpg',\n", " 'ISIC_0025088': '../data/HAM10000_images_part_1/ISIC_0025088.jpg',\n", " 'ISIC_0024396': '../data/HAM10000_images_part_1/ISIC_0024396.jpg',\n", " 'ISIC_0027847': '../data/HAM10000_images_part_1/ISIC_0027847.jpg',\n", " 'ISIC_0026581': '../data/HAM10000_images_part_1/ISIC_0026581.jpg',\n", " 'ISIC_0025936': '../data/HAM10000_images_part_1/ISIC_0025936.jpg',\n", " 'ISIC_0025922': '../data/HAM10000_images_part_1/ISIC_0025922.jpg',\n", " 'ISIC_0027853': '../data/HAM10000_images_part_1/ISIC_0027853.jpg',\n", " 'ISIC_0026595': '../data/HAM10000_images_part_1/ISIC_0026595.jpg',\n", " 'ISIC_0024382': '../data/HAM10000_images_part_1/ISIC_0024382.jpg',\n", " 'ISIC_0028590': '../data/HAM10000_images_part_1/ISIC_0028590.jpg',\n", " 'ISIC_0028584': '../data/HAM10000_images_part_1/ISIC_0028584.jpg',\n", " 'ISIC_0026026': '../data/HAM10000_images_part_1/ISIC_0026026.jpg',\n", " 'ISIC_0027338': '../data/HAM10000_images_part_1/ISIC_0027338.jpg',\n", " 'ISIC_0024631': '../data/HAM10000_images_part_1/ISIC_0024631.jpg',\n", " 'ISIC_0025249': '../data/HAM10000_images_part_1/ISIC_0025249.jpg',\n", " 'ISIC_0026998': '../data/HAM10000_images_part_1/ISIC_0026998.jpg',\n", " 'ISIC_0026740': '../data/HAM10000_images_part_1/ISIC_0026740.jpg',\n", " 'ISIC_0028779': '../data/HAM10000_images_part_1/ISIC_0028779.jpg',\n", " 'ISIC_0026754': '../data/HAM10000_images_part_1/ISIC_0026754.jpg',\n", " 'ISIC_0024625': '../data/HAM10000_images_part_1/ISIC_0024625.jpg',\n", " 'ISIC_0026032': '../data/HAM10000_images_part_1/ISIC_0026032.jpg',\n", " 'ISIC_0029301': '../data/HAM10000_images_part_1/ISIC_0029301.jpg',\n", " 'ISIC_0025513': '../data/HAM10000_images_part_1/ISIC_0025513.jpg',\n", " 'ISIC_0028037': '../data/HAM10000_images_part_1/ISIC_0028037.jpg',\n", " 'ISIC_0027304': '../data/HAM10000_images_part_1/ISIC_0027304.jpg',\n", " 'ISIC_0028751': '../data/HAM10000_images_part_1/ISIC_0028751.jpg',\n", " 'ISIC_0027462': '../data/HAM10000_images_part_1/ISIC_0027462.jpg',\n", " 'ISIC_0028989': '../data/HAM10000_images_part_1/ISIC_0028989.jpg',\n", " 'ISIC_0025275': '../data/HAM10000_images_part_1/ISIC_0025275.jpg',\n", " 'ISIC_0025261': '../data/HAM10000_images_part_1/ISIC_0025261.jpg',\n", " 'ISIC_0028745': '../data/HAM10000_images_part_1/ISIC_0028745.jpg',\n", " 'ISIC_0027476': '../data/HAM10000_images_part_1/ISIC_0027476.jpg',\n", " 'ISIC_0026768': '../data/HAM10000_images_part_1/ISIC_0026768.jpg',\n", " 'ISIC_0028023': '../data/HAM10000_images_part_1/ISIC_0028023.jpg',\n", " 'ISIC_0027310': '../data/HAM10000_images_part_1/ISIC_0027310.jpg',\n", " 'ISIC_0024619': '../data/HAM10000_images_part_1/ISIC_0024619.jpg',\n", " 'ISIC_0025507': '../data/HAM10000_images_part_1/ISIC_0025507.jpg',\n", " 'ISIC_0026783': '../data/HAM10000_images_part_1/ISIC_0026783.jpg',\n", " 'ISIC_0028976': '../data/HAM10000_images_part_1/ISIC_0028976.jpg',\n", " 'ISIC_0026797': '../data/HAM10000_images_part_1/ISIC_0026797.jpg',\n", " 'ISIC_0028962': '../data/HAM10000_images_part_1/ISIC_0028962.jpg',\n", " 'ISIC_0027489': '../data/HAM10000_images_part_1/ISIC_0027489.jpg',\n", " 'ISIC_0024816': '../data/HAM10000_images_part_1/ISIC_0024816.jpg',\n", " 'ISIC_0026967': '../data/HAM10000_images_part_1/ISIC_0026967.jpg',\n", " 'ISIC_0028792': '../data/HAM10000_images_part_1/ISIC_0028792.jpg',\n", " 'ISIC_0026973': '../data/HAM10000_images_part_1/ISIC_0026973.jpg',\n", " 'ISIC_0028786': '../data/HAM10000_images_part_1/ISIC_0028786.jpg',\n", " 'ISIC_0024802': '../data/HAM10000_images_part_1/ISIC_0024802.jpg',\n", " 'ISIC_0028790': '../data/HAM10000_images_part_1/ISIC_0028790.jpg',\n", " 'ISIC_0026965': '../data/HAM10000_images_part_1/ISIC_0026965.jpg',\n", " 'ISIC_0028948': '../data/HAM10000_images_part_1/ISIC_0028948.jpg',\n", " 'ISIC_0024814': '../data/HAM10000_images_part_1/ISIC_0024814.jpg',\n", " 'ISIC_0024800': '../data/HAM10000_images_part_1/ISIC_0024800.jpg',\n", " 'ISIC_0028784': '../data/HAM10000_images_part_1/ISIC_0028784.jpg',\n", " 'ISIC_0026971': '../data/HAM10000_images_part_1/ISIC_0026971.jpg',\n", " 'ISIC_0025288': '../data/HAM10000_images_part_1/ISIC_0025288.jpg',\n", " 'ISIC_0026959': '../data/HAM10000_images_part_1/ISIC_0026959.jpg',\n", " 'ISIC_0028974': '../data/HAM10000_images_part_1/ISIC_0028974.jpg',\n", " 'ISIC_0026781': '../data/HAM10000_images_part_1/ISIC_0026781.jpg',\n", " 'ISIC_0024828': '../data/HAM10000_images_part_1/ISIC_0024828.jpg',\n", " 'ISIC_0028960': '../data/HAM10000_images_part_1/ISIC_0028960.jpg',\n", " 'ISIC_0026795': '../data/HAM10000_images_part_1/ISIC_0026795.jpg',\n", " 'ISIC_0025277': '../data/HAM10000_images_part_1/ISIC_0025277.jpg',\n", " 'ISIC_0028753': '../data/HAM10000_images_part_1/ISIC_0028753.jpg',\n", " 'ISIC_0027460': '../data/HAM10000_images_part_1/ISIC_0027460.jpg',\n", " 'ISIC_0028035': '../data/HAM10000_images_part_1/ISIC_0028035.jpg',\n", " 'ISIC_0027306': '../data/HAM10000_images_part_1/ISIC_0027306.jpg',\n", " 'ISIC_0026018': '../data/HAM10000_images_part_1/ISIC_0026018.jpg',\n", " 'ISIC_0025511': '../data/HAM10000_images_part_1/ISIC_0025511.jpg',\n", " 'ISIC_0025505': '../data/HAM10000_images_part_1/ISIC_0025505.jpg',\n", " 'ISIC_0028021': '../data/HAM10000_images_part_1/ISIC_0028021.jpg',\n", " 'ISIC_0027312': '../data/HAM10000_images_part_1/ISIC_0027312.jpg',\n", " 'ISIC_0028747': '../data/HAM10000_images_part_1/ISIC_0028747.jpg',\n", " 'ISIC_0027474': '../data/HAM10000_images_part_1/ISIC_0027474.jpg',\n", " 'ISIC_0025263': '../data/HAM10000_images_part_1/ISIC_0025263.jpg',\n", " 'ISIC_0026742': '../data/HAM10000_images_part_1/ISIC_0026742.jpg',\n", " 'ISIC_0024633': '../data/HAM10000_images_part_1/ISIC_0024633.jpg',\n", " 'ISIC_0028009': '../data/HAM10000_images_part_1/ISIC_0028009.jpg',\n", " 'ISIC_0026024': '../data/HAM10000_images_part_1/ISIC_0026024.jpg',\n", " 'ISIC_0026030': '../data/HAM10000_images_part_1/ISIC_0026030.jpg',\n", " 'ISIC_0029303': '../data/HAM10000_images_part_1/ISIC_0029303.jpg',\n", " 'ISIC_0025539': '../data/HAM10000_images_part_1/ISIC_0025539.jpg',\n", " 'ISIC_0024627': '../data/HAM10000_images_part_1/ISIC_0024627.jpg',\n", " 'ISIC_0026756': '../data/HAM10000_images_part_1/ISIC_0026756.jpg',\n", " 'ISIC_0027448': '../data/HAM10000_images_part_1/ISIC_0027448.jpg',\n", " 'ISIC_0025908': '../data/HAM10000_images_part_1/ISIC_0025908.jpg',\n", " 'ISIC_0027879': '../data/HAM10000_images_part_1/ISIC_0027879.jpg',\n", " 'ISIC_0028592': '../data/HAM10000_images_part_1/ISIC_0028592.jpg',\n", " 'ISIC_0028586': '../data/HAM10000_images_part_1/ISIC_0028586.jpg',\n", " 'ISIC_0025934': '../data/HAM10000_images_part_1/ISIC_0025934.jpg',\n", " 'ISIC_0026583': '../data/HAM10000_images_part_1/ISIC_0026583.jpg',\n", " 'ISIC_0027845': '../data/HAM10000_images_part_1/ISIC_0027845.jpg',\n", " 'ISIC_0024394': '../data/HAM10000_images_part_1/ISIC_0024394.jpg',\n", " 'ISIC_0024380': '../data/HAM10000_images_part_1/ISIC_0024380.jpg',\n", " 'ISIC_0026597': '../data/HAM10000_images_part_1/ISIC_0026597.jpg',\n", " 'ISIC_0027851': '../data/HAM10000_images_part_1/ISIC_0027851.jpg',\n", " 'ISIC_0027689': '../data/HAM10000_images_part_1/ISIC_0027689.jpg',\n", " 'ISIC_0025920': '../data/HAM10000_images_part_1/ISIC_0025920.jpg',\n", " 'ISIC_0025713': '../data/HAM10000_images_part_1/ISIC_0025713.jpg',\n", " 'ISIC_0029129': '../data/HAM10000_images_part_1/ISIC_0029129.jpg',\n", " 'ISIC_0027104': '../data/HAM10000_images_part_1/ISIC_0027104.jpg',\n", " 'ISIC_0028237': '../data/HAM10000_images_part_1/ISIC_0028237.jpg',\n", " 'ISIC_0027662': '../data/HAM10000_images_part_1/ISIC_0027662.jpg',\n", " 'ISIC_0028551': '../data/HAM10000_images_part_1/ISIC_0028551.jpg',\n", " 'ISIC_0025075': '../data/HAM10000_images_part_1/ISIC_0025075.jpg',\n", " 'ISIC_0025061': '../data/HAM10000_images_part_1/ISIC_0025061.jpg',\n", " ...}" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "images_path" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [], "source": [ "# Encoding target values\n", "lesion_type_dict = {\n", " 'nv':'Melanocytic Nevi',\n", " 'mel': 'Melanoma',\n", " 'bkl': 'Benign keratosis-like lesions ',\n", " 'bcc': 'Basal cell carcinoma',\n", " 'akiec': 'Actinic keratoses',\n", " 'vasc': 'Vascular lesions',\n", " 'df': 'Dermatofibroma'\n", "\n", "}" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countmeanstdmin25%50%75%max
age9958.051.86382816.9686140.040.050.065.085.0
\n", "
" ], "text/plain": [ " count mean std min 25% 50% 75% max\n", "age 9958.0 51.863828 16.968614 0.0 40.0 50.0 65.0 85.0" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe().T" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 10015 entries, 0 to 10014\n", "Data columns (total 7 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 lesion_id 10015 non-null object \n", " 1 image_id 10015 non-null object \n", " 2 dx 10015 non-null object \n", " 3 dx_type 10015 non-null object \n", " 4 age 9958 non-null float64\n", " 5 sex 10015 non-null object \n", " 6 localization 10015 non-null object \n", "dtypes: float64(1), object(6)\n", "memory usage: 547.8+ KB\n" ] } ], "source": [ "df.info()" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
lesion_idimage_iddxdx_typeagesexlocalization
0HAM_0000118ISIC_0027419bklhisto80.0malescalp
1HAM_0000118ISIC_0025030bklhisto80.0malescalp
2HAM_0002730ISIC_0026769bklhisto80.0malescalp
3HAM_0002730ISIC_0025661bklhisto80.0malescalp
4HAM_0001466ISIC_0031633bklhisto75.0maleear
\n", "
" ], "text/plain": [ " lesion_id image_id dx dx_type age sex localization\n", "0 HAM_0000118 ISIC_0027419 bkl histo 80.0 male scalp\n", "1 HAM_0000118 ISIC_0025030 bkl histo 80.0 male scalp\n", "2 HAM_0002730 ISIC_0026769 bkl histo 80.0 male scalp\n", "3 HAM_0002730 ISIC_0025661 bkl histo 80.0 male scalp\n", "4 HAM_0001466 ISIC_0031633 bkl histo 75.0 male ear" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [], "source": [ "# Adding extra columns and appending the required created columns in final dataframe\n", "df['path'] = df['image_id'].map(images_path.get)\n", "df['cell_type'] = df['dx'].map(lesion_type_dict.get)\n", "df['cell_type_idx'] = pd.Categorical(df['cell_type']).codes" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
lesion_idimage_iddxdx_typeagesexlocalizationpathcell_typecell_type_idx
0HAM_0000118ISIC_0027419bklhisto80.0malescalp../data/HAM10000_images_part_1/ISIC_0027419.jpgBenign keratosis-like lesions2
1HAM_0000118ISIC_0025030bklhisto80.0malescalp../data/HAM10000_images_part_1/ISIC_0025030.jpgBenign keratosis-like lesions2
2HAM_0002730ISIC_0026769bklhisto80.0malescalp../data/HAM10000_images_part_1/ISIC_0026769.jpgBenign keratosis-like lesions2
3HAM_0002730ISIC_0025661bklhisto80.0malescalp../data/HAM10000_images_part_1/ISIC_0025661.jpgBenign keratosis-like lesions2
4HAM_0001466ISIC_0031633bklhisto75.0maleear../data/HAM10000_images_part_2/ISIC_0031633.jpgBenign keratosis-like lesions2
\n", "
" ], "text/plain": [ " lesion_id image_id dx dx_type age sex localization \\\n", "0 HAM_0000118 ISIC_0027419 bkl histo 80.0 male scalp \n", "1 HAM_0000118 ISIC_0025030 bkl histo 80.0 male scalp \n", "2 HAM_0002730 ISIC_0026769 bkl histo 80.0 male scalp \n", "3 HAM_0002730 ISIC_0025661 bkl histo 80.0 male scalp \n", "4 HAM_0001466 ISIC_0031633 bkl histo 75.0 male ear \n", "\n", " path \\\n", "0 ../data/HAM10000_images_part_1/ISIC_0027419.jpg \n", "1 ../data/HAM10000_images_part_1/ISIC_0025030.jpg \n", "2 ../data/HAM10000_images_part_1/ISIC_0026769.jpg \n", "3 ../data/HAM10000_images_part_1/ISIC_0025661.jpg \n", "4 ../data/HAM10000_images_part_2/ISIC_0031633.jpg \n", "\n", " cell_type cell_type_idx \n", "0 Benign keratosis-like lesions 2 \n", "1 Benign keratosis-like lesions 2 \n", "2 Benign keratosis-like lesions 2 \n", "3 Benign keratosis-like lesions 2 \n", "4 Benign keratosis-like lesions 2 " ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [], "source": [ "# resize input images\n", "IMAGE_SIZE = 288" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [], "source": [ "def read_img(img_path):\n", " img = cv2.imread(img_path,cv2.IMREAD_COLOR)\n", " img = cv2.resize(img,(IMAGE_SIZE,IMAGE_SIZE))\n", " return img" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['../data/HAM10000_images_part_1/ISIC_0027419.jpg',\n", " '../data/HAM10000_images_part_1/ISIC_0025030.jpg',\n", " '../data/HAM10000_images_part_1/ISIC_0026769.jpg', ...,\n", " '../data/HAM10000_images_part_2/ISIC_0033536.jpg',\n", " '../data/HAM10000_images_part_2/ISIC_0032854.jpg',\n", " '../data/HAM10000_images_part_2/ISIC_0032258.jpg'], dtype=object)" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.path.values" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [], "source": [ "import shutil" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [], "source": [ "BASE_DATASET_DIR = \"dataset\"\n", "\n", "for src_path, img_class in zip(df.path.values, df.cell_type.values):\n", " to_images_path = os.path.join(BASE_DATASET_DIR, img_class)\n", "\n", " if not os.path.exists(to_images_path):\n", " os.mkdir(to_images_path)\n", "\n", " shutil.copy(src_path, to_images_path)" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "cell_type\n", "Melanocytic Nevi 6705\n", "Melanoma 1113\n", "Benign keratosis-like lesions 1099\n", "Basal cell carcinoma 514\n", "Actinic keratoses 327\n", "Vascular lesions 142\n", "Dermatofibroma 115\n", "Name: count, dtype: int64" ] }, "execution_count": 105, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.cell_type.value_counts()" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [], "source": [ "new_df = df.copy()" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
lesion_idimage_iddxdx_typeagesexlocalizationpathcell_typecell_type_idx
0HAM_0000118ISIC_0027419bklhisto80.0malescalp../data/HAM10000_images_part_1/ISIC_0027419.jpgBenign keratosis-like lesions2
1HAM_0000118ISIC_0025030bklhisto80.0malescalp../data/HAM10000_images_part_1/ISIC_0025030.jpgBenign keratosis-like lesions2
2HAM_0002730ISIC_0026769bklhisto80.0malescalp../data/HAM10000_images_part_1/ISIC_0026769.jpgBenign keratosis-like lesions2
3HAM_0002730ISIC_0025661bklhisto80.0malescalp../data/HAM10000_images_part_1/ISIC_0025661.jpgBenign keratosis-like lesions2
4HAM_0001466ISIC_0031633bklhisto75.0maleear../data/HAM10000_images_part_2/ISIC_0031633.jpgBenign keratosis-like lesions2
\n", "
" ], "text/plain": [ " lesion_id image_id dx dx_type age sex localization \\\n", "0 HAM_0000118 ISIC_0027419 bkl histo 80.0 male scalp \n", "1 HAM_0000118 ISIC_0025030 bkl histo 80.0 male scalp \n", "2 HAM_0002730 ISIC_0026769 bkl histo 80.0 male scalp \n", "3 HAM_0002730 ISIC_0025661 bkl histo 80.0 male scalp \n", "4 HAM_0001466 ISIC_0031633 bkl histo 75.0 male ear \n", "\n", " path \\\n", "0 ../data/HAM10000_images_part_1/ISIC_0027419.jpg \n", "1 ../data/HAM10000_images_part_1/ISIC_0025030.jpg \n", "2 ../data/HAM10000_images_part_1/ISIC_0026769.jpg \n", "3 ../data/HAM10000_images_part_1/ISIC_0025661.jpg \n", "4 ../data/HAM10000_images_part_2/ISIC_0031633.jpg \n", "\n", " cell_type cell_type_idx \n", "0 Benign keratosis-like lesions 2 \n", "1 Benign keratosis-like lesions 2 \n", "2 Benign keratosis-like lesions 2 \n", "3 Benign keratosis-like lesions 2 \n", "4 Benign keratosis-like lesions 2 " ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_df.head()" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [], "source": [ "new_df = new_df[[\"image_id\", \"path\", \"cell_type\", \"cell_type_idx\"]]" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
image_idpathcell_typecell_type_idx
0ISIC_0027419../data/HAM10000_images_part_1/ISIC_0027419.jpgBenign keratosis-like lesions2
1ISIC_0025030../data/HAM10000_images_part_1/ISIC_0025030.jpgBenign keratosis-like lesions2
2ISIC_0026769../data/HAM10000_images_part_1/ISIC_0026769.jpgBenign keratosis-like lesions2
3ISIC_0025661../data/HAM10000_images_part_1/ISIC_0025661.jpgBenign keratosis-like lesions2
4ISIC_0031633../data/HAM10000_images_part_2/ISIC_0031633.jpgBenign keratosis-like lesions2
\n", "
" ], "text/plain": [ " image_id path \\\n", "0 ISIC_0027419 ../data/HAM10000_images_part_1/ISIC_0027419.jpg \n", "1 ISIC_0025030 ../data/HAM10000_images_part_1/ISIC_0025030.jpg \n", "2 ISIC_0026769 ../data/HAM10000_images_part_1/ISIC_0026769.jpg \n", "3 ISIC_0025661 ../data/HAM10000_images_part_1/ISIC_0025661.jpg \n", "4 ISIC_0031633 ../data/HAM10000_images_part_2/ISIC_0031633.jpg \n", "\n", " cell_type cell_type_idx \n", "0 Benign keratosis-like lesions 2 \n", "1 Benign keratosis-like lesions 2 \n", "2 Benign keratosis-like lesions 2 \n", "3 Benign keratosis-like lesions 2 \n", "4 Benign keratosis-like lesions 2 " ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_df.head()" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Benign keratosis-like lesions ',\n", " 'Melanocytic Nevi',\n", " 'Dermatofibroma',\n", " 'Melanoma',\n", " 'Vascular lesions',\n", " 'Basal cell carcinoma',\n", " 'Actinic keratoses']" ] }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_df.cell_type.unique().tolist()" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [], "source": [ "new_df = new_df.loc[~new_df.cell_type.isin([\"Vascular lesions\", \"Dermatofibroma\"])]" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(9758, 4)" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_df.shape" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "cell_type\n", "Melanocytic Nevi 6705\n", "Melanoma 1113\n", "Benign keratosis-like lesions 1099\n", "Basal cell carcinoma 514\n", "Actinic keratoses 327\n", "Name: count, dtype: int64" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_df.cell_type.value_counts()" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [], "source": [ "balanced_size = new_df.cell_type.value_counts()[\"Actinic keratoses\"]" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
image_idpathcell_typecell_type_idx
5893ISIC_0027286../data/HAM10000_images_part_1/ISIC_0027286.jpgMelanocytic Nevi4
3839ISIC_0032263../data/HAM10000_images_part_2/ISIC_0032263.jpgMelanocytic Nevi4
8232ISIC_0030597../data/HAM10000_images_part_2/ISIC_0030597.jpgMelanocytic Nevi4
7658ISIC_0033665../data/HAM10000_images_part_2/ISIC_0033665.jpgMelanocytic Nevi4
9138ISIC_0032074../data/HAM10000_images_part_2/ISIC_0032074.jpgMelanocytic Nevi4
...............
6420ISIC_0030952../data/HAM10000_images_part_2/ISIC_0030952.jpgMelanocytic Nevi4
8856ISIC_0025655../data/HAM10000_images_part_1/ISIC_0025655.jpgMelanocytic Nevi4
7621ISIC_0032689../data/HAM10000_images_part_2/ISIC_0032689.jpgMelanocytic Nevi4
7326ISIC_0032743../data/HAM10000_images_part_2/ISIC_0032743.jpgMelanocytic Nevi4
4867ISIC_0027134../data/HAM10000_images_part_1/ISIC_0027134.jpgMelanocytic Nevi4
\n", "

327 rows × 4 columns

\n", "
" ], "text/plain": [ " image_id path \\\n", "5893 ISIC_0027286 ../data/HAM10000_images_part_1/ISIC_0027286.jpg \n", "3839 ISIC_0032263 ../data/HAM10000_images_part_2/ISIC_0032263.jpg \n", "8232 ISIC_0030597 ../data/HAM10000_images_part_2/ISIC_0030597.jpg \n", "7658 ISIC_0033665 ../data/HAM10000_images_part_2/ISIC_0033665.jpg \n", "9138 ISIC_0032074 ../data/HAM10000_images_part_2/ISIC_0032074.jpg \n", "... ... ... \n", "6420 ISIC_0030952 ../data/HAM10000_images_part_2/ISIC_0030952.jpg \n", "8856 ISIC_0025655 ../data/HAM10000_images_part_1/ISIC_0025655.jpg \n", "7621 ISIC_0032689 ../data/HAM10000_images_part_2/ISIC_0032689.jpg \n", "7326 ISIC_0032743 ../data/HAM10000_images_part_2/ISIC_0032743.jpg \n", "4867 ISIC_0027134 ../data/HAM10000_images_part_1/ISIC_0027134.jpg \n", "\n", " cell_type cell_type_idx \n", "5893 Melanocytic Nevi 4 \n", "3839 Melanocytic Nevi 4 \n", "8232 Melanocytic Nevi 4 \n", "7658 Melanocytic Nevi 4 \n", "9138 Melanocytic Nevi 4 \n", "... ... ... \n", "6420 Melanocytic Nevi 4 \n", "8856 Melanocytic Nevi 4 \n", "7621 Melanocytic Nevi 4 \n", "7326 Melanocytic Nevi 4 \n", "4867 Melanocytic Nevi 4 \n", "\n", "[327 rows x 4 columns]" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_df.loc[new_df.cell_type == \"Melanocytic Nevi\"].sample(n=balanced_size, replace=False)" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cell type pick: Benign keratosis-like lesions \n", "cell type pick: Melanocytic Nevi\n", "cell type pick: Melanoma\n", "cell type pick: Basal cell carcinoma\n" ] } ], "source": [ "for c_type in new_df.cell_type.unique():\n", " if c_type != \"Actinic keratoses\":\n", " print(\"cell type pick: \", c_type)\n", " c_type_df = new_df[new_df.cell_type == c_type]\n", " dropped_df = c_type_df.loc[~c_type_df.index.isin(new_df[new_df.cell_type == c_type].sample(n=balanced_size, replace=False, random_state=42).index)]\n", " new_df.drop(dropped_df.index, inplace=True)" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "cell_type\n", "Benign keratosis-like lesions 327\n", "Melanoma 327\n", "Basal cell carcinoma 327\n", "Melanocytic Nevi 327\n", "Actinic keratoses 327\n", "Name: count, dtype: int64" ] }, "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_df.cell_type.value_counts()" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
indeximage_idpathcell_typecell_type_idx
02ISIC_0026769../data/HAM10000_images_part_1/ISIC_0026769.jpgBenign keratosis-like lesions2
13ISIC_0025661../data/HAM10000_images_part_1/ISIC_0025661.jpgBenign keratosis-like lesions2
26ISIC_0029176../data/HAM10000_images_part_1/ISIC_0029176.jpgBenign keratosis-like lesions2
310ISIC_0025276../data/HAM10000_images_part_1/ISIC_0025276.jpgBenign keratosis-like lesions2
412ISIC_0025984../data/HAM10000_images_part_1/ISIC_0025984.jpgBenign keratosis-like lesions2
..................
163010009ISIC_0031430../data/HAM10000_images_part_2/ISIC_0031430.jpgActinic keratoses0
163110010ISIC_0033084../data/HAM10000_images_part_2/ISIC_0033084.jpgActinic keratoses0
163210011ISIC_0033550../data/HAM10000_images_part_2/ISIC_0033550.jpgActinic keratoses0
163310012ISIC_0033536../data/HAM10000_images_part_2/ISIC_0033536.jpgActinic keratoses0
163410013ISIC_0032854../data/HAM10000_images_part_2/ISIC_0032854.jpgActinic keratoses0
\n", "

1635 rows × 5 columns

\n", "
" ], "text/plain": [ " index image_id path \\\n", "0 2 ISIC_0026769 ../data/HAM10000_images_part_1/ISIC_0026769.jpg \n", "1 3 ISIC_0025661 ../data/HAM10000_images_part_1/ISIC_0025661.jpg \n", "2 6 ISIC_0029176 ../data/HAM10000_images_part_1/ISIC_0029176.jpg \n", "3 10 ISIC_0025276 ../data/HAM10000_images_part_1/ISIC_0025276.jpg \n", "4 12 ISIC_0025984 ../data/HAM10000_images_part_1/ISIC_0025984.jpg \n", "... ... ... ... \n", "1630 10009 ISIC_0031430 ../data/HAM10000_images_part_2/ISIC_0031430.jpg \n", "1631 10010 ISIC_0033084 ../data/HAM10000_images_part_2/ISIC_0033084.jpg \n", "1632 10011 ISIC_0033550 ../data/HAM10000_images_part_2/ISIC_0033550.jpg \n", "1633 10012 ISIC_0033536 ../data/HAM10000_images_part_2/ISIC_0033536.jpg \n", "1634 10013 ISIC_0032854 ../data/HAM10000_images_part_2/ISIC_0032854.jpg \n", "\n", " cell_type cell_type_idx \n", "0 Benign keratosis-like lesions 2 \n", "1 Benign keratosis-like lesions 2 \n", "2 Benign keratosis-like lesions 2 \n", "3 Benign keratosis-like lesions 2 \n", "4 Benign keratosis-like lesions 2 \n", "... ... ... \n", "1630 Actinic keratoses 0 \n", "1631 Actinic keratoses 0 \n", "1632 Actinic keratoses 0 \n", "1633 Actinic keratoses 0 \n", "1634 Actinic keratoses 0 \n", "\n", "[1635 rows x 5 columns]" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_df.reset_index()" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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zp2rF198UdnZ2Xr66aeVnp6u+++/X8uXL1eJEiVcX/Pxxx9r0KBBat26tTw8PNS9e3dNmzbtFvw6AADgTnDTBaVFixZyOp03PO9wODRx4kRNnDjxhtcEBQVp/vz5N/ujAQCATdwWT/EAAAB7oaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLoaAAAADLueUFZfz48XI4HG6v2rVru85fuXJFsbGxKlOmjEqXLq3u3bsrLS3tVscAAAC3sSIZQbn77rt17tw512vjxo2uc8OGDdOyZcu0ZMkSJSQk6OzZs+rWrVtRxAAAALep4kXyTYsXV2hoaKHjGRkZmjVrlubPn69WrVpJkubMmaM6depo69atatq0aVHEAQAAt5kiGUE5fvy4KlSooPDwcPXq1UvJycmSpJ07d+rq1atq06aN69ratWurcuXK2rJlyw2/X05OjjIzM91eAADgznXLC0qTJk00d+5cLV++XO+++66SkpL0pz/9SZcuXVJqaqq8vLwUEBDg9jUhISFKTU294fd87bXX5O/v73qFhYXd6tgAAMBCbvktng4dOrg+joqKUpMmTVSlShUtXrxYPj4+/9P3HD16tOLi4lyfZ2ZmUlIAALiDFfljxgEBAbrrrrt04sQJhYaGKjc3V+np6W7XpKWlXXfOyjXe3t7y8/NzewEAgDtXkReUrKwsJSYmqnz58mrYsKE8PT21Zs0a1/mjR48qOTlZ0dHRRR0FAADcJm75LZ7hw4erU6dOqlKlis6ePauXX35ZxYoV06OPPip/f38NGDBAcXFxCgoKkp+fnwYPHqzo6Gie4AEAAC63vKCcPn1ajz76qC5cuKBy5crp/vvv19atW1WuXDlJ0ltvvSUPDw91795dOTk5ateund55551bHQMAANzGbnlBWbhw4W+eL1GihGbMmKEZM2bc6h8NAADuEOzFAwAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALIeCAgAALMfUgjJjxgxVrVpVJUqUUJMmTbRt2zYz4wAAAIswraAsWrRIcXFxevnll7Vr1y7dc889ateunc6fP29WJAAAYBGmFZQ333xTTz31lPr166eIiAjNnDlTJUuW1OzZs82KBAAALKK4GT80NzdXO3fu1OjRo13HPDw81KZNG23ZsqXQ9Tk5OcrJyXF9npGRIUnKzMws0pwFOZeL9Psboaj/NzLKnfBeSHfG+8F7YR28F9ZyJ7wfRf1eXPv+Tqfzv15rSkH58ccflZ+fr5CQELfjISEhOnLkSKHrX3vtNU2YMKHQ8bCwsCLLeKfwn2p2Avwa74d18F5YB++FdRj1Xly6dEn+/v6/eY0pBeVmjR49WnFxca7PCwoKdPHiRZUpU0YOh8PEZH9MZmamwsLClJKSIj8/P7Pj2BrvhXXwXlgH74V13CnvhdPp1KVLl1ShQoX/eq0pBaVs2bIqVqyY0tLS3I6npaUpNDS00PXe3t7y9vZ2OxYQEFCUEQ3l5+d3W/8f7k7Ce2EdvBfWwXthHXfCe/HfRk6uMWWSrJeXlxo2bKg1a9a4jhUUFGjNmjWKjo42IxIAALAQ027xxMXFqW/fvmrUqJEaN26sqVOnKjs7W/369TMrEgAAsAjTCkqPHj30ww8/aNy4cUpNTVW9evW0fPnyQhNn72Te3t56+eWXC92+gvF4L6yD98I6eC+sw47vhcP5e571AQAAMBB78QAAAMuhoAAAAMuhoAAAAMuhoAAAAMuhoAAAYDE///yzLl/+v719Tp06palTp2rlypUmpjIWT/EAMN0nn3yixYsXKzk5Wbm5uW7ndu3aZVIqe9i3b5/q1q0rDw8P7du37zevjYqKMigV2rZtq27duumZZ55Renq6ateuLU9PT/34449688039eyzz5odscgxggLAVNOmTVO/fv0UEhKi3bt3q3HjxipTpoxOnjypDh06mB3vjlevXj39+OOPro/r16+vevXquV7XPq9fv77JSe1l165d+tOf/iTplwIfEhKiU6dOad68eZo2bZrJ6YxxW2wWCBS1K1euFPqX++2+38Xt4p133tF7772nRx99VHPnztWLL76o8PBwjRs3ThcvXjQ73h0vKSlJ5cqVc30Ma7h8+bJ8fX0lSStXrlS3bt3k4eGhpk2b6tSpUyanMwYFBbZ1+fJlvfjii1q8eLEuXLhQ6Hx+fr4JqewnOTlZ9913nyTJx8dHly5dkiT17t1bTZs21fTp082Md8erUqWK6+OQkBCVKFHCxDS4pkaNGvr888/VtWtXrVixQsOGDZMknT9/3jb/eOIWj4FSUlJ0+vRp1+fbtm3T888/r/fee8/EVPY1YsQIxcfH691335W3t7c++OADTZgwQRUqVNC8efPMjmcboaGhrpGSypUra+vWrZJ++dc8U+SMFRwcrL59+2rVqlUqKCgwO46tjRs3TsOHD1fVqlXVuHFj10a6K1eutM/tNicMc//99zvnzZvndDqdznPnzjn9/Pyc0dHRzrJlyzonTJhgcjr7CQsLc65du9bpdDqdvr6+zuPHjzudTqdz3rx5zg4dOpiYzF4GDBjgHD9+vNPpdDqnT5/u9PHxcbZp08YZEBDg7N+/v8np7GXp0qXOv/zlL04fHx9naGioc+jQoc7t27ebHcu2zp0759y1a5czPz/fdey7775zHj582MRUxuEpHgMFBgZq69atqlWrlqZNm6ZFixZp06ZNWrlypZ555hmdPHnS7Ii2Urp0aR06dEiVK1dWpUqVtHTpUjVu3FhJSUmKjIxUVlaW2RFtoaCgQAUFBSpe/Jc7zgsXLtTmzZtVs2ZNDRw4UF5eXiYntJ9Lly7pk08+0YIFCxQfH6/w8HA9/vjjGjdunNnRbOfEiRNKTExU8+bN5ePjI6fTKYfDYXYsQ3CLx0BXr1517US5evVqde7cWZJUu3ZtnTt3zsxothQeHu6aFFi7dm0tXrxYkrRs2TIFBASYmMxePDw8XOVEknr27Klp06Zp8ODBlBOT+Pr6ql+/flq5cqX27dunUqVKacKECWbHspULFy6odevWuuuuu9SxY0fX3xEDBgzQCy+8YHI6Y1BQDHT33Xdr5syZ2rBhg1atWqX27dtLks6ePasyZcqYnM5++vXrp71790qSRo0apRkzZqhEiRIaNmyYRowYYXI6e7ly5Yq2bdumr776Sl9++aXbC8a7cuWKFi9erIceekgNGjTQxYsX+W/CYMOGDZOnp6eSk5NVsmRJ1/EePXpo+fLlJiYzDrd4DLRu3Tp17dpVmZmZ6tu3r2bPni1J+utf/6ojR45o6dKlJie0t1OnTmnnzp2qUaMGC1IZaPny5erTp49rLY5fczgcPE1loBUrVmj+/Pn6/PPPVbx4cf3lL39Rr1691Lx5c7Oj2U5oaKhWrFihe+65R76+vtq7d6/Cw8N18uRJRUVF2eIWNAXFYPn5+crMzFRgYKDr2Pfff6+SJUsqODjYxGSAOWrWrKm2bdtq3LhxCgkJMTuOrZUsWVIPPvigevXqpY4dO8rT09PsSLbl6+urXbt2qWbNmm4FZceOHWrXrt11l0a401BQYGvbt2/X2rVrdf78+UKPVb755psmpbIXPz8/7d69W9WrVzc7iu1dunTJtTgYzNWxY0c1bNhQr7zyinx9fbVv3z5VqVJFPXv2VEFBgT755BOzIxY5FmozUFpamoYPH641a9bo/PnzhdZ4YCjbWJMmTdKYMWNUq1YthYSEuM2Mt8sseSv4y1/+onXr1lFQLMDX11eJiYmaM2eOEhMT9fbbbys4OFjffvutKleurLvvvtvsiLYxZcoUtW7dWjt27FBubq5efPFFHTx4UBcvXtSmTZvMjmcIRlAM1KFDByUnJ2vQoEEqX758ob8Eu3TpYlIyewoJCdHrr7+uJ554wuwotnb58mU9/PDDKleunCIjIwvdVhgyZIhJyewnISFBHTp0ULNmzbR+/XodPnxY4eHhmjx5snbs2GGLf7VbSUZGhqZPn669e/cqKytLDRo0UGxsrMqXL292NENQUAzk6+urDRs2qF69emZHgaTy5ctr/fr1qlmzptlRbG3WrFl65plnVKJECZUpU6bQSBbrAxknOjpaDz/8sOLi4tzmPWzbtk3dunVzWwkbKGo8ZmygsLAwlu62kGHDhmnGjBlmx7C9l156SRMmTFBGRoa+//57JSUluV6UE2Pt379fXbt2LXQ8ODj4uk9ZoegsX75cGzdudH0+Y8YM1atXT4899ph++uknE5MZh4JioKlTp2rUqFH6/vvvzY4CScOHD9fRo0dVvXp1derUSd26dXN7wRi5ubnq0aOHPDz448hsAQEB1100cvfu3apYsaIJiexrxIgRyszMlPRLcYyLi1PHjh2VlJSkuLg4k9MZg0myBurRo4cuX76s6tWrq2TJkoXutbO1vLGGDBmitWvXqmXLloVuLcA4ffv21aJFi/TXv/7V7Ci217NnT40cOVJLliyRw+FQQUGBNm3apOHDh6tPnz5mx7OVpKQkRURESJI+/fRTderUSZMmTdKuXbvUsWNHk9MZg4JioKlTp5odAb/y4Ycf6tNPP1VMTIzZUWwtPz9fU6ZM0YoVKxQVFVWouPO4t3EmTZqk2NhYhYWFKT8/XxEREcrPz9djjz2mMWPGmB3PVry8vHT58mVJv2yNcq0gBgUFuUZW7nRMkoVtValSRStWrFDt2rXNjmJrLVu2vOE5h8Oh+Ph4A9NAkpKTk3XgwAFlZWWpfv36TCQ3QefOnZWbm6tmzZrplVdeUVJSkipWrKiVK1dq0KBBOnbsmNkRixwFxWD5+fn6/PPPdfjwYUm/7M/TuXNnFStWzORk9jNnzhwtX75cc+bMcdvrAgDMlpycrOeee04pKSkaMmSIBgwYIOmXyf35+fmaNm2ayQmLHgXFQCdOnFDHjh115swZ1apVS5J09OhRhYWF6euvv2ahKoPVr19fiYmJcjqdqlq1aqFbC7t27TIpmX1de4y1UqVKJiexl4kTJ/6u68aNG1fESYD/Q0ExUMeOHeV0OvXxxx8rKChI0i9baj/++OPy8PDQ119/bXJCe/lv28e//PLLBiWxt4KCAr366qv6xz/+4doAzdfXVy+88IJeeuklnu4xQP369W94zuFw6OjRo7py5QqrXRvM7iPuFBQDlSpVSlu3blVkZKTb8b1796pZs2a22J0S+E+jR4/WrFmzNGHCBDVr1kyStHHjRo0fP15PPfWU/va3v5mc0L727NmjUaNGKT4+Xv3799fMmTPNjmQbjLjzFI+hvL29denSpULHs7Ky5OXlZUIiSNLOnTvd/oXyW/+axK334Ycf6oMPPlDnzp1dx6KiolSxYkU999xzFBQTJCUlaezYsVq0aJG6deumgwcPMlHWYEOGDFH16tW1devWQiPuQ4YMsceIuxOG6d27t/Puu+92bt261VlQUOAsKChwbtmyxVm3bl1n3759zY5nO2lpac6WLVs6HQ6HMzAw0BkYGOh0OBzOVq1aOc+fP292PNvw9vZ2Hj16tNDxI0eOOEuUKGFCIvv64YcfnIMGDXJ6eXk5W7Vq5dy2bZvZkWyrZMmSzn379hU6vmfPHmepUqVMSGQ8bu4aaNq0aapevbqio6NVokQJlShRQs2aNVONGjX09ttvmx3PdgYPHqxLly65dgi9ePGiDhw4oMzMTDaoM9A999yj6dOnFzo+ffp03XPPPSYksp/s7GxNmDBB1atX1+bNm7Vs2TKtWbNG9957r9nRbIsRd+agmOL48eM6cuSIJKlOnTqqUaOGyYnsyd/fX6tXry70h/C2bdvUtm1bpaenmxPMZhISEhQTE6PKlSsrOjpakrRlyxalpKTom2++0Z/+9CeTE975QkNDdenSJQ0ePFiPPvroDVdVjoqKMjiZffXp00e7du3SrFmz1LhxY0nSd999p6eeekoNGzbU3LlzzQ1oAAoKbOtGu0vv3r1bDzzwgG1Wa7SCs2fPasaMGW7F/bnnnlOFChVMTmYPv35SyuFwuG1qeu1zh8PBUzwGSk9PV9++fbVs2TLXEgh5eXnq3Lmz5syZo4CAAHMDGoCCUsTi4uL0yiuvqFSpUv91gyeW9DZWly5dlJ6ergULFrj+Ijxz5ox69eqlwMBAffbZZyYnBIxx6tSp33VdlSpVijgJ/tOJEydck/jtNuLOUzxFbPfu3bp69arr4xthozrjTZ8+XZ07d1bVqlUVFhYmSUpJSVHdunX173//2+R09pKenq5t27bp/PnzKigocDvHJnVFj+JhPRMnTtTw4cNVo0YNt1Ly888/6+9//7stFs1jBAW25nQ6tXr1ardbC23atDE5lb0sW7ZMvXr1UlZWlvz8/NzKusPhYJdv2FKxYsV07tw5BQcHux2/cOGCgoODbXG7jYJioszMTMXHx6t27dpsWAfbuuuuu9SxY0dNmjSJPZGA/8/Dw0NpaWkqV66c2/H4+Hj16NFDP/zwg0nJjMMtHgM98sgjat68uQYNGqSff/5ZjRo10vfffy+n06mFCxeqe/fuZke0nTVr1mjNmjXXvbUwe/Zsk1LZy5kzZzRkyBDKCSApMDBQDodDDodDd911l9uIYn5+vrKysvTMM8+YmNA4FBQDrV+/Xi+99JIk6bPPPpPT6VR6ero+/PBDvfrqqxQUg02YMEETJ05Uo0aNVL58eeYBmaRdu3basWOHwsPDzY4CmG7q1KlyOp3q37+/JkyYIH9/f9c5Ly8vVa1a1fU4/p2OWzwG8vHx0bFjxxQWFqY+ffqoQoUKmjx5spKTkxUREcFePAYrX768pkyZot69e5sdxdZmzZqliRMnql+/foqMjCy0q/Svl8BH0UpKSlJeXl6hZe2PHz8uT09PVa1a1ZxgNpSQkKD77ruv0H8PdsIIioHCwsK0ZcsWBQUFafny5Vq4cKEk6aefflKJEiVMTmc/ubm5uu+++8yOYXtPPfWUpF+eWvhPrL1hrCeeeEL9+/cvVFC+++47ffDBB1q3bp05wWzogQcecH185coV5ebmup338/MzOpLhWOreQM8//7x69eqlSpUqqXz58mrRooWkX279/OcOxyh6Tz75pObPn292DNsrKCi44YtyYqzdu3e7dpT+taZNm2rPnj3GB7Kxy5cva9CgQQoODlapUqUUGBjo9rIDRlAM9Nxzz6lx48ZKSUnRn//8Z9fqjeHh4Xr11VdNTmc/V65c0XvvvafVq1crKiqq0FAqC+fBbhwOx3X3f8nIyKAsGmzEiBFau3at3n33XfXu3VszZszQmTNn9K9//UuTJ082O54hmINigtzcXCUlJal69eoqXpyOaJaWLVve8JzD4VB8fLyBaexl2rRpevrpp1WiRAlNmzbtN69l40bjdOrUST4+PlqwYIGKFSsm6ZcnR3r06KHs7Gx9++23Jie0j8qVK2vevHlq0aKF/Pz8tGvXLtWoUUMfffSRFixYoG+++cbsiEWOgmKgy5cva/Dgwfrwww8lSceOHVN4eLgGDx6sihUratSoUSYnBIxRrVo17dixQ2XKlFG1atVueJ3D4dDJkycNTGZvhw4dUvPmzRUQEODapHHDhg2uNZvq1q1rckL7KF26tA4dOqTKlSurUqVKWrp0qRo3bqykpCRFRkba4qEK5qAYaPTo0dq7d6/WrVvnNim2TZs2WrRokYnJAGMlJSWpTJkyro9v9KKcGCsiIkL79u3TI488ovPnz+vSpUvq06ePjhw5QjkxWHh4uJKSkiRJtWvX1uLFiyX9svKyHTYKlBhBMVSVKlW0aNEiNW3aVL6+vtq7d6/Cw8N14sQJNWjQgN1zTbBjxw4tXrxYycnJhWbJL1261KRUAOzurbfeUrFixTRkyBCtXr1anTp1ktPp1NWrV/Xmm29q6NChZkcsckyAMNAPP/xQaF8FScrOzmaRMBMsXLhQffr0Ubt27bRy5Uq1bdtWx44dU1pamrp27Wp2PNvo3r27GjdurJEjR7odnzJlirZv364lS5aYlMwe9u3bp7p168rDw0P79u37zWujoqIMSoVhw4a5Pm7Tpo2OHDminTt3qkaNGrZ5HxhBMVDz5s318MMPa/DgwfL19dW+fftUrVo1DR48WMePH9fy5cvNjmgrUVFRGjhwoGJjY10jWtWqVdPAgQNVvnx5TZgwweyItlCuXDnFx8cXetR+//79atOmjdLS0kxKZg8eHh5KTU1VcHCwPDw85HA4dL2/FliTxjhXr15V+/btNXPmzEJr0tgJIygGmjRpkjp06KBDhw4pLy9Pb7/9tg4dOqTNmzcrISHB7Hi2k5iYqJiYGEm/LCF9bSRr2LBhatWqFQXFIFlZWfLy8ip03NPTk9ueBkhKSnJtSHdtzgPM5enp+V9Hs+yASbIGuv/++7Vnzx7l5eUpMjJSK1euVHBwsLZs2aKGDRuaHc92AgMDXWs+VKxYUQcOHJAkpaen6/Lly2ZGs5XIyMjrThJfuHChIiIiTEhkL1WqVHHdYj516pQqVqyoKlWquL0qVqyoU6dOmZzUXh5//HHNmjXL7BimYgTFYNWrV9f7779vdgzol1tuq1atUmRkpB5++GENHTpU8fHxWrVqlVq3bm12PNsYO3asunXrpsTERLVq1UrSL7tML1iwgPknBmvZsqXOnTtXaK5cRkaGWrZsyS0eA+Xl5Wn27NlavXq1GjZsqFKlSrmdt8NCksxBKWI3M0Rth70VrOTixYu6cuWKKlSooIKCAk2ZMkWbN29WzZo1NWbMGNssJ20FX3/9tSZNmqQ9e/bIx8dHUVFRevnll932I0HR8/DwUFpamuuWzzXHjh1To0aNuOVmIBaSpKAUuWuTzn6L0+lkAhpsKS8vT5MmTVL//v1VqVIls+PYVrdu3SRJX3zxhdq3by9vb2/Xufz8fO3bt0+1atViIj8MxS2eIrZ27VqzI+BXGNGyluLFi2vKlCnq06eP2VFszd/fX9Iv/1jy9fWVj4+P65yXl5eaNm3q2nUaxjpx4oQSExPVvHlz+fj4uP5BawcUlCLGELW1BAQEMKJlMa1bt1ZCQoKqVq1qdhTbmjNnjiSpatWqGj58eKH5DjDehQsX9Mgjj2jt2rVyOBw6fvy4wsPDNWDAAAUGBuof//iH2RGLHAUFtsKIlvV06NBBo0aN0v79+687GbBz584mJbOfgoIC/fjjjxQUCxg2bJg8PT2VnJysOnXquI736NFDcXFxtigozEEBYCoPjxuvdsBIlrHq16+v/fv364EHHtCAAQPUvXt3t/koME5oaKhWrFihe+65x21rlJMnTyoqKorNAoE73YYNG/T444/rvvvu05kzZyRJH330kTZu3GhyMvsoKCi44YtyYqzdu3dr+/btuvvuuzV06FCFhobq2Wef1fbt282OZjvZ2dkqWbJkoeMXL160TWmkoMC2Pv30U7Vr104+Pj7atWuXcnJyJP2y5sOkSZNMTgeYo379+po2bZrOnj2rWbNm6fTp02rWrJmioqL09ttvKyMjw+yItvCnP/1J8+bNc33ucDhcyyH81iPIdxJu8RgsLy9P69atU2Jioh577DH5+vrq7Nmz8vPzU+nSpc2OZyv169fXsGHD1KdPH7ch1N27d6tDhw5KTU01O6JtZGdnKyEh4bq7Sg8ZMsSkVPaWm5urzz77TLNnz1Z8fLzuu+8+nT17VmlpaXr//ffVo0cPsyPe0Q4cOKDWrVurQYMGio+PV+fOnXXw4EFdvHhRmzZtUvXq1c2OWOQoKAY6deqU2rdvr+TkZOXk5OjYsWMKDw/X0KFDlZOTo5kzZ5od0VZKliypQ4cOqWrVqoXu8UZEROjKlStmR7SF3bt3q2PHjrp8+bKys7MVFBSkH3/8USVLllRwcLBOnjxpdkRb2blzp+bMmaMFCxbI29tbffr00ZNPPqkaNWpIkv75z3/q1VdfZRNHA2RkZGj69Onau3evsrKy1KBBA8XGxqp8+fJmRzMEt3gMNHToUDVq1Eg//fST2zoDXbt21Zo1a0xMZk+hoaE6ceJEoeMbN25UeHi4CYnsadiwYerUqZPrv4utW7fq1KlTatiwod544w2z49lKZGSkmjZtqqSkJM2aNUspKSmaPHmyq5xI0qOPPqoffvjBxJT2sHbtWvn7++ull17S4sWL9c033+jVV19V+fLlNWPGDLPjGcMJwwQFBTmPHDnidDqdztKlSzsTExOdTqfTmZSU5PTx8TEzmi1NmjTJGRER4dy6davT19fXuWHDBue///1vZ7ly5ZzTpk0zO55t+Pv7u/678Pf3dx46dMjpdDqdW7duddaqVcvMaLYzceJE5+nTp82OAafTGRAQ4NyxY0eh41OnTnX6+vqakMh4rINioBs9lXD69Gn5+vqakMjeRo0apYKCArVu3VqXL19W8+bN5e3treHDh2vw4MFmx7MNT09P16PGwcHBrnUf/P39lZKSYnI6exk7dqzZEfD//f3vf1eHDh20fv161a5dW5L0j3/8QxMnTtTXX39tcjpjMAfFQD169JC/v7/ee+89+fr6at++fSpXrpy6dOmiypUru1ZzhLFyc3N14sQJZWVlKSIigsnKBmvbtq2eeOIJPfbYY3rqqae0b98+DRkyRB999JF++uknfffdd2ZHtI3u3burcePGGjlypNvxKVOmaPv27ewubbApU6Zo2rRp2rhxoxYtWqRJkybpm2++UbNmzcyOZggKioFOnz6tdu3ayel06vjx42rUqJGOHz+usmXLav369YW2OEfR6N+//++6bvbs2UWcBJK0Y8cOXbp0SS1bttT58+fVp08f167Ss2bNUr169cyOaBvlypVTfHy8IiMj3Y7v379fbdq0YWKsCUaOHKlZs2YpPz9f3377rZo2bWp2JMNQUAyWl5enRYsWuc3K7tWrl9ukWRQtDw8PValSRfXr19dv/d//s88+MzAVYD4fHx/t2bNHtWrVcjt+5MgR1a9fXz///LNJyexh2rRp1z3+xhtvqHnz5mrcuLHrmB0ev6egGGjBggV69NFHr3tuxIgR+vvf/25wInuKjY3VggULVKVKFfXr10+PP/64goKCzI5lW0lJScrLy1PNmjXdjh8/flyenp5sImigxo0b68EHH9S4cePcjo8fP17Lli3Tzp07TUpmD9WqVftd1zkcDls8fk9BMVBAQIAWLFigDh06uB0fNmyYFi5cqHPnzpmUzH5ycnK0dOlSzZ49W5s3b1ZMTIwGDBigtm3b2mYrc6t44IEH1L9/f/Xt29ft+L///W998MEHWrdunTnBbGjZsmXq1q2bHnvsMbVq1UqStGbNGi1YsEBLlizRQw89ZG5A2AoFxUBff/21evXqpa+++kr333+/JGnw4MFaunSp1qxZ45qpDWOdOnVKc+fO1bx585SXl6eDBw8yUdZAfn5+2rVrl9taG5J04sQJNWrUSOnp6eYEs6mvv/5akyZN0p49e+Tj46OoqCi9/PLLeuCBB8yOBpvhMWMDxcTE6J133lHnzp21atUqzZo1S1988YXWrl2ru+66y+x4tuXh4SGHwyGn08nmdCZwOBy6dOlSoeMZGRm8HyaIiYlRTEyM2TEARlDM8M477yguLk7lypXT2rVrC/3LEUXv17d4Nm7cqAcffFD9+vVT+/btXWtywBidOnWSj4+PFixYoGLFikmS8vPz1aNHD2VnZ+vbb781OaH97Ny5U4cPH5Yk3X333apfv77JiWBHFJQiFhcXd93jS5YsUYMGDdw2fHrzzTeNimVrzz33nBYuXKiwsDD1799fvXr1UtmyZc2OZVuHDh1S8+bNFRAQoD/96U+SpA0bNigzM1Px8fGqW7euyQnt4/z58+rZs6fWrVungIAASVJ6erpatmyphQsXqly5cuYGhK1QUIrY790W2+FwKD4+vojTQPrllk7lypVVv37935wQu3TpUgNT2dvZs2ddm6Jdm/cwaNAgnq4yWI8ePXTy5EnNmzdPderUkfRLgezbt69q1KihBQsWmJwQdkJBge088cQTv+tJHVb2hd34+/tr9erVuvfee92Ob9u2TW3btmXCsoHmzJmj0qVL6+GHH3Y7vmTJEl2+fLnQU293IibJwnbmzp1rdgTAkgoKCuTp6VnouKenpwoKCkxIZF+vvfaa/vWvfxU6HhwcrKefftoWBYURlCLWrVs3zZ07V35+furWrdtvXsstBQBm6tKli9LT07VgwQJVqFBBknTmzBn16tVLgYGBrK5soBIlSujIkSOFFir8/vvvVadOHVus6ssIShHz9/d33U7w9/c3OQ0A3Nj06dPVuXNnVa1aVWFhYZKklJQU1a1bV//+979NTmcvwcHB2rdvX6GCsnfvXpUpU8acUAZjBAUA4OJ0OrV69WodOXJEklSnTh21adPG5FT2M3LkSC1atEhz5sxR8+bNJUkJCQnq37+//vKXv+iNN94wOWHRo6AAAGAxubm56t27t5YsWaLixX+52VFQUKA+ffpo5syZ8vLyMjlh0aOgFLH/9ijrr+3atauI0wDWwH8X1rVmzRqtWbNG58+fLzQxdvbs2Salsq9jx465Hr+PjIxUlSpVzI5kGOagFDE21wIK478La5owYYImTpyoRo0aqXz58mycaQF33XWXbbdCYQQFACBJKl++vKZM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+aioKJOSAQBgLdziMdD1Ng50OBxyOp1MkgUA4FcYQTFQUlKS2REAALgtMIICAAAshxEUA3355ZfXPe5wOFSiRAnVqFFD1apVMzgVAADWwwiKgTw8PFxzTn7t1/NQ7r//fn3++ecKDAw0KSUAAObjMWMDrVq1Svfee69WrVqljIwMZWRkaNWqVWrSpIm++uorrV+/XhcuXNDw4cPNjgoAgKkYQTFQ3bp19d577+m+++5zO75p0yY9/fTTOnjwoFavXq3+/fsrOTnZpJQAAJiPERQDJSYmys/Pr9BxPz8/nTx5UpJUs2ZN/fjjj0ZHAwDAUigoBmrYsKFGjBihH374wXXshx9+0Isvvqh7771XknT8+HGFhYWZFREAAEvgKR4DzZo1S126dFGlSpVcJSQlJUXh4eH64osvJElZWVkaM2aMmTEBADAdc1AMVlBQoJUrV+rYsWOSpFq1aunPf/7zdVeZBQDArigoAADAcrjFU8SmTZump59+WiVKlNC0adN+89ohQ4YYlAoAAGtjBKWIVatWTTt27FCZMmV+c5VYh8PhepIHAAC7o6AAAADLYWYmAACwHOagGCg/P19z587VmjVrdP78eRUUFLidj4+PNykZAADWQkEx0NChQzV37lzFxMSobt26cjgcZkcCAMCSmINioLJly2revHnq2LGj2VEAALA05qAYyMvLSzVq1DA7BgAAlkdBMdALL7ygt99+WwxaAQDw27jFY6CuXbtq7dq1CgoK0t133y1PT0+380uXLjUpGQAA1sIkWQMFBASoa9euZscAAMDyGEEBAACWwxwUg+Xl5Wn16tX617/+pUuXLkmSzp49q6ysLJOTAQBgHYygGOjUqVNq3769kpOTlZOTo2PHjik8PFxDhw5VTk6OZs6caXZEAAAsgREUAw0dOlSNGjXSTz/9JB8fH9fxrl27as2aNSYmAwDAWpgka6ANGzZo8+bN8vLycjtetWpVnTlzxqRUAABYDyMoBiooKFB+fn6h46dPn5avr68JiQAAsCYKioHatm2rqVOnuj53OBzKysrSyy+/zPL3AAD8CpNkDXT69Gm1a9dOTqdTx48fV6NGjXT8+HGVLVtW69evV3BwsNkRAQCwBAqKwfLy8rRo0SLt3btXWVlZatCggXr16uU2aRYAALujoAAAAMvhKR4DXbhwQWXKlJEkpaSk6P3339fPP/+sTp06qXnz5ianAwDAOhhBMcD+/fvVqVMnpaSkqGbNmlq4cKHat2+v7OxseXh4KDs7W5988okeeughs6MCAGAJPMVjgBdffFGRkZFav369WrRooQcffFAxMTHKyMjQTz/9pIEDB2ry5MlmxwQAwDIYQTFA2bJlFR8fr6ioKGVlZcnPz0/bt29Xw4YNJUlHjhxR06ZNlZ6ebm5QAAAsghEUA1y8eFGhoaGSpNKlS6tUqVIKDAx0nQ8MDHRtHAgAACgohnE4HL/5OQAA+D88xWOQJ554Qt7e3pKkK1eu6JlnnlGpUqUkSTk5OWZGAwDAcpiDYoB+/fr9ruvmzJlTxEkAALg9UFAAAIDlMAcFAABYDgUFAABYDgUFAABYDgUFAABYDgUFAABYDgUFQJF54okn3DbBbNGihZ5//nnT8gC4fVBQAFhS1apVNXXqVLNjADAJBQUAAFgOBQXAbyooKNCUKVNUo0YNeXt7q3Llyvrb3/4mSUpJSdEjjzyigIAABQUFqUuXLvr+++//8M9s0aKFTp06pWHDhsnhcMjhcCg7O1t+fn765JNP3K79/PPPVapUKV26dEnff/+9HA6HFi5cqPvuu08lSpRQ3bp1lZCQ4PY1Bw4cUIcOHVS6dGmFhISod+/e+vHHH/9wbgC3DgUFwG8aPXq0Jk+erLFjx+rQoUOaP3++QkJCdPXqVbVr106+vr7asGGDNm3apNKlS6t9+/bKzc39Qz9z6dKlqlSpkiZOnKhz587p3LlzKlWqlHr27FloS4g5c+boL3/5i3x9fV3HRowYoRdeeEG7d+9WdHS0OnXqpAsXLkiS0tPT1apVK9WvX187duzQ8uXLlZaWpkceeeQPZQZwizkB4AYyMzOd3t7ezvfff7/QuY8++shZq1YtZ0FBgetYTk6O08fHx7lixQqn0+l09u3b19mlSxfX+QceeMA5dOjQ3/Wzq1Sp4nzrrbfcjn333XfOYsWKOc+ePet0Op3OtLQ0Z/HixZ3r1q1zOp1OZ1JSklOSc/Lkya6vuXr1qrNSpUrO119/3el0Op2vvPKKs23btm7fNyUlxSnJefTo0d+VDUDRYwQFwA0dPnxYOTk5at26daFze/fu1YkTJ+Tr66vSpUurdOnSCgoK0pUrV5SYmFgkeRo3bqy7775bH374oSTp3//+t6pUqaLmzZu7XRcdHe36uHjx4mrUqJEOHz7syr127VpX5tKlS6t27dqSVGS5Ady84mYHAGBdPj4+NzyXlZWlhg0b6uOPPy50rly5ckWW6cknn9SMGTM0atQozZkzR/369ZPD4fjdX5+VlaVOnTrp9ddfL3SufPnytzIqgD+AERQAN1SzZk35+PhozZo1hc41aNBAx48fV3BwsGrUqOH28vf3/8M/28vLS/n5+YWOP/744zp16pSmTZumQ4cOqW/fvoWu2bp1q+vjvLw87dy5U3Xq1HHlPnjwoKpWrVood6lSpf5wbgC3BgUFwA2VKFFCI0eO1Isvvqh58+YpMTFRW7du1axZs9SrVy+VLVtWXbp00YYNG5SUlKR169ZpyJAhOn369B/+2VWrVtX69et15swZtydsAgMD1a1bN40YMUJt27ZVpUqVCn3tjBkz9Nlnn+nIkSOKjY3VTz/9pP79+0uSYmNjdfHiRT366KPavn27EhMTtWLFCvXr1++6hQiAOSgoAH7T2LFj9cILL2jcuHGqU6eOevToofPnz6tkyZJav369KleurG7duqlOnToaMGCArly5Ij8/vz/8cydOnKjvv/9e1atXL3TLaMCAAcrNzXWVjv80efJkTZ48Wffcc482btyoL7/8UmXLlpUkVahQQZs2bVJ+fr7atm2ryMhIPf/88woICJCHB38kAlbhcDqdTrNDAMDN+OijjzRs2DCdPXtWXl5eruPff/+9qlWrpt27d6tevXrmBQTwhzFJFsBt4/Llyzp37pwmT56sgQMHupUTAHcWxjMBGG7Dhg1uj/n+5+tGpkyZotq1ays0NFSjR482MDEAo3GLB4Dhfv75Z505c+aG52vUqGFgGgBWREEBAACWwy0eAABgORQUAABgORQUAABgORQUAABgORQUAABgORQUAABgORQUAABgOf8P5WH2DL2831kAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "new_df.cell_type.value_counts().plot(kind=\"bar\")" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [], "source": [ "new_df.to_csv(\"HAM_327.csv\", index=False)" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [], "source": [ "balance_ds = pd.read_csv(\"HAM_327.csv\")" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
image_idpathcell_typecell_type_idx
0ISIC_0026769../data/HAM10000_images_part_1/ISIC_0026769.jpgBenign keratosis-like lesions2
1ISIC_0025661../data/HAM10000_images_part_1/ISIC_0025661.jpgBenign keratosis-like lesions2
2ISIC_0029176../data/HAM10000_images_part_1/ISIC_0029176.jpgBenign keratosis-like lesions2
3ISIC_0025276../data/HAM10000_images_part_1/ISIC_0025276.jpgBenign keratosis-like lesions2
4ISIC_0025984../data/HAM10000_images_part_1/ISIC_0025984.jpgBenign keratosis-like lesions2
\n", "
" ], "text/plain": [ " image_id path \\\n", "0 ISIC_0026769 ../data/HAM10000_images_part_1/ISIC_0026769.jpg \n", "1 ISIC_0025661 ../data/HAM10000_images_part_1/ISIC_0025661.jpg \n", "2 ISIC_0029176 ../data/HAM10000_images_part_1/ISIC_0029176.jpg \n", "3 ISIC_0025276 ../data/HAM10000_images_part_1/ISIC_0025276.jpg \n", "4 ISIC_0025984 ../data/HAM10000_images_part_1/ISIC_0025984.jpg \n", "\n", " cell_type cell_type_idx \n", "0 Benign keratosis-like lesions 2 \n", "1 Benign keratosis-like lesions 2 \n", "2 Benign keratosis-like lesions 2 \n", "3 Benign keratosis-like lesions 2 \n", "4 Benign keratosis-like lesions 2 " ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "balance_ds.head()" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [], "source": [ "BASE_DATASET_DIR = \"dataset_v2\"\n", "\n", "if not os.path.exists(BASE_DATASET_DIR):\n", " os.mkdir(BASE_DATASET_DIR)\n", "\n", "for src_path, img_class in zip(balance_ds.path.values, balance_ds.cell_type.values):\n", " to_images_path = os.path.join(BASE_DATASET_DIR, img_class)\n", "\n", " if not os.path.exists(to_images_path):\n", " os.mkdir(to_images_path)\n", "\n", " shutil.copy(src_path, to_images_path)" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "cell_type\n", "Benign keratosis-like lesions 327\n", "Melanoma 327\n", "Basal cell carcinoma 327\n", "Melanocytic Nevi 327\n", "Actinic keratoses 327\n", "Name: count, dtype: int64" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ "balance_ds.cell_type.value_counts()" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 1635 files belonging to 5 classes.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Using 1145 files for training.\n", "Using 490 files for validation.\n" ] } ], "source": [ "train_ds, val_ds = tf.keras.utils.image_dataset_from_directory(\n", " \"dataset_v2\",\n", " batch_size=8,\n", " image_size=(228, 228),\n", " shuffle=True,\n", " seed=42,\n", " validation_split=0.3,\n", " subset=\"both\",\n", " labels=\"inferred\",\n", " label_mode=\"categorical\"\n", ")" ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(144, 62)" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# amount of batch\n", "len(train_ds), len(val_ds)" ] }, { "cell_type": "code", "execution_count": 128, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Actinic keratoses',\n", " 'Basal cell carcinoma',\n", " 'Benign keratosis-like lesions ',\n", " 'Melanocytic Nevi',\n", " 'Melanoma']" ] }, "execution_count": 128, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train_ds.class_names" ] }, { "cell_type": "code", "execution_count": 129, "metadata": {}, "outputs": [], "source": [ "normalization_layer = tf.keras.layers.Rescaling(1./255)" ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.00055000786 0.79066163\n" ] } ], "source": [ "normalized_ds = train_ds.map(lambda x, y: (normalization_layer(x), y))\n", "image_batch, labels_batch = next(iter(normalized_ds))\n", "first_image = image_batch[0]\n", "# Notice the pixel values are now in `[0,1]`.\n", "print(np.min(first_image), np.max(first_image))" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [], "source": [ "AUTOTUNE = tf.data.AUTOTUNE\n", "\n", "train_ds = train_ds.cache().prefetch(buffer_size=AUTOTUNE)\n", "val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [], "source": [ "def create_model(base, num_class):\n", " inputs = tf.keras.Input(shape=(228,228,3))\n", " # x = tf.keras.layers.Rescaling(1./255)(inputs)\n", " # x = tf.keras.layers.RandomFlip('horizontal')(inputs)\n", " # x = tf.keras.applications.efficientnet.preprocess_input(x)\n", " x = base(inputs, training=False)\n", " x = tf.keras.layers.GlobalAveragePooling2D()(x)\n", " x = tf.keras.layers.BatchNormalization()(x)\n", " outputs = tf.keras.layers.Dense(num_class, activation='softmax')(x)\n", "\n", " model = tf.keras.Model(inputs, outputs)\n", "\n", " return model" ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [], "source": [ "# Load the pre-trained model\n", "eff_net = tf.keras.applications.EfficientNetB0(include_top=False, weights=\"imagenet\", input_shape=(228, 228, 3))\n", "\n", "# Freeze the pre-trained model\n", "eff_net.trainable = False\n", "\n", "model = create_model(eff_net, 5)\n", "\n", "# Compile the model\n", "model.compile(optimizer=\"adam\", loss=tf.keras.losses.CategoricalCrossentropy(), metrics=[\"accuracy\"])" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"model_3\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " input_10 (InputLayer) [(None, 228, 228, 3)] 0 \n", " \n", " efficientnetb0 (Functional (None, 8, 8, 1280) 4049571 \n", " ) \n", " \n", " global_average_pooling2d_5 (None, 1280) 0 \n", " (GlobalAveragePooling2D) \n", " \n", " batch_normalization_97 (Ba (None, 1280) 5120 \n", " tchNormalization) \n", " \n", " dense_13 (Dense) (None, 5) 6405 \n", " \n", "=================================================================\n", "Total params: 4061096 (15.49 MB)\n", "Trainable params: 8965 (35.02 KB)\n", "Non-trainable params: 4052131 (15.46 MB)\n", "_________________________________________________________________\n" ] } ], "source": [ "model.summary()" ] }, { "cell_type": "code", "execution_count": 135, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "144/144 [==============================] - 25s 155ms/step - loss: 1.5178 - accuracy: 0.4087 - val_loss: 1.2955 - val_accuracy: 0.4694\n", "Epoch 2/10\n", "144/144 [==============================] - 20s 142ms/step - loss: 1.0086 - accuracy: 0.6131 - val_loss: 1.1839 - val_accuracy: 0.5367\n", "Epoch 3/10\n", "144/144 [==============================] - 21s 144ms/step - loss: 0.8086 - accuracy: 0.7039 - val_loss: 1.1547 - val_accuracy: 0.5653\n", "Epoch 4/10\n", "144/144 [==============================] - 22s 150ms/step - loss: 0.6712 - accuracy: 0.7651 - val_loss: 1.1602 - val_accuracy: 0.5735\n", "Epoch 5/10\n", "144/144 [==============================] - 22s 152ms/step - loss: 0.5677 - accuracy: 0.8122 - val_loss: 1.1651 - val_accuracy: 0.6000\n", "Epoch 6/10\n", "144/144 [==============================] - 23s 159ms/step - loss: 0.4861 - accuracy: 0.8515 - val_loss: 1.1670 - val_accuracy: 0.6163\n", "Epoch 7/10\n", "144/144 [==============================] - 24s 165ms/step - loss: 0.4199 - accuracy: 0.8865 - val_loss: 1.1712 - val_accuracy: 0.6163\n", "Epoch 8/10\n", "144/144 [==============================] - 22s 156ms/step - loss: 0.3651 - accuracy: 0.9127 - val_loss: 1.1797 - val_accuracy: 0.6286\n", "Epoch 9/10\n", "144/144 [==============================] - 22s 155ms/step - loss: 0.3191 - accuracy: 0.9380 - val_loss: 1.1925 - val_accuracy: 0.6286\n", "Epoch 10/10\n", "144/144 [==============================] - 23s 159ms/step - loss: 0.2801 - accuracy: 0.9555 - val_loss: 1.2088 - val_accuracy: 0.6245\n" ] } ], "source": [ "history_effnet = model.fit(train_ds, epochs=10, steps_per_epoch=len(train_ds), validation_data=val_ds)" ] }, { "cell_type": "code", "execution_count": 162, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average Accuracy: 0.9809\n", "Average Loss: 0.805525\n" ] } ], "source": [ "total_accuracy = 7.8472\n", "total_loss = 6.4442\n", "num_batches = 8\n", "\n", "# Hitung rata-rata akurasi dan loss\n", "average_accuracy = (total_accuracy / num_batches)\n", "average_loss = (total_loss / num_batches)\n", "\n", "print(\"Average Accuracy:\", average_accuracy)\n", "print(\"Average Loss:\", average_loss)" ] }, { "cell_type": "code", "execution_count": 136, "metadata": {}, "outputs": [], "source": [ "# Load the pre-trained model\n", "inception = tf.keras.applications.InceptionV3(include_top=False, weights=\"imagenet\", input_shape=(228, 228, 3))\n", "\n", "# Freeze the pre-trained model\n", "inception.trainable = False\n", "\n", "model = create_model(inception, 5)\n", "\n", "# Compile the model\n", "model.compile(optimizer=\"adam\", loss=tf.keras.losses.CategoricalCrossentropy(), metrics=[\"accuracy\"])" ] }, { "cell_type": "code", "execution_count": 137, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"model_4\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " input_12 (InputLayer) [(None, 228, 228, 3)] 0 \n", " \n", " inception_v3 (Functional) (None, 5, 5, 2048) 21802784 \n", " \n", " global_average_pooling2d_6 (None, 2048) 0 \n", " (GlobalAveragePooling2D) \n", " \n", " batch_normalization_192 (B (None, 2048) 8192 \n", " atchNormalization) \n", " \n", " dense_14 (Dense) (None, 5) 10245 \n", " \n", "=================================================================\n", "Total params: 21821221 (83.24 MB)\n", "Trainable params: 14341 (56.02 KB)\n", "Non-trainable params: 21806880 (83.19 MB)\n", "_________________________________________________________________\n" ] } ], "source": [ "model.summary()" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "144/144 [==============================] - 45s 300ms/step - loss: 1.6964 - accuracy: 0.3843 - val_loss: 2.2668 - val_accuracy: 0.3245\n", "Epoch 2/10\n", "144/144 [==============================] - 45s 311ms/step - loss: 1.3765 - accuracy: 0.4751 - val_loss: 1.7397 - val_accuracy: 0.4082\n", "Epoch 3/10\n", "144/144 [==============================] - 43s 299ms/step - loss: 1.2225 - accuracy: 0.5380 - val_loss: 1.7259 - val_accuracy: 0.4327\n", "Epoch 4/10\n", "144/144 [==============================] - 44s 303ms/step - loss: 1.1054 - accuracy: 0.5782 - val_loss: 1.7626 - val_accuracy: 0.4347\n", "Epoch 5/10\n", "144/144 [==============================] - 44s 309ms/step - loss: 1.0113 - accuracy: 0.6166 - val_loss: 1.8025 - val_accuracy: 0.4245\n", "Epoch 6/10\n", "144/144 [==============================] - 44s 309ms/step - loss: 0.9323 - accuracy: 0.6428 - val_loss: 1.8399 - val_accuracy: 0.4265\n", "Epoch 7/10\n", "144/144 [==============================] - 44s 307ms/step - loss: 0.8649 - accuracy: 0.6812 - val_loss: 1.8760 - val_accuracy: 0.4245\n", "Epoch 8/10\n", "144/144 [==============================] - 44s 303ms/step - loss: 0.8067 - accuracy: 0.7214 - val_loss: 1.9110 - val_accuracy: 0.4143\n", "Epoch 9/10\n", "144/144 [==============================] - 44s 303ms/step - loss: 0.7564 - accuracy: 0.7397 - val_loss: 1.9441 - val_accuracy: 0.4102\n", "Epoch 10/10\n", "144/144 [==============================] - 44s 303ms/step - loss: 0.7123 - accuracy: 0.7668 - val_loss: 1.9748 - val_accuracy: 0.4143\n" ] } ], "source": [ "history_inception = model.fit(train_ds, epochs=10, steps_per_epoch=len(train_ds), validation_data=val_ds)" ] }, { "cell_type": "code", "execution_count": 163, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average Accuracy: 0.7680125\n", "Average Loss: 1.3105875\n" ] } ], "source": [ "total_accuracy = 6.1441\n", "total_loss = 10.4847\n", "num_batches = 8\n", "\n", "# Hitung rata-rata akurasi dan loss\n", "average_accuracy = (total_accuracy / num_batches)\n", "average_loss = (total_loss / num_batches)\n", "\n", "print(\"Average Accuracy:\", average_accuracy)\n", "print(\"Average Loss:\", average_loss)" ] }, { "cell_type": "code", "execution_count": 152, "metadata": {}, "outputs": [], "source": [ "from keras.models import Sequential, model_from_json, Model, load_model\n", "from keras.layers import Dense, Dropout, Flatten, Conv2D, GlobalAveragePooling2D" ] }, { "cell_type": "code", "execution_count": 158, "metadata": {}, "outputs": [], "source": [ "0#Keras Sequential API\n", "#CNN Model: Conv x2 -> MaxPool -> Dropout -> Conv x2 -> MaxPool -> Dropout -> Flatten -> Dense -> Dropout -> Dense \n", "model = Sequential()\n", "model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', padding = 'Same', input_shape=(228, 228, 3)))\n", "model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', padding = 'Same'))\n", "model.add(GlobalAveragePooling2D(keepdims=True))\n", "model.add(Dropout(0.25))\n", "\n", "model.add(Conv2D(64, (3, 3), activation='relu', padding = 'Same'))\n", "model.add(Conv2D(64, (3, 3), activation='relu', padding = 'Same'))\n", "model.add(GlobalAveragePooling2D(keepdims=True))\n", "model.add(Dropout(0.40))\n", "\n", "model.add(Flatten())\n", "model.add(Dense(128, activation='relu'))\n", "model.add(Dropout(0.5))\n", "model.add(Dense(5, activation='softmax'))\n", "\n", "\n", "model.compile(optimizer=\"adam\", loss=tf.keras.losses.CategoricalCrossentropy(), metrics=[\"accuracy\"])" ] }, { "cell_type": "code", "execution_count": 150, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_6\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " conv2d_212 (Conv2D) (None, 228, 228, 32) 896 \n", " \n", " conv2d_213 (Conv2D) (None, 228, 228, 32) 9248 \n", " \n", " max_pooling2d_20 (MaxPooli (None, 114, 114, 32) 0 \n", " ng2D) \n", " \n", " dropout_18 (Dropout) (None, 114, 114, 32) 0 \n", " \n", " conv2d_214 (Conv2D) (None, 114, 114, 64) 18496 \n", " \n", " conv2d_215 (Conv2D) (None, 114, 114, 64) 36928 \n", " \n", " max_pooling2d_21 (MaxPooli (None, 38, 38, 64) 0 \n", " ng2D) \n", " \n", " dropout_19 (Dropout) (None, 38, 38, 64) 0 \n", " \n", " flatten_6 (Flatten) (None, 92416) 0 \n", " \n", " dense_17 (Dense) (None, 128) 11829376 \n", " \n", " dropout_20 (Dropout) (None, 128) 0 \n", " \n", " dense_18 (Dense) (None, 5) 645 \n", " \n", "=================================================================\n", "Total params: 11895589 (45.38 MB)\n", "Trainable params: 11895589 (45.38 MB)\n", "Non-trainable params: 0 (0.00 Byte)\n", "_________________________________________________________________\n" ] } ], "source": [ "model.summary()" ] }, { "cell_type": "code", "execution_count": 164, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "\n", "def plot_hist(hist):\n", " plt.plot(hist.history[\"accuracy\"])\n", " plt.title(\"model accuracy\")\n", " plt.ylabel(\"accuracy\")\n", " plt.xlabel(\"epoch\")\n", " plt.legend([\"train\"], loc=\"upper left\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "\n", "def plot_hist_incep(hist):\n", " plt.plot(hist.history_inception[\"accuracy\"])\n", " plt.title(\"model accuracy\")\n", " plt.ylabel(\"accuracy\")\n", " plt.xlabel(\"epoch\")\n", " plt.legend([\"train\"], loc=\"upper left\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 165, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_hist(history_effnet)" ] }, { "cell_type": "code", "execution_count": 166, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_hist(history_inception)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.4" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }