参考文章
1.使用vgg16模型进行图片预测
2.keras系列︱Application中五款已训练模型、VGG16框架(Sequential式、Model式)解读(二)
3.使用keras预训练VGG16模型参数分类图像并提取特征
在使用这篇文章进行实验时,出现错误
ValueError: Negative dimension size caused by subtracting 2 from 1 for 'max_pooling2d_8/MaxPool' (op: 'MaxPool') with input shapes: [?,1,112,128].
错误原因:
input_shape=(3,224, 224)是theano的写法,而tensorflow需要写出:(224,224,3);
需要修改Input_size。也就是”channels_last”和”channels_first”数据格式的问题。
同理,用文章4(http://weibo.com/p/230418d76227260102wy4s)也有这个问题。
错误的解释文章(keras系列︱图像多分类训练与利用bottleneck features进行微调(三))
解决方法:
注意TensorFlow的数据格式问题,将input_shape=(3,height, width)换成input_shape=(height, width,3)格式
4.基于VGG-16深度学习预训练权重的图像类别预测
在导入权重文件时,报错
KeyError: "Can't open attribute (can't locate attribute: 'layer_names')"
错误原因:
没有科学上网导致的权值文件下载链接不可访问
解释文章 错误:KeyError: "Can't open attribute (can't locate attribute: 'layer_names')"
解决方法:
将权重文件下载到本地,并修改vgg16.py文件的如下代码段:
# load weights
if weights == 'imagenet':
if include_top:
weights_path = get_file('vgg16_weights_tf_dim_ordering_tf_kernels.h5',
WEIGHTS_PATH,
cache_subdir='models')
else:
# weights_path = get_file('vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5',
# WEIGHTS_PATH_NO_TOP,
# cache_subdir='models')
weights_path = 'yourpath/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5'
其中yourpath
是文件vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5所在的文件夹。
附各个网络权重文件
网友评论