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

转载请注明转自:https://blog.csdn.net/c20081052/article/details/80745969
在windows下运行tensorflow-keras 版的mask-rcnn时遇到如题所示的错误。
声明我的机子是:win10 + 64位 + Anaconda3 + Python3.5

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

AttributeError:module 'keras.engine.topology' has no attribute 'load_weights_from_hdf5_group_by_name_第1张图片


解决方案一:

网上资料说造成这个错误的原因是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,操作如下——

AttributeError:module 'keras.engine.topology' has no attribute 'load_weights_from_hdf5_group_by_name_第2张图片

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

解决方案二:
这个问题在mask R-CNN的issue中有提到,由farzadzare提出:
AttributeError:module 'keras.engine.topology' has no attribute 'load_weights_from_hdf5_group_by_name_第3张图片

分析的大致原因也是keras的版本问题,采取的解决方案就是用 saving来取代代码中的 topology,具体如下:
AttributeError:module 'keras.engine.topology' has no attribute 'load_weights_from_hdf5_group_by_name_第4张图片

欢迎交流,我是ciky-Y

参考:
https://blog.csdn.net/u014513323/article/details/80659352
https://github.com/matterport/Mask_RCNN/issues/694

你可能感兴趣的:(TensorFlow,计算机视觉)