MATLAB-神经网络中的梯度从NaN开始?

MATLAB-神经网络中的梯度从NaN开始?,matlab,neural-network,Matlab,Neural Network,我试图在Matlab2011中使用神经网络工具 我遇到了一个非常奇怪的问题 我只是用神经网络的图形用户界面来提供我的输入和一切 当神经网络初始化时,它的梯度是NaN 神经网络在1次迭代中停止。(我猜这是因为梯度为NaN) 就我对NN的理解而言,梯度不应该是NaN 我确实用脚本模式检查了一些东西 隐藏层大小为25。(试图改变这个,但没有效果。没想到会这样,只是以防万一。) 正在使用trainlm的默认功能 将其设置为80/10/10,用于培训/验证/测试。(也在玩这个。) 最大停止时间设置为100

我试图在Matlab2011中使用神经网络工具

我遇到了一个非常奇怪的问题

我只是用神经网络的图形用户界面来提供我的输入和一切

当神经网络初始化时,它的梯度是NaN

神经网络在1次迭代中停止。(我猜这是因为梯度为NaN)

就我对NN的理解而言,梯度不应该是NaN

我确实用脚本模式检查了一些东西

隐藏层大小为25。(试图改变这个,但没有效果。没想到会这样,只是以防万一。)

正在使用trainlm的默认功能

将其设置为80/10/10,用于培训/验证/测试。(也在玩这个。)

最大停止时间设置为1000。 所需的验证迭代(对于连续检查,默认设置为6)


你知道为什么我的梯度是NaN吗?非常感谢您的帮助

检查输入数据中是否没有
NaN

any(isnan(inputData(:)))

还要确保预处理步骤(例如数据规范化)不会引入
NaN
值(例如除以零)

是的。但这真的重要吗?是的,这很重要,你看
NaN
倾向于传播:
NaN*rand(10,1)
哦,好的。其次,我很抱歉我是MATLAB的新手,但我目前正在从一个文件中读取一些值,计算一些统计值,然后使用GUI工具。因此,当您看到预处理时,您是指我编写的任何代码,还是我能够检查的工具中是否有一些内部规范化?一些处理缺失数据(NaN)的常用方法:替换为平均值、插补,…@Sylar:主要是您的代码(老实说,我不记得NN是否在内部进行了一些规范化,但我对此表示怀疑。文档会肯定是否有)考虑0除法和inf乘法