BiLSTM-CRF模型的流程
1、原始數據集? 訓練集、測試集 兩個
標題數據目錄?
2、獲取數據路徑
?3、讀取數據
2、要得到兩個列表和兩個字典
????????2.1、兩個列表
? ? ? ? ?2.2、兩個字典
?
3.1、定義自己的Dataset?
3.2、定義自己的DataLoader
?得到三個矩陣 要輸入模型 數量的時候要的數據
?4、模型
? ? ? ? 數據計算流程:
? ? ? ? 4.1:先將模型的梯度值清零。梯度值:就是loss的數值
? ? ? ? ? ? ? ? 生成詞向量
? ? ? ? ? ? ? ? 現將數值型句子進行詞向量
? ? ? ? (1)、結果
? ? ? ? x_list進行詞向量前? ? ?維度 4×82 四句話 最長的82個字? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
????????
? ? ? ? x_list進行詞向量后? ??維度 4×82×16? 四句話 最長的82個字? 16維度詞向量? ??
? ? ? ??
? ? ? ? ?(2)、代碼
????????#padding_idx 默認是0 # 最終向量中的值為0的繼續嵌入為0,如果設置為3的話,那么向量中值為3的位置的向量也將嵌入為0? ? ? ? ?
?????????4.2:進入LSTM進行訓練
? ? ? ? (1)、LSTM參數的認識
? ? ? ? ? ? ? ? 1:
? ? ? ? ?(2)、LSTM模型數據計算的流程
? ? ? ? ? ? ? ? ? ? ? ? 1、得到詞向量的表達形式,
? ? ? ? ? ? ? ? ? ? ? ? 2、進過線性層(矩陣),訓練矩陣里面的數值,(所謂的參數)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? hidden_size() He num_layers
? ? ? ? ? ? ? ? ? ? ? ? 3、加上前一時刻的信息生成新矩陣
? ? ? ? ? ? ? ? ? ? ? ? 4、在進行激活函數函數
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Linear()
? ? ? ? ? ? ? ? ? ? ? ? 5、加和隱藏層矩陣相乘形成舊信息(訓練里面的數值(參數))
? ? ? ? ? ?(3)、在進行激活函數前得到的矩陣維度為(句子數:序列最大長度:隱藏層維度)
? ? ? ? ? ? ? ? ? ?在進行激活函數前得到的矩陣維度為(句子數:序列最大長度:標簽數(類別))
? ? ? ? ?(4)、在經過CRF得到損失值。CRF的作用
? ? ? ? ? ? ? ? ? ? ? ? CRF的作用是給每一個可能的標注序列算一個分數,通過訓練,
????????????????????????使得那個唯一的真實標簽序列得分最高。
? ? ? ? ? ? ? ? ? ? ? ? 目標是讓Prob盡可能大,損失函數是:
? ? ? ? (5)、標注序列的分數由兩部分組成,一個是發射分數,一個是轉移分數。
? ? ? ? ? ? ? ? ? ? ? ? 發射分數:序列經過全連接激活函數后,得到的每個字各個標簽的概率,????????
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?就是發射分數,其實就是一個(字個數:標簽個數)矩陣
? ? ? ? ? ? ? ? ? ? ? ? 轉移分數:是不同標簽之間轉移的分數值,是一個(標簽個數:標簽個數)矩陣
? ? ? ? ? ? ? ? ? ? ? ? 最終分數:? ? ??
????????????????????????????????假設標注序列是(L1,L2,...,Ln),L是label的首字母。
????????????????????????????????首先從發射分數矩陣中找出w1字符是L1的概率,依次類推,
????????????????????????????????找出所有字符的相應概率,加在一起,就是該序列的發射分數。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 從轉移分數矩陣中找出L1轉移到L2的概率,依次類推,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 找出該序列中所有相鄰標簽的轉移概率,加在一起,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 就是該序列的轉移分數。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?上述二者相加,就是該標注序列的最終分數了。
? ? ? ? ?(6)、 CRF計算流程
? ? ? ? ? ? ? ? ? ? ? ? 1、得到激活函數得到的矩陣
? ? ? ? ? ? ? ? ? ? ? ? 2、在和DataLoader得到的? ? ? ? 另外兩個矩陣,上面(y_list和mask_list)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 得到損失值? ? ? ?
? ? ? ? ?(7)、代碼
? ? ? ? ? ? ? ? ? ? ??
5、訓練流程以及推理
? ? ? ? 5.1:訓練流程
? ? ? ? ? ? ? ? (1)、設置訓練次數
? ? ? ? ? ? ? ? (2)、梯度清零
? ? ? ? ? ? ? ? (3)、前向運算
? ? ? ? ? ? ? ? (4)、計算損失
? ? ? ? ? ? ? ? (5)、反向傳播、梯度更新
? ? ? ? ? ? ? ? (6)、進行紀錄損失值以及推理準確率
? ? ? ? 5.2:訓練代碼
? ? ? ? ? ??
6、推理以及代碼
? ? ? ? 6.1:推理流程
? ? ? ? ? ? ? ? 1:關閉反向傳播
? ? ? ? ? ? ? ? 2:將x_list進行前向傳播得到預測的y
? ? ? ? ? ? ? ? 3:記錄并計算批次中準確率
? ? ? ? 6.2:代碼
????????????????????????
???????? 6.3:真實標簽中實體標記匹配——代碼
????????????????????????
1、總結。
(1):RNN輸入想要的是什么樣的數據
? ? ? ? 數據的處理:字變詞向量? word2ver?
? ? ? ? ? ? ? ? 流程:1、詞庫,或者字庫? (確定是以詞為單位還是字) 數量n
???????????????????????????2、詞向量維度? 設置每個詞所對應的維度? ? ? ? ? ? ? ? 維度100
? ? ? ? ? ? ? ? ? ? ? ? ? ?3、生成3個? ?打包生成矩陣(n×100的矩陣),word_2_index, indec_2_word
????????需要的數據 5句話,每句長31,詞向量維128。一個三維向量
(2):數據在LSTM里面是怎么樣計算的? ?這個是分類任務需要的
? ? ? ??
(3):最終得到的數據是什么樣的
(4)、代碼
? ? ??
? ? ? ? ??
????????????????
總結
以上是生活随笔為你收集整理的BiLSTM-CRF模型的流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解BILSTM-CRF模型结构进行命名
- 下一篇: win10系统怎么改奇摩输入法_教你打造