TensorFlow入門
01-24
文中提到的代碼都可以在此找到:傳送門
筆者在第一期提到:
」TensorFlow是目前最流行的深度學習框架,沒有之一;背靠google這顆大樹,Alpha狗光環加持,不得不是深度學習人員的首選。靜態計算視圖+數據流,靈活的底層API適合對深度神經網路有深刻認識的使用者,不過不夠清晰的文檔一直為人詬病,瑕不掩瑜。「
本期主要介紹TensorFlow(下稱tf)的一些特點
- 熟悉的張量計算api:這是使用過numpy的朋友的福利,tf中對於張量的計算api和numpy非常類似,上手沒有任何難度
- 基礎而靈活的神經網路api,舉個例子:l2 regularization公式: ;tf中的使用,89、90和97行
而Pytorch中的使用:
僅僅一個參數weight_decay搞定,非常方便,但是過於方便,不利於使用者深入理解
- 豐富的api:gan,seq2seq,crf等等流行的模型都有涵蓋
- 人性化的模型訓練監控Supervisor
- 結果可視化 - Tensorboard
本期代碼是以TensorFlow為框架用lstm+cnn實現文本分類,數據依然是TREC,原理可以參考深度學習-CNN文本分類和深度學習-LSTM文本分類
模型初始化:
- global_step - 模型全局的步驟
- l2_loss - L2 regularization
- uniform_init - 隨機初始化
- train_op - 參數優化,本期使用Adam
placeholder初始化
- input、label - 訓練數據和標籤
計算視圖初始化,lstm和cnn部分,整體代碼傳送門
訓練
- 以sess(會話)為媒介控制訓練,數據的流入和流出也是經過session
訓練和測試
- session定義 - 82行
- summary_writer - 上文中Tensorboard的數據來源
推薦閱讀:
※真實資訊語料下的Word2Vec的遷移實踐:Tag2Vec
※ACL2017 對話交互系統論文速覽(一)
TAG:深度学习DeepLearning | TensorFlow | 自然语言处理 |