【问题标题】:Dimension error in MATLAB's Neural Network Toolbox (NNtool) target matrixMATLAB 的神经网络工具箱 (NNtool) 目标矩阵中的尺寸错误
【发布时间】:2011-11-23 16:43:42
【问题描述】:

我正在探索 MATLAB 的 Neural Network Toolbox (NNtool),我遇到了目标矩阵维度不兼容的问题。确切的错误信息是:

com.mathworks.jmi.MatlabException:等号右侧的输出数量不足以满足分配要求。

让我详细解释一下。我有一个图像,其中有一些椭圆图像,我想使用神经网络估计椭圆参数,为此,我有包含所有目标值的训练数据。因此,我将图像作为输入(我首先读取图像,将其转换为mat2gray() 格式,然后将其导入 NNtool),然后设置目标矩阵(我的目标矩阵包含两个值,因为我的神经网络将输出两个值,我尝试以两种方式格式化输出,[0.5 0.9] 和 [0.5; 0.9],但我仍然遇到相同的错误。

我还尝试过保持输入矩阵和目标矩阵的列数相同。我将输入矩阵设为 [2304,1](我有一个 48*48 的图像,等于 2304),我的目标矩阵是 [2,1] 维度,但同样的错误发生了。在搜索时,我读到这是某种内存不足错误。我不确定这是否正确。是这样吗?

对于这个神经网络,我必须训练 40,000 张图像。每张图片为 48*48 尺寸。如何将这么多图像输入到 NNtool 中?

【问题讨论】:

  • 请在此处发布确切的代码和您的 matlab 版本,否则无法验证您在做什么。谢谢!
  • 这是在 Win7 上运行的 matlab R2009a 64 位版本。就代码而言,根本没有代码,它是nntool,这里几乎没有涉及任何代码,除了输入到nntool的输入矩阵和目标矩阵。
  • 输入 = 48*48 矩阵目标 = [0.5; 0.8](也试过不用分号,没用)然后我在nntool中导入这两个,剩下的都是用GUI完成的
  • 你没有说你用 nntool 创建了什么样的网络。因此不可能复制您的问题。
  • 对不起,信息不完整,给你。网络类型 = 前馈反馈道具;训练函数 = TrainLIM;层数 = 2;转移函数 = TANSIG;

标签: image-processing neural-network matlab nntool


【解决方案1】:

来自http://www.mathworks.ch/support/solutions/en/data/1-BBJCDC/index.html

此增强功能已包含在版本 2010b (R2010b) 中。对于以前的产品版本,请阅读以下任何可能的解决方法:

错误信息: ==> nntool 中的错误在 681 [errmsg,errid] = me.message; 是由于之前在 TRY CATCH 块中调用 TRAIN 期间发生的内存不足错误。在神经网络工具箱 6.0.3 (R2009b) 中的 NNTOOL 中不提供显示标准内存不足错误消息的功能。

作为一种解决方法,减少大量输入,因为它们在计算训练步骤时会生成巨大的内部临时矩阵。

【讨论】:

  • 好吧 - 我能减少的只是隐藏神经元的数量,不能减少图像尺寸,这会搞砸我的实验。作为一个实验,我也尝试了 24*24 图像,但没有运气。
  • 你试过只使用 10 张图片吗?如果您真的总是遇到内存问题,那么我们无能为力。您只能减少图像数量、图像大小或神经网络维度。
  • 这只是一个 48*48 的图像,我正在输入这个网络。
猜你喜欢
  • 2011-07-08
  • 1970-01-01
  • 2015-06-03
  • 2014-01-02
  • 1970-01-01
  • 1970-01-01
  • 2014-04-17
  • 2013-09-07
  • 2013-01-13
相关资源
最近更新 更多