在使用matlab训练多输入多输出神经网络的时候发现了几个问题,在此进行备注:

几个常见的matlab神经网络函数:newff(),train(),trainNetwork()
输入方式都差不多,如果不会可以直接在matlab命令行输入doc +函数名称进行查询。

>> doc train  //打开train函数说明书

他们的区别主要如下:
train主要用于训练浅层神经网络,(但是我CNN也用这个做了好像是可以,但是不会自动跳出来工具箱);
trainNetwork用于深度学习(用到卷积、LSTM神经网络);
Newff()是用来搭建BP神经网络的,需要注意优化器只能选择梯度下降或者LM之类的,不能设置ADAM。

需要特别注意如果使用trainNetwork函数是默认使用GPU对神经网络进行训练,如果使用其他函数需要自己专门去设置让matlab中的计算在GPU中进行,不然盲目用matlab跑会直接电脑卡死(泪

下面是一些常见的训练参数

net.trainparam.goal       = 0.00001;     % 训练目标:均方误差低于0.0001
net.trainparam.show       = 400;         % 每训练400次展示一次结果
net.trainparam.epochs     = 15000;       % 最大训练次数:15000.
net.divideParam.trainRatio= 0.7;         % 用于训练的数据比例
net.divideParam.valRatio  = 0.15 ;       % 用于验证过拟合的数据比例
net.divideParam.testRatio = 0.15;        % 用于比例
net.trainparam.max_fail   = 6;           % 过拟合验证失败次数

总的来说,matlab搭建简单的神经网络还是很方便的。后续遇到了问题我再补充吧,有在做多输入多输出的可以多多交流

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐