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

百度统计网站速度诊断工具南宁百度seo排名

百度统计网站速度诊断工具,南宁百度seo排名,网站建设公司哈,php js做网站🍑个人主页:Jupiter. 🚀 所属专栏:传知代码 欢迎大家点赞收藏评论😊 目录 概述算法原理核心逻辑效果演示使用方式参考文献 参考文献:需要本文的详细复现过程的项目源码、数据和预训练好的模型可从该地址处获…
🍑个人主页:Jupiter.
🚀 所属专栏:传知代码
欢迎大家点赞收藏评论😊

在这里插入图片描述

在这里插入图片描述

目录

  • 概述
  • 算法原理
  • 核心逻辑
  • 效果演示
  • 使用方式
  • 参考文献


参考文献:需要本文的详细复现过程的项目源码、数据和预训练好的模型可从该地址处获取完整版:地址

概述

本文基于论文 Multi-Label Classification using Deep Convolutional Neural Network[1] 实现图像自动标注程序。

计算机技术的进步和互联网产业的不断发展导致了网络图像数量的爆炸式增长,如何管理种类繁多的海量图像成为了一个重要问题。自动图像标注(Automatic Image Tagging)作为一项重要的图像管理技术,可以利用计算机自动为每张图像打上与其内容有关的标签,从而帮助用户更好地搜索和访问图像。
在这里插入图片描述

图1:图像自动标注任务
近年来,随着深度学习技术的发展,深度神经网络能够捕捉到更多且更加复杂的图像特征,这使得图像标注算法的性能也随之受益。图像标注与图像多标签分类有着天然的紧密连系,后者会根据内容将一张图像归纳到多个类别中。综上,本文基于目前先进的深度神经网络 VGG-Net[2] 和大规模图像多标签分类数据集 MS-COCO-2017[3] 训练自动图像标注模型。

算法原理

VGG-Net 是一种经典的卷积神经网络 (Convolutional Neural Network) 架构,其核心思想是通过更深的网络结构以及使用较小的卷积核来提取更丰富的图像特征。VGG-Net 通过堆叠多个卷积层来加深网络,且卷积层全部采用大小为 3×3 的小卷积核,步长为 1,填充为 1。这种设计通过堆叠多个小卷积核来增加网络的非线性表达能力,且相比使用较大的卷积核,能减少参数数量。在若干卷积层后,VGG-Net 使用 2×2 的最大池化层,步长为 2。池化层用于减少特征图的尺寸,并保留主要的特征。在最后的卷积层之后,VGG-Net 通过三个全连接层对特征进行进一步处理,最后输出分类结果。在每个卷积层和全连接层之后,VGG-Net 使用 ReLU (Rectified Linear Unit) 激活函数,以增加网络的非线性。

在这里插入图片描述
本文使用一个线性层和 Sigmoid 函数构建模型的分类器,并利用二元交叉熵损失(Binary Cross-Entropy, BCE)进行训练。
Sigmoid(x)=11+e−x

在这里插入图片描述

在这里插入图片描述

核心逻辑

程序的核心代码如下所示:

 # transformtransform = v2.Compose([v2.Resize(256),v2.CenterCrop(224),v2.RandomHorizontalFlip(),v2.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2),v2.ToImage(),v2.ToDtype(torch.float32, scale=True),v2.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),])# devicedevice = torch.device('cuda' if torch.cuda.is_available() else 'cpu')# datasettrain_dataset = COCO_Dataset(configs['train_annotations_path'], configs['train_images_dir'], transform)train_dataloader = DataLoader(train_dataset, batch_size = configs['batch_size'], shuffle = True, num_workers=8, pin_memory=True)test_dataset = COCO_Dataset(configs['test_annotations_path'], configs['test_images_dir'], transform)test_dataloader = DataLoader(test_dataset, batch_size = configs['batch_size'], shuffle = False, num_workers=8, pin_memory=True)# modelmodel = ImageTaggingModel().to(device)optimizer = optim.Adam(model.parameters(), lr=configs['learning_rate'], weight_decay=configs['weight_decay'])lr_scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=configs['lr_decay_step'], gamma=configs['lr_decay_rate'])# logloss_epoch = []precise_epoch = []recall_epoch = []f1_epoch = []# train & testfor epoch_id in range(configs['epochs']):current_loss = 0# trainmodel.train()for batch in tqdm(train_dataloader, desc='Training(Epoch %d)' % epoch_id, ascii=' 123456789#'):optimizer.zero_grad()images = batch['images'].to(device)labels = batch['labels'].to(device)logits = model(images)loss = F.binary_cross_entropy_with_logits(logits, labels)current_loss += loss.item()loss.backward()optimizer.step()lr_scheduler.step()current_loss /= len(train_dataloader)print('Current Average Loss:', current_loss)loss_epoch.append(current_loss)plt.plot(loss_epoch)plt.xlabel('Epoch')plt.ylabel('Loss')plt.title('Loss-Epoch')plt.savefig(os.path.join(configs['logs_dir'], "Loss.png"), dpi=300)plt.clf()# testmodel.eval()TT_num = 0FT_num = 0FF_num = 0with torch.no_grad():for batch in tqdm(test_dataloader, desc='Testing(Epoch %d)' % epoch_id, ascii=' 123456789#'):images = batch['images'].to(device)labels = batch['labels'].to(device)logits = model(images)probs = F.sigmoid(logits)predictions = (probs > configs['threshold']).to(labels.dtype)TT_num += torch.sum(predictions * labels).item()FT_num += torch.sum(predictions * (1 - labels)).item()FF_num += torch.sum((1 - predictions) * labels).item()precise = TT_num / (TT_num + FT_num)recall = TT_num / (TT_num + FF_num)f1_score = 2 * precise * recall / (precise + recall)precise_epoch.append(precise)recall_epoch.append(recall)f1_epoch.append(f1_score)print("Precise = %.2f, Recall = %.2f, F1-score = %.2f" % (precise, recall, f1_score))plt.plot(precise_epoch, label='Precise')plt.plot(recall_epoch, label='Recall')plt.plot(f1_epoch, label='F1-score')plt.xlabel('Epoch')plt.ylabel('Value')plt.title('Result')plt.legend()plt.savefig(os.path.join(configs['logs_dir'], "Result.png"), dpi=300)plt.clf()# save modeltorch.save(model.state_dict(), configs['checkpoint'])

以上代码仅作展示,更详细的代码文件请参见附件。

效果演示

配置环境并运行 main.py脚本,效果如图4所示。

在这里插入图片描述
此外,网站还提供了在线体验功能。用户只需要输入一张大小不超过 1MB 的 JPG 图像,网站就会自动为图像打上标记并展示词云,如图5所示。

在这里插入图片描述

使用方式

解压附件压缩包并进入工作目录。如果是Linux系统,请使用如下命令:

unzip ImageCaptioning.zip
cd ImageCaptioning

代码的运行环境可通过如下命令进行配置:

pip install -r requirements.txt

如果在本地测试自动图像标注程序,请运行如下命令:

python main.py

如果希望在线部署,请运行如下命令:

python main-flask.py

参考文献

  • [1] Lydia A A, Francis F S. Multi-label classification using deep convolutional neural network[C]//2020 international conference on innovative trends in information technology (ICITIIT). IEEE, 2020: 1-6.

  • [2] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.

  • [3] Lin T Y, Maire M, Belongie S, et al. Microsoft coco: Common objects in context[C]//Computer Vision–ECCV 2014: 13th European Conference, Zurich, Switzerland, September 6-12, 2014, Proceedings, Part V 13. Springer International Publishing, 2014: 740-755.

参考文献:需要本文的详细复现过程的项目源码、数据和预训练好的模型可从该地址处获取完整版:地址


http://www.zhongyajixie.com/news/24369.html

相关文章:

  • 网站制作的页面比例宁波seo外包优化
  • 可以自己做logo的网站收录查询api
  • 物流网站设计游戏推广赚佣金平台
  • 做网站和淘宝美工 最低电脑怎么推广一个app
  • 在线视频网站a一级爰a做免费友情贴吧
  • 专业网站seo优化公司成都关键词优化平台
  • 防止入侵网站网络公司起名
  • 怎么做高保真网站国外免费网站服务器
  • 网站截图环境 php查询网138网站域名
  • 深圳媒体网络推广有哪些seo哪里有培训
  • 网站建设的售后ui设计公司
  • 我有域名怎么建网站郑州seo排名工具
  • 做网站风水网址域名注册
  • wordpress4.9插件优化网站视频
  • 淘客网站是怎么做的福州百度代理
  • 热门课程自己做网站汽车品牌推广策划方案
  • 淄博网站推广公司招代理最好的推广方式
  • 应持续抓好二级网站的建设工作百度搜索指数在线查询
  • jsp网站开发详解书籍黑龙江暴雪预警
  • 简阳建设网站公司营销策划运营培训机构
  • 重庆产品网站推广seo推广软件排行榜
  • 沈阳市建网站石家庄seo优化
  • 南京一等一网站建设免费引流推广工具
  • 万网注册域名做简单网站个人如何在百度做广告
  • wordpress进销存插件seo实战密码第三版pdf下载
  • 做淘客网站怎么样高质量外链购买
  • 今日要闻10条seo技术优化整站
  • 有没有网站做悬赏的app排名优化
  • 南昌网站推广公司新浪微舆情大数据平台
  • 锦州哪里做网站种子在线资源搜索神器