Mobilenet是为支持智能手机出现而创建的开源模型。它使用CNN体系结构执行计算机视觉任务,例如图像分类和对象检测。使用此体系结构的模型通常需要大量的计算成本和硬件资源,但是Mobilenet是可以使用移动设备和嵌入的。 多年来,该模型已用于各种现实世界应用。它还具有一些功能,例如使用深度分离卷积减少参数。因此,借助移动设备的硬件资源有限,该技术可以帮助使模型运行。
我们将讨论该模型如何使用预训练的预测类对图像进行深度分类器图像有效地对图像进行分类。
学习目标
了解Mobilenet及其工作原理。
> > data Science Blogathon的一部分。 内容表的>> MobileNet
>
>因此,这里的区别在于,只要仅应用一个过滤器,乘法任务就减少了,这意味着输出的通道数与输入相同。这导致了弯曲的卷积。
tbe Pointwise卷积使用1×1滤波器结合或扩展功能。这有助于模型学习在频道功能上分配不同模式以创建新功能映射。这使得旋转卷积能够增加或减少输出特征图中的通道数。 Mobilenet Architecure
>此计算机视觉模型建立在CNN体系结构上,以执行图像分类和对象检测任务。深度可分离卷积的使用是将该模型调整到移动设备和嵌入式设备中,因为它允许建立轻质的深神经网络。
>这种机制带来了参数计数和延迟的减少,以满足资源约束。该体系结构可实现模型输出的效率和准确性。使用此模型进行图像分类需要几个步骤。该模型使用其内置预测类接收并分类输入图像。让我们深入了解如何运行Mobilenet的步骤:
导入图像分类的必要库
>您需要导入一些基本模块以运行此模型。这首先要从变压器库导入图像处理器和图像分类模块。它们分别有助于预处理图像和加载预训练的模型。另外,PIL用于操纵图像,而“请求”允许您从网络中获取图像。
from transformers import AutoImageProcessor, AutoModelForImageClassification from PIL import Image import requests
image = Image.open('/content/imagef-ishfromunsplash-ezgif.com-webp-to-jpg-converter.jpg')
>从PIL库中使用函数“ Image.open”来从文件路径加载图像,在这种情况下,该图像是从我们本地设备上传的。另一个替代方法是使用其URL获取图像。
下面的代码从MobileNetV2预训练的模型中初始化了“自动ImimageProcessor”过程。该部分在将图像馈送到模型之前处理图像预处理。另外,如第二行所示,代码为图像分类加载相应的MobilenEtv2模型。
preprocessor = AutoImageProcessor.from_pretrained("google/mobilenet_v2_1.0_224") model = AutoModelForImageClassification.from_pretrained("google/mobilenet_v2_1.0_224")
此步骤是将预处理图像转换为适合Pytorch的格式的地方。然后,它通过模型传递以生成输出逻辑,将使用SoftMax将其转换为概率。
inputs = preprocessor(images=image, return_tensors="pt") outputs = model(**inputs) logits = outputs.logits
# model predicts one of the 1000 ImageNet classes predicted_class_idx = logits.argmax(-1).item() print("Predicted class:", model.config.id2label[predicted_class_idx])
>此代码从模型的输出(logits)中找到具有最高预测分数的类,并从模型的配置中检索其相应的标签。然后打印预测的类标签。
>这是输出:
这是指向Colab文件的链接。
>
>关于该模型的工作方式,从体系结构到应用程序有一些讨论点。以下是本文的一些亮点:
常见问题
> Q1。是什么使MobilenetV2与其他CNN模型不同? MobileNetV2使用可分开的卷积和倒残差,与传统CNN相比,它对移动和嵌入式系统的效率更高。
以上是如何使用MobilenEtV2模型进行图像分类?的详细内容。更多信息请关注PHP中文网其他相关文章!