五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

CNN+LSTM:智能合約漏洞檢測

2022-07-31 20:59 作者:安靜的禿頭怪  | 我要投稿

????今天記錄一下最近將深度學(xué)習(xí)方法用于智能合約漏洞檢測的第一次實(shí)驗(yàn),順便給研究這方向的同行們提供一點(diǎn)借鑒意義。這個方法跟NLP有點(diǎn)相似,但又不太一樣,因?yàn)椴僮鞔a序列雖然具備一定語義信息,但偏向底層機(jī)器語言,所以剛開始我并不確定最終能不能達(dá)到很好的訓(xùn)練效果。這個實(shí)驗(yàn)的完整過程如下:首先通過插樁在本地鏈上同步當(dāng)前以太坊的部分區(qū)塊交易數(shù)據(jù),借此拿到每筆交易的操作碼序列、合約地址等等原始數(shù)據(jù);接著通過word2vec或one-hot編碼將每個操作碼轉(zhuǎn)成詞向量;最后搭建CNN+LSTM的深度學(xué)習(xí)模型完成多分類訓(xùn)練。

0. 導(dǎo)包

1. 從數(shù)據(jù)庫獲取數(shù)據(jù)

我使用的是MongoDB數(shù)據(jù)庫,因此可以使用可視化軟件MongoDB CompassNavicat for MongoDB直接查詢獲取,同樣也可以通過python連接數(shù)據(jù)庫獲取,本質(zhì)上都是編寫MongoDB的查詢語句,導(dǎo)出格式一般是csv或txt,csv因?yàn)閿y帶了標(biāo)簽比較容易處理。

2. 訓(xùn)練詞向量

對于文本的向量化其實(shí)有很多方式,包括獨(dú)熱(one-hot)詞袋模型(bag of words),逆文本特征頻率(tf-idf)word2vec等,在本實(shí)驗(yàn)中我使用現(xiàn)成的word2vec預(yù)訓(xùn)練模型直接訓(xùn)練得到詞向量,同樣也可以用自己搭建的模型訓(xùn)練。word2vec是使用深度學(xué)習(xí)的方式將詞映射為一個多維向量,維度可以自行選擇。

3. 數(shù)據(jù)預(yù)處理

讀取csv或txt格式的原始數(shù)據(jù)并處理成嵌套列表的形式。

4. 根據(jù)詞向量創(chuàng)建詞語字典

加載上面生成的word2vec模型創(chuàng)建出對應(yīng)的詞向量字典(操作碼向量字典)。

5. 將序列文本轉(zhuǎn)成字典索引數(shù)字

將輸入操作碼序列中出現(xiàn)在詞向量字典中的操作碼轉(zhuǎn)換為索引數(shù)字,未出現(xiàn)的轉(zhuǎn)換為0即可。

6. 統(tǒng)一序列長度

定義必要參數(shù),加載詞向量數(shù)據(jù)并填充詞向量矩陣。

將原始數(shù)據(jù)集分為訓(xùn)練集和測試集,把序列操作碼轉(zhuǎn)成對應(yīng)索引并統(tǒng)一長度。

7. 搭建模型并訓(xùn)練

本來我只用了LSTM,但因?yàn)樾蛄虚L度太大,所以只能加上CNN層來對矩陣進(jìn)行降維,這樣訓(xùn)練速度會更快,結(jié)果發(fā)現(xiàn)效果也還行。

8. 輸出可視化訓(xùn)練圖表

可以通過show_train_history函數(shù)打印的訓(xùn)練集曲線來判斷模型是否過擬合。

借鑒項(xiàng)目:https://github.com/sph116/lstm_emotion(大家自行搜索)

部分結(jié)果截圖(僅供參考):


CNN+LSTM:智能合約漏洞檢測的評論 (共 條)

分享到微博請遵守國家法律
汉中市| 松江区| 蒙山县| 西城区| 南开区| 虞城县| 驻马店市| 秭归县| 金乡县| 商洛市| 静宁县| 岚皋县| 穆棱市| 莱芜市| 崇礼县| 米脂县| 定安县| 青阳县| 渑池县| 兰西县| 新余市| 偃师市| 甘肃省| 项城市| 中阳县| 西充县| 明溪县| 临武县| 乐都县| 汝阳县| 揭西县| 准格尔旗| 比如县| 汝州市| 南雄市| 西城区| 丰县| 海淀区| 历史| 黑山县| 潮州市|