【Keras】LSTM和Bi-LSTM神经网络
生活随笔
收集整理的這篇文章主要介紹了
【Keras】LSTM和Bi-LSTM神经网络
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
KerasLSTM和Bi-LSTM神經網絡
- 導入安裝包
- 加載并劃分數據集
- 數據處理
- 創建LSTM模型并訓練
- 評估模型
- 創建Bi-LSTM模型并訓練
- 打印Bi-LSTM模型
- 評估Bi-LSTM模型
導入安裝包
import tensorflow.keras from tensorflow.keras.datasets import mnist from tensorflow.keras.layers import Dense,LSTM,Bidirectional from tensorflow.keras.utils import to_categorical from tensorflow.keras.models import Sequential加載并劃分數據集
使用手寫數字數據
#劃分數據集 (x_train,y_train),(x_test,y_test) = mnist.load_data()數據處理
數據類型轉換:
x_train和x_test里的數據都是int整數,要把它們轉換成float32浮點數
數據歸一化處理:
要把x_train和x_test里的整數變成0-1之間的浮點數,就要除以255。因為色彩的數值是0-255,所以要變成0-1之間的浮點數,只要簡單的除以255
one-hot處理:
y值0-9數字變成onehot模式,以后就可以把分類數據變成這種形式
創建LSTM模型并訓練
nb_lstm_outputs = 30#神經元個數 nb_time_steps = 28 #時間序列長度 nb_input_vector = 28 #輸入序列#創建模型 model = Sequential() model.add(LSTM(nb_lstm_outputs,input_shape=(nb_time_steps,nb_input_vector))) model.add(Dense(10,activation='softmax'))model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['acc']) model.fit(x_train,y_train,epochs=20,batch_size=128) #打印模型 model.summary()評估模型
model.evaluate(x_test, y_test,batch_size=128, verbose=1)預測結果比前文的簡單神經網絡要好:
準確度從0.9615提升到0.9751
創建Bi-LSTM模型并訓練
# building model model = Sequential() model.add(Bidirectional(LSTM(nb_lstm_outputs,return_sequences=True),input_shape=(nb_time_steps, nb_input_vector))) model.add(Bidirectional(LSTM(nb_lstm_outputs))) model.add(Dense(10,activation='softmax'))#編譯模型 model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['acc']) #訓練模型 model.fit(x_train,y_train,epochs=20,batch_size=128)打印Bi-LSTM模型
model.summary()評估Bi-LSTM模型
model.evaluate(x_test, y_test,batch_size=128)準確度從0.9751提升到0.9861
寫文不容易,請給個贊吧!
總結
以上是生活随笔為你收集整理的【Keras】LSTM和Bi-LSTM神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无线路由器建立usb共享打印服务器,无线
- 下一篇: svn redis和rabbitmq服