从零搭建AGV避障系统:我用激光雷达+树莓派视觉模块踩过的那些坑

120°AGV|RGV小车激光障碍物传感器|避障雷达DE系列安装与连线方法 120°AGV|RGV小车激光障碍物传感器|避障雷达DE系列包含DE-4211、DE-4611、DE-4311、DE-4511等型号,根据激光飞行时间(TOF)测量原理运行的,利用激光光束对周围进行 120° 半径 4m(90%反射率)扫描,获得环境轮廓图形,通过软件配置建立保护区域范围,一 旦有物体处于设定的区域内,传感器对应的输出端口输出信号,上位机获取信号后做 出进一步的判断和处理。本文重点介绍120°AGV|RGV小车激光障碍物传感器|避障雷达DE系列安装与连线方法。 阅读详情

从零搭建AGV避障系统:我用激光雷达+树莓派视觉模块踩过的那些坑

去年,我接到了一个朋友工厂的委托,他们想用最低的成本,给几台手动搬运车加上基础的自动避障功能,实现半自动化升级。预算有限,但要求不低:需要在仓库这种堆满货架、偶尔有人员走动的复杂环境里,稳定识别障碍并停下或绕行。听起来像是典型的“既要马儿跑,又要马儿不吃草”的项目。但正是这种挑战,让我这个喜欢折腾硬件的创客兴奋了起来。我决定放弃那些昂贵的工业级方案,从零开始,用树莓派、国产激光雷达和一些开源视觉库,亲手搭建一套AGV避障系统。整个过程,与其说是一次顺利的开发,不如说是一场与各种“坑”斗智斗勇的实战记录。今天,我就把这些亲身经历、踩过的雷和最终的解决方案,毫无保留地分享给同样在中小规模自动化改造中摸索的朋友们。

1. 硬件选型:在“性价比”与“可靠性”之间走钢丝

项目启动的第一步,也是最让人纠结的一步:硬件选型。我的核心思路是,用激光雷达提供精确的距离感知作为主传感器,用树莓派搭配摄像头提供视觉识别作为辅助和语义补充,再用一个廉价的IMU(惯性测量单元) 来感知车身姿态,应对地面不平带来的干扰。听起来很美好,但每个环节都藏着陷阱。

1.1 激光雷达:国产新秀 vs. 进口老将

激光雷达是避障的“眼睛”,其稳定性和精度直接决定系统下限。在电商平台和开源硬件社区逛了一圈,主流选择无非两类:

  • 进口品牌(如SICK、Hokuyo):性能稳定,数据干净,文档齐全。但价格动辄数千甚至上万,远超我的整体预算。
  • 国产品牌(如思岚、镭神等):价格亲民,几百到一千多就能买到不错的2D雷达,部分还带ROS驱动。这是预算有限情况下的自然选择。

我最终选择了一款售价约800元的国产180°扫描2D激光雷达。它的参数很漂亮:10米测距、0.5°角分辨率。但实际使用中,问题接踵而至:

  1. 数据跳变与噪声:在空旷环境下数据尚可,但一旦靠近货架(大量规则反射面)或阳光直射的窗户,点云数据会出现明显的“鬼影”和跳变。这直接导致后续的聚类算法产生误判,把不存在的障碍物“识别”出来。
  2. 安装震动的影响:我将雷达直接固定在AGV车体(一个改装的小车)上。电机启停和地面颠簸带来的震动,会让雷达的扫描平面发生轻微偏转,在点云图上表现为整个环境的“抖动”。这对于需要精确距离信息的避障来说是致命的。

我的解决方案:

  • 针对噪声:我放弃了雷达出厂自带的简单滤波,在树莓派上使用PCL(点云库)的StatisticalOutlierRemoval滤波器进行后处理。这个算法会分析每个点与其邻居的平均距离,剔除那些“不合群”的异常点。虽然增加了计算量,但数据质量提升显著。
  • 针对震动:我设计并3D打印了一个带有硅胶减震垫的雷达支架,将雷达与车体进行软连接。同时,在软件中引入了一个简单的“运动补偿”逻辑:当IMU检测到车体在俯仰或横滚方向有持续微小变化时,对当前帧的激光数据做一个反向的坐标变换修正。这大大稳定了“视野”。

提示:不要完全相信激光雷达标称的“抗强光”能力。在实际部署前,务必在你的目

树莓派AGV避障系统实战:激光雷达+视觉融合与ROS2建图导航 自主移动机器人(AGV)的核心能力在于环境感知与实时避障,其技术实现涉及传感器选型、数据融合与路径规划等多个层面。在常见方案中,单线激光雷达以测距精准、不受光照影响等优势成为主流选择,而视觉模块则能有效弥补雷达平面盲区,二者融合可构建更稳健的感知系统。与此同时,基于图优化的Cartographer建图算法与成本地图膨胀层机制,为机器人在复杂环境中的安全通行提供了基础保障,而A*算法与动态窗口法(DWA)则分别负责全局路径搜索与局部动态避障。近年来,低功耗端侧AI视觉模块的发展,更为电池供电的移动平台带来了轻 阅读详情

相关推荐

高校技术转移办公室人员在技术成果推广中如何实现精准识别与快速匹配?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何提升技术需求挖掘与成果转化服务的精准度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

产业园区运营负责人如何利用数智平台实现创新资源的精准导入与高效配置?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何利用平台实现技术转移与科研成果的系统性管理?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

车辆轨迹跟踪MPC、神经网络NN+自适应神经模糊系统ANFIS优化模型预测仿真(带参考文献)

内容概要:本文围绕车辆轨迹跟踪控制展开,结合模型预测控制(MPC)、神经网络(NN)与自适应神经模糊推理系统(ANFIS)构建优化的仿真模型,旨在提升自动驾驶或智能车辆在复杂工况下的路径跟踪精度与鲁棒性。研究采用线性三自由度车辆动力学模型,并融合无迹卡尔曼滤波(UKF)对关键状态变量(如横摆角速度、质心侧偏角和车速)进行精确估计,实现高可靠性状态反馈。在此基础上,引入NN与ANFIS对MPC控制器进行参数优化与非线性补偿,增强系统对不确定性和外部扰动的适应能力。全文配有参考文献与仿真说明,提供了完整的Matlab/Simulink实现方案,具有较强的可复现性与工程应用价值。; 适合人群:从事智能车辆控制、自动驾驶算法研发、先进驾驶辅助系统(ADAS)研究的研究生、科研人员及工程技术人员,具备一定的控制理论基础与Matlab仿真经验者更佳。; 使用场景及目标:① 掌握MPC在车辆轨迹跟踪中的建模与实现方法;② 学习NN与ANFIS在非线性控制系统中的参数优化与自适应调节机制;③ 实现UKF状态估计与MPC-NNS-ANFIS联合仿真的集成设计,提升控制系统的智能化水平与实际适应能力。; 阅读建议:建议结合文中提供的参考文献深入理解控制算法的理论基础,并按照仿真步骤逐步搭建模型,重点调试MPC权重系数、神经网络结构及模糊规则的设计,以充分掌握多方法融合的系统优化思路。

基于一致性理论的三机并联独立微网二次控制模型研究(Simulink仿真实现)

内容概要:本文研究了基于一致性理论的三机并联独立微网二次控制模型,旨在解决微网系统在孤岛运行模式下频率和电压的精确恢复问题。通过构建三台分布式发电单元(DG)并联运行的微网系统模型,设计并实现了一种基于一致性算法的二次控制策略,有效补偿了一次控制引入的频率与电压偏差,实现了无静差调节。研究详细阐述了系统建模、控制策略设计、一致性协议应用及稳定性分析全过程,并利用Simulink平台进行仿真实验。仿真结果验证了该控制策略能够快速消除偏差,使各DG单元输出趋于一致,显著提升了微网系统的电能质量与运行稳定性。; 适合人群:电力系统、自动化、电气工程等相关专业的科研人员、研究生及从事微网控制技术开发的工程技术人员。; 使用场景及目标:①用于独立微网系统中实现频率和电压的协同控制与精确调节;②为研究多智能体一致性理论在电力系统中的应用提供实例参考;③目标是提升微网在孤岛运行模式下的电能质量与稳定运行能力。; 阅读建议:此资源结合理论分析与Simulink仿真实践,建议读者在理解一致性算法基本原理的基础上,动手搭建仿真模型,重点关注控制策略的实现细节与参数整定方法,通过对比一次控制与二次控制的仿真结果,深入掌握其补偿机制与优越性。

科技中介服务机构在技术评估环节如何降低人工干预带来的主观偏差?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

SSA-BP-PID、神经网络BI-PID、传统PID控制三种算法性能对比仿真【程序+说明文档】

内容概要:本文档系统性地对比了SSA-BP-PID、神经网络BI-PID与传统PID三种控制算法在控制系统中的性能表现,依托Matlab/Simulink平台完成建模与仿真分析。重点阐述了麻雀搜索算法(SSA)、粒子群优化(PSO)等智能优化算法与BP神经网络结合的PID控制器设计方法,并通过S函数实现了神经网络在Simulink中的集成,全面评估了各类控制器在动态响应速度、稳态精度及抗干扰能力等方面的优劣。文档不仅提供了完整的程序代码与详尽的说明文档,还涵盖了从算法原理、模型搭建到参数调优的全流程技术细节,适用于自动化控制领域的科研验证与工程实践。此外,文档末尾附有丰富的科研资源链接,覆盖电力系统、路径规划、信号处理、机器学习等多个前沿方向,强调科研过程中“借力”与创新思维的重要性。; 适合人群:具备自动控制理论基础和Matlab/Simulink仿真能力的研究生、科研人员,以及自动化、电气工程、控制科学与工程等相关专业的高年级本科生和技术开发者。; 使用场景及目标:①深入研究智能优化算法(如SSA、PSO)与神经网络在PID参数整定中的融合应用;②对比分析传统PID、神经网络PID及优化算法增强型PID在系统控制性能上的差异,优化控制策略设计;③作为毕业设计、课程项目、科研论文复现或工业控制系统开发的重要参考资料。; 阅读建议:建议读者按照文档目录循序渐进地学习,重点关注S函数的编写逻辑、Simulink模块的搭建流程以及控制器参数的调试技巧,务必动手运行并复现所提供的仿真程序,以加深对智能控制算法实现机制与优化效果的理解。

OrganizeContacts‑0.3.1 开源本地通讯录清洗 / 去重工具(MIT 协议,GitHub 项目 SysAdminDoc/OrganizeContacts

OrganizeContacts‑0.3.1 开源本地通讯录清洗 / 去重工具(MIT 协议,GitHub 项目 SysAdminDoc/OrganizeContacts

国央企创新负责人如何借助平台实现对内部创新资源的整合与对外转化的精准对接?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构在开展技术评估时,如何降低评估成本并提高评估结果的可信度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构在开展技术需求挖掘时,如何快速识别企业隐性需求?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

硬件测试入门--环路响应(Bode)测试

环路分析的一个重要作用就是分析开关电源的稳定性。扫频测试原理主要是给开关电源电路注入一个频率变化的正弦信号,测量开关电源在频域上的特性,通过分析穿越频率、增益裕度和相位裕度来判断环路是否稳定,可以为电子工程师设计稳定的控制电路提供直观的数据。开关电源的稳定性关系到整个应用系统的可靠性,利用伯德图可以看出在不同频率下系统增益的大小和相位。通过伯德图来对开关电源的环路稳定性进行判断和分析已经成为评估开关电源可靠性必不可少的方法。

songninging的博客 1万+

开源CC6920差分霍尔电流传感器模块实战指南——从选型到波形分析

本文详细介绍了CC6920差分霍尔电流传感器模块的选型、硬件连接、参数计算及波形分析技巧。通过实战案例,展示了该开源硬件在电流测量中的优势,包括超低内阻、电气隔离和抗干扰能力,适用于电机控制、开关电源保护等场景。

weixin_28738397的博客 374

UPF2.1进阶指南:如何优雅地处理Hard Macro与Top-Level Port的电源意图

本文深入解析UPF2.1在复杂SoC设计中的高级电源意图建模,重点探讨Hard Macro与顶层端口的电源管理实战技巧。通过`power_model`和`set_port_attribute`的高级应用,解决第三方硬核IP电源建模不透明、顶层端口电源属性定义不当等工程难题,提供可靠的电源管理方案,确保芯片设计性能与功耗的精确控制。

weixin_30443747的博客 166

VSCode终端打不开?3分钟搞定Windows下Terminal配置(附最新JSON设置方法)

本文针对Windows系统下VSCode终端无法启动的常见问题,提供了详细的诊断与解决方案。核心在于更新已弃用的旧配置,采用最新的JSON设置方法,通过定义`terminal.integrated.profiles.windows`和指定`terminal.integrated.defaultProfile.windows`,快速修复并优化终端配置,实现三分钟内恢复正常使用。

flower的专栏 736

【论文复现】——基于LM优化的NDT点云配准算法

传统的正态分布变换配准算法处理初始位姿变换相差较大的两帧点云时,存在无法收敛或者陷入局部最小值的问题。为了提高算法的收敛性能,提出了一种基于LM方法改进的三维正态分布变换配准算法。

点云侠的博客 1161

Codex 调试记录获取完全指南:日志查看、工具调用与实战排查教程

本文主要介绍了Codex 调试记录获取完全指南:日志查看、工具调用与实战排查教程,希望能对使用Codex的同学们有所帮助。 文章目录 1. 背景 2. 实战教程

weixin_43178406的博客 6万+

电子技术课程设计:声音音量峰值检测显示系统设计

本文介绍了声音音量峰值检测显示系统的设计方案。系统采用分立元件设计,不使用单片机和集成运放,包含电源模块、声音采集放大电路、峰值检测保持模块、比较器、A/D转换及显示控制等部分。麦克风信号经两级晶体管放大后,通过二极管-电容电路检测峰值并保持,再经A/D转换显示为数字值(0000-9999)。系统采用9V电池供电,包含启动/清除控制功能,能指示声音过低或过高状态。详细阐述了各模块电路设计、参数计算和仿真验证,并提供了完整的原理图和PCB布线方案。该系统实现了声音峰值电压的准确检测与数字显示功能。

huanghm88的专栏 247

这才是 Python 的正确玩法!用强化学习 (RL) 训练 AI 玩《王者荣耀》,胜率 90%!

大家打排位时,一定遇到过那种“意识神级、操作零失误”的对手,或者“走位呆滞、送人头”的队友。以前的“人机”是程序员写死的脚本(If 血量<20% Then 回城)。而现在的顶级 AI(如腾讯绝悟、OpenAI Five),是靠强化学习 (Reinforcement Learning)自己“左右互搏”练出来的。今天,我们不谈枯燥的数学公式,我将手把手教你用,搭建一个能玩 MOBA 游戏的 AI Agent。即使不能去 KPL 打职业,虐一下钻石局还是绰绰有余的!

BUG猿的博客 1173

深度学习工具包 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")

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Statistics and Machine Learning Toolbox

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

上一篇: Claude桌面版+MCP实战:5分钟搭建你的第一个AI文件管理系统
下一篇: 用Java玩转KNX智能家居:从零搭建一个灯光控制系统(附完整代码)
git9versioner
博客等级 码龄3年 74粉丝 1650原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值