[英]I tried to fine-tune VGG16 on my dataset, but met the OSError about loading VGG16 weights
I tried to fine-tune VGG16 on my dataset, but stuck on trouble of opening h5py file of VGG16-weights.我试图在我的数据集上微调 VGG16,但遇到了打开 VGG16 权重的 h5py 文件的麻烦。 I don't understand what does this error mean about:我不明白这个错误是什么意思:
OSError: Unable to open file (Truncated file: eof = 221184, sblock->base_addr = 0, stored_eoa = 58889256)
Does anyone know how to fix it?有谁知道如何解决它? thanks谢谢
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-3-6059faca8ed7> in <module>()
9 K.set_session(sess)
10 input_tensor=Input(shape=(h,w,ch))
---> 11 base_model=VGG16(input_tensor=input_tensor, include_top=False)
12 x_img=base_model.output
13 x_img=AveragePooling2D((7,7))(x_img)
/Users/simin/anaconda/envs/IntroToTensorFlow/lib/python3.5/site-packages/keras/applications/vgg16.py in VGG16(include_top, weights, input_tensor)
144 TF_WEIGHTS_PATH_NO_TOP,
145 cache_subdir='models')
--> 146 model.load_weights(weights_path)
147 if K.backend() == 'theano':
148 convert_all_kernels_in_model(model)
/Users/simin/anaconda/envs/IntroToTensorFlow/lib/python3.5/site-packages/keras/engine/topology.py in load_weights(self, filepath, by_name)
2492 '''
2493 import h5py
-> 2494 f = h5py.File(filepath, mode='r')
2495 if 'layer_names' not in f.attrs and 'model_weights' in f:
2496 f = f['model_weights']
/Users/simin/anaconda/envs/IntroToTensorFlow/lib/python3.5/site-packages/h5py/_hl/files.py in __init__(self, name, mode, driver, libver, userblock_size, swmr, **kwds)
270
271 fapl = make_fapl(driver, libver, **kwds)
--> 272 fid = make_fid(name, mode, userblock_size, fapl, swmr=swmr)
273
274 if swmr_support:
/Users/simin/anaconda/envs/IntroToTensorFlow/lib/python3.5/site-packages/h5py/_hl/files.py in make_fid(name, mode, userblock_size, fapl, fcpl, swmr)
90 if swmr and swmr_support:
91 flags |= h5f.ACC_SWMR_READ
---> 92 fid = h5f.open(name, flags, fapl=fapl)
93 elif mode == 'r+':
94 fid = h5f.open(name, h5f.ACC_RDWR, fapl=fapl)
h5py/_objects.pyx in h5py._objects.with_phil.wrapper (/Users/ilan/minonda/conda-bld/work/h5py/_objects.c:2696)()
h5py/_objects.pyx in h5py._objects.with_phil.wrapper (/Users/ilan/minonda/conda-bld/work/h5py/_objects.c:2654)()
h5py/h5f.pyx in h5py.h5f.open (/Users/ilan/minonda/conda-bld/work/h5py/h5f.c:1942)()
OSError: Unable to open file (Truncated file: eof = 221184, sblock->base_addr = 0, stored_eoa = 58889256)
There is a possibility that the download of the file has failed.有可能文件下载失败。
Replacing a file that failed to open with the following file may resolve it.将无法打开的文件替换为以下文件可能会解决该问题。 https://github.com/fchollet/deep-learning-models/releases https://github.com/fchollet/deep-learning-models/releases
My situation, That file was in the following path.我的情况,该文件位于以下路径中。 C:\\Users\\MyName\\.keras\\models\\vgg16_weights_tf_dim_ordering_tf_kernels.h5 C:\\Users\\MyName\\.keras\\models\\vgg16_weights_tf_dim_ordering_tf_kernels.h5
I replaced it and solved it.我更换了它并解决了它。
because the last time you file download is failed.but the bad file remains in the filepath.因为上次文件下载失败。但坏文件仍保留在文件路径中。 so you have to find the bad file.所以你必须找到坏文件。 maybe u can use “find / -name 'vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5'” to find the path in unix-system.也许你可以使用“find / -name 'vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5'”来查找unix系统中的路径。 then delete it try agian!good luck!!然后删除它再试一次!祝你好运!!
It is probably because the file download failed or the file is corrupt.可能是因为文件下载失败或文件已损坏。
I found those corrupted files in /tmp/.keras/models/vggface/
.我在/tmp/.keras/models/vggface/
发现了那些损坏的文件。
My system is Ubuntu 20.04.我的系统是 Ubuntu 20.04。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.