利用拥抱脸进行图像分类:综合指南
AI和机器学习的基石图像分类是从面部识别到医学成像的各种领域的应用。 拥抱面孔是该任务的强大平台,特别是对于那些熟悉自然语言处理(NLP)和越来越多的计算机视觉的人。本指南的详细信息使用拥抱脸进行图像分类,迎合初学者和经验丰富的从业者。了解图像分类和拥抱脸的优势
>图像分类涉及使用算法将图像分类为预定义的类,这些算法分析视觉内容并根据学习模式进行预测类别。 卷积神经网络(CNN)是由于其模式识别能力而成为标准方法。 要深入研究CNN,请参阅我们的文章“卷积神经网络介绍(CNN)”。 我们的“机器学习中的分类:简介”文章提供了对分类算法的更广泛的理解。
拥抱脸提供了几个优点:
>
>
>跨云平台的模型部署选项
数据准备和预处理 >本指南使用拥抱的面部“豆”数据集进行演示。 加载后,我们将在预处理前可视化数据。 随附的Google Colab笔记本提供了代码。 该代码的灵感来自拥抱Face的官方文档。
>库要求:
使用PIP安装必要的库: 安装后
>重新启动内核。 导入所需库:
pip -q install datasets pip -q install transformers=='4.29.0' pip -q install tensorflow=='2.15' pip -q install evaluate pip -q install --upgrade accelerate
数据加载和组织:
import torch import torchvision import numpy as np import evaluate from datasets import load_dataset from huggingface_hub import notebook_login from torchvision import datasets, transforms from torch.utils.data import DataLoader from transformers import DefaultDataCollator from transformers import AutoImageProcessor from torchvision.transforms import RandomResizedCrop, Compose, Normalize, ToTensor from transformers import AutoModelForImageClassification, TrainingArguments, Trainer import matplotlib.pyplot as plt
pip -q install datasets pip -q install transformers=='4.29.0' pip -q install tensorflow=='2.15' pip -q install evaluate pip -q install --upgrade accelerate
数据集包含1034张图像,每个图像都带有'image_file_path','image'(pil对象)和'labels'(0:angular_leaf_spot,1:bean_rust,2:健康)。
辅助函数可视化随机图像:
import torch import torchvision import numpy as np import evaluate from datasets import load_dataset from huggingface_hub import notebook_login from torchvision import datasets, transforms from torch.utils.data import DataLoader from transformers import DefaultDataCollator from transformers import AutoImageProcessor from torchvision.transforms import RandomResizedCrop, Compose, Normalize, ToTensor from transformers import AutoModelForImageClassification, TrainingArguments, Trainer import matplotlib.pyplot as plt
beans_train = load_dataset("beans", split="train")
>来自豆类数据集的示例图像>
数据预处理:
>拆分数据集(80%火车,20%验证):创建标签映射:
labels_names = {0: "angular_leaf_spot", 1: "bean_rust", 2: "healthy"} def display_random_images(dataset, num_images=4): # ... (function code as in original input) ...
型号加载和微调
display_random_images(beans_train, num_images=6)
加载预先训练的VIT模型:
>代码加载预训练的模型,定义转换(调整,归一化),并准备培训数据集。 精度度量定义用于评估。
beans_train = beans_train.train_test_split(test_size=0.2)
登录到拥抱的脸:
(遵循屏幕上的指示)
labels = beans_train["train"].features["labels"].names label2id, id2label = dict(), dict() for i, label in enumerate(labels): label2id[label] = str(i) id2label[str(i)] = label
配置和启动培训:
(原始输入中所示的训练结果)
checkpoint = "google/vit-base-patch16-224-in21k" image_processor = AutoImageProcessor.from_pretrained(checkpoint) # ... (rest of the preprocessing code as in original input) ...
模型部署和集成
>将受过训练的模型推向拥抱的脸部集线器:
然后可以通过以下方式访问并使用该模型
notebook_login()
拥抱面部门户:
直接上传预测图像。training_args = TrainingArguments( # ... (training arguments as in original input) ... ) trainer = Trainer( # ... (trainer configuration as in original input) ... ) trainer.train()
“使用变压器和拥抱脸的简介”
“使用Python的图像处理”技能轨道
以上是拥抱面部图像分类:综合指南的详细内容。更多信息请关注PHP中文网其他相关文章!