The `weights` argument should be either random initialization or pre-training on ImageNet

首先看一下我的源码:

from keras.applications.vgg16 import VGG16
vgg16_weights = '../Dataset/Weight_for_Cats_VS_Dogs/vgg16_weights_tf_dim_ordering_tf_kernels.h5'
vgg16_model = VGG16(weights=vgg16_weights)

报错原因:

却发现报了这个错,在网上也没有找到解决的方案。偶然看到keras的源码,以及报错的提示明白了,报错的原因是我从网上download的权重不是针对imagenet,所以出现这个问题。

解决方案:

解决方案一: 直接把上面加载模型的设置成None不加载相应的权重即可

vgg16_model = VGG16(weights=None)

解决方案二: 直接把上面加载模型的设置成imagenet即可,是keras把imagenet相关的权重放在了服务器上,如果设置为imagenet的话,直接在服务器上读取下载到本地上。

vgg16_model = VGG16(weights='imagenet')

猜你喜欢

转载自blog.csdn.net/qq_41776781/article/details/94550179
今日推荐