0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arm方案 基于Arm架构的边缘侧设备(树莓派或 NVIDIA Jetson Nano)上部署PyTorch模型

Arm社区 来源:Arm 2025-07-28 11:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

人工智能 (AI) 在边缘计算领域的应用正迅速普及。因此,在基于 Arm 架构的边缘侧设备上部署机器学习模型变得日益重要。基于 Arm 架构的处理器凭借低功耗和高能效等优势,在嵌入式系统中得到了广泛应用。

本文将为你展示如何在树莓派或 NVIDIA Jetson Nano 等基于 Arm 架构的边缘侧设备上部署 PyTorch 模型。

前提条件

在开始之前,请确保准备好以下内容:

硬件:一台基于 Arm 架构的设备,例如树莓派、NVIDIA Jetson Nano 或其他类似的边缘侧设备。

软件

设备上必须安装 Python 3.7 或更高版本。

一个与 Arm 架构兼容的 PyTorch 版本。

一个经过训练的 PyTorch 模型。

依赖项:必须安装诸如 torch 和 torchvision 等库以及其他所需的 Python 包。

第 1 步

准备 PyTorch 模型

训练或加载模型

在开发机器上训练模型,或从 PyTorch 模型库加载预训练模型:

import torch

import torchvision.models as models

# Load a pre-trained model

model = models.resnet18(pretrained=True)

model.eval()

优化模型

将模型转换为 TorchScript 格式,以获得更好的兼容性和性能:

scripted_model = torch.jit.script(model)

torch.jit.save(scripted_model, "resnet18_scripted.pt")

第 2 步

设置基于 Arm 架构的边缘侧设备

安装依赖项

确保 Arm 设备上已安装 Python。

安装 PyTorch

使用专门为 Arm 设备构建的版本。例如,树莓派用户可以运行以下命令:

pip install torch torchvision

验证安装

import torch

print(torch.__version__)

print(torch.cuda.is_available()) # Check if CUDA is supported (for devices like Jetson Nano)

第 3 步

将模型部署到设备上

传输脚本模型

使用 scp 或 USB 驱动器,将模型文件 (resnet18_scripted.pt) 复制到 Arm 设备:

scpresnet18_scripted.pt user@device_ip:/path/to/destination

运行推理

编写 Python 脚本以加载模型并运行推理:

import torch

from PIL import Image

from torchvision import transforms

# Load the model

model = torch.jit.load("resnet18_scripted.pt")

model.eval()

# Preprocess an input image

preprocess = transforms.Compose([

transforms.Resize(256),

transforms.CenterCrop(224),

transforms.ToTensor(),

transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),

])

img = Image.open("test_image.jpg")

img_tensor = preprocess(img).unsqueeze(0) # Add batch dimension

# Perform inference

with torch.no_grad():

output = model(img_tensor)

print("Predicted class:", output.argmax(1).item())

第 4 步

针对边缘侧性能进行优化

量化

使用 PyTorch 的量化技术来减小模型大小并提高推理速度:

from torch.quantization import quantize_dynamic

quantized_model = quantize_dynamic(

model, {torch.nn.Linear}, dtype=torch.qint8

)

torch.jit.save(quantized_model, "resnet18_quantized.pt")

利用硬件加速

对于配备 GPU 的设备(如 NVIDIA Jetson Nano),确保使用 CUDA 进行加速计算。

安装支持 GPU 的相应 PyTorch 版本。

性能基准测试

测量延迟和吞吐量,以验证模型在边缘侧设备上的性能:

import time

start_time = time.time()

with torch.no_grad():

for _ in range(100):

output = model(img_tensor)

end_time = time.time()

print("Average Inference Time:", (end_time - start_time) / 100)

第 5 步

大规模部署

容器化应用

使用 Docker 创建可移植的部署环境。

示例 Dockerfile:

FROM python:3.8-slim

RUN pip install torch torchvision pillow

COPY resnet18_scripted.pt /app/

COPY app.py /app/

WORKDIR /app

CMD ["python", "app.py"]

监控与更新

实施日志记录和监控,确保应用顺利运行。

使用 Prometheus 或 Grafana 等工具获取实时洞察。

结论

要在基于 Arm 架构的边缘侧设备上部署 PyTorch 模型,需要对模型进行优化、准备好相应软件并使用合适的硬件。上述步骤可帮助开发者在边缘侧部署 AI 应用,从而在靠近数据生成的位置实现快速、高效的推理。快来动手试试吧!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    135

    文章

    9499

    浏览量

    388548
  • ARM架构
    +关注

    关注

    15

    文章

    185

    浏览量

    38985
  • 边缘计算
    +关注

    关注

    22

    文章

    3472

    浏览量

    52661
  • pytorch
    +关注

    关注

    2

    文章

    813

    浏览量

    14679
  • 边缘AI
    +关注

    关注

    0

    文章

    201

    浏览量

    5832

原文标题:动手做!在基于 Arm 架构的边缘侧设备上部署 PyTorch 模型

文章出处:【微信号:Arm社区,微信公众号:Arm社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    BPI-AIM7 RK3588 AI与 Nvidia Jetson Nano 生态系统兼容的低功耗 AI 模块

    。它是开源硬件,我们已在线发布设计文档,包括原理图和接口定义。其异构计算架构兼容 NVIDIA Jetson Nano 接口标准,非常适合边缘
    发表于 10-11 09:08

    什么是ARM架构?你需要知道的一切

    从智能手机到工业边缘计算机,ARM®架构为全球数十亿台设备提供动力。ARM®以其效率优先的设计和灵活的许可模式而闻名,已迅速从移动处理器扩展
    的头像 发表于 09-11 14:48 741次阅读
    什么是<b class='flag-5'>ARM</b><b class='flag-5'>架构</b>?你需要知道的一切

    如何在基于Arm架构边缘AI设备上部署飞桨模型

    Arm 与领先的开源深度学习平台强强联合,会带来什么?那就是推动创新的“火箭燃料”。Arm 携手百度,利用双方在高能效计算平台与 AI 模型的技术积累,助力广大开发者加快边缘 AI
    的头像 发表于 09-06 14:07 813次阅读

    NVIDIA Nemotron Nano 2推理模型发布

    NVIDIA 正式推出准确、高效的混合 Mamba-Transformer 推理模型系列 NVIDIA Nemotron Nano 2。
    的头像 发表于 08-27 12:45 1367次阅读
    <b class='flag-5'>NVIDIA</b> Nemotron <b class='flag-5'>Nano</b> 2推理<b class='flag-5'>模型</b>发布

    《电子发烧友电子设计周报》聚焦硬科技领域核心价值 第22期:2025.07.28--2025.08.1

    使用指南 12、Arm方案 基于Arm架构边缘设备
    发表于 08-01 21:05

    NVIDIA Jetson + Isaac SDK 在人形机器人领域的方案详解

    组件 描述 硬件平台(Jetson系列) 面向边缘AI和机器人开发的SoC模块,搭载GPU + ARM CPU,支持多种传感器和AI模型部署
    的头像 发表于 07-30 16:05 3124次阅读

    树莓操作系统:版本、特性及设置完整指南!

    树莓操作系统是什么?树莓操作系统是由树莓基金会专为树莓
    的头像 发表于 07-28 18:26 811次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>操作系统:版本、特性及设置完整指南!

    树莓小技巧:无需键盘显示器,如何通过WiFi设置树莓

    接入,但随着我们逐渐远离台式电脑,找到键盘和显示器变得越来越困难。一旦WiFi设置完成,就可以通过SSH连接到树莓,并从笔记本电脑其他设备远程与
    的头像 发表于 06-26 15:41 1040次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>小技巧:无需键盘<b class='flag-5'>或</b>显示器,如何通过WiFi设置<b class='flag-5'>树莓</b><b class='flag-5'>派</b>?

    市场上主流的端AI MPU 大全

    ‌ ‌ NVIDIA ‌ ‌ Jetson系列 ‌:面向边缘AI的高性能MPU Jetson Orin Nano/NX/AGX(基于Amp
    的头像 发表于 04-02 17:44 3288次阅读

    研华NVIDIA Jetson Orin Nano系统支持Super Mode

    提升生成式AI性能1.7倍 2025年春季— 研华科技,作为全球工业嵌入式 AI 解决方案供应商,宣布推出搭载NVIDIA Jetson Orin Nano 8GB系统模块的AI
    发表于 03-10 14:07 622次阅读
    研华<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Jetson</b> Orin <b class='flag-5'>Nano</b>系统支持Super Mode

    探索NVIDIA Jetson与DeepSeek融合的无限可能

    能力高效地部署边缘设备中已然成为行业关注的焦点。NVIDIA Jetson 系列作为边缘计算
    的头像 发表于 02-21 14:31 1083次阅读
    探索<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Jetson</b>与DeepSeek融合的无限可能

    如何在Arm Ethos-U85上使用ExecuTorch

    在快速发展的机器学习领域,PyTorch 凭借其灵活性和全面的生态系统,已成为模型开发的热门框架。Arm 与 Meta 合作在 ExecuTorch 中引入了对 Arm 平台的支持,进
    的头像 发表于 02-14 14:23 1010次阅读
    如何在<b class='flag-5'>Arm</b> Ethos-U85上使用ExecuTorch

    STM32、Arduino、树莓开发方式差异大吗

    最近看到有网友问:STM32、Arduino、树莓开发方式差异大吗?   要说相同点,它们之间也有很多相同点。但你要说他们之间开发的差异,其实也蛮大的。   STM32、Arduino、树莓
    的头像 发表于 01-02 11:33 1924次阅读

    利用Arm Kleidi技术实现PyTorch优化

    PyTorch 是一个广泛应用的开源机器学习 (ML) 库。近年来,Arm 与合作伙伴通力协作,持续改进 PyTorch 的推理性能。本文将详细介绍如何利用 Arm Kleidi 技术
    的头像 发表于 12-23 09:19 1610次阅读
    利用<b class='flag-5'>Arm</b> Kleidi技术实现<b class='flag-5'>PyTorch</b>优化

    AI模型部署边缘设备的奇妙之旅:目标检测模型

    并非易事,它涉及到从选择合适的算法架构到针对特定硬件平台进行优化等一系列复杂的工作。 接下来,我们将详细介绍如何在资源受限的边缘设备上成功部署目标检测
    发表于 12-19 14:33