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,所以出现这个问题。

 

 

The `weights` argument should be either random initialization or pre-training on ImageNet_第1张图片

解决方案:

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

vgg16_model = VGG16(weights=None)

 

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

vgg16_model = VGG16(weights='imagenet')

The `weights` argument should be either random initialization or pre-training on ImageNet_第2张图片

 

你可能感兴趣的:(BUG集合)