【NVIDIA GR00T N1 从入门到精通】第3章到第6章

目录

3.1 基础推理流程

3.1.1 预训练模型加载

3.1.1.1 HuggingFace 模型下载(自动缓存)

3.1.1.2 本地权重路径配置(离线环境部署)

3.1.1.3 多GPU加载策略(CUDA_VISIBLE_DEVICES)

3.1.2 策略类(Gr00tPolicy)使用

3.1.3 批量推理与评估

3.1.3.1 离线数据集评估脚本(eval_policy.py)

3.1.3.2 预测 vs 真值可视化(MSE 计算与动作曲线绘制)

3.1.3.3 多轨迹批量处理(--traj-ids)

3.2 服务化部署架构

3.2.1 推理服务器启动

3.2.1.1 服务端模式启动(run_gr00t_server.py --server)

3.2.1.2 端口与主机配置(--policy_port=5555 默认)

3.2.1.3 多客户端并发支持(ZMQ 消息队列配置)

3.2.2 客户端推理请求

3.2.2.1 客户端模式连接(eval_so100.py 示例)

3.2.2.2 实时观测数据打包(图像编码 + 状态向量序列化)

3.2.2.3 语言指令动态注入(--lang_instruction)

3.2.3 边缘设备优化部署

3.2.3.1 TensorRT 引擎构建(ONNX 导出 → trtexec 编译)

3.2.3.2 FP16 量化配置(推理速度提升 2-3 倍,精度损失 <1%)

3.2.3.3 Jetson Thor 性能基准(示例数据)

3.3 性能优化与监控

3.3.1 推理速度优化

3.3.1.1 torch.compile 应用

3.3.1.2 去噪步数调整(采样/扩散模型场景)

3.3.1.3 多视图融合策略(单视图 vs 立体视觉延迟对比)

3.3.2 资源监控与调试

3.3.2.1 GPU SM 利用率检查(nvidia-smi dmon)

3.3.2.2 内存泄漏排查(PyTorch 显存快照分析)

3.3.2.3 异步推理队列管理(预防实时性抖动)

附:工程目录建议 & 使用示例

第4章 模型微调与领域适配

4.1 微调策略选择

4.1.1 全参数微调(Full Fine-tuning)

4.1.1.1 训练配置参数(max-steps=2000, global-batch-size=32)

4.1.1.2 学习率调度(warmup比例与余弦退火)

4.1.1.3 显存优化技巧(gradient checkpointing与--no-tune_diffusion_model)

4.1.2 LoRA高效微调

4.1.2.1 LoRA rank与alpha配置(--lora_rank 64 --lora_alpha 128)

4.1.2.2 可训练参数筛选(仅训练adapter与action head)

4.1.2.3 多卡并行训练(2×A6000/RTX 4090配置)

4.1.3 数据混合与采样

4.1.3.1 多数据集联合训练(--dataset-path

4.1.3.2 数据集权重平衡(balance_dataset_weights=True)

4.1.3.3 预训练数据混合(与真实数据1:1比例防止过拟合)

4.2 高级微调技术

4.2.1 数据增强配置

4.2.1.1 颜色抖动参数(brightness 0.3, contrast 0.4, saturation 0.5)

4.2.1.2 图像空间增强(随机裁剪、水平翻转、高斯噪声)

4.2.1.3 状态空间增强(关节角度抖动与速度噪声)

4.2.2 正则化策略

4.2.2.1 状态正则化强度调整(防止过拟合关键)

4.2.2.2 Dropout与权重衰减配置

4.2.2.3 早停机制(验证集成功率监控)

4.2.3 迭代DAgger改进

4.2.3.1 DAgger数据收集流程(模型犯错时人工纠正)

4.2.3.2 聚合数据集重训练(原始数据+纠正数据混合)

4.2.3.3 迭代次数与性能提升曲线分析

4.3 特定场景优化

4.3.1 工业制造场景

4.3.1.1 高精度抓取微调(Lightwheel AI汽车工厂案例)

4.3.1.2 双臂协调操作(bimanual manipulation配置)

4.3.1.3 长时序任务分解(多步骤语言子任务标注)

4.3.2 家庭服务场景

4.3.2.1 开放世界泛化(1X Technologies NEO Gamma案例)

4.3.2.2 少见物体识别(网络数据预训练迁移)

4.3.2.3 人机交互安全性(碰撞检测与紧急停止集成)

4.3.3 移动操作(Loco-manipulation)

4.3.3.1 全身控制策略(Unitree G1 23/29自由度适配)

4.3.3.2 实时轨迹修正(RTC技术train-time与test-time应用)

4.3.3.3 动态平衡与操作协调(WBC全身控制器集成)

第5章 真实机器人部署与调试

5.1 硬件集成与通信

5.1.1 机器人接口开发

5.1.1.1 串口通信协议(SO-101: /dev/ttyACM0波特率配置)

5.1.1.2 以太网/ZMQ远程控制(WiFi桥接延迟优化)

5.1.1.3 ROS2集成(话题订阅/发布与GR00T策略桥接)

5.1.2 传感器融合

5.1.2.1 相机驱动配置(OpenCV索引与分辨率设置)

5.1.2.2 力矩传感器集成(高精度抓取反馈)

5.1.2.3 触觉传感器接入(GelSight等高频数据流)

5.1.3 安全系统部署

5.1.3.1 硬件急停回路(物理按钮与继电器切断)

5.1.3.2 软件安全监控(关节限位、速度阈值、碰撞检测)

5.1.3.3 人机协作安全标准(ISO/TS 15066合规)

5.2 实机调试流程

5.2.1 开环验证

5.2.1.1 单步动作验证(无相机输入,预设状态测试)

5.2.1.2 慢速轨迹回放(10%速度验证动作平滑性)

5.2.1.3 关键帧对齐检查(起始/中间/结束位置精度)

5.2.2 闭环测试

5.2.2.1 静态场景测试(固定物体抓取放置)

5.2.2.2 轻度干扰测试(物体位置偏移±5cm鲁棒性)

5.2.2.3 动态场景测试(移动物体跟踪与抓取)

5.2.3 长时间稳定性

5.2.3.1 连续运行测试(100+次循环无故障)

5.2.3.2 热管理与性能衰减监控(Jetson Orin温度阈值)

5.2.3.3 内存泄漏与显存碎片排查

5.3 常见问题诊断

5.3.1 模型层面问题

5.3.1.1 语言指令跟随失败(检查annotation字段与VLM冻结状态)

5.3.1.2 动作抖动与不平滑(相对动作vs绝对动作选择)

5.3.1.3 泛化能力不足(DAgger数据收集与域随机化增强)

5.3.2 硬件层面问题

5.3.2.1 相机掉帧与延迟(USB带宽优化与队列管理)

5.3.2.2 通信超时与丢包(ZMQ心跳机制与重连策略)

5.3.2.3 电机过热与力矩饱和(电流限制与散热改善)

5.3.3 系统集成问题

5.3.3.1 时间戳不同步(相机与状态数据软同步算法)

5.3.3.2 多进程资源竞争(GIL与CUDA上下文管理)

5.3.3.3 日志记录与故障回溯(结构化日志与视频回放)

第6章 高级应用与性能优化

6.1 多任务与持续学习

6.1.1 多任务策略训练

6.1.1.1 任务嵌入学习(语言指令作为任务标识)

6.1.1.2 任务间迁移学习(相似任务参数共享)

6.1.1.3 任务切换开销优化(零样本任务切换延迟<100ms)

6.1.2 持续学习系统

6.1.2.1 增量学习策略(新任务不遗忘旧任务)

6.1.2.2 经验回放机制(历史任务数据定期重放)

6.1.2.3 模型版本管理(A/B测试与回滚策略)

6.2 仿真到现实(Sim-to-Real)优化

6.2.1 域随机化策略

6.2.1.1 视觉域随机化(光照、纹理、相机参数)

6.2.1.2 物理域随机化(摩擦、质量、关节阻尼)

6.2.1.3 动力学参数辨识(系统辨识与模型校准)

6.2.2 数字孪生部署

6.2.2.1 Isaac Sim实时同步(硬件在环测试)

6.2.2.2 影子模式验证(仿真与真实并行运行对比)

6.2.2.3 在线策略更新(远程OTA模型迭代)

6.3 大规模部署架构

6.3.1 云端-边缘协同

6.3.1.1 云端训练-边缘推理 pipeline(模型压缩与量化)

6.3.1.2 联邦学习架构(多机器人数据隐私保护)

6.3.1.3 全球模型同步(分布式版本控制)

6.3.2 机器人 fleet 管理

6.3.2.1 多机器人数据收集 orchestration(Mega Blueprint应用)

6.3.2.2 集体学习与知识共享(跨机器人经验迁移)

6.3.2.3 远程监控与诊断(实时性能仪表盘)


3.1 基础推理流程

3.1.1 预训练模型加载

3.1.1.1 HuggingFace 模型下载(自动缓存)

说明:优先使用 transformers 的 from_pretrained(会自动缓存到 ~/.cache/huggingface/hu

加速通用人形机器人的开发:NVIDIA Isaac GR00T N1 由于需要大量特定于任务的数据、高昂的计算成本,且模型的泛化能力有限,针对每一个新的任务和环境,从零开始训练这些模型是一个非常繁琐的过程。通过结合这些多样化的数据并使用诸如潜在动作训练等技术,机器人可以从大规模、未标记的人类视频数据中学习而无需监督,从而形成一种强大的策略,增强机器人训练,提高 GR00T N1 的性能和适应性。与扩散策略基线相比,Isaac GR00T N1 模型展示了更平滑和流畅的运动,以及在抓取精度上的显著提高,特别是在使用较小的后训练数据集进行微调时。 阅读详情

相关推荐

GR00T N1: An Open Foundation Model for Generalist Humanoid Robots

开发能够与世界无缝互动并执行广泛任务的机器人一直是机器人技术和人工智能领域的长期目标。近期,在海量数据集上训练的基础模型凭借其卓越的泛化能力,已经在自然语言处理和计算机视觉等领域掀起革命。然而,将这一范式应用到机器人领域面临独特的挑战,主要是由于"数据孤岛"问题——机器人数据在不同实体、控制模式和传感器配置之间的碎片化。图1:GR00T N1采用的数据金字塔方法,根据规模和实体特异性组织异构数据源。

芝士不禁脑汁 822

NVIDIA Isaac GR00T N1 人形机器人强化学习入门教程(二)详细步骤

LeRobot 格式 1.1 加载数据集 要加载数据集,我们需要定义以下 3 项内容: 在数据中显示图像帧 我们还可以对 LeRobotSingleDataset 类中的数据进行一系列转换。下面展示了如何对数据进行转换。 现在看看应用转换后的数据有何不同。 例如,对状态和操作进行规范化和串联,对视频图像进行裁剪、调整大小和颜色抖动。 二、GR00T 推断 本教程介绍如何使用 GR00

2506_90492529的博客 3014

NVIDIA Isaac GR00T N1 入门教程(一) 人形机器人多模态大语言模型

英伟达™ Isaac GR00T N1 是世界上首个用于通用仿人机器人推理和技能的开放式基础模型。该跨体模型采用多模态输入(包括语言和图像)在不同环境中执行操作任务。GR00T N1 在一个庞大的仿人机器人数据集上进行训练,该数据集包括真实捕获数据、使用英伟达 Isaac GR00T Blueprint 组件生成的合成数据(神经生成轨迹示例)以及互联网规模的视频数据。通过后期训练,它可以适应特定的应用、任务和环境。

2506_90492529的博客 3049

NVIDIA Isaac GR00T N1.5 适用于 LeRobot SO-101 机械臂

本文介绍NVIDIA Isaac GR00T N1.5机器人基础模型的使用教程。该跨实体模型支持多模态输入,可通过后训练进行定制。教程详细演示了使用SO-101机械臂数据对模型进行微调的全流程,包括数据集准备(创建/下载数据集、配置模态文件)、模型微调、开环评估以及最终部署到物理机器人的步骤。文章还提供了相关资源链接,鼓励开发者下载模型、贡献数据集并参与LeRobot社区活动。通过本教程,开发者可以快速掌握如何将GR00T N1.5适配到自己的机器人项目。

2506_90492529的博客 1684

ESP32S3 Korvo2V3四通道AEC配置实战:基于AFE的回声消除优化

本文详细介绍了在ESP32S3 Korvo2V3平台上配置四通道AEC(回声消除)的实战经验。通过AFE算法优化和硬件连接调试,实现高质量回声消除,显著提升智能音箱和会议设备的语音交互体验。重点解析了四通道配置、数据格式对齐和参数调优等关键技术要点。

elastic6hunter的博客 938

行人重识别技术(Re-ID)概述、研究现状以及相关数据集下载

ReID技术概述什么是ReID一般流程Re-ID特点研究现状难点数据集reid常用数据集以及下载链接评价指标实现思路研究方式基于表征学习基于度量学习基于局部特征全局特征切片姿态基于视频序列RQEN基于GANCamStyleDG-NetGAN总结对比未来方向建议文献 什么是ReID 行人重识别是指利用计算机视觉技术,判断在不同时间段、不同监控下出现的行人图像是否属于同一人员的技术。行人重识别是最近几年在视频分析领域下热门的研究领域,可以看做是人脸识别应用的拓展。现在大街上的监控较多,由于设备质量、成像光线、.

留缘的博客 1万+

告别切换烦恼!用Parallels Desktop的Host-Only网卡,在macOS上直接访问虚拟机里的公司内网

本文详细介绍了如何在macOS上使用Parallels Desktop的Host-Only网卡直接访问虚拟机内的公司内网,告别频繁切换操作系统的烦恼。通过配置Host-Only网络模式,实现主机与虚拟机的安全高效通信,特别适合需要频繁访问内网资源的IT从业者。文章包含分步指南、自动化脚本和常见问题解决方案,帮助用户优化工作流程。

weixin_28739079的博客 364

FastApi教程

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

小石潭记丶 1563

5.44GHz超高精度!STM32G474的HRTIM时钟配置避坑指南

本文深入解析STM32G474内置高分辨率定时器的时钟配置要点,帮助工程师避开常见陷阱。文章详细阐述了从系统时钟到5.44GHz等效时基的路径,重点分析了预分频器乘法器、周期计算溢出、影子寄存器同步等关键配置,并结合实测波形对比,确保HRTIM在电机控制、数字电源等精密应用中发挥极限性能。

book8的博客 524

【CAD】【手把手带你写一个DXF&JAVA解析框架】02——整理DXF元数据实体类,涵盖重要属性与对照组码

本文系统梳理了DXF文件解析中的核心元数据类,重点分析了Tables段(图层、块记录)、Blocks段和Entities段的关键数据结构。通过详细的组码说明和对照代码实现,阐述了图层定义(DXFLayer)、块记录(DXFBlockRecord)、应用程序标识(DXFAppId)等表对象的属性构成;同时解析了直线(DXFLine)、多段线(DXFLwPolyLine)、圆弧(DXFArc)、文字(DXFText)等实体类的几何特征与属性定义。文章还构建了顶点(Vertex)、基类(DXFEntity、DXF

Wonder ZH 270

使用SIMD思想进行memcpy的优化

arm64平台的memcpy的性能优化,相比C库提升30~40%,SIMD优化思路

zhaoxin1989的博客 1万+

Playwright Test Agent 实战:零代码基础也能写自动化测试「喂饭教程」

本文详细介绍了Playwright智能体的三大核心组件:规划智能体设计测试策略,生成智能体转换用例为代码,修复智能体自动修正失败测试。教程包含环境配置步骤、智能体使用方法和实战案例,展示了如何通过自然语言指令快速创建稳定的测试脚本。相比传统方法,Playwright智能体大幅降低测试自动化门槛,提升效率并减少维护成本,使测试人员无需编码基础也能实现高质量的自动化测试。

blues_C的博客 2020

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

深度学习工具包 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&#39;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(&#39;DeepLearnToolbox&#39;));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(&#39;state&#39;,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&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,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 = &#39;sigm&#39;;%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, &#39;Too big error&#39;);```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(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;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)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;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, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% 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&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 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, &#39;Too big error&#39;);```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(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % 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, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);%% 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(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 【NVIDIA GR00T N1 从入门到精通】第1章 环境搭建与基础配置 第2章 数据准备与格式转换
下一篇: 【NVIDIA GR00T N1 从入门到精通】GR00T N1项目源码
VectorShift
博客等级 码龄1年 1839粉丝 1109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VectorShift

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值