1 GHz Arm® Cortex®-M85 MCU上部署AI模型

ARM / RISC-V 芯片设计生成全流程深度报告(2026):工具链、技术栈与制造工艺 从产品定义一路走到量产爬坡:13 个阶段、4 大工程域、全阶段 EDA 工具矩阵、先进制程与封装工艺、成本与周期模型、签核清单与风险登记册,并标注 ARM 与 RISC-V 两条路线的真实差异。 阅读详情

本文将手把手带你实现实时人脸检测,并将完整流程开源。打通从数据采集、模型训练、量化转换,到集成部署的每一个环节。我们已为你准备好了数据集、训练代码、转换工具链与RT-Thread工程。只需跟随步骤,即可体验在1 GHz Arm® Cortex®-M85 MCU上部署AI模型。(公众号后台回复RA8P1,加入交流群)

目录

应用效果预览

流程图

环境准备

训练模型

ai模型转换

ai模型部署

网盘资源及培训视频

1 应用效果预览 

2 流程图

👆提示:可以上下滑动

3 环境准备

3.1  硬件清单

  • 开发板:RA8P1开发板(Titan Board)。

或复制链接购买:https://item.taobao.com/item.htm?ft=t&id=987791181903

  • 传感器/外设:RGB565屏幕和摄像头

3.2  软件与⼯具

  • RT-Thread Studio

  • Python 3.9–3.11,pip包:pytorch等ai库

  • Yolo-Fastest

3.3  RT-Thread Studio

  • 在 RT-Thread Studio 中下载 Titan-Board SDK 及相关依赖(下载Titan-Board SDK 时,其他依赖会自动下载)。

  • 网盘中提供了下载好的 Titan-Board SDK,可以通过导入的方式安装 SDK。

  • 选择 SDK 压缩包。

  • 导入成功。

👆提示:如果在烧录时检测不到 DAP-Link,按下方链接中的步骤操作即可解决。

https://rt-thread-studio.github.io/sdk-bsp-ra8p1-titan-board/latest/faq/FAQ_page/README_zh.html

3.4.  Python 环境

👆参考:https://github.com/AlexeyAB/darknet?tab=readme-ov-file#how-to-compile-on-windows-using-cmake

由于需要安装vs 2022、cmake等工具,下载需要的时间过久,我这边有编译好的darknet.exe,可以使用cpu直接训练模型,如果需要使用gpu训练模型,可以按照darknet官方的安装步骤重新编译。

编译前注意修改配置文件,根据自己的需求修改。

option(CMAKE_VERBOSE_MAKEFILE "Create verbose makefile" ON)option(CUDA_VERBOSE_BUILD "Create verbose CUDA build" OFF)option(BUILD_SHARED_LIBS "Create dark as a shared library" ON)option(BUILD_AS_CPP "Build Darknet using C++ compiler also for C files" OFF)option(BUILD_USELIB_TRACK "Build uselib_track" ON)option(MANUALLY_EXPORT_TRACK_OPTFLOW "Manually export the TRACK_OPTFLOW=1 define" OFF)option(ENABLE_OPENCV "Enable OpenCV integration" OFF)option(ENABLE_CUDA "Enable CUDA support" OFF)option(ENABLE_CUDNN "Enable CUDNN" OFF)option(ENABLE_CUDNN_HALF "Enable CUDNN Half precision" OFF)option(ENABLE_ZED_CAMERA "Enable ZED Camera support" OFF)option(ENABLE_VCPKG_INTEGRATION "Enable VCPKG integration" OFF)

3.5.  Conda 安装

双击安装miniconda,注意这一步要选择添加环境变量

3.6.  安装 Python 环境

导入环境,convert用于将darknet模型转为tflite模型并量化。

3.6.1.  convert

下面是安装方式,二选一

  • 解压(推荐)

将convert.zip解压到anaconda安装目录的envs中。

  • 安装keras-YOLOv3-model-set环境。

conda create -n convert python=3.8conda activate convertcd keras-YOLOv3-model-setpip install Cythonpip install -r requirements.txt

3.6.2.  ruhmi

安装ruhmi环境, 用于将量化后的tflite模型转为能在开发板上部署的模型。

conda create -n ruhmi python=3.10conda activate ruhmicd ruhmi-framework-mcupip install "install\mera-2.4.0+pkg.179-cp310-cp310-win_amd64.whl"pip install onnx==1.17.0 tflite==2.18.0

4 训练模型

4.1  收集数据

  • 使用labelimg创建数据集。

  • 创建好的数据集可以使用Yolo-Fastest\scripts\xml2yolo.py来转为yolo格式。同时会得到会得到train.txt和val.txt的生成路径。

python scripts/xml2yolo.py
  • 修改voc.names。

face
  • 得到anchor。

darknet.exe detector  calc_anchors datasets/voc.data  -num_of_clusters 9 -width 192 -height 192
  • 得到的anchor如下,每个人每次生成都不一样。

anchors =   3,  5,   6, 10,  11, 17,  14, 30,  25, 25,  25, 52,  43, 54,  58, 90,  94, 117
  • 修改yolo-fastest.cfg。

width=192height=192channels=1
# 两个yolo都要改[convolutional]size=1stride=1pad=1filters=18activation=linear
[yolo]mask = 0,1,2anchors =  3,  5,   6, 10,  11, 17,  14, 30,  25, 25,  25, 52,  43, 54,  58, 90,  94,117classes=1
  • 我提取收集整理好了人脸识别数据,位于datasets中。

4.2  训练

使用我编译好的darknet.exe

cd Yolo-fastestdarknet.exe detector train datasets/voc.data  datasets/yolo-fastest.cfg   -dont_show

大概训练2小时才会有好一些的模型结果(GPU启动训练的情况下)。

5 AI部署转换 

训练模型结束后,会在Yolo-fastest/backup中保存模型权重。我们选择最后一轮的权重,用于转换。

5.1 darknet->tflite

转换代码需要的参数如下。

我们需要复制训练好的权重、cfg文件到keras-YOLOv3-model-set下,然后运行,这里需要稍等一会,需要大概6分钟。

conda activate convertcd /path/to/keras-YOLOv3-model-setpython tools/model_converter/conver2tflite_and_int8.py --config_path yolo-fastest.cfg --weights_path yolo-fastest_last.weights --output_path face.h5 --int8_img_path ../Yolo-Fastest/datasets/face/data_1/train/image/ --save_tflite_path face_int8.tflite -f

最终会得到face_int8.tflite模型。

5.2 tflite->ruhmi

将上⼀步得到的tflite文件复制到ruhmi-framework-mcu/models下,然后运行以下指令

conda activate ruhmicd /path/to/ruhmi-framework-mcu/scriptspython mcu_deploy.py --ethos --ref_data ../models/ deploy_qtzed_ethos

6 AI部署模型

  • 在 RT-Thread Studio 中创建示例工程。

  • 创建 ai 示例工程。

  • tflite->ruhmi会在ruhmi-framework-mcu/scripts下生成可部署模型⽂件,路径如下

  • 接下来,删除 *_io_data.* 和hal_entry.c,然后将剩下的文件拷贝到刚刚创建的示例工程的Titan_npu_ai_face_detection/src/models下。

  • 编译然后下载。

  • 检测效果如下

7 网盘资源及培训视频

网盘资源链接:https://pan.baidu.com/s/16OwyiITyhET6k-BtPnJokw?pwd=d983

培训视频链接:https://www.bilibili.com/video/BV1nsUSBFE8U/?spm_id_from=333.1387.collection.video_card.click

公众号后台

回复“RA8P1”加入RA8P1交流群!

图片

图片

图片

想要在RT-Thread平台或社区投放内容?

或想参与相关直播活动及赛事?

RT-Thread已开放对接窗口,

请通过邮件与我们取得联系,期待合作!

合作邮箱: tongfangyi@rt-thread.com 

点击“阅读原文”购买硬件

【信息科学与工程学】【产品体系】第三十三篇 DPU/smartinic芯片中的学科知识03 需求实现DMA 与流边界检测优化​分级超时状态机(短/中/长)+ 积压计数 + 批量触发DMA 控制器优化​描述符预取(深度 4)+ 中断合并(阈值 8)Fence 语义正确性验证​RTL 断言 + C 语言序列号检测 + 性能对比 + 硬件计数器所有代码均为可综合 Verilog,已在仿真器中通过基本功能测试。在 FPGA 原型上运行上述 RTL,配合 ChipScope 观察 fence 时序在 BlueField-3 上运行 DOCA DPA 测试程序,对比加/不加 fence 的结果。 阅读详情

相关推荐

【信息科学与工程学】【通信工程】 第九十二 OTN网络的各类函数03

通过测量反射脉冲的幅度和极性,可以推断故障类型和位置:开路(Γ=+1, 正反射),短路(Γ=-1, 负反射),容性/感性不连续。算法:在设备背板上运行一个共享的或分段的低速管理总线(如I2C, SMBus, SPI, Ethernet),用于主控板与所有线卡、风扇盘、电源盘之间的管理通信。算法:在一段正常运行的“学习期”内,持续收集网络性能数据(如接口流量、丢包、延迟、CPU利用率),计算其统计特征(如均值、标准差、周期性),建立“性能基线”。采用高度并行的乘法累加(MAC)阵列和精密的时钟控制。

weixin_49199313的博客 637

【瑞萨AI挑战赛】从 0 到 1 跑通 RA8P1 NPU:YOLO-Fastest 训练、转换与端侧部署全链路实战

本教程详细介绍了基于RA8P1微控制器的手势识别模型部署流程。主要内容包括: 硬件基础:RA8P1搭载Arm Cortex-M85内核和Ethos-U55 NPU,专为高效AI推理优化 模型训练:使用YOLO-Fastest模型在HaGRID数据集上训练手势识别(OK和手掌两类) 环境配置:安装e2 studio和RUHMI工具链,解决Python环境依赖问题 模型转换:将PyTorch模型导出为ONNX格式,准备量化部署 教程重点讲解了NPU专用的INT8量化技术、校准流程以及常见问题解决方法,为在资源受

2403_88288761的博客 2864

【正点原子I.MX6U-MINI移植篇】Ubuntu-base根文件系统移植构建过程详解(四)

能不能在ARM板上运行Ubuntu呢?答案肯定是可以的,Ubuntu是Linux系统的一种,可以简单的将Ubuntu理解为一个根文件系统,和我们用busybox、buildroot制作的根文件系统一样。因此移植Ubuntu也就是将Ubuntu根文件系统移植到我们的开发板上。

果果小师弟的博客 3767

RA8P1部署ai模型指南:从训练模型到部署 | 本周六

RT-Thread 与瑞萨电子联合推出 RA8P1 Titan Board,基于 1GHz Arm® Cortex®-M85 + 250MHz Cortex®-M33 双核架构,集成 Ethos™-U55 NPU ,实现 256 GOPS 的 AI 性能、超过 7300 CoreMarks 的突破性 CPU 性能和先进的人工智能 (AI) 功能,可支持语音、视觉和实时分析 AI 场景!,我们将就嵌入式AI,带来免费线上培训,手把手带你掌握包括本文但不限于本文的更多技术干货,还有双核通信培训哦!

rtthreadiotos的博客 706

第18届全国大学生智能汽车竞赛四轮车控制策略深度解析:从舵机PID到速度闭环

本文深度解析了第18届全国大学生智能汽车竞赛中四轮车的核心控制策略。从舵机PID方向控制的基础原理与机械校准入手,详细阐述了误差计算、PD控制等关键环节;进而深入探讨了基于编码器的速度闭环控制,包括增量式PI算法与速度决策逻辑。文章结合实战经验,提供了方向环与速度环的协同调参思路与避坑指南,旨在帮助参赛者构建稳定、高效的智能车控制系统。

potato的博客 462

宝马项目化流程标准(BMW ABC flyer requirement)

宝马项目化流程标准(BMW ABC flyer requirement)

于大博 7244

MCU/MPU边缘AI技术专栏!

AI几乎已经融入到我们生活方方面面了,随着人工智能技术不断迭代,使用远端算力平台进行模型部署和AI计算并在端侧决策成为可能,边缘AI技术凭借实时响应、低资源消耗、高安全性和私密性优势正引领嵌入式开发变革。我们非常鼓励各位开发者结合自身开发经验做出一些有创意的拓展,若经官方评审认定您的项目满足阶段二要求,我们将根据您的创意评选送出专属奖品(购物卡+定制茶具套装,不限名额);请认真填写您的申请理由,说明自己的评测计划,大致的实现过程和应用场景,展示丰富的过往项目经验。我们将根据申请者填写的评测计划进行筛选。

strongerHuang 589

Win11上从零跑通Carla自动驾驶仿真:保姆级环境配置与避坑指南(Python 3.7+)

本文详细介绍了在Win11系统上从零配置Carla自动驾驶仿真环境的完整流程,包括Python 3.7+环境搭建、依赖安装、常见问题排查及性能优化技巧。通过保姆级教程帮助开发者快速避坑,实现稳定的自动驾驶仿真测试环境部署。

weixin_33488239的博客 420

【RT-Thread Titan Board 开发板】开发环境搭建与初测

本文记录作者参与电子发烧友论坛瑞萨AI挑战赛的前期开发与初测,基于搭载瑞萨RA8P1芯片、集成Arm® Ethos™-U55 NPU的RT-Thread Titan Board开发板,探索单片机AI算力潜力。文中展示了开发板小巧的外观、带摄像头无板载屏幕的测试配置及板载核心资源,详述了RT-Thread Studio开发环境的搭建方法,还解决了DAP-Link识别问题,成功完成Hello程序的编译、烧录与运行。作者将持续更新博客记录后续测试,最终作品将发布于电子发烧友论坛。

研究兴趣:智能物联网、嵌入式系统、人工智能 985

告别配置噩梦:用Vcpkg三行命令为Easy3D自动安装Boost、CGAL和Qt(VS2022实测)

本文详细介绍了如何使用Vcpkg工具在VS2022环境下为Easy3D项目一键安装Boost、CGAL和Qt等依赖库,解决传统手动配置的复杂性问题。通过三行简单命令即可自动完成下载、编译和路径配置,大幅提升开发效率,特别适合C++开发者快速搭建3D图形开发环境。

weixin_42525582的博客 209

Fortran基础编程(3)——格式化输出

本篇推文将进一步讲解Fortran基础语法中格式化输出与声明部分,让我们的代码更加美观起来吧~

qq_45715554的博客 3826

如何在基于MCU的边缘AI应用场景中实现高性能、低功耗推理!

与MPU相比,它们提供更好的实时响应、更低的功耗、更低的成本,以及简化产品设计并降低开发和BOM成本的全面集成解决方案,使其成为低功耗和成本经济型应用的理想选择。RA8P1 MCU基于先进的台积电22nmULL工艺构建,提供前所未有的7300+ CoreMark原始性能和256 GOPS的AI性能,并满足了边缘AI应用对低功耗的需求。数据输入和预处理:RA8P1 MCU捕获原始输入数据(来自摄像头的图像、来自麦克风的音频),并由高性能Cortex-M85内核进行预处理,以输入到AI模型。

strongerHuang 236

【100%通过率】华为OD机试真题 Python 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

在1 GHz 主频单片机上部署AI模型

由于需要安装vs 2022、cmake等工具,下载需要的时间过久,我这边有编译好的darknet.exe,可以使用cpu直接训练模型,如果需要使用gpu训练模型,可以按照darknet官方的安装步骤重新编译。在 RT-Thread Studio 中下载 Titan-Board SDK 及相关依赖(下载Titan-Board SDK 时,其他依赖会自动下载)。我们需要复制训练好的权重、cfg文件到keras-YOLOv3-model-set下,然后运行,这里需要稍等一会,需要大概6分钟。

strongerHuang 237

从零实现深度学习框架【实现自己的PyTorch(已完结)】

本着“凡我不能创造的,我就不能理解”的思想,此系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。

日积月累,天道酬勤 6861

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Arm技术助推AIoT演进!看安谋科技“星辰” CPU + Arm Helium + Arm Ethos NPU

Arm China针对嵌入式AI场景构建“星辰300” AIoT原型平台,全面支持主流小模型,从传统MCU拓展出AI算力。

2501_93928345的博客 352

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

PJ85718DM+STM32F429NI工业温度监测系统设计

温度传感器是工业测控系统的基础感知单元,其精度、稳定性与协议兼容性直接决定整个温控链路的可靠性。PJ85718DM作为支持-40℃~+125℃全温区±0.15℃高精度、原生双协议(I²C/1-Wire)并内置报警锁存逻辑的专用芯片,突破了传统DS18B20、DHT22在宽温域、抗干扰和低功耗场景下的性能瓶颈;而STM32F429NI凭借高精度ADC温漂系数(±2ppm/℃)、硬件CRC校验、以太网MAC及FPU加速能力,为传感器数据提供从采集、补偿、封装到可信回传的全栈硬件支撑。该组合已在HVAC、冷链监控

weixin_34099526的博客 293

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

MCU上AI,只需要简单六步,即可实现AI模型部署

现在的MCU性能是越来越强了,MCU(RA8P1)已经跨入主频1GHz的时代,这么强的性能,你不上点AI,怎么能对得起你的性能。AI无处不在,你在部署AI,你的竞争对手也在部署AI,几乎所有人都在做AI。然而,AI并不简单,不仅在生成有效模型上复杂,在部署上同样充满挑战。即使你已经有了现成的模型,要把它部署到新的边缘硬件上,往往需要投入大量精力将模型转换成可运行的形式,更不用说让它高效运行。现在,瑞萨推出了一款AI部署工具RUHMI,这一切将变得简单。什么是RUHMI?Robust Unified Hete

strongerHuang 717

指纹识别传感器驱动开发—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】

本文详述在RK3568平台使用私有二进制协议指纹模组的调试要点:以亮灯确认通信为首要步骤,波特率固定为57600,通过tcflush(TCIFLUSH)清除缓冲避免旧应答干扰;严格按“连接→亮灯→录入→比对”顺序操作,依赖包头F11FE22E锚定帧,校验标记与状态(成功为0E,0F为已存在);以灯亮为准选择正确TTY(如ttyS8非ttyS7),禁用CRTSCTS,应用层采用异步poll机制,避免误判。强调硬件层面断电重连、权限配置及单路排针原则,确保通信稳定可靠。

wanwuzhineng_01的博客 347

自建云手机,ARM服务器和X86服务器怎么选?架构差异、成本、兼容性全对比

小体量、试验证选 X86;大规模、追求稳定和兼容性选 ARM。ARM 原生是云手机技术的主流方向,但不等于人人都适合自建 ARM 集群。评估的时候,不要只看服务器单价,把后续运维、电费、排错成本一起算进去,再决定是自建,还是直接使用成熟的云手机服务。

a598652的博客 301

为什么学习率预热(warmup)能显著改善Transformer等大模型的训练稳定性?

t$ 的分母 $(1-\beta_2^t)$ 极小,导致方差估计值波动剧烈。若此时 $\eta$ 较大,更新步长 $\Delta \theta$ 将不可控。Adam 优化器的参数更新公式为 $\theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{\hat{v}{warmup}$ 时人为压低 $\eta_t$,从而保证 $\Delta \theta$ 的数值稳定性。在训练初期($t$ 很小),$\hat{v}{warmup}}$,在 $t < T。

2402_84593233的博客 177

轨交车载 ARM+FPGA+AI 控制单元:宽温、振动、EMC、可靠性设计

❌ 把 EtherCAT 主站、安全采集放在 ARM Linux 里,PREEMPT_RT 再怎么调,振动 + EMC 叠加下依然有概率丢帧 ✅ 总线时序、同步采集交给 FPGA,ARM 只做协议栈解析❌ AI 算力卡直接挂在 ARM 总线上、无隔离,NPU 大电流波动污染电源,导致 FPGA 采集漂移 ✅ AI 卡独立隔离电源,PCIe 增加隔离 / 缓冲,FPGA 侧做电源质量监控❌ 盲目上全机冗余,成本暴涨;

szxinmai的博客 285

Zynq 的 AXI GPIO,是“ARM 通过一条国际标准高速公路(AXI 总线),去遥控 FPGA 里的一个寄存器”。---deepseek

同学,你现在看 AXI GPIO,它还仅仅是个点灯的工具吗?它是Zynq 软硬协同的“微缩景观”。它告诉我们:在 Zynq 的世界里,ARM 通过 AXI 总线,把“软件控制”变成了“硬件动作”。你懂了 AXI GPIO,就懂了 AXI DMA、AXI 中断的底层原理。它们全都是通过 AXI 总线,把数据或信号从 PS 端(软件)搬到 PL 端(硬件)。内存映射 + AXI 握手。你的代码之所以可靠,是因为背后有极其严密的总线协议在兜底。

AlibabaApple的博客 471

AllData 可定义数据中台完成信创适配|银河麒麟 + 海光X86 CPU / 华为鲲鹏ARM CPU+ OceanBase / 人大金仓国产化环境部署落地

银河麒麟 + 海光X86 CPU / 华为鲲鹏ARM CPU+ OceanBase / 人大金仓国产化环境部署落地

AllDataDC的博客 246

Dharma Field Extractor 解读:让 2B 专用模型按 Schema 从文档图像抽取 JSON

解读 Dharma Field Extractor 的 schema 字段抽取、训练路线、评测指标与部署边界。

m_aigc2022的博客 394

ARM 内存管理

最早期的计算机,程序是打在卡片上的,CPU 读一张卡片执行一条指令,效率极低。后来有了内存,程序要先加载到内存再执行,也就是 “存储程序” 概念,这才开启了操作系统的发展。1. 单道编程的内存管理2. 多道编程的内存管理:解决 “同时跑多个程序” 的问题为了提升资源利用率,出现了。

qq_52240295的博客 323
上一篇: RT-Thread Studio V2.3.0 版本正式发布!
下一篇: 线下硬核实战:人形检测 + 屏显终极玩法 | 活动速递
RT-Thread物联网操作系统
博客等级 码龄6年 2万+粉丝 392原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值