- Web安全之深度學習實戰
- 劉焱
- 558字
- 2019-01-03 15:37:24
1.2 TFLearn
TFLearn是一個模塊化和透明的深度學習庫,構建在TensorFlow之上,它為TensorFlow提供高層次API,目的是快速搭建試驗環境,同時保持對TensorFlow的完全透明和兼容性。
TFLearn具有以下特點:
? 容易使用和易于理解的高層次API用于實現深度神經網絡,附帶教程和例子。
? 通過高度模塊化的內置神經網絡層、正則化器、優化器等進行快速原型設計。
? 強大的輔助函數,訓練任意TensorFlow圖,支持多輸入、多輸出和優化器。
? 簡單而美觀的圖可視化,具有關于權值、梯度、特征圖等細節。
? 無需人工干預,可使用多CPU、多GPU。
本書的主要代碼都是基于TFLearn開發的。
1.安裝。
TFLearn的安裝推薦使用使用pip工具:
pip install tflearn
如果需要使用源碼安裝,可以直接從GitHub上下載對應源碼:
https://github.com/tflearn
然后進入TFLearn目錄安裝即可:
python setup.py install
2.使用舉例。
TFLearn自帶MNIST數據,使用函數mnist.load_data接口,并且可以通過指定one_hot=True直接獲取使用獨熱編碼的標簽:
X, Y, testX, testY = mnist.load_data(one_hot=True)
構造一個隱藏層為2層,每層核數分別為64、64,輸出層核數為10的多層感知機,使用fully_connected函數即可完成構造全連接網絡的工作,使用tflearn.input_data定義輸入數據大小。為了避免過擬合,每層之間使用Dropout函數進行部分丟失處理:
# Building deep neural network input_layer = tflearn.input_data(shape=[None, 784]) dense1 = tflearn.fully_connected(input_layer, 64, activation='tanh', regularizer='L2', weight_decay=0.001) dropout1 = tflearn.dropout(dense1, 0.8) dense2 = tflearn.fully_connected(dropout1, 64, activation='tanh', regularizer='L2', weight_decay=0.001) dropout2 = tflearn.dropout(dense2, 0.8) softmax = tflearn.fully_connected(dropout2, 10, activation='softmax')
使用多層感知機進行訓練,通過n_epoch設置訓練的輪數:
# Training model = tflearn.DNN(net, tensorboard_verbose=0) model.fit(X, Y, n_epoch=20, validation_set=(testX, testY), show_metric=True, run_id="dense_model")
經過20輪的訓練后,準確率達到了99.54%:
Training Step: 17200 | total loss: 0.43454 | time: 5.444s | SGD | epoch: 020 | loss: 0.43454- top3: 0.9685 | val_loss: 0.10618- val_ acc: 0.9954-- iter: 55000/55000
推薦閱讀
- 科技安全:戰略實踐與展望
- .NET安全攻防指南(上冊)
- 黑客攻防與無線安全從新手到高手(超值版)
- 軟件開發安全之道:概念、設計與實施
- API攻防:Web API安全指南
- Spring Security(Third Edition)
- 從0到1:CTFer成長之路
- 實用黑客攻防技術
- 空間群組密鑰管理研究:基于自主的深空DTN密鑰管理
- Disaster Recovery Using VMware vSphere Replication and vCenter Site Recovery Manager
- 復雜信息系統網絡安全體系建設指南
- 網絡空間安全法律問題研究
- 信息系統安全等級化保護原理與實踐
- 網絡對抗的前世今生
- 計算機病毒揭秘與對抗