人工神经网络 拟合函数By halcon

(三)当人工智能是一个函数时,怎么去训练它? 人工智能本质上就是一个函数。那么今天,让我们更进一步:这个函数是怎么练成的? 阅读详情

     现在深度学习越来越流行,在很多地方都能看到它的声影,最常见的就是应用在图像分类上。

     今天给大家带来的是人工神经网络(多层感知器MLP)拟合正弦函数曲线的例子。我们选用的平台是 halcon, 大家理解了原理之后,可以应用到其它平台上,如 openCV ,tensorflow,and so on.

    话不多说,进入今天的正题:

第一步: 创建一个网络模型

//create_class_mlp( : : NumInput, NumHidden, NumOutput, OutputFunction, Preprocessing, NumComponents, RandSeed : MLPHandle) 

  NHidden = 10;
  create_class_mlp(1, NHidden, 1, "linear", "none", 1, 42, &MLPHandle);

这里有个需要注意的地方, 输入层和输出层的大小要与特征向量的维度相等。 由于我们是拟合函数,自然 ,特征 和标签(label)的维度都是 1,所以  输入层和输出层 都设置 为 1。而输出层需要注意,设置太小,可能特征学习不完全,设置过大,学习过程会过拟合。这两者都是我们不愿意看到的,这个隐藏层数只能去尝试,或者根据长期的经验,这里我设置的是  10. 拟合正弦函数的结果还不错,可以改成其他值试一试。

 

第二步,接下来,我们添加训练数据样本。

  //Generate the training data
  NData = 1000;
  for (i=0; i<=1000; i+=1)
  {
    Temp = i*0.01;
    D[i] = Temp;
    T[i] = Temp.Sin();
    add_sample_class_mlp(MLPHandle, HTuple(D[i]), HTuple(T[i]));
  }

需要注意点,特征数据和标签都是浮点数精度,换成整型会报错.  这一步也比较简单。

第三步,接下来,我们训练网络模型。

//train_class_mlp( : : MLPHandle, MaxIterations, WeightTolerance, ErrorTolerance : Error, ErrorLog) 

  //Train the MLP
  train_class_mlp(MLPHandle, 200000, 0.001, 0.001, &Error, &ErrorLog);

这一步只有一行代码,对其中几个重要的参数说明一下:如果需要其他参数说明,可以在halcon中查看说明。

MLPHandle: 网络模型的句柄,代表这个模型。

MaxIterations : 训练时候的迭代次数。 本例子设置的是200000.

Error : 最后一次迭代完成的 最小残差。

ErrorLog : 记录其中迭代次日志,从本文的例子来看,只保存有几次的残差日志数据。

第四步   测试估计训练好的模型准确度。


 evaluate_class_mlp (MLPHandle, 3.1415926/6, Y)

测试数据也比较简单, 选取 0, \pi/6, \pi/3, \pi/2, \pi, 进行测试,得到如下结果:

可以看到,预测估算的结果基本与正弦函数测试值一致,说明我们的模型训练还算是成功的。

 

第五步  清除模型。

clear_class_mlp (MLPHandle)

         好了,以上就是 关于人工神经网络模型训练的一个例子,通过这个例子,可以了解到神经网络训练的一般步骤,为后面学习更加复杂的深度学习模型打下一定的基础。

 

 

Halcon拟合系列(4)样条曲线NURBS拟合的相关算子gen_contour_nurbs_xld及官方例程 官方例程: gen_nurbs_interp.hdev create a NURBS curve that interpolates a list of points * Create a NURBS curve that interpolates a list of points. dev_close_window () dev_open_window (0, 0, 512, 512, ... 阅读详情

相关推荐

神经网络学习(一):拟合简单函数

前言 学习用神经网络做点数学上的研究,刚开始摸索,记录一下过程。 今天是用深度学习(Deep Learning)来拟合一些函数(因为多项式的拟合比较简单,直接学习参数就可以了所以就没有必要放出来了),准备设计一个简单神经网络来拟合函数 训练流程 1.定义网络 选择自定义一个简单神经网络,大部分都直接继承父类就行了,其中fc1是输入数据映射到神经网络隐藏层,fc2是隐藏层给出到输出层的数据。 前向传播中我加入了激活函数act,目的是为了更好地映射(其实是实验发现...

lny161224的博客 1万+

人工智能基础概念1:模型、拟合、线性回归、sigmoid函数、逻辑回归

本文介绍了人工智能几个相关的基础概念:模型、拟合、最大似然估计、似然函数、线性回归、sigmoid函数、逻辑回归。

老猿Python 3993

【halcon】轮廓拟合相关算子

先通过edges_sub_pix 找到边缘轮廓,过滤掉一些直线以及短的。将剩下的圆弧轮廓进行联合(更长的圆形轮廓有助于拟合出更准确的圆)从联合后的轮廓中选出最长的,进行拟合圆

songhuangong123的博客 4720

人工智能实验 python tensorflow keras拟合正弦函数,工资预测,公司收益预测

本文实现一个利用python 进行拟合的代码 拟合的意义 对已经发生过的事实的影响因素当作输入, 事件结果当作输出 以此来发现事物之间的规律,来预测 短暂未来中是否会发生某件事情的概率,或者商品估值 实际上 任何 的预测回归问题,都可以通过 tensorflow的深度学习来实现 预测分析 多因素对 工资分配的拟合 图像 公司业务成本对收益的影响拟合曲线 import matplotlib.p...

qq_43373608的博客 1126

人工智能入门实战:过拟合与欠拟合问题解决策略

1.背景介绍 过拟合(overfitting)是指模型在训练数据上表现良好,但在测试数据或其他真实数据上出现较差的性能,原因可能是模型过于复杂,没有充分训练;欠拟合(underfitting)则相反,表示模型在训练数据上表现不佳,甚至无法拟合训练样本。 机器学习中经常会遇到这样的问题,如何有效地控制过拟合和欠拟合的问题是个重要的问题。因此

AI天才研究院 283

MDPI期刊投稿全流程解析:从注册到提交的实用指南

本文详细解析了向MDPI期刊投稿的全过程,从注册账号、完善个人资料、上传稿件,到填写作者信息、推荐审稿人及提交附信等关键步骤。指南强调了使用机构邮箱、遵循期刊模板、认真准备Cover Letter等实用技巧,旨在帮助作者高效、规范地完成投稿,避免常见错误,提升稿件处理效率。

weixin_29250403的博客 924

吴恩达机器学习系列2:代价函数

现在我有一些数据集,就像左图中的叉。 那么我想通过一个一次函数也叫线性回归函数(一条直线)去拟合这些数据,一次函数在没有确定之前,应该是这个样子的:其中 θ0 和 θ1 都是未知量。现在关键就是如何求 θ0 和 θ1 这两个参数。θ0 和 θ1 可以取任意值,怎么取值才能让这条直线最佳地拟合这些数据呢?这就是代价函数登场的时刻了。这就是一次函数的代价函数 J(θ0, θ1)。看到这个复杂的函数有没...

weixin_34194317的博客 219

[终于解决]Ubuntu14.04 32位安装移动网卡(0bda:b711)驱动8188gu tplink-WN726n

大致梳理一下问题解决的流程 首先,在台式机做了双系统,台式机只有一个网线接口,由于项目要求,需要占用网口传输数据,所以用之前买的tplink-WN726n免驱版2.0的移动网卡 【note】免驱版只能在Windows下安装使用,在Ubuntu系统中无法使用,所以,需要另辟蹊径。 找了很多资料,尝试很多方法,有的复杂有的简单,终于解决。 【思路】首先在Ubuntu系统中输入lsusb,查看是否检测到USB网卡设备。然后从Github中复制代码,构建,安装,然后modprobe一下,到前面那步还不行,就再来一步

瑞o 1万+

全连接神经网络拟合余弦函数曲线

全连接神经网络应用与实现

小鱼的小窝 2012

kepserverEX6创建tcpserver接入自有协议(使用ucon接入)

kepserverEX6创建tcpserver接入自有协议

qq_38388813的博客 1631

【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】

1、FMCW叫做调频连续波,调频连续波有步进调频连续波(SFMCW)、线性调频连续波(LFMCW),以及其他非线性调频连续波。LFMCW有锯齿波和三角波等等;锯齿波有恒定调制周期的锯齿波和非恒定周期的锯齿波。Introduction to mmwave sensing:FMCW radars.pdf和The fundamentals of millimeter wave sensors。2、MIMO是多输入多输出(Multiple input Multiple output),也就是多发多收。

【调皮连续波】雷达技术领域知识博主 1万+

学python和halcon哪个好学_Halcon实战之基于MLP多层神经网络的训练学习

MLP多层感知器其实是一种人工神经网络结构,属于非参数估计,可以用于解决分类和回归问题。如果使用“BP算法”也称为BP神经网络,是一种前向结构的人工神经网络,映射一组输入向量到一组输出向量。MLP可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元(处理单元),可以解线性不可分问题。早前已经学习了感知器学习算法,主要通过对那...

weixin_39539563的博客 296

A robust and easy to implement method for IMU calibration without external equipments(IMU标定)

A robust and easy to implement method for IMU calibration without external equipments 1 标定原理1 亲试可用,还有动态演示效果不错。相比商用产品的简易标定流程,该标定方法有以下几点不同: 给出了加速度计和陀螺仪更复杂的模型。 利用Allan方差的定义,标定陀螺仪的偏置。 大量冗余数据,保证最优化收敛。利用数十...

擦擦擦大侠的博客 3948

Halcon实战之基于MLP多层神经网络的训练学习

MLP多层感知器其实是一种人工神经网络结构,属于非参数估计,可以用于解决分类和回归问题。如果使用“BP算法”也称为BP神经网络,是一种前向结构的人工神经网络,映射一组输入向量到一组输出向量。MLP可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元(处理单元),可以解线性不可分问题。早前已经学习了感知器学习算法,主要通过对那...

Gavinmiaoc的博客 9582

视源CVTE嵌入式面试题及参考答案(200+面试题,17万字)

内核模块如何设置? 内核模块是可在运行时动态加载到内核或从内核卸载的代码块。以下是设置内核模块的步骤: 首先,编写内核模块代码。通常使用 C 语言编写,包含必要的头文件,如<linux/init.h>、<linux/module.h>等。在代码中,需要定义模块的初始化函数和清理函数。初始化函数在模块加载时被调用,用于进行模块的初始化工作,如注册设备、分配资源等。清理函数在模块卸载时被调用,用于释放资源、注销设备等。 例如: #include <li

大模型大数据攻城狮的专栏 2204

【手把手教学】YOLOv13的Dilated Reparam Block (DRB) 实现细节与优化技巧

DRB(Dilated Reparam Block)是一种创新的卷积神经网络模块,通过多分支膨胀卷积和结构重参数化技术显著提升模型性能。训练阶段使用不同膨胀率和卷积核大小的并行分支增强特征提取能力,推理阶段则将这些分支融合为单一高效的大核卷积。该方法成功解决了大核卷积的计算复杂度和训练困难等问题,在保持推理效率的同时,使模型准确率提升8.56%,mAP暴涨12.33%。DRB的核心在于训练时复杂、推理时简单的设计哲学,以及膨胀卷积的多尺度特征提取能力,为CNN性能优化提供了新的思路。

FJN110的博客 556

别再手动调阈值了!用Halcon的MLP分类器搞定复杂场景下的颜色识别(附完整代码)

本文详细介绍了Halcon MLP分类器在工业视觉颜色检测中的应用,通过自动学习颜色特征,有效解决复杂光照和背景干扰问题。文章提供了完整的代码示例和实战指南,帮助工程师快速实现高精度的颜色识别,提升工业自动化检测效率。

weixin_30325971的博客 428

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

《HALCON机器视觉与算法原理编程实践》第12章 图像分类-学习笔记

文章目录12.1 分类器12.1.1 分类的基础知识12.1.2 MLP分类器12.1.3 SVN分类器12.1.4 GMM分类器12.1.5 k-NN分类器12.1.6 选择合适的分类器12.1.7 选择合适的特征12.1.8 选择合适的训练样本12.2 特征的分类12.2.1 一般步骤12.2.2 MLP分类器12.2.3 SVM分类器12.2.4 GMM分类器12.2.5 k-NN分类器12.3 光学字符识别12.3.1 一般步骤12.3.2 OCR实例 图像分类,根据各自在图像信息中所反映的不同特征

超级大洋葱的博客 2815

IDEA的使用指南

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

蓝牙模块HM-10手册

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

论文笔记

基于机械手的双目视觉定位抓取研究——袁仁辉-2016 主要包括研究内容为基于改进OpenCv的单目摄像头标定和基于HALCON的单目摄像头标定,还有双目视觉摄像头的标定方法和系统实现。 图像信息的获取可以从单目摄像机、双目摄像机或多目摄像机中获取,并且图像的获取主要是通过摄像机中的CCD或CMOS感光元件获得,这些感光元件可以将光信号转换为图像所需要的电信号,然后经过芯片处理电信号,最终将模拟...

qq_38280218的博客 612

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

人工智能算法工程师(中级)课程14-神经网络的优化与设计之拟合问题及优化与代码详解

在机器学习领域,拟合问题是指通过训练数据找到最佳模型参数,使得模型在未知数据上的表现尽可能好。拟合问题主要包括欠拟合和过拟合两种现象。

微学AI的博客 1428

神经网络拟合函数曲线--pytorch

之前看了很多神经网络的算法,但是一直没有实操作过,加上对pytorch 不太熟悉,趁此机会熟悉一下。

KJNKJNKJN的博客 2342

使用matlab进行人工神经网络拟合

已知函数 z=sin(xy),采用人工神经网络实现该函数的拟合: 定义: -π≤x≤π, -π≤y≤π,在 x, y 定义域中等距各取 30 各点,绘制 z=sin(xy)图像; 将上述数据集随机拆分成训练样本集(70%)、校验数据集(15%)、测试数据集( 15%)进行人工神经网络拟合,将拟合结果和原始函数绘制在同一张图中。 (1)一张图中首先z=sin(xy)是三维图像,三维图像绘制不能简单的将x与y相乘。将使用meshgrid函数。 具体代码如下: 结果...

搞电机的博客 1万+

pytorch拟合sin函数

pytorch非线性回归调参分享 前期研究过程中获得了一个非常奇怪的函数图像,打算用多层感知机(MLP)对函数图像进行建模仿真。前期相关研究中,MLP表现并不好,当时把这个方案已经放弃掉了。经过查阅相关的论文,发现原理上MLP能够拟合任意函数。这段时间重新写了一遍MLP网络,经过参数、增加训练次数、GPU加速,现在能够对函数较好拟合。现将参数调整经验分享一下。 目标功能:对三个周期的sin(x)函数进行拟合 训练效果: 这个图像中,蓝色为数据集,红色为对其拟合的训练结果。Loss表示两个函数之间的均方根误差

weixin_41582053的博客 4365

神经网络为什么可以(理论上)拟合任何函数?

你知道y=kx+b,你就知道了为什么神经网络可以(理论上)拟合任何函数。

Antai_ZHU的博客 3640

神经网络拟合函数

一个简单的神经网络模型,拟合了一个线性方程

kinkinhe的博客 1677
上一篇: 比List Box和List control好的控件——网格控件(GridCtrl)
下一篇: visionprocesss
英语饲养员
博客等级 码龄9年 7粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值