From 25482d63388091b1195242c50f715551f42a5917 Mon Sep 17 00:00:00 2001 From: AM-SuSh <10224602456@stu.ecnu.edu.cn> Date: Thu, 6 Feb 2025 17:04:44 +0800 Subject: [PATCH] ConvNEXT --- applications/ConvNeXt/ConvNeXt.ipynb | 474 +++++++++++++++++++++++++++ 1 file changed, 474 insertions(+) create mode 100644 applications/ConvNeXt/ConvNeXt.ipynb diff --git a/applications/ConvNeXt/ConvNeXt.ipynb b/applications/ConvNeXt/ConvNeXt.ipynb new file mode 100644 index 000000000..2a3b05f60 --- /dev/null +++ b/applications/ConvNeXt/ConvNeXt.ipynb @@ -0,0 +1,474 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8bceff6e-9047-45cd-a30d-ee8a05ac316a", + "metadata": {}, + "source": [ + "### 环境配置\n", + "MindSpore 2.3\n", + "MindNLP 0.3.1\n", + "Python 3.9" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "2edff912-48fd-40ec-a79f-b37429c147a2", + "metadata": {}, + "outputs": [], + "source": [ + "%%capture captured_output\n", + "!/home/ma-user/anaconda3/bin/conda create -n python-3.9.0 python=3.9.0 -y --override-channels --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main\n", + "!/home/ma-user/anaconda3/envs/python-3.9.0/bin/pip install ipykernel" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "138400a3-55c3-4f18-9b2d-030dc1871018", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import os\n", + "\n", + "data = {\n", + " \"display_name\": \"python-3.9.0\",\n", + " \"env\": {\n", + " \"PATH\": \"/home/ma-user/anaconda3/envs/python-3.9.0/bin:/home/ma-user/anaconda3/envs/python-3.7.10/bin:/modelarts/authoring/notebook-conda/bin:/opt/conda/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/ma-user/modelarts/ma-cli/bin:/home/ma-user/modelarts/ma-cli/bin\"\n", + " },\n", + " \"language\": \"python\",\n", + " \"argv\": [\n", + " \"/home/ma-user/anaconda3/envs/python-3.9.0/bin/python\",\n", + " \"-m\",\n", + " \"ipykernel\",\n", + " \"-f\",\n", + " \"{connection_file}\"\n", + " ]\n", + "}\n", + "\n", + "if not os.path.exists(\"/home/ma-user/anaconda3/share/jupyter/kernels/python-3.9.0/\"):\n", + " os.mkdir(\"/home/ma-user/anaconda3/share/jupyter/kernels/python-3.9.0/\")\n", + "\n", + "with open('/home/ma-user/anaconda3/share/jupyter/kernels/python-3.9.0/kernel.json', 'w') as f:\n", + " json.dump(data, f, indent=4)" + ] + }, + { + "cell_type": "markdown", + "id": "9c0b75ca-1563-4896-aa14-dd54c204a18a", + "metadata": {}, + "source": [ + "安装完成后重启kernel,选择python3.9" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11bc67c7-a7be-4f2a-aae5-66ac77ef2816", + "metadata": {}, + "outputs": [], + "source": [ + "%%capture captured_output\n", + "!pip uninstall mindspore-gpu -y\n", + "!pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/2.3/MindSpore/unified/x86_64/mindspore-2.3-cp39-cp39-linux_x86_64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple\n", + "!pip install download nltk -i https://pypi.tuna.tsinghua.edu.cn/simple\n", + "!pip install mindnlp" + ] + }, + { + "cell_type": "markdown", + "id": "7e618a33-c44e-49ce-a1bc-adc21c1d802f", + "metadata": {}, + "source": [ + "### 加载数据\n", + "首先,加载图像数据集" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "4891b58b-8b8f-4a53-a7f7-43633da2c52f", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Generating train split: 27000 examples [00:05, 4738.60 examples/s]\n" + ] + } + ], + "source": [ + "from datasets import load_dataset\n", + "# 数据来源:https://github.com/phelber/EuroSAT\n", + "dataset = load_dataset(\"imagefolder\", data_files=\"EuroSAT_RGB.zip\")" + ] + }, + { + "cell_type": "markdown", + "id": "743c6d59-d2a3-4be6-b0c0-0bc5ef29204b", + "metadata": {}, + "source": [ + "图像分类任务数据通常包含两类数据:图像和标签" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "75544b36-3af7-40f1-b53e-2a0d2b4b4ba2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'image': Image(mode=None, decode=True, id=None),\n", + " 'label': ClassLabel(names=['AnnualCrop', 'Forest', 'HerbaceousVegetation', 'Highway', 'Industrial', 'Pasture', 'PermanentCrop', 'Residential', 'River', 'SeaLake'], id=None)}" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset[\"train\"].features" + ] + }, + { + "cell_type": "markdown", + "id": "621ac53a-775f-4e00-a174-9ff3848c4d3a", + "metadata": {}, + "source": [ + "我们首先可视化一个示例" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "399fc20a-62a1-4935-90bf-8de847a97eb8", + "metadata": {}, + "outputs": [ + { + "data": { + "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABAAEADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwAAbByKo6lnyFBGPmrN+0Sr/wAtG/OnrM8nDsW+tHJY3lNNWIWzSCrJQY6UzbzgAZ+lUY+zY2nMcAD2qaFEHzSLlR1xxTZthbcowpAwM0irW1Ig1HalCrnFK+FUDFMEQ8Y6c1NAvBqI+1TwAbfxpvYa3H/yprLycdakwAKMc1JdiLZtBY8sRiiQAEKQegqVsbaaykuM9AKERJaEYABOKSUcCp0VGznOaiuAFIA9KYrGprVpDDb27pEqM7N07gYrKVwgwAPxFa2uvmO1Hs3H41ik1NP4dTWppLQlWXJ5AqVRvHBqstWIz8o+tU0QmSeVjnNMuSFYfL1qYNkEZ7VBcgF8ZpIb2IhMqH7pP402SZJCDyMVGwyetM2+9VYk3fEHyzQJu3YQ/wA6xjmtLV51urlXXhQmMVmseamC90qo7yYo4qdOF/GoAM96mU4UVTJROnI+tV7g/vTU0LYkXIqKZMufWp6ldCs3Wm1MYzntTShqiT//2Q==", + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "example = dataset[\"train\"][0]\n", + "example[\"image\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "b7a50755-6b85-419d-8674-8297008d3b36", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "example[\"label\"]" + ] + }, + { + "cell_type": "markdown", + "id": "aaeb2ab2-6057-4505-87a8-51c5be7cb82b", + "metadata": {}, + "source": [ + "当前标签展示为整数,我们可以通过如下的方式将它们转化为真实的分类名" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "ce5c4469-6c26-42a4-a1b0-6d6ad3a9b5ab", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['AnnualCrop',\n", + " 'Forest',\n", + " 'HerbaceousVegetation',\n", + " 'Highway',\n", + " 'Industrial',\n", + " 'Pasture',\n", + " 'PermanentCrop',\n", + " 'Residential',\n", + " 'River',\n", + " 'SeaLake']" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "labels = dataset[\"train\"].features[\"label\"].names\n", + "labels" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "18e83cad-da55-43ed-b6f5-11bf5210684f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{0: 'AnnualCrop',\n", + " 1: 'Forest',\n", + " 2: 'HerbaceousVegetation',\n", + " 3: 'Highway',\n", + " 4: 'Industrial',\n", + " 5: 'Pasture',\n", + " 6: 'PermanentCrop',\n", + " 7: 'Residential',\n", + " 8: 'River',\n", + " 9: 'SeaLake'}" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "id2label = {k:v for k,v in enumerate(labels)}\n", + "id2label" + ] + }, + { + "cell_type": "markdown", + "id": "aad7e9db-fed0-4e5c-8277-2c19b93a691b", + "metadata": {}, + "source": [ + "上图图像的标签为'AnnualCrop'" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "8b9b91e3-1341-4727-ada4-ea521b53e140", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'AnnualCrop'" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "id2label[0]" + ] + }, + { + "cell_type": "markdown", + "id": "b483c867-dd31-4f88-870a-ae1879ce7b80", + "metadata": {}, + "source": [ + "### 加载模型\n", + "从hub加载模型和处理器" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "34617c66-b73d-40d1-9521-bb5ffeb64324", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Building prefix dict from the default dictionary ...\n", + "Dumping model to file cache /tmp/jieba.cache\n", + "Loading model cost 0.613 seconds.\n", + "Prefix dict has been built successfully.\n", + "100%|██████████| 266/266 [00:00<00:00, 1.38MB/s]\n", + "1.04kB [00:00, 3.59MB/s] \n", + "100%|██████████| 106M/106M [03:11<00:00, 583kB/s] \n" + ] + } + ], + "source": [ + "from mindnlp.transformers.models import ConvNextForImageClassification,ConvNextImageProcessor\n", + "img_processor = ConvNextImageProcessor.from_pretrained(\"nielsr/convnext-tiny-finetuned-eurosat\")\n", + "model = ConvNextForImageClassification.from_pretrained(\"nielsr/convnext-tiny-finetuned-eurosat\")" + ] + }, + { + "cell_type": "markdown", + "id": "ff23a9b4-d50f-4146-abad-7b4f56a4fe9a", + "metadata": {}, + "source": [ + "我们取前边的例子进行测试" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "e9193803-b77c-47af-b923-eb98bbb48e9c", + "metadata": {}, + "outputs": [ + { + "data": { + "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABAAEADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwAAbByKo6lnyFBGPmrN+0Sr/wAtG/OnrM8nDsW+tHJY3lNNWIWzSCrJQY6UzbzgAZ+lUY+zY2nMcAD2qaFEHzSLlR1xxTZthbcowpAwM0irW1Ig1HalCrnFK+FUDFMEQ8Y6c1NAvBqI+1TwAbfxpvYa3H/yprLycdakwAKMc1JdiLZtBY8sRiiQAEKQegqVsbaaykuM9AKERJaEYABOKSUcCp0VGznOaiuAFIA9KYrGprVpDDb27pEqM7N07gYrKVwgwAPxFa2uvmO1Hs3H41ik1NP4dTWppLQlWXJ5AqVRvHBqstWIz8o+tU0QmSeVjnNMuSFYfL1qYNkEZ7VBcgF8ZpIb2IhMqH7pP402SZJCDyMVGwyetM2+9VYk3fEHyzQJu3YQ/wA6xjmtLV51urlXXhQmMVmseamC90qo7yYo4qdOF/GoAM96mU4UVTJROnI+tV7g/vTU0LYkXIqKZMufWp6ldCs3Wm1MYzntTShqiT//2Q==", + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test_image = example[\"image\"].convert(\"RGB\")\n", + "test_image" + ] + }, + { + "cell_type": "markdown", + "id": "cfccd8f1-448a-4024-8441-14b3e61e570c", + "metadata": {}, + "source": [ + "### 图像预处理\n", + "使用处理器对测试图像进行预处理,将其转换为张量,并提取预处理后的像素值" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "63690316-692e-46ce-a1c9-c097a6d8cf2e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1, 3, 224, 224)" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pixel_values = img_processor(test_image,return_tensors=\"ms\").pixel_values\n", + "pixel_values.shape" + ] + }, + { + "cell_type": "markdown", + "id": "17b830ff-2687-46ab-8519-c9b2fbeb21f7", + "metadata": {}, + "source": [ + "### 前向传播\n", + "将预处理后的像素值输入到模型中进行前向传播,提取模型输出的logits" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "16e514d2-ad87-4052-85b2-5327a198b268", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1, 10)" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "outputs = model(pixel_values)\n", + "logits = outputs.logits\n", + "logits.shape" + ] + }, + { + "cell_type": "markdown", + "id": "5cbf96ad-fc2b-4083-9ba1-938e32b2324e", + "metadata": {}, + "source": [ + "### 预测类别\n", + "根据logits得分,获取预测类别。" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "877d5752-5052-4ada-b6e4-eceaca3ce1b2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'AnnualCrop'" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "predicted_class_idx = logits.argmax(-1).item()\n", + "model.config.id2label[predicted_class_idx]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "python-3.9.0", + "language": "python", + "name": "python-3.9.0" + }, + "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.9.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}