在Windows+TensorFlow-GPU環境下實現VGGNet
參考文章
1.使用vgg16模型進行圖片預測 - CSDN博客
2.keras系列︱Application中五款已訓練模型、VGG16框架(Sequential式、Model式)解讀(二) - CSDN博客
3.使用keras預訓練VGG16模型參數分類圖像並提取特徵 - CSDN博客
在使用這篇文章進行實驗時,出現錯誤
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錯誤的解釋文章keras系列︱圖像多分類訓練與利用bottleneck features進行微調(三)
解決方法:
注意TensorFlow的數據格式問題,將input_shape=(3,height, width)換成input_shape=(height, width,3)格式
4.基於VGG-16深度學習預訓練權重的圖像類別預測
在導入權重文件時,報錯
KeyError: "Cant open attribute (cant locate attribute: layer_names)"
錯誤原因:
沒有科學上網導致的權值文件下載鏈接不可訪問
解釋文章 二、錯誤:KeyError: "Cant open attribute (cant 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所在的文件夾。
附各個網路權重文件
推薦閱讀:
TAG:深度學習DeepLearning | TensorFlow | 卷積神經網路CNN |