TensorFlow入門

文中提到的代碼都可以在此找到:傳送門

筆者在第一期提到:

」TensorFlow是目前最流行的深度學習框架,沒有之一;背靠google這顆大樹,Alpha狗光環加持,不得不是深度學習人員的首選。靜態計算視圖+數據流,靈活的底層API適合對深度神經網路有深刻認識的使用者,不過不夠清晰的文檔一直為人詬病,瑕不掩瑜。「


本期主要介紹TensorFlow(下稱tf)的一些特點

  • 熟悉的張量計算api:這是使用過numpy的朋友的福利,tf中對於張量的計算api和numpy非常類似,上手沒有任何難度
  • 基礎而靈活的神經網路api,舉個例子:l2 regularization公式: c = c_{0} + frac{lambda}{2n}sum_{w}^{}{w^{2}};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 | 自然语言处理 |