DAMODEL丹摩|Faster-Rcnn训练与部署实战

本文仅做测评体验,非广告。

文章目录

  • 1. 丹摩介绍
  • 2. Faster-Rcnn介绍
  • 3. 准备
    • 3. 1 丹摩平台准备实例
  • 3. 2 Faster-Rcnn
  • 4. 部署开始
  • 5. 训练
  • 5. 资源释放
  • 6. 结语


1. 丹摩介绍

详细介绍请看:丹摩平台介绍。

丹摩智算平台(DAMODEL)是专为人工智能开发者打造的高性能计算服务平台,旨在提供丰富的算力资源和基础设施,助力AI应用的开发、训练和部署。

2. Faster-Rcnn介绍

0

Faster-Rcnn,作为两阶段目标检测模型的佼佼者,历经时间考验,依旧在检测领域占据一席之地。

Faster R-CNN的工作流程始于利用区域建议网络(RPN)自动生成候选区域,这些区域被假定为潜在的目标位置。随后,这些候选区域连同整张图像被送入深度卷积网络。在网络的前向传播过程中,它不仅提取特征,还同时完成区域的分类与边界框的精确调整。这种设计使得Faster R-CNN在保持高效率的同时,也确保了检测的准确性,因为它避免了对每个候选区域进行重复的特征提取和分类,显著提升了检测速度。

Faster R-CNN算法的三个核心步骤如下:

  1. 对于每张输入图像,通过RPN生成大约1000至2000个候选区域。

  2. 将图像送入卷积网络以获得特征图,并将候选区域映射到这些特征图上,提取相应的特征向量。

  3. 通过ROI池化层将每个特征向量调整为统一的7x7大小的特征图,然后通过一系列全连接层进行处理,最终输出目标的分类和定位结果。

3. 准备

3. 1 丹摩平台准备实例

丹摩平台链接

  1. 创建云实例
    1
    配置选择上,由于该模型的配置要求比较高,因此这里我选择比之前的费用略贵的NVIDIA-GeForce-RTX-4090

2

其他配置信息保持默认就可以,当然也可以根据经济条件或需求自行拉高。
镜像选择Pytorch2.4.0。
3
创建密钥对
4
注意下载下来的密钥文件要妥善保管,接下来需要用。

选择刚刚创建的密钥对:
4

配置一览:
5
点击立即创建,等待创建完成:
6
创建完成如下:
7

3. 2 Faster-Rcnn

下载链接

4. 部署开始

  1. 点击右侧JupyterLab进入云实例
  2. 进入终端2
  3. 上传文件
    3
    选择刚刚下载的Faster-Rcnn文件。
  4. 解压
    执行:
unzip mmdetection-3.3.0.zip

如果解压失败,就说明还没有上传完成,还要再等一会。
解压成功后会出现这样的文件夹:
4

  1. 安装环境

安装mmcv包

pip install mmcv==2.1.0 -f https://download.openmmlab.com/mmcv/dist/cu121/torch2.1/index.html -i https://mirrors.aliyun.com/pypi/simple/ --root-user-action=ignore

从源码安装mmdetection-3.3.0

cd mmdetection-3.3.0
pip install -r requirements/build.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ --root-user-action=ignore
pip install -v -e ./ -i https://pypi.tuna.tsinghua.edu.cn/simple/ --root-user-action=ignore 

安装必要包

pip install numpy==1.24.4 -i https://pypi.tuna.tsinghua.edu.cn/simple/ --root-user-action=ignore
pip install setuptools==69.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/ --root-user-action=ignore
pip install instaboostfast -i https://pypi.tuna.tsinghua.edu.cn/simple/ --root-user-action=ignore

安装全景分割依赖panopticapi

cd panopticapi
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/ --root-user-action=ignore
cd ..

安装 LVIS 数据集依赖

cd lvis-api
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/ --root-user-action=ignore
cd ..

安装 albumentations 依赖

pip install -r requirements/albu.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ --root-user-action=ignore
pip install mmengine -i https://pypi.tuna.tsinghua.edu.cn/simple/ --root-user-action=ignore

依次执行就可以。
安装过程均发生在云端,不会占用本地带宽和空间。

5. 训练

  1. 开始训练
python ./tools/train.py ./checkpoints/faster-rcnn_r50_fpn_1x_coco.py

输入该指令后,就会自动开始下载与训练的过程。

  1. 保存数据
python tools/test.py ./checkpoints/faster-rcnn_r50_fpn_1x_coco.py ./checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth --show-dir /root/workspace/mmdetection-3.3.0/result/

这样训练结果就会被保存在result文件夹。

  1. 导出数据
    执行
tar -czvf result.tar.gz result/

在左侧找到压缩文件,右键下载:
11
然后在windows中使用压缩软件打开就可以了。

5. 资源释放

如果没有继续使用该云实例的打算,回到丹摩平台,释放资源避免产生扣费
12

6. 结语

在本教程中,我们不仅训练了经典经典目标检测模型Faster-Rcnn,还体验了丹摩平台的便捷性和高效性。
丹摩平台以其用户友好的界面、灵活的资源配置和即开即用的便捷性,为用户提供了一个理想的AI开发和部署环境。

谢谢你的阅读,喜欢的话来个点赞收藏评论关注吧!
我会持续更新更多优质文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/925358.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NLP信息抽取大总结:三大任务(带Prompt模板)

信息抽取大总结 1.NLP的信息抽取的本质?2.信息抽取三大任务?3.开放域VS限定域4.信息抽取三大范式?范式一:基于自定义规则抽取(2018年前)范式二:基于Bert下游任务建模抽取(2018年后&a…

LLM*:路径规划的大型语言模型增强增量启发式搜索

路径规划是机器人技术和自主导航中的一个基本科学问题,需要从起点到目的地推导出有效的路线,同时避开障碍物。A* 及其变体等传统算法能够确保路径有效性,但随着状态空间的增长,计算和内存效率会严重降低。相反,大型语言…

C#基础题总结

16.一张单据上有一个5位数的号码为6**42,其中百位数和千位数已模糊不清,但知道该数能被 57 和 67 除尽。设计一个算法,找出该单据所有可能的号码。 17.编程序求2~10000以内的完全数。一个数的因子(除了这个数本身&…

Android数据存储——文件存储、SharedPreferences、SQLite、Litepal

数据存储全方案——详解持久化技术 Android系统中主要提供了3中方式用于简单地实现数据持久化功能,即文件存储、SharedPreference存储以及数据库存储。除了这三种方式外,还可以将数据保存在手机的SD卡中,不给使用文件、SharedPreference或者…

【动手学电机驱动】STM32-FOC(8)MCSDK Profiler 电机参数辨识

STM32-FOC(1)STM32 电机控制的软件开发环境 STM32-FOC(2)STM32 导入和创建项目 STM32-FOC(3)STM32 三路互补 PWM 输出 STM32-FOC(4)IHM03 电机控制套件介绍 STM32-FOC(5&…

ubuntu 安装proxychains

在Ubuntu上安装Proxychains,你可以按照以下步骤操作: 1、更新列表 sudo apt-update 2、安装Proxychains sudo apt-get install proxychains 3、安装完成后,你可以通过编辑/etc/proxychains.conf文件来配置代理规则 以下是一个简单的配置示例&…

ZooKeeper 基础知识总结

先赞后看,Java进阶一大半 ZooKeeper 官网这样介绍道:ZooKeeper 是一种集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。 各位hao,我是南哥,相信对你通关面试、拿下Offer有所帮助。 ⭐⭐⭐一份南哥编写…

visionpro官方示例分析(一) 模板匹配工具 缺陷检测工具

1.需求:找出图像中的这个图形。 2.步骤 使用CogPMAlignTool工具,该工具是模板匹配工具,见名知意,所谓模板匹配工具就是说先使用该工具对一张图像建立模板,然后用这个模板在其他图像上进行匹配,匹配上了就说…

代码随想录算法训练营第六十天|Day60 图论

Bellman_ford 队列优化算法(又名SPFA) https://www.programmercarl.com/kamacoder/0094.%E5%9F%8E%E5%B8%82%E9%97%B4%E8%B4%A7%E7%89%A9%E8%BF%90%E8%BE%93I-SPFA.html 本题我们来系统讲解 Bellman_ford 队列优化算法 ,也叫SPFA算法&#xf…

LAMP环境的部署

一、软件安装介绍 在Linux系统中安装软件有rpm安装、yum安装、源码安装等方法,在这里主要给大家介绍 yum 安装,这是一种最简单方便的一种安装方法。 YUM(Yellow dog Upadate Modifie)是改进版的 RPM 管理器,很好地解…

搭建文件服务器并使用Qt实现文件上传和下载(带账号和密码)

文章目录 0 背景1 搭建文件服务器2 代码实现文件上传和下载2.1 在pro文件中添加网络支持2.2 创建网络管理类2.3 文件上传2.4 文件下载 3 扩展(其他方法实现文件上传和下载)3.1 python3.2 npm3.3 ftp服务器 4 完整的代码 0 背景 因为需要使程序具备在远程…

matlab导出3D彩色模型(surface类转stl,并对白模上色)

在matlab中绘制3维图形时,需要将3维图形导出到PPT中展示。但是直接导出图片效果欠佳,无法全方位展示。 最近学习了如何将matlab中的图形导出为stl模型,然后再采用简单的方法对模型上色。 中间尝试过matlab导出stl、ply、3dm等多种格式&…

Java项目中加缓存

Java项目中加缓存 1.更新频率低;但读写频率高的数据很适合加缓存; 2.可以加缓存的地方很多:浏览器的缓存;CDN的缓存;服务器的缓存; 本地内存;分布式远端缓存; 加缓存的时候不要…

VTK的基本概念(一)

文章目录 三维场景的基本要素1.灯光2.相机3.颜色4.纹理映射 三维场景的基本要素 1.灯光 在三维渲染场景中,可以有多个灯光的存在,灯光和相机是三维渲染场景的必备要素,如果没有指定的话,vtkRenderer会自动创建默认的灯光和相机。…

【C知道】数据包捕获(wire shark)

请解释一下数据包捕获和分析工具(如Wireshark)的工作原理和用途。 数据包捕获和分析工具,例如Wireshark(以前称为 Ethereal),是一种网络协议分析软件,它允许用户实时监控计算机网络中的数据传输…

浮点数计算,不丢失精度

在js中对于浮点数直接计算会存在精度丢失的情况,为了保证精度问题,可以做如下处理: 浮点数精度计算 主要流程如下: 浮点数转换成整数 示例代码如下 /** 将一个浮点数转成整数,返回整数和倍数。如 3.14 >> 314…

计算机网络八股整理(三)

目录 计算机网络八股(三)传输层1:说一下tcp的头部?2:tcp三次握手的过程说一下?拓展linux中查看tcp状态: 3:tcp为什么需要三次握手建立连接?4:tcp三次握手,如果…

C#基础控制台程序

11.有一个54的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。 12.从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。 13.输入一个数,判断它是奇数还是偶数,如果…

小程序-基于java+SpringBoot+Vue的微信小程序养老院系统设计与实现

项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

LeetCode—74. 搜索二维矩阵(中等)

仅供个人学习使用 题目描述: 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true…