您好,登錄后才能下訂單哦!
本篇內容介紹了“python中怎么使用Keras進行簡單分類”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
np_utils.to_categorical用于將標簽轉化為形如(nb_samples, nb_classes)的二值序列。
假設num_classes = 10。
如將[1,2,3,……4]轉化成:
[[0,1,0,0,0,0,0,0]
[0,0,1,0,0,0,0,0]
[0,0,0,1,0,0,0,0]
……
[0,0,0,0,1,0,0,0]]
這樣的形態。
如將Y_train轉化為二值序列,可以用如下方式:
Y_train = np_utils.to_categorical(Y_train,num_classes= 10)
Activation是激活函數,一般在每一層的輸出使用。
當我們使用Sequential模型構建函數的時候,只需要在每一層Dense后面添加Activation就可以了。
Sequential函數也支持直接在參數中完成所有層的構建,使用方法如下。
model = Sequential([ Dense(32,input_dim = 784), Activation("relu"), Dense(10), Activation("softmax") ] )
其中兩次Activation分別使用了relu函數和softmax函數。
在model.compile中添加metrics=[‘accuracy’]表示需要計算分類精確度,具體使用方式如下:
model.compile( loss = 'categorical_crossentropy', optimizer = rmsprop, metrics=['accuracy'] )
這是一個簡單的僅含有一個隱含層的神經網絡,用于完成手寫體識別。在本例中,使用的優化器是RMSprop,具體可以使用的優化器可以參照Keras中文文檔。
import numpy as np from keras.models import Sequential from keras.layers import Dense,Activation ## 全連接層 from keras.datasets import mnist from keras.utils import np_utils from keras.optimizers import RMSprop # 獲取訓練集 (X_train,Y_train),(X_test,Y_test) = mnist.load_data() # 首先進行標準化 X_train = X_train.reshape(X_train.shape[0],-1)/255 X_test = X_test.reshape(X_test.shape[0],-1)/255 # 計算categorical_crossentropy需要對分類結果進行categorical # 即需要將標簽轉化為形如(nb_samples, nb_classes)的二值序列 Y_train = np_utils.to_categorical(Y_train,num_classes= 10) Y_test = np_utils.to_categorical(Y_test,num_classes= 10) # 構建模型 model = Sequential([ Dense(32,input_dim = 784), Activation("relu"), Dense(10), Activation("softmax") ] ) rmsprop = RMSprop(lr = 0.001,rho = 0.9,epsilon = 1e-08,decay = 0) ## compile model.compile(loss = 'categorical_crossentropy',optimizer = rmsprop,metrics=['accuracy']) print("\ntraining") cost = model.fit(X_train,Y_train,nb_epoch = 2,batch_size = 32) print("\nTest") cost,accuracy = model.evaluate(X_test,Y_test) ## W,b = model.layers[0].get_weights() print("accuracy:",accuracy)
實驗結果為:
Epoch 1/2 60000/60000 [==============================] - 12s 202us/step - loss: 0.3512 - acc: 0.9022 Epoch 2/2 60000/60000 [==============================] - 11s 183us/step - loss: 0.2037 - acc: 0.9419 Test 10000/10000 [==============================] - 1s 108us/step accuracy: 0.9464
“python中怎么使用Keras進行簡單分類”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。