当前位置: 首页 > news >正文

wordpress中文书福州搜索引擎优化

wordpress中文书,福州搜索引擎优化,外包公司是干啥的,semiconductor是什么意思大家好#xff0c;我是微学AI#xff0c;今天给大家介绍一下计算机视觉的应用11-基于pytorch框架的卷积神经网络与注意力机制对街道房屋号码的识别应用#xff0c;本文我们借助PyTorch#xff0c;快速构建和训练卷积神经网络#xff08;CNN#xff09;等模型#xff0c;…大家好我是微学AI今天给大家介绍一下计算机视觉的应用11-基于pytorch框架的卷积神经网络与注意力机制对街道房屋号码的识别应用本文我们借助PyTorch快速构建和训练卷积神经网络CNN等模型以实现街道房屋号码的准确识别。引入并注意力机制它是一种模仿人类视觉注意机制的方法在图像处理任务中具有广泛应用。通过引入注意力机制模型可以自动关注图像中与房屋号码相关的区域提高识别的准确性和鲁棒性。 一、项目介绍 街道房屋号码识别是计算机视觉中的一个重要任务通过对街道房屋号码的自动识别可以对街道图像进行更好的理解和分析。本文将介绍如何使用PyTorch框架和注意力机制结合SVHN数据集来实现街道房屋号码的分类识别。 二、SVHN数据集 SVHNStreet View House Numbers是一个公开的大规模街道数字图像数据集。该数据集包含了从Google Street View中获取的房屋门牌号码图像可以用于训练和测试机器学习模型以实现自动识别街道房屋号码的任务。 2.1 数据集下载和加载 首先我们需要下载并加载SVHN数据集。在PyTorch中我们可以使用torchvision库中的datasets模块来实现这一步。 数据集的下载与查看 train_dataset datasets.SVHN(root./data, splittrain, downloadTrue)images train_dataset.data[:10] # shape: (10, 3, 32, 32) labels train_dataset.labels[:10]images np.transpose(images, (0, 2, 3, 1))# Plot the images fig, axs plt.subplots(2, 5, figsize(12, 6)) axs axs.ravel()for i in range(10):axs[i].imshow(images[i])axs[i].set_title(fLabel: {labels[i]})axs[i].axis(off)plt.tight_layout() plt.show()数据集的加载预处理便于输入模型训练 import torch from torchvision import datasets, transforms# 数据预处理 transform transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,), (0.5,))])# 下载并加载SVHN数据集 trainset datasets.SVHN(root./data, splittrain, downloadTrue, transformtransform) testset datasets.SVHN(root./data, splittest, downloadTrue, transformtransform)trainloader torch.utils.data.DataLoader(trainset, batch_size64, shuffleTrue) testloader torch.utils.data.DataLoader(testset, batch_size64, shuffleTrue)三、卷积网络搭建 使用PyTorch搭建卷积神经网络。卷积神经网络Convolutional Neural Network, CNN是一种主要用于处理具有类似网格结构的数据的神经网络如图像2D网格的像素点或者文本1D网格的单词。 3.1 网络结构定义 下面是一个基础的卷积神经网络模型包含两个卷积层、两个最大池化层和两个全连接层。 from torch import nnclass ConvNet(nn.Module):def __init__(self):super(ConvNet, self).__init__()self.layer1 nn.Sequential(nn.Conv2d(3, 32, kernel_size5, stride1, padding2),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2))self.layer2 nn.Sequential(nn.Conv2d(32, 64, kernel_size5, stride1, padding2),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2))self.drop_out nn.Dropout()self.fc1 nn.Linear(7 * 7 * 64, 1000)self.fc2 nn.Linear(1000, 10)def forward(self, x):out self.layer1(x)out self.layer2(out)out out.reshape(out.size(0), -1)out self.drop_out(out)out self.fc1(out)return self.fc2(out)四、加入注意力机制 注意力机制是一种能够改进模型性能的技术。在我们的模型中我们将添加一个注意力层来帮助模型更好地专注于输入图像中的重要部分。 4.1 注意力层定义 我将实现基本的注意力层这个层将会生成一个和输入同样大小的注意力图然后将输入和这个注意力图对应元素相乘以此来实现对输入的加权。 注意力机制层的数学原理 注意力机制的数学原理可以用以下公式表示 给定输入张量 x ∈ R b × c × h × w x \in \mathbb{R}^{b \times c \times h \times w} x∈Rb×c×h×w其中 b b b 是批量大小 c c c 是通道数 h h h 是高度 w w w 是宽度。注意力机制分为两个阶段特征提取和特征加权。 1.特征提取阶段 首先通过自适应平均池化层AdaptiveAvgPool2d将输入张量 x x x 在高度和宽度上进行平均池化得到形状为 b × c × 1 × 1 b \times c \times 1 \times 1 b×c×1×1 的张量 y y y。这里使用自适应平均池化是为了使得张量 y y y 在不同尺寸的输入上也能产生相同的输出。 2.特征加权阶段 接下来通过全连接层Linear和非线性激活函数ReLU对张量 y y y 进行特征变换减少通道数并保留重要特征。然后再通过另一个全连接层和Sigmoid激活函数得到权重张量 y ′ ∈ R b × c × 1 × 1 y \in \mathbb{R}^{b \times c \times 1 \times 1} y′∈Rb×c×1×1表示每个通道的权重值。这里的权重值在0到1之间用于控制每个通道在后续的计算中所占的比重。将权重张量 y ′ y y′ 扩展成与输入张量 x x x 相同的形状并将其与输入张量相乘得到经过注意力加权的特征张量。这样就实现了对输入张量的自适应特征加权。 数学表示为 y AdaptiveAvgPool2d ( x ) y ′ Sigmoid ( Linear ( ReLU ( Linear ( y ) ) ) ) output x ⊙ y ′ y \text{AdaptiveAvgPool2d}(x) \\ y \text{Sigmoid}(\text{Linear}(\text{ReLU}(\text{Linear}(y)))) \\ \text{output} x \odot y yAdaptiveAvgPool2d(x)y′Sigmoid(Linear(ReLU(Linear(y))))outputx⊙y′ 其中 ⊙ \odot ⊙ 表示按元素相乘操作。 注意力机制层的搭建代码 class AttentionLayer(nn.Module):def __init__(self, channel, reduction16):super(AttentionLayer, self).__init__()self.avg_pool nn.AdaptiveAvgPool2d(1)self.fc nn.Sequential(nn.Linear(channel, channel// reduction, biasFalse),nn.ReLU(inplaceTrue),nn.Linear(channel // reduction, channel, biasFalse),nn.Sigmoid())def forward(self, x):b, c, _, _ x.size()y self.avg_pool(x).view(b, c)y self.fc(y).view(b, c, 1, 1)return x * y.expand_as(x)4.2 在网络中加入注意力层 我们将注意力层加入到ConvNet模型中 class ConvNet(nn.Module):def __init__(self):super(ConvNet, self).__init__()self.layer1 nn.Sequential(nn.Conv2d(3, 32, kernel_size5, stride1, padding2),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),AttentionLayer(32))self.layer2 nn.Sequential(nn.Conv2d(32, 64, kernel_size5, stride1, padding2),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),AttentionLayer(64))self.drop_out nn.Dropout()self.fc1 nn.Linear(8 * 8 * 64, 1000)self.fc2 nn.Linear(1000, 10)def forward(self, x):out self.layer1(x)out self.layer2(out)out out.reshape(out.size(0), -1)out self.drop_out(out)out self.fc1(out)return self.fc2(out)五、模型训练与测试 接下来我们将进行模型的训练和测试。 5.1 模型训练 import torch.optim as optimmodel ConvNet() criterion nn.CrossEntropyLoss() optimizer optim.SGD(model.parameters(), lr0.001, momentum0.9)for epoch in range(10): # loop over the dataset multiple timesrunning_loss 0.0for i, data in enumerate(trainloader, 0):# get the inputs; data is a list of [inputs, labels]inputs, labels data# zero the parameter gradientsoptimizer.zero_grad()# forward backward optimizeoutputs model(inputs)loss criterion(outputs, labels)loss.backward()optimizer.step()# print statisticsrunning_loss loss.item()if i % 20 0: # print every 2000 mini-batchesprint([%d, %5d] loss: %.3f %(epoch 1, i 1, running_loss / 2000))running_loss 0.0print(Finished Training)5.2 模型测试 correct 0 total 0 with torch.no_grad():for data in testloader:images, labels dataoutputs model(images)_, predicted torch.max(outputs.data, 1)total labels.size(0)correct (predicted labels).sum().item()print(Accuracy of the network on the 10000 test images: %d %% % (100 * correct / total))六、结论 这篇文章就像是一张奇妙的地图引领你进入计算机视觉任务的神奇世界。在这个世界里你将与PyTorch和注意力机制这两位强大的伙伴结伴前行共同探索街道房屋号码识别的奥秘。 想象一下你置身于繁忙的街道上满目琳琅的房屋号码挑战着你的视力。而你却拥有了一种神奇的眼力能轻松识别出每一个号码。这种超凡能力正是计算机视觉任务的魔法所在。 我们要携手PyTorch这位强大的工具它如同一把巧妙的魔法棒能帮助我们构建强大的神经网络模型。通过PyTorch我们可以灵活地定义模型的结构设置各种参数并进行高效的训练和推理。 我们遇到了注意力机制就像是一盏明亮的灯塔照亮了我们前进的方向。注意力机制能够使神经网络集中注意力于图像中的重要区域从而提高识别的准确性。利用这种机制我们可以让模型更加聪明地注重街道房屋号码所在的位置和细节从而更好地进行识别。而SVHN数据集则是我们探险的指南其中包含了大量真实世界中的街道房屋号码图像。通过导入这些数据我们可以让模型从中学习并提高自己的识别能力。这些图像将带领我们穿越城市的角落感受不同场景下的挑战和变化。通过这篇文章我们不仅可以更深入地理解计算机视觉任务的本质还能获得启发。就像是一次奇妙的冒险我们将学会如何使用PyTorch和注意力机制来实现街道房屋号码的识别任务。让我们一起跟随这个引人入胜的旅程开拓视野追寻新的可能性吧
http://www.zqtcl.cn/news/34613/

相关文章:

  • 工艺品网站怎么做网站网页能自己做吗
  • 网站建设分类网站建设优化服务特色
  • 怎样建设一个自己的网站首页微信wordpress插件
  • 企业网站推广阶段wordpress关闭手机访问不了
  • 数码网站模板模板大全免费
  • 大亨网站开发网站设计制作一般多少钱
  • 网站备案完电信怎么制作自己公司网站
  • 泰安建设信息网站h5制作模板官网
  • 做网站需要懂什么软件wordpress 礼物说模板
  • 网站建站系统中国万维网官网域名注册网站
  • 网站绝对地址制作网站需要哪些工作
  • 淘宝客自建网站黔西南州网站建设
  • 云网站 深圳滨州网站seo
  • 网站评估内容 优帮云wordpress 缩略图代码
  • 电子商务网站的建设课件自用网站开发费用会计分录
  • 织梦做的网站如何放在网上物联网应用技术就业前景
  • 哪个网站可以免费做H5北京感染峰值已过
  • 企业网站建设的困难和问题合肥工程建设云平台
  • 企业官网属于什么网站网站怎么进行优化排名
  • 温州做网站优化网站title keywords
  • 有专门做网站的公司孟村住房建设局网站
  • 做平面有什么好的网站怎么免费建立网店网站
  • 大型网站制作导图wordpress图片模板
  • 昆山app网站制作催眠物语wordpress
  • 网站开发的账务处理怎样搭建一个企业网站
  • 网站制作建设是做什么安全的小网站
  • 天津市中小企业局网站海口中小企业网站制作
  • 网站开发常用字体如何做网络营销推广服务机构
  • 济南做网站的机构有哪些有什么平台可以推广信息
  • 深圳住房和建设局网站在哪个网东莞企业网站建设多少钱