我有一个神经网络,我已将其保存到Matlab 2007中的.mat文件中。
我正在尝试使用load filename.mat
从文件加载神经网络。
这适用于版本R2007b和R2008,但当我尝试加载R2010b时,我收到以下消息:
警告:运行类时发生错误 loadobj方法。从中加载的对象 MAT文件是loadobj之前的对象的副本 方法运行。其余的变量也是 从MAT文件加载。
遇到的错误是:
引用不存在的字段'name'
奇怪的是,似乎存在神经网络的变量存在,但它无法正常工作。使用神经网络的所有功能都不适用于R2010。
有没有人遇到过类似的问题?如何保存神经网络,使其与Matlab R2010兼容? 或者甚至更好,我怎样才能在Matlab 2010中正确加载它?
答案 0 :(得分:4)
是,似乎其他人遇到过这个问题(神经网络没有在MATLAB 2010中加载),根据这篇MATLAB Central帖子,其中Andreas Goser(Mathworks的技术支持经理) )建议:
如果您将来看到此问题,请contact Technical Support参考解决方案1-EGNM3S。
显然你需要“固定的net.m文件”,技术支持可以提供。我没有测试过,因为我自己没有这个问题。
仔细阅读错误消息,我会说你看到加载的变量包含存储在.MAT文件中的“raw”对象,很可能是一个struct。您可以运行whos myvarname
进行检查。要将此结构“恢复”为对象,需要由重载的loadobj
函数处理其对象类型,该函数通常由MATLAB的load
函数自动调用。在这种情况下,R2010中神经网络对象附带的loadobj
似乎不完全向后兼容......
答案 1 :(得分:1)
我怀疑神经网络的基础对象自2007b以来发生了变化,R2010b中的定义与MAT文件中存储的数据不兼容。
我建议按照Jonas的回答。或者,您可以尝试加载它并将其重新保存在中间MATLAB版本中,或者保存神经网络对象中的数据并在R2010b中重建它。