1. 程式人生 > >機器學習學習筆記--使用Keras實現圖片預測

機器學習學習筆記--使用Keras實現圖片預測

Keras 是一個基於 Python 的高層神經網路庫,其可以使用 Tensorflow、Theano 以及 CNTK 等著名深度學習框架作為後端。

最好在Linux Ubuntu下操作,搭建環境,這樣可以省很大功夫。這裡我基於windows10下操作。

使用工具:Pycharm + anaconda3.4  

環境安裝

1.conda install tensorflow-gpu

2.conda install tensorflow

3.conda install keras

4.conda install numpy

確保這些庫都安裝了

注意:anaconda 裡的Pandas 庫 在這裡要用 0.19.2版本的 ,如果你的版本已經是0.2以上的請回退到 0.19.2的版本 

預訓練模型下載:

 Keras裡有很多已經訓練好的模型,供我們使用。如:Xception、VGG16、ResNet50、InceptionV3、MobileNet等等。

使用這些訓練集可以幫我們識別大多數圖片。這裡我們使用InceptionV3

由於這個本來是在國外網站的,我已經把檔案上傳到百度雲了,去獲取就好。

連結:http://pan.baidu.com/s/1jId4tWq 密碼:hmmy

下載後請新建一個資料夾 Keras 在裡面在新建model 資料夾 把剛剛下載的檔案放在裡面    Keras資料夾在原始碼旁邊

這樣訓練集就獲取到了

開啟IPython

from keras.applications.inception_v3 import InceptionV3
import keras
model = InceptionV3()
model.summary()

得到這個圖 代表你已經成功匯入資料集了 


這裡訓練集有2千萬條

再匯入這些庫

import numpy as np
from keras.preprocessing import image
from keras.applications.inception_v3 import InceptionV3
from keras.applications.inception_v3 import preprocess_input
from keras.applications.inception_v3 import decode_predictions

準備一個要識別的圖片 這裡我選擇愛衣的圖片   


輸入以下程式碼

img = image.load_img('timg.jpg',target_size=(299,299))
x = image.img_to_array(img)
x = np.expand_dims(x,axis=0)   #這三行的意思是提取 圖片特徵
x = preprocess_input(x)
preds = model.predict(x)
print('Predicted:',decode_predictions(preds,top=3)[0])
得到結果:Predicted: [('n03534580', 'hoopskirt', 0.77724248), ('n03770439', 'miniskirt', 0.12247533), ('n03866082', 'overskirt', 0.0047637392)]



意思是 77%的概率是 hoopskirt 也就是長外裙  12%的概率是miniskirt超短裙 0.04%的概率是罩群

這裡我只輸出了前三個可能