为什么可以';t Matlab R2010从R2007加载神经网络对象?
我有一个神经网络,我已经保存到Matlab2007中的.mat文件中 我正试图从带有为什么可以';t Matlab R2010从R2007加载神经网络对象?,matlab,variables,operator-overloading,neural-network,matlab-load,Matlab,Variables,Operator Overloading,Neural Network,Matlab Load,我有一个神经网络,我已经保存到Matlab2007中的.mat文件中 我正试图从带有load filename.mat的文件中加载神经网络。 这在R2007b和R2008版本中非常有效,但当我尝试加载R2010b时,我得到以下消息: 警告:运行类的 loadobj方法。从中加载的对象 MAT文件是loadobj之前对象的副本 方法已运行。其余的变量也被忽略了 从MAT文件加载。 遇到的错误是: 对不存在字段“name”的引用 奇怪的是,它看起来好像持有神经网络的变量存在,但它不能正常工作。使用神
load filename.mat
的文件中加载神经网络。
这在R2007b和R2008版本中非常有效,但当我尝试加载R2010b时,我得到以下消息:
警告:运行类的
loadobj方法。从中加载的对象
MAT文件是loadobj之前对象的副本
方法已运行。其余的变量也被忽略了
从MAT文件加载。遇到的错误是:
对不存在字段“name”的引用 奇怪的是,它看起来好像持有神经网络的变量存在,但它不能正常工作。使用神经网络的函数在R2010中都不起作用 有没有人遇到过类似的问题?如何保存神经网络,使其与Matlab R2010兼容?
或者更好的是,如何在Matlab 2010中正确加载它?是的,根据这篇文章,似乎其他人也遇到了这个问题(Matlab 2010中没有加载神经网络),Andreas Goser(Mathworks的技术支持经理)在文章中建议: 如果您将来看到此问题,请参阅解决方案1-EGNM3S 显然,您需要一个技术支持可以提供的“fixed net.m文件”。我没有测试过,因为我自己没有这个问题
仔细阅读错误消息,我会说您看到加载的变量包含存储在.MAT文件中的“raw”对象,很可能是一个struct。您可以运行
whosmyvarname
进行检查。要将此结构“恢复”为对象,需要通过重载的loadobj
函数对其对象类型进行处理,该函数通常由MATLAB的load
函数自动调用。在这种情况下,R2010中神经元网络对象附带的loadobj
似乎不完全向后兼容…我怀疑神经网络的底层对象自2007b以来发生了变化,R2010b中的定义与MAT文件中存储的数据不兼容
我建议遵循乔纳斯的答案。或者,您可以尝试加载它并将其重新保存在MATLAB中间版本中,或者保存来自神经网络对象的数据并在R2010b中重建它