【Keras】中文文件學習筆記-快速上手Keras
阿新 • • 發佈:2019-01-03
基於中文官方文件與英文官方文件的學習筆記,較系統的總結學習歷程。
Keras是一個高層神經網路API,Keras由純Python編寫而成並基Tensorflow、Theano以及CNTK後端。Keras 為支援快速實驗而生,能夠把你的idea迅速轉換為結果,如果你有如下需求,請選擇Keras:
- 簡易和快速的原型設計(keras具有高度模組化,極簡,和可擴充特性)
- 支援CNN和RNN,或二者的結合
- 無縫CPU和GPU切換
Keras的核心資料結構是“模型”,模型是一種組織網路層的方式。Keras中主要的模型是Sequential模型,Sequential是一系列網路層按順序構成的棧
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 7 22:17:57 2018
Keras快速上手
@author: BruceWong
"""
#匯入Sequential模型
import keras
from keras.models import Sequential,Model
## Generate dummy data
import numpy as np
x_train = np.random.random((1000, 20))
y_train = keras.utils.to_categorical(np.random.randint(10 , size=(1000, 1)), num_classes=10)
x_test = np.random.random((100, 20))
y_test = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)
model = Sequential()
#model.add()
#將一些網路通過.add()堆疊起來,就構成一個完整的模型
from keras.layers import Dense,Activation
#model.add(Dense(units = 64,input_dim = 20)) #輸入維度input_dim,指x資料的維度,列的數量
model.add(Dense(units = 64,input_shape = (20,)))#輸入維度input_dim
model.add(Activation('relu'))
model.add(Dense(units = 10))
model.add(Activation('softmax'))
#完成模型的搭建後,我們需要使用.compile()方法來編譯模型
model.compile(loss='categorical_crossentropy',optimizer = 'sgd',metrics = ['accuracy'])
#編譯模型時必須指明損失函式和優化器,如果你需要的話,也可以自己定製損失函式。
#完成編譯後,在訓練資料集上按batch進行一定次數的迭代來訓練網路
model.fit(x_train,y_train,epochs=5,batch_size = 32)
'''
#也可以手動一個個batch的資料送人網路中訓練:
#model.train_on_batch(x_batch,y_batch)
'''
#隨後可以對模型進行評估:
loss_and_metrics = model.evaluate(x_test,y_test,batch_size = 128)
#或者對新的資料進行預測:
classes = model.predict(x_test,batch_size = 128)