{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "# Let's try now with the big file\n" ], "metadata": { "id": "Ja0JNAIPlW1c" } }, { "cell_type": "markdown", "source": [ "import matplotlib.pyplot as plt\n", "from PIL import Image\n", "\n", "image = Image.open(\"candle_extracted/candle/Data/Images/Anomaly/000.JPG\")\n", "plt.imshow(image)\n", "plt.axis(\"off\")\n", "plt.show()\n" ], "metadata": { "id": "or5IXaAolcpQ" } }, { "cell_type": "code", "source": [ "import os\n", "from codecarbon import track_emissions\n", "import numpy as np\n", "import torch\n", "from PIL import Image\n", "from transformers import AutoModelForImageClassification, AutoFeatureExtractor\n", "\n", "# Chemin racine de vos données (à adapter)\n", "extract_path = \"VisA_20220922_extracted\"\n", "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", "\n", "# Chargement du feature extractor et du modèle\n", "feature_extractor = AutoFeatureExtractor.from_pretrained(\"microsoft/resnet-50\")\n", "model = AutoModelForImageClassification.from_pretrained(\"microsoft/resnet-50\")\n", "model.to(device)\n", "model.eval()\n", "\n", "def load_and_preprocess_image(img_path):\n", " \"\"\"\n", " Charge et prétraite une image en utilisant le feature extractor.\n", " \"\"\"\n", " image = Image.open(img_path).convert(\"RGB\")\n", " inputs = feature_extractor(images=image, return_tensors=\"pt\")\n", " return inputs[\"pixel_values\"]\n", "\n", "@track_emissions()\n", "def extract_features(image_paths):\n", " \"\"\"\n", " Extrait des caractéristiques pour chaque image de la liste image_paths.\n", " Ici, on utilise les logits du modèle comme représentation.\n", " \"\"\"\n", " features = []\n", " with torch.no_grad():\n", " for img_path in image_paths:\n", " image_tensor = load_and_preprocess_image(img_path).to(device)\n", " outputs = model(pixel_values=image_tensor)\n", " # Dans ce cas, nous utilisons les logits comme vecteur de caractéristiques.\n", " feature_vector = outputs.logits.cpu().numpy()\n", " features.append(feature_vector)\n", " return np.vstack(features)\n", "\n", "# Charger les images normales depuis le dossier \"Normal\"\n", "normal_dir = os.path.join(extract_path, \"candle\", \"Data\", \"Images\", \"Normal\")\n", "\n", "# Récupérer tous les fichiers images du dossier \"Normal\"\n", "normal_image_paths = [\n", " os.path.join(normal_dir, filename)\n", " for filename in os.listdir(normal_dir)\n", " if filename.lower().endswith(('.jpg', '.jpeg', '.png'))\n", "]\n", "\n", "# Vérifier que des images ont bien été trouvées\n", "if not normal_image_paths:\n", " raise FileNotFoundError(f\"Aucune image trouvée dans le dossier {normal_dir}\")\n", "\n", "# Extraire les caractéristiques pour les images normales\n", "normal_features = extract_features(normal_image_paths)\n", "\n", "# Sauvegarder les caractéristiques extraites pour l'inférence\n", "np.save(\"normal_features.npy\", normal_features)\n", "print(\"Caractéristiques normales sauvegardées dans 'normal_features.npy'\")\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ZWcZz-sp3lcc", "outputId": "64ef0e98-a930-43f4-db3a-ba0fe8a41d58" }, "execution_count": 26, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.11/dist-packages/transformers/models/convnext/feature_extraction_convnext.py:28: FutureWarning: The class ConvNextFeatureExtractor is deprecated and will be removed in version 5 of Transformers. Please use ConvNextImageProcessor instead.\n", " warnings.warn(\n", "[codecarbon INFO @ 09:57:59] [setup] RAM Tracking...\n", "[codecarbon INFO @ 09:57:59] [setup] CPU Tracking...\n", "[codecarbon WARNING @ 09:57:59] No CPU tracking mode found. Falling back on CPU constant mode. \n", " Linux OS detected: Please ensure RAPL files exist at \\sys\\class\\powercap\\intel-rapl to measure CPU\n", "\n", "[codecarbon WARNING @ 09:58:00] We saw that you have a Intel(R) Xeon(R) CPU @ 2.20GHz but we don't know it. Please contact us.\n", "[codecarbon INFO @ 09:58:00] CPU Model on constant consumption mode: Intel(R) Xeon(R) CPU @ 2.20GHz\n", "[codecarbon INFO @ 09:58:00] [setup] GPU Tracking...\n", "[codecarbon INFO @ 09:58:00] No GPU found.\n", "[codecarbon INFO @ 09:58:00] >>> Tracker's metadata:\n", "[codecarbon INFO @ 09:58:00] Platform system: Linux-6.1.85+-x86_64-with-glibc2.35\n", "[codecarbon INFO @ 09:58:00] Python version: 3.11.11\n", "[codecarbon INFO @ 09:58:00] CodeCarbon version: 2.8.3\n", "[codecarbon INFO @ 09:58:00] Available RAM : 12.675 GB\n", "[codecarbon INFO @ 09:58:00] CPU count: 2\n", "[codecarbon INFO @ 09:58:00] CPU model: Intel(R) Xeon(R) CPU @ 2.20GHz\n", "[codecarbon INFO @ 09:58:00] GPU count: None\n", "[codecarbon INFO @ 09:58:00] GPU model: None\n", "[codecarbon INFO @ 09:58:00] Saving emissions data to file /content/emissions.csv\n", "[codecarbon INFO @ 09:58:15] Energy consumed for RAM : 0.000020 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 09:58:15] Energy consumed for all CPUs : 0.000177 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 09:58:15] 0.000197 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 09:58:30] Energy consumed for RAM : 0.000040 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 09:58:30] Energy consumed for all CPUs : 0.000354 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 09:58:30] 0.000394 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 09:58:45] Energy consumed for RAM : 0.000059 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 09:58:45] Energy consumed for all CPUs : 0.000531 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 09:58:45] 0.000591 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 09:59:00] Energy consumed for RAM : 0.000079 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 09:59:00] Energy consumed for all CPUs : 0.000708 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 09:59:00] 0.000787 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 09:59:15] Energy consumed for RAM : 0.000099 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 09:59:15] Energy consumed for all CPUs : 0.000885 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 09:59:15] 0.000984 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 09:59:30] Energy consumed for RAM : 0.000119 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 09:59:30] Energy consumed for all CPUs : 0.001062 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 09:59:30] 0.001181 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 09:59:45] Energy consumed for RAM : 0.000139 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 09:59:45] Energy consumed for all CPUs : 0.001239 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 09:59:45] 0.001378 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 10:00:00] Energy consumed for RAM : 0.000158 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 10:00:00] Energy consumed for all CPUs : 0.001417 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 10:00:00] 0.001575 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 10:00:00] 0.003746 g.CO2eq/s mean an estimation of 118.13927298866254 kg.CO2eq/year\n", "[codecarbon INFO @ 10:00:15] Energy consumed for RAM : 0.000178 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 10:00:15] Energy consumed for all CPUs : 0.001594 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 10:00:15] 0.001772 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 10:00:30] Energy consumed for RAM : 0.000198 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 10:00:30] Energy consumed for all CPUs : 0.001771 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 10:00:30] 0.001968 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 10:00:45] Energy consumed for RAM : 0.000218 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 10:00:45] Energy consumed for all CPUs : 0.001948 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 10:00:45] 0.002165 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 10:01:00] Energy consumed for RAM : 0.000238 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 10:01:00] Energy consumed for all CPUs : 0.002125 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 10:01:00] 0.002362 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 10:01:15] Energy consumed for RAM : 0.000257 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 10:01:15] Energy consumed for all CPUs : 0.002302 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 10:01:15] 0.002559 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 10:01:30] Energy consumed for RAM : 0.000277 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 10:01:30] Energy consumed for all CPUs : 0.002479 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 10:01:30] 0.002756 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 10:01:45] Energy consumed for RAM : 0.000297 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 10:01:45] Energy consumed for all CPUs : 0.002656 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 10:01:45] 0.002953 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 10:02:00] Energy consumed for RAM : 0.000317 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 10:02:00] Energy consumed for all CPUs : 0.002833 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 10:02:00] 0.003150 kWh of electricity used since the beginning.\n", "[codecarbon INFO @ 10:02:00] 0.003746 g.CO2eq/s mean an estimation of 118.12101028239238 kg.CO2eq/year\n", "[codecarbon INFO @ 10:02:12] \n", "Graceful stopping: collecting and writing information.\n", "Please wait a few seconds...\n", "[codecarbon INFO @ 10:02:12] Energy consumed for RAM : 0.000333 kWh. RAM Power : 4.7530388832092285 W\n", "[codecarbon INFO @ 10:02:12] Energy consumed for all CPUs : 0.002974 kWh. Total CPU Power : 42.5 W\n", "[codecarbon INFO @ 10:02:12] 0.003307 kWh of electricity used since the beginning.\n", "/usr/local/lib/python3.11/dist-packages/codecarbon/output_methods/file.py:52: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, pd.DataFrame.from_records([dict(total.values)])])\n", "[codecarbon INFO @ 10:02:12] Done!\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "pip install codecarbon\n" ], "metadata": { "id": "z_64-lmgH8Zj" }, "execution_count": 21, "outputs": [] }, { "cell_type": "code", "source": [ "import pandas as pd\n", "\n", "# Ouvrir et afficher le contenu du fichier emissions.csv\n", "emissions_df = pd.read_csv(\"emissions.csv\")\n", "display(emissions_df)\n" ], "metadata": { "id": "gi4yhtJt-dx5", "outputId": "bea8384c-8475-43cb-d35a-64afab97fb0f", "colab": { "base_uri": "https://localhost:8080/", "height": 182 } }, "execution_count": 28, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ " timestamp project_name run_id \\\n", "0 2025-02-15T10:02:12 codecarbon 380e3ca2-82db-4172-a670-915f75ca4ac9 \n", "\n", " experiment_id duration emissions \\\n", "0 5b0fa12a-3dd7-45bb-9766-cc326314d9f1 252.051695 0.000944 \n", "\n", " emissions_rate cpu_power gpu_power ram_power ... cpu_count \\\n", "0 0.000004 42.5 0.0 4.753039 ... 2 \n", "\n", " cpu_model gpu_count gpu_model longitude latitude \\\n", "0 Intel(R) Xeon(R) CPU @ 2.20GHz NaN NaN -79.9746 32.8608 \n", "\n", " ram_total_size tracking_mode on_cloud pue \n", "0 12.67477 machine N 1.0 \n", "\n", "[1 rows x 32 columns]" ], "text/html": [ "\n", "
| \n", " | timestamp | \n", "project_name | \n", "run_id | \n", "experiment_id | \n", "duration | \n", "emissions | \n", "emissions_rate | \n", "cpu_power | \n", "gpu_power | \n", "ram_power | \n", "... | \n", "cpu_count | \n", "cpu_model | \n", "gpu_count | \n", "gpu_model | \n", "longitude | \n", "latitude | \n", "ram_total_size | \n", "tracking_mode | \n", "on_cloud | \n", "pue | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "2025-02-15T10:02:12 | \n", "codecarbon | \n", "380e3ca2-82db-4172-a670-915f75ca4ac9 | \n", "5b0fa12a-3dd7-45bb-9766-cc326314d9f1 | \n", "252.051695 | \n", "0.000944 | \n", "0.000004 | \n", "42.5 | \n", "0.0 | \n", "4.753039 | \n", "... | \n", "2 | \n", "Intel(R) Xeon(R) CPU @ 2.20GHz | \n", "NaN | \n", "NaN | \n", "-79.9746 | \n", "32.8608 | \n", "12.67477 | \n", "machine | \n", "N | \n", "1.0 | \n", "
1 rows × 32 columns
\n", "