keras使用


一、pad_sequences

from keras.preprocessing.sequence import pad_sequences

 keras只能接受長度相同的序列輸入。因此如果目前序列長度參差不齊,這時需要該模塊

 該函數是將序列轉化為經過填充以后的一個長度相同的新序列新序列

 

二、keras中的Sequential模型

 Sequential更准確的應該理解為堆疊,通過堆疊許多層,構建出深度神經

 Sequential模型的核心操作是添加layers(圖層),以下展示如何將一些最流行的圖層添加到模型中:

 如下代碼向模型添加一個帶有64個大小.3 * 3的過濾器的卷積層:

from keras.models import Sequential
from keras.layers import Conv2D

model = Sequential()
model.add( Conv2D(64, (3, 3), activation='relu') )

 

三、keras.layers.Embedding

 嵌入層將正整數(下標)轉換為具有固定大小的向量,如 [ [4],[20] ] ->[ [0.25,0.1],[0.6,-0.2] ]Embedding層只能作為模型的第一層

from keras.layers import Embedding
embedding_layer = Embedding(VOCAB_SIZE + 1,
                            EMBEDDING_DIM,
                            weights=[embedding_matrix],
                            input_length=TIME_STAMPS,
                            trainable=False,
                            mask_zero=True)

 這里的參數解釋一下:

  • input_dim:大或等於0的整數,字典長度,即輸入數據最大下標+1

  • output_dim:大於0的整數,代表全連接嵌入的維度

  • init:初始化方法,為預定義初始化方法名的字符串,或用於初始化權重的Theano函數。該參數僅在不傳遞weights參數時有意義。

  • weights:權值,為numpy array的list。該list應僅含有一個如(input_dim,output_dim)的權重矩陣

  • W_regularizer:施加在權重上的正則項,為WeightRegularizer對象

  • W_constraints:施加在權重上的約束項,為Constraints對象

  • mask_zero:布爾值,確定是否將輸入中的‘0’看作是應該被忽略的‘填充’(padding)值,該參數在使用遞歸層處理變長輸入時有用。設置為True的話,模型中后續的層必須都支持masking,否則會拋出異常

  • input_length:當輸入序列的長度固定時,該值為其長度。如果要在該層后接Flatten層,然后接Dense層,則必須指定該參數,否則Dense層的輸出維度無法自動推斷。

  • dropout:0~1的浮點數,代表要斷開的嵌入比例

 

 關於Embedding層,請參考

 

四、keras 雙向LSTM

from keras.models import Sequential
from keras.layers import Bidirectional, LSTM
model.add( Bidirectional( LSTM(128, return_sequences=True) ) )

 return_sequences: 如果為True的話,只返回最后一個狀態的輸出,是一個(samples,output_dim)2D張量,如果是False,則是返回所有序列狀態的輸出,是一個(samples,timesteps,output_dim)3D張量

 LSTM中的128,即是units參數,表示輸出向量維度,請參考

 參數意義參考

 關於其過程,請參考,下面的圖片來自該博客:

 

 

五、keras Dense層

 Dense就是常用的全連接層

 

六、keras TimeDistributed

 

七、keras CRF

from keras_contrib.layers.crf import CRF
crf_layer = CRF(self.NUM_CLASSES, sparse_target=True)
model.add(crf_layer)

 

八、compile


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM