当我尝试使用keras
'model.load_weights
I get OSError: Unable to open file (Truncated file: eof = 41091072)
加载权重时,这是完整的错误跟踪:
model.load_weights(get_file(fname, "E:/Work/Practical\ Deep\ Learning\ Course/my\ notebooks/lesson1/vgg16.h5", cache_subdir='models'))
141
142
C:\....\Anaconda3\envs\tensorflow\lib\site-packages\keras\engine\topology.py in load_weights(self, filepath, by_name)
2700 """
2701 import h5py
-> 2702 f = h5py.File(filepath, mode='r')
2703 if 'layer_names' not in f.attrs and 'model_weights' in f:
2704 f = f['model_weights']
C:\....\Anaconda3\envs\tensorflow\lib\site-packages\h5py\_hl\files.py in __init__(self, name, mode, driver, libver, userblock_size, swmr, **kwds)
269
270 fapl = make_fapl(driver, libver, **kwds)
--> 271 fid = make_fid(name, mode, userblock_size, fapl, swmr=swmr)
272
273 if swmr_support:
C:\....\Anaconda3\envs\tensorflow\lib\site-packages\h5py\_hl\files.py in make_fid(name, mode, userblock_size, fapl, fcpl, swmr)
99 if swmr and swmr_support:
100 flags |= h5f.ACC_SWMR_READ
--> 101 fid = h5f.open(name, flags, fapl=fapl)
102 elif mode == 'r+':
103 fid = h5f.open(name, h5f.ACC_RDWR, fapl=fapl)
h5py\_objects.pyx in h5py._objects.with_phil.wrapper (D:\Build\h5py\h5py-2.7.0\h5py\_objects.c:2853)()
h5py\_objects.pyx in h5py._objects.with_phil.wrapper (D:\Build\h5py\h5py-2.7.0\h5py\_objects.c:2811)()
h5py\h5f.pyx in h5py.h5f.open (D:\Build\h5py\h5py-2.7.0\h5py\h5f.c:2130)()
OSError: Unable to open file (Truncated file: eof = 41091072, sblock->base_addr = 0, stored_eoa = 553482496)
我该如何处理?
答案 0 :(得分:1)
我通过在加载 h5
文件之前添加此代码解决了这个问题。
from keras import models
model = models.Sequential()
答案 1 :(得分:1)
此错误表示无论出于何种原因,存储在文件中的模型权重都无法加载到您生成的模型对象中。此错误有多种潜在原因。
没有创建模型对象来加载权重。正如 Frightera 所说,这个错误可能是由于没有首先创建模型对象来映射权重。当这是原因时,如果权重来自序列模型,则可以通过使用以下代码创建模型对象来修复错误:
从 keras 导入模型
模型 = 模型.Sequential()
模型对象结构与您尝试加载的权重结构不匹配。此错误也可能是由于尝试将模型权重加载到 没有相同数量和类型的模型 保存权重的超参数。要检查这一点,请确保模型中的超参数数量与保存的权重匹配。
保存的权重已损坏。 正如用户 qed 所指出的,您尝试加载到模型中的权重文件可能已损坏或未完全下载。尝试重新下载权重,如果失败,请考虑重新训练模型。
这绝不是一个详尽的清单。如果人们对潜在原因和解决此错误的方法提出了更多想法,请对此答案发表评论,我会尝试将其添加到此答案中。
答案 2 :(得分:-1)
我的是Windows10。这解决了我的错误- 走这条路 C:\ Users \ you_name \ .keras \ models \ vggface 并删除h5文件,然后重新运行代码。
答案 3 :(得分:-2)
哦!我刚找到路,删除训练前模型“ **。h5”,然后重新下载。