機器學習學習筆記--使用Keras實現圖片預測
阿新 • • 發佈:2019-01-09
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%的概率是罩群
這裡我只輸出了前三個可能