最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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:智能合約漏洞檢測的評論 (共 條)

分享到微博請遵守國家法律
赫章县| 颍上县| 丽江市| 鱼台县| 新蔡县| 刚察县| 朔州市| 绍兴市| 双城市| 五原县| 鹤壁市| 乐清市| 衡水市| 宁波市| 廊坊市| 张家港市| 迁西县| 黄浦区| 阿拉善左旗| 临猗县| 湖口县| 高清| 大同县| 苏尼特左旗| 彭阳县| 广州市| 无为县| 同仁县| 车险| 台湾省| 广水市| 安新县| 武安市| 调兵山市| 扎鲁特旗| 阳泉市| 庆城县| 弋阳县| 永昌县| 宜兰县| 贞丰县|