MindSpore社区活动:Transformer也能图像分类
一 Vision Transformer模型结构
Vision Transformer(ViT)是一种基于自注意力机制的图像分类模型,其结构主要由以下几个部分组成:
1. 输入嵌入层(Input Embedding Layer):将输入的图像划分成若干个小块(patch),并将每个小块转换为一个向量表示。
2. 位置编码层(Positional Encoding Layer):为每个输入嵌入向量添加位置编码,以便模型能够捕捉输入中的空间信息。
3. 多头自注意力层(Multi-Head Self-Attention Layer):通过多个自注意力头,对输入嵌入向量进行自注意力计算,以捕捉输入之间的关系。
4. 前馈网络层(Feedforward Network Layer):对自注意力层的输出进行全连接层的计算,以提取更高级别的特征。
5. 层归一化层(Layer Normalization Layer):对前馈网络层的输出进行层归一化,以加速模型的训练。
6. 输出层(Output Layer):将前馈网络层的输出映射到类别概率分布上,以进行图像分类。

二 Vision Transformer模型特点
Vision Transformer(ViT)是一种基于自注意力机制的图像分类模型,它的特点包括: 1. 自注意力机制:ViT使用自注意力机制来捕捉图像中不同位置之间的关系,这使得模型能够更好地理解图像中的上下文信息。 2. 分块策略:为了使ViT能够处理大尺寸的图像,它使用了分块策略,将图像分成多个小块,每个小块都被视为一个序列,然后通过Transformer模型进行处理。 3. 预训练:ViT使用大规模的图像数据进行预训练,这使得模型能够学习到更丰富的特征表示,从而提高了其在图像分类任务上的性能。 4. 可解释性:由于ViT使用自注意力机制,因此它能够生成每个像素点的注意力权重,这使得模型的预测结果更具可解释性。 5. 高性能:ViT在多个图像分类任务上取得了与甚至超过传统卷积神经网络相当的性能,同时还具有更好的可扩展性和泛化能力。
三 环境准备与数据准备
3.1 环境准备
参考官网,选择合适的包即可,一键安装,简单易上手。

3.2 数据准备
from download import download
dataset_url = "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/vit_imagenet_dataset.zip"
path = "./"
path = download(dataset_url, path, kind="zip", replace=True)
复制

四 模型训练与推理
4.1 模型训练
模型训练之前,需要定义网络结构,网络的输入,损失函数,优化器等等。模型训练过程中的时间,我们可以根据需要调整epoch_size的值,从而达到增减训练的时间。
# define super parameter
epoch_size = 10
momentum = 0.9
num_classes = 1000
resize = 224
step_size = dataset_train.get_dataset_size()
# construct model
network = ViT()复制
训练的结果如下,我们可以按到打印的loss值

4.2 模型推理
简单看下模型推理过程需要的标杆之类的,具体设置如下
dataset_infer = ImageFolderDataset(os.path.join(data_path, "infer"), shuffle=True)
trans_infer = [
transforms.Decode(),
transforms.Resize([224, 224]),
transforms.Normalize(mean=mean, std=std),
transforms.HWC2CHW()
]
dataset_infer = dataset_infer.map(operations=trans_infer,
input_columns=["image"],
num_parallel_workers=1)
dataset_infer = dataset_infer.batch(1)复制
推理过程完成后,在推理文件夹下可以找到图片的推理结果,可以看出预测结果是Doberman,与期望结果相同,验证了模型的准确性


昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐


所有评论(0)