<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給汪思穎
      發送

      0

      MXBoard — 助力 MXNet 數據可視化

      本文作者: 汪思穎 2018-04-28 11:54
      導語:MXBoard 支持了 TensorBoard 中大部分的數據類型,MXBoard API 的設計參考了 tensorboard-pytorch。

      雷鋒網 AI 研習社按,日前,MXNet 作者李沐在知乎上發文,介紹他們開發了一個記錄 MXNet 數據類型的庫,稱作 MXBoard,記錄結果可以用 TensorBoard 來呈現。原文如下,雷鋒網 AI 研習社獲其授權轉載。

      寫在前面

      深度神經網絡自出現以來就一直飽受爭議。從實踐角度來講,設計并訓練出一個可用的模型非常困難,需要涉及大量的調參、修改網絡結構、嘗試各種優化算法等等;從理論角度來看,深度神經網絡的數學理論證明并不完備,從而造成人們對其基本原理缺乏清晰的認識。而數據可視化帶來的直觀效果可以很大程度上彌補上述的不足。比如,模型訓練時如果能實時畫出梯度數據分布,可以很快發現并糾正梯度消失或者梯度爆炸的現象。再比如,詞嵌入(word embedding)的可視化表明文字根據語義在低維空間聚合成不同的流形(manifold),這也從數學上解釋了,為什么增加詞向量的維度可以更好地區分不同語義的聚類(低維空間纏繞的流形在高維可以分開)。優秀可視化工具對深度學習的份量可見一斑。

      TensorBoard 的橫空出世給 TensorFlow 的使用者帶來了可視化的福音。我們曾聽到過很多用戶(包括企業用戶)介紹,選擇TensorFlow 是因為可以用 TensorBoard。這么好的東西能否給各大深度學習框架共享呢?多虧了 TeamHG-Memex 這個組織,將 TensorFlow 中寫數據到事件文件 (event files)的算法提取出來。自此,開發者們只需要將這個算法嵌入到深度學習的框架中,就可以使用 TensorBoard 來可視化框架特有的數據結構了。

      正是基于這樣的基礎,我們開發了一個記錄 MXNet 數據類型的庫,稱作 MXBoard,記錄結果得以用 TensorBoard 來呈現。安裝 MXBoard 請參考這里。

      注:請安裝 MXNet 1.2.0 版本來使用 MXBoard 的全部功能。在 MXNet 1.2.0 正式發布前,請安裝 MXNet nightly 版本來使用 MXBoard,pip install --pre mxnet

      MXBoard 快速上手指南

      MXBoard 支持了 TensorBoard 中大部分的數據類型,如下圖所示。

      MXBoard — 助力 MXNet 數據可視化

      MXBoard API 的設計參考了 tensorboard-pytorch,所有的記錄 API 都定義在一個叫 SummaryWriter 的類當中,這個類含有諸如記錄的文件地址、寫文件的頻率、寫文件的隊列大小等等信息,用戶可以根據需求設置。當需要把當前數據記錄成 TensorBoard 中某種數據類型時,用戶只要調用相應的 API 即可。

      比如,我們想畫一個正態分布標準差逐漸縮小的數據分布圖。首先定義一個寫記錄的對象如下,它會把數據寫入到當前文件夾下的名為 logs 的文件夾。

      from mxboard import *

      sw = SummaryWriter(logdir='./logs')

      接著在每個循環里,用 MXNet 的隨機正態分布算子創建一個 NDArray,把這個 NDArray 傳給寫數據的 API add_histogram,指定畫分布圖時 bin 的數量和當前的循環數。最后,和 Python 里常用的文件寫入器一樣,記得關閉這個 SummaryWriter。

      import mxnet as mx
      for i in range(10):
         # create a normal distribution with fixed mean and decreasing std
         data = mx.nd.random.normal(loc=0, scale=10.0/(i+1), shape=(10, 3, 8, 8))
         sw.add_histogram(tag='norml_dist', values=data, bins=200, global_step=i)
      sw.close()

      為了看到效果圖,打開命令行窗口,進入到當前文件夾,鍵入如下命令以打開 TensorBoard:

      tensorboard --logdir=./logs --host=127.0.0.1 --port=8888

      接著在瀏覽器地址欄輸入 127.0.0.1:8888,點擊 HISTOGRAM,就可以看到如下效果圖了。

      MXBoard — 助力 MXNet 數據可視化

      實戰 MXBoard

      有了使用 MXBoard 的基本概念,我們來嘗試通過可視化完成下面兩個任務:

      1. 監督模型訓練

      2. 理解卷積神經網絡的工作原理

      訓練 MNIST 模型

      借用 Gluon 里訓練 MNIST 模型的 Python 程序,用 MXBoard 記錄下交叉熵、訓練和測試精度、參數的梯度數據分布,可以實時反映出模型訓練的進度。

      首先定義一個 SummaryWriter 的對象,

      sw = SummaryWriter(logdir='./logs', flush_secs=5)

      這里加了 flush_secs=5 是為了每五秒就寫一次記錄到文件,以便在瀏覽器中及時看到結果。接著在每個 mini-batch 循環結束時記錄下交叉熵,

      sw.add_scalar(tag='cross_entropy', value=L.mean().asscalar(), global_step=global_step)

      在每個 epoch 結束時記錄下參數的梯度為 HISTOGRAM,記錄下訓練和測試精度為 SCALAR,

      grads = [i.grad() for i in net.collect_params().values()]
      assert len(grads) == len(param_names)
      # logging the gradients of parameters for checking convergence
      for i, name in enumerate(param_names):
         sw.add_histogram(tag=name, values=grads[i], global_step=epoch, bins=1000)

      name, acc = metric.get()
      # logging training accuracy
      sw.add_scalar(tag='train_acc', value=acc, global_step=epoch)

      name, val_acc = test(ctx)
      # logging the validation accuracy
      sw.add_scalar(tag='valid_acc', value=val_acc, global_step=epoch)

      然后運行 Python 程序,并運行 TensorBoard,就可以在瀏覽器中看到以下效果了。小伙伴們可以嘗試著用 MXBoard 監督訓練更復雜神經網絡。更多本實例的代碼和解說請點擊這里

      MXBoard — 助力 MXNet 數據可視化

      MXBoard — 助力 MXNet 數據可視化

      可視化卷積層的 filters 和 feature maps

      將卷積層的 filters 和 feature maps 當成圖片可視化有兩個意義:

      1. 特征平滑規律的 filters 是模型訓練良好的標志之一,未收斂或過擬合模型的卷積層 filters 會出現很多 noise。

      2. 觀察 filters 和 feature maps 的圖片,特別是第一層卷積的圖片可以總結出該層所關注的圖片特征,這有助于我們理解卷積神經網絡的工作原理。

      這里將 MXNet Model Zoo 中三個 CNN 模型,Inception-BNResnet-152,和 VGG16 的 filters 當成圖像輸出到 TensorBoard,并將這三組 filters 作用于一張黑天鵝的圖片(來自驗證數據集 val_256_q90.rec)上觀察 feature maps。

      Inception-BN

      MXBoard — 助力 MXNet 數據可視化

      Resnet-152

      MXBoard — 助力 MXNet 數據可視化

      VGG16

      MXBoard — 助力 MXNet 數據可視化

      可以看出三個模型的 filters 都表現出良好的光滑性和規律性,彩色 filters 負責提取原始圖片前景和背景的局部特征,灰白圖片負責提取圖片中物體的輪廓特征。復現代碼和解釋請點擊這里。

      可視化圖片的 embedding

      最后這個例子比較有趣。Embedding 在自然語言處理中是一個常用的概念,它是真實世界中物體在高維向量空間中的表示。我們也可以借用此概念到卷積神經網絡中。卷積神經網絡最后一個全連接層的輸出可以看成是一個 batch_size 行、num_labels 列的矩陣,每一行作為一個 num_labels 維的向量就是對應輸入圖片的 embedding。本質上這個 embedding 就是卷積神經網絡對圖片的編碼,softmax 層通過此編碼來判斷圖片所屬類別。當理解了圖片 embedding 的概念后,我們就可以把一個圖片集的所有 embedding 通過沒有 softmax 層的卷積神經網絡求出來,調用 MXBoard 的 add_embedding API,從而來觀察他們在二維或者三維空間中的聚合效應,即同類別圖片應該聚合在一起。

      這里我們從上一個例子里的驗證數據集中隨機選取了 2304 張圖片,用 Resnet-152 模型算出了它們的 embeddings,用 MXBoard 寫入事件文件,并由 TensorBoard 讀取,效果如下。

      MXBoard — 助力 MXNet 數據可視化

      這里2304張圖片的 embeddings 默認由 PCA 算法壓縮到了三維空間,不過圖片聚合效應似乎不是那么明顯,這是因為 PCA 算法不能保持原始物體之間的空間關系。因此,我們選用 TensorBoard 界面上提供的 t-SNE 算法,重新對 embeddings 進行降維操作,這是個動態的過程。

      MXBoard — 助力 MXNet 數據可視化

      隨著 t-SNE 算法的收斂,可以很明顯地看到圖片集在三維空間中被分成了幾類。

      MXBoard — 助力 MXNet 數據可視化

      最后我們來驗證一下圖片分類是否正確。在 TensorBoard GUI的右上角輸入“dog”,所有打了“dog”標記的圖片將被高亮。拖動并放大至高亮圖片處,可以看到很多狗的圖片,這表明預訓練的 Resnet-152 模型是準確的。

      MXBoard — 助力 MXNet 數據可視化

      全部代碼和具體說明請點這里

      后記

      通過實戰 MXBoard,我們可以看到,可視化工具在監督訓練模型和解釋深度學習原理方面的強大作用。MXBoard 給 MXNet 提供了一個在科研和生產環境中簡單、易用、集中的可視化方案。當所有的代碼在后臺運行時,你需要的只是一個瀏覽器。

      看了這么多,聰明的你是不是有很多精彩的可視化點子躍躍欲試呢?點擊文末鏈接分享炫酷圖片,讓 MXNet 動起來。

      特別感謝鄭子豪在項目開發時提供的技術支持。

      論壇討論鏈接

      雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

      MXBoard — 助力 MXNet 數據可視化

      分享:
      相關文章

      編輯

      關注AI學術,例如論文
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 亚洲国产精华液网站w| 中文字幕一区二区三区乱码| 国产精品久久午夜夜伦鲁鲁| 久久精品国产亚洲AV久| 成人精品亚洲| 精品久久久久久中文字幕| AV在线影院| 老熟妇仑乱视频一区二区| 国产jizz| 隔壁老王国产在线精品| 精品久久久中文字幕一区| 老头老太性行交视频| 免费人成无码大片在线观看| AV一二三| 国产av一区二区三区| 国产VA网站| 国产精品白浆一区二小说| 男人的天堂色偷偷| 日韩精品久久久久久久电影蜜臀| 老司机精品影院一区二区三区| 国产在线观看人成激情视频 | 日韩一级毛一欧美一国产| 粗壮挺进人妻水蜜桃成熟| 漾濞| 成 人色 网 站 欧美大片在线观看| 中国无码mv| 少妇人妻一区二区三区| 欧美人禽zozo动人物杂交| 久久99精品久久久久久婷婷2021| 亚洲成av人无码免费观看| 国产精品自在线拍国产| 少妇裸交aa大片| 亚洲午夜久久久影院伊人| 伦理片免费完整片在线观看 | 少妇人妻偷人精品无码视频新浪 | 97人妻精品一区二区三区免 | 国产熟女在线播放第一页| 成人精品中文字幕| 97人人澡| 中文字幕人妻在线中文乱码怎么解决| 老色鬼久久|