【问题标题】:Why can't Matlab R2010 load neural network objects from R2007?为什么 Matlab R2010 不能从 R2007 加载神经网络对象?
【发布时间】:2011-11-21 19:04:55
【问题描述】:

我有一个神经网络,已在 Matlab 2007 中保存为 .mat 文件。

我正在尝试从带有load filename.mat 的文件中加载神经网络。 这适用于 R2007b 和 R2008 版本,但是当我尝试在 R2010b 中加载时,我收到以下消息:

警告:运行类的时出错 加载对象方法。从加载的对象 MAT 文件是 loadobj 之前对象的副本 方法已运行。其余变量也是 从 MAT 文件加载。
遇到的错误是:
引用不存在的字段“名称”

奇怪的是,它看起来好像包含神经网络的变量存在,但它不能正常工作。在 R2010 中,没有使用神经网络的函数。

有没有人遇到过类似的问题?如何保存神经网络以使其与 Matlab R2010 兼容?
或者更好的是,我怎样才能在 Matlab 2010 中正确加载它?

【问题讨论】:

    标签: matlab variables operator-overloading neural-network matlab-load


    【解决方案1】:

    是的,根据这篇 MATLAB Central 的帖子,似乎其他人遇到了这个问题(神经网络未在 MATLAB 2010 中加载),其中 Andreas Goser(Mathworks 的技术支持经理)建议:

    如果您以后发现此问题,请contact Technical Support 并参考解决方案 1-EGNM3S。

    显然您需要技术支持可以提供的“固定 net.m 文件”。我没有测试过,因为我自己没有这个问题。

    仔细阅读错误消息,我会说您看到加载的变量包含存储在 .MAT 文件中的“原始”对象,很可能是一个结构。您可以运行whos myvarname 进行检查。要将这个结构“恢复”成一个对象,它需要由重载的 loadobj 函数处理其对象类型,通常由 MATLAB 的 load 函数自动调用。在这种情况下,R2010 中神经网络对象附带的loadobj 似乎不能完全向后兼容...

    【讨论】:

      【解决方案2】:

      我怀疑神经网络的底层对象自 2007b 以来发生了变化,并且 R2010b 中的定义与 MAT 文件中存储的数据不兼容。

      我建议遵循乔纳斯的回答。或者,您可以尝试加载它并在中间的 MATLAB 版本中重新保存它,或者保存神经网络对象中的数据并在 R2010b 中重建它。

      【讨论】:

        猜你喜欢
        • 2013-05-12
        • 2014-01-15
        • 2015-12-03
        • 2011-08-23
        • 1970-01-01
        • 2011-08-17
        • 2018-01-26
        • 2010-11-20
        • 2011-07-31
        相关资源
        最近更新 更多