天天看點

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

解決方案一:

網上資料說造成這個錯誤的原因是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

先檢視版本,用 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

分析的大緻原因也是keras的版本問題,采取的解決方案就是用 saving來取代代碼中的 topology,具體如下:

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

歡迎交流,我是ciky-Y

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

繼續閱讀