TensorSpace:超酷炫3D神经网络可视化框架
TensorSpace - 一款 3D 模型可視化框架,支持多種模型,幫助你可視化層間輸出,更直觀地展示模型的輸入輸出,幫助理解模型結構和輸出方法。
文末福利預警:人手必備論文閱讀神器限時免費放送~?
作者丨劉遙行
學校丨圣何塞州立大學碩士生
研究方向丨AI與現(xiàn)實生活的工業(yè)結合
是什么(What)
TensorSpace 是一款 3D 模型可視化框架,一動圖勝千言。?
官網(wǎng)鏈接:
https://tensorspace.org/
Github鏈接:
https://github.com/tensorspace-team/tensorspace
TensorSpace 擅長直觀展示模型結構和層間數(shù)據(jù),生成的模型可交互。官方支持手寫字符識別,物體識別,0-9 字符對抗生成網(wǎng)絡案例等。
為什么(Why)
本部分說明:為什么要使用這個框架?這個框架主要解決了什么問題?我們的靈感來源于何處?
3D神經(jīng)網(wǎng)絡可視化一片空白?
在機器學習可視化上,每個機器學習框架都有自己的御用工具,TensorBoard 之于 TensorFlow ,Visdom 之于 PyTorch,MXBoard 之于 MXNet。這些工具的 Slogan 不約而同地選擇了 Visualization Learning(TensorBoard的 Slogan),也就是面向專業(yè)機器學習開發(fā)者,針對訓練過程,調參等設計的專業(yè)向可視化工具。
但面向一般的計算機工程師和非技術類人才(市場、營銷、產(chǎn)品等),一片空白,沒有一個優(yōu)秀的工具來幫助他們理解機器學習模型到底做了什么,能解決一個什么問題。
機器學習開發(fā)和工程使用并不是那么遙不可及,TensorSpace 搭建橋梁連接實際問題和機器學習模型。
3D可視化的信息密度更高更直觀
市面上常見的機器學習可視化框架都是基于圖表(2D),這是由它們的應用領域(訓練調試)決定的。但 3D 可視化不僅能同時表示層間信息,更能直觀地展示模型結構,這一點是 2D 可視化不具備的。
例如在何愷明大神的 Mask-RCNN 論文中,有這么一幅圖來描述模型結構(很多模型設計類和應用落地類的論文都會有這么一幅圖):
TensorSpace 可以讓用戶使用瀏覽器方便地構建一個可交互的神經(jīng)網(wǎng)絡 3D 結構。更進一步的,用戶還可以利用 3D 模型的表意能力特點,結合 Tensorflow.js 在瀏覽器中進行模型預測(跑已經(jīng)訓練好的模型看輸入輸出分別是什么),幫助理解模型。
模型結構:黑盒子的真面目是什么?
模型就像是一個盛水的容器,而預訓練模型就是給這個容器裝滿了水,可以用來解決實際問題。搞明白一個模型的輸入是什么,輸出是什么,如何轉化成我們可理解的數(shù)據(jù)結構格式(比如輸出的是一個物體標識框的左上角左下角目標),就可以方便地理解某個模型具體做了什么。
例如,YOLO 到底是如何算出最后的物體識別框的?LeNet 是如何做手寫識別的?ACGAN 是怎么一步一步生成一個 0-9 的圖片的?這些都可以在提供的 Playground 中自行探索。
如下圖所示,模型層間的鏈接信息可通過直接鼠標懸停具體查看。
層間數(shù)據(jù):神經(jīng)網(wǎng)絡的每一層都做了什么?
3D 模型不僅可以直觀展示出神經(jīng)網(wǎng)絡的結構特征(哪些層相連,每一層的數(shù)據(jù)和計算是從哪里來),還能結合 Tensorflow.js 在瀏覽器中進行模型預測。由于我們已經(jīng)有了模型結果,所有的層間數(shù)據(jù)直觀可見,如下圖所示:
在 TensorSpace 內(nèi)部,調用 Callback Function 可以方便的拿到每一層的輸出數(shù)據(jù)(未經(jīng)處理),工程和應用上,了解一個模型的原始輸出數(shù)據(jù)方便工程落地。
怎么建(How)
首先你需要有一個使用常用框架訓練好的預訓練模型,常見的模型都是只有輸入輸出兩個暴露給用戶的接口。TensorSpace 可以全面地展示層間數(shù)據(jù),不過需要用戶將模型轉換成多輸出的模型,過程詳見以下文檔。
模型預處理簡介:
http://tensorspace.org/html/docs/preIntro_zh.html
具體流程如下圖所示:
用 TensorSpace 構建對應模型這一步,下面一段構建 LetNet 的代碼可能更加直觀,如果要在本地運行,需要 Host 本地 Http Server。
你最需要的是模型結構的相關信息,TensorFlow,Keras 都有對應的 API 打印模型結構信息,比如 Keras 的 model.summary()。還有類似生成結構圖的方式,生成如下圖的模型結構 2D 示意圖:
是的,你需要對模型結構非常了解才可能構建出對應的 TensorSpace 模型。未來版本已計劃推出自動腳本,通過導入對應的模型預訓練文件,一鍵生成多輸出模型。但是 TensorSpace 的 Playground 子項目未來會力所能及地收集更多模型,在模型應用落地和直觀展示這個領域努力做出貢獻。
誰可能用(Who)
做這樣一款開源框架,除了填補 3D 可視化的一般解決方案的框架空白外,還思索了幾個可能可行的應用場景。
前端開發(fā)者過渡機器學習
前端(全棧)開發(fā)者,產(chǎn)品經(jīng)理等
未來,前端的重復性工作可能會慢慢減少。最近有一個原型圖→HTML代碼的項目,另一個 2017 年的開源項目 Pix2Code?都在嘗試利用機器學習自動化一些 Coding 中的重復勞動,提高效率。
機器學習一定不會取代前端工程師,但掌握機器學習工具的工程師會有優(yōu)勢(這種工具會不會整合進 Sketch 等工具不好說),既然入了工程師行,終身學習勢在必行。?
TensorSpace 雖然不能幫忙訓練和設計模型,但它卻擅長幫助工程師理解已有模型,為其找到可應用的領域。并且,在接駁廣大開發(fā)者到機器學習的大道上做了一點微小的工作,做一個可視化的 Model Zoo。
機器學習教育
機器學習課程教育者
使用 TensorSpace 直觀地在瀏覽器上顯示模型細節(jié)和數(shù)據(jù)流動方向,講解常見模型的實現(xiàn)原理,比如 ResNet,YOLO 等,可以讓學生更直觀地了解一個模型的前世今生,輸入是什么,輸出是什么,怎么處理數(shù)據(jù)等等。
我們只是提供了一個框架,每一個模型如果需要直觀地展示對數(shù)據(jù)的處理過程,都值得 3D 化。
模型演示和傳播
機器學習開發(fā)者
JavaScript 最大的優(yōu)勢就是可以在瀏覽器中運行,沒有煩人的依賴,不需要踩過各種坑。有一個版本不那么落后的瀏覽器和一臺性能還可以的電腦就可以完整訪問所有內(nèi)容。
如果您的項目需要展示自己的模型可以做什么、是怎么做的,私以為,您真的不應該錯過 TensorSpace。
用 TensorSpace 教學模型原理效果非常好。它提供了一個接口去寫代碼,搞清楚每一個輸出代表了什么,是如何轉化成最后結果。當然,從輸出到最后結果的轉換還是需要寫 JavaScript 代碼去構建模型結構,在這個過程中也能更進一步理解模型的構造細節(jié)。
現(xiàn)在還沒有完成的 Yolov2-tiny 就是因為 JavaScript 的輪子較少(大多數(shù)處理輪子都使用 Python 完成),所有的數(shù)據(jù)處理都需徒手搭建。時間的力量是強大的,我們搭建一個地基,萬丈高樓平地起!
致謝
機器學習部分
我們最初的靈感來源于一個真正教會我深度卷積網(wǎng)是如何工作的網(wǎng)站:
http://scs.ryerson.ca/~aharley/vis/conv/
源碼只能下載,我 Host 了一份在 Github 上:
https://github.com/CharlesLiuyx/3DVis_ConvNN
這個網(wǎng)站的效果,也是團隊未來努力的方向(大網(wǎng)絡上,因為實體過多,性能無法支持。為了解決性能問題,我們優(yōu)化為:不是一個 Pixel 一個 Pixel 的渲染,而是一個特征圖一個特征圖的處理。
前端部分
使用 Tensorflow.js、Three.js、Tween.js 等框架完成這個項目,感謝前人給的寬闊肩膀讓我們有機會去探索更廣闊的世界。
開發(fā)團隊們
感謝每一個為這個項目付出的伙伴,沒有你們每個人,就沒有這個開源項目破土而出。
開發(fā)團隊成員:
syt123450 — 主力開發(fā)
https://github.com/syt123450
Chenhua Zhu — 開發(fā)
https://github.com/zchholmes
Qi (Nora) — 設計師
https://github.com/lq3297401
CharlesLiuyx — 機器學習模型 & 文檔
https://github.com/CharlesLiuyx
也歡迎你有什么想法給我留言,或直接在 Github 上提出 Pull Request。
點擊標題查看往期內(nèi)容推薦:?
自動機器學習(AutoML)最新綜述
自然語言處理中的語言模型預訓練方法
從傅里葉分析角度解讀深度學習的泛化能力
深度解讀DeepMind新作:史上最強GAN圖像生成器
論文復現(xiàn) | ICML 2017大熱門:Wasserstein GAN
收下這 16 篇最新論文,周會基本不用愁
#文 末 福 利#
?iOS論文閱讀神器限免下載?
ReadPapers
iOS | ¥25→¥0
ReadPapers,一款為研究人員量身打造的論文閱讀神器,限時兩天免費下載。
? 內(nèi)置arXiv瀏覽器
? 集成Sci-Hub下載功能(支持Safari、Researcher等)?
? 內(nèi)置PDF閱讀器
? iCloud文檔同步管理
▲?點擊查看大圖
?關注 PaperWeekly,后臺回復「限免」
?立刻獲取 App 免費下載通道?
?
現(xiàn)在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 訪問作者博客
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的TensorSpace:超酷炫3D神经网络可视化框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线上直播 | NVIDIA Tensor
- 下一篇: 最新知识图谱论文清单,就算看不懂也会忍不