KeyError:“无法打开对象(错误的 B 树签名)”

LeB*_*hen 5 python-3.x tensorflow

当我运行基于 Mask R-CNN 的项目时,我遇到了这个问题。配置为 cuda=9.0 cudnn=7.1.4 tensorflow-gpu=1.9.0 和 keras-gpu=2.2.4 但是,当这个程序在 Windows10 中运行时。它遇到了上述问题,更详细地描述如下:

 Traceback (most recent call last):

   File "<ipython-input-5-e5959b6300f2>", line 1, in <module>
    runfile('D:/Mask R-CNN/test.py', wdir='D:/Mask R-CNN')

   File "D:\Anaconda3\Anaconda3-5.3.0\envs\cv2\lib\site- 
    packages\spyder_kernels\customize\spydercustomize.py", line 704, in runfile
    execfile(filename, namespace)

   File "D:\Anaconda3\Anaconda3-5.3.0\envs\cv2\lib\site- 
    packages\spyder_kernels\customize\spydercustomize.py", line 108, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

   File "D:/Mask R-CNN/test.py", line 49, in <module>
    model.load_weights(COCO_MODEL_PATH, by_name=True, exclude=[ 
   "mrcnn_class_logits", "mrcnn_bbox_fc"])

   File "D:\Mask R-CNN\mrcnn\model.py", line 2131, in load_weights
    saving.load_weights_from_hdf5_group_by_name(f, layers)

   File "D:\Anaconda3\Anaconda3-5.3.0\envs\cv2\lib\site- 
    packages\keras\engine\saving.py", line 1104, in 
    load_weights_from_hdf5_group_by_name
    g = f[name]

   File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper

   File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper

   File "D:\Anaconda3\Anaconda3-5.3.0\envs\cv2\lib\site- 
    packages\h5py\_hl\group.py", line 177, in __getitem__
    oid = h5o.open(self.id, self._e(name), lapl=self._lapl)

   File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper

   File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper

   File "h5py\h5o.pyx", line 190, in h5py.h5o.open

   KeyError: 'Unable to open object (wrong B-tree signature)'
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我吗?求救!

don*_*joe 0

model.load_weights使用 h5py 从保存文件加载权重。该库在读取文件时出现问题。至少有两种可能的解释:

  1. 文件已损坏。尝试重新下载或者使用程序查看hdf5-Files进行检查。当我遇到这个错误时,这对我有用。

  2. 您安装的 h5py 版本与写入文件的版本不兼容。看这里