AttributeError:module 'keras.engine.topology' has no attribute 'load_weights_from_hdf

2021-12-01 16:35:37 浏览数 (1)

转载请注明转自:https://cloud.tencent.com/developer/article/1908929

在windows下运行tensorflow-keras 版的mask-rcnn时遇到如题所示的错误。

声明我的机子是:win10 64位 Anaconda3 Python3.5

错误发生在运行Mask_RCNN-mastersamples中的demo.ipynb文件的如下行:

解决方案一:

网上资料说造成这个错误的原因是keras版本不对,在mask-rcnn仓库文件中的requirement.txt中提到要求安装的keras>=2.0.8

load_weights_from_hdf5_group_by_name只在keras2.0.8的版本中出现,不会出现在最新的keras版本中出现。我查看了下当前安装的keras版本,是2.2.0,按照建议,将其更改到2.0.8,操作如下——

先查看版本,用 pip uninstall keras 卸载,在用pip install keras==2.0.8 安装指定版本。重新安装后再执行demo.ipynb那行代码,然后立马尝试运行Mask_RCNN-mastersamples中的demo.ipynb文件,问题没有解决啊!!!然后啥也没再继续,第二天打算尝试解决方案二,奇怪的是再次运行那个demo.ipynb的时候居然成功了~,什么情况?!

解决方案二:

这个问题在mask R-CNN的issue中有提到,由farzadzare提出:

分析的大致原因也是keras的版本问题,采取的解决方案就是用 saving来取代代码中的 topology,具体如下:

欢迎交流,我是ciky-Y

参考:

https://blog.csdn.net/u014513323/article/details/80659352

https://github.com/matterport/Mask_RCNN/issues/694

0 人点赞