问题
在迁移学习加载bert预训练模型做特征抽取,训练fc层后save模型,在另外的文件load模型报如题的错误。
原因
在训练文件下直接load可以解决,但是换另外一个文件无法load,是因为在train文件中定义的自己的网络类,而在另外的文件中直接load该模型系统无法识别非标准的自定义模型类。
解决方案1:
通过将类定义放在load模型的文件中,在文件加载时可以识别自定义类,从而加载该模型。
解决方案2:
通过from xxx(类定义文件) import xxx(类名称)的形式来导入自定义类,不需要声明该类的实例对象,只需要导入即可将模型加载,然后成功load。