1. 程式人生 > >【Keras】中文文件學習筆記-快速上手Keras

【Keras】中文文件學習筆記-快速上手Keras

基於中文官方文件英文官方文件的學習筆記,較系統的總結學習歷程。

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)