MATLAB-神经网络中的梯度从NaN开始?
我试图在Matlab2011中使用神经网络工具 我遇到了一个非常奇怪的问题 我只是用神经网络的图形用户界面来提供我的输入和一切 当神经网络初始化时,它的梯度是NaN 神经网络在1次迭代中停止。(我猜这是因为梯度为NaN) 就我对NN的理解而言,梯度不应该是NaN 我确实用脚本模式检查了一些东西 隐藏层大小为25。(试图改变这个,但没有效果。没想到会这样,只是以防万一。) 正在使用trainlm的默认功能 将其设置为80/10/10,用于培训/验证/测试。(也在玩这个。) 最大停止时间设置为1000。 所需的验证迭代(对于连续检查,默认设置为6)MATLAB-神经网络中的梯度从NaN开始?,matlab,neural-network,Matlab,Neural Network,我试图在Matlab2011中使用神经网络工具 我遇到了一个非常奇怪的问题 我只是用神经网络的图形用户界面来提供我的输入和一切 当神经网络初始化时,它的梯度是NaN 神经网络在1次迭代中停止。(我猜这是因为梯度为NaN) 就我对NN的理解而言,梯度不应该是NaN 我确实用脚本模式检查了一些东西 隐藏层大小为25。(试图改变这个,但没有效果。没想到会这样,只是以防万一。) 正在使用trainlm的默认功能 将其设置为80/10/10,用于培训/验证/测试。(也在玩这个。) 最大停止时间设置为100
你知道为什么我的梯度是NaN吗?非常感谢您的帮助 检查输入数据中是否没有
NaN
:
any(isnan(inputData(:)))
还要确保预处理步骤(例如数据规范化)不会引入
NaN
值(例如除以零)是的。但这真的重要吗?是的,这很重要,你看NaN
倾向于传播:NaN*rand(10,1)
哦,好的。其次,我很抱歉我是MATLAB的新手,但我目前正在从一个文件中读取一些值,计算一些统计值,然后使用GUI工具。因此,当您看到预处理时,您是指我编写的任何代码,还是我能够检查的工具中是否有一些内部规范化?一些处理缺失数据(NaN)的常用方法:替换为平均值、插补,…@Sylar:主要是您的代码(老实说,我不记得NN是否在内部进行了一些规范化,但我对此表示怀疑。文档会肯定是否有)考虑0除法和inf乘法