新工具——TensorLayer:管理深度學習發展的複雜性

更多深度文章,請關注:https://yq.aliyun.com/cloud


對於深度學習開發者來說,深度學習系統變得越來越複雜。以至於我們需要使用輕量級的工具從頭到尾來管理流程,為了將更多的連續學習內置到神經網絡中,這就要求我們建立可以迭代增強的更有彈性的數據集以及更多的動態模型。

深度學習開發人員必須花費大量的時間來整合神經網絡的組件,管理模型生命週期,組織數據和調整系統並行度等等。隨著使用新的培訓樣本後,人類對於神經網絡模型的見解,更新模型和跟蹤其變化的能力就變得非常必要了。為此倫敦帝國理工學院的一個團隊開發了一個python庫來管理跨學科開發人員項目的複雜迭代過程。

為了更好地管理開發過程,該團隊開發了一個通用的Python庫——TensorLayer。這個庫集成了很多開發過程中包括的方法,其中包括(操作、模型生命週期、並行計算、失敗)都以模塊化進行抽象。這些模塊包括以下功能:用於管理神經網絡層、用於管理模型和其生命週期、用於管理數據集、最後是解決容錯的工作流模塊。而TensorFlow是培訓和推理的核心平臺,它為MongoDB提供了存儲空間。這些API的使用可以在文末鏈接中查看,正是由於這些API的存在,TensorLayer才會如此的強大。

新工具——TensorLayer:管理深度學習發展的複雜性

深度學習的開發人員可以藉助TensorLayer的功能編寫了多媒體應用程序。這些功能包括提供和導入層實現,構建神經網絡,管理模型生命週期,創建在線或離線數據集,以及編寫訓練計劃。這些功能分為四個模塊:層,網絡,數據集和工作流。

該團隊表示,雖然像Keras和TFLearn這樣的工具現在很有用,但它們並不像網絡那樣可以隨網絡的擴張變得更復雜甚至無限制的迭代。它們提供了必要的抽象,以降低使用工具的門檻,但又掩蓋了很多底層的算法。雖然對開發者有好處,但是相對來說底層技術就變得難以調整和修改,而底層技術的修改和調整,這在解決許多現實世界的問題上是非常必要的。

與Keras和TFLearn相比,TensorLayer不僅提供了高級抽象,而且提供了包括數據預處理、訓練、訓練後處理,以及服務模塊和數據庫管理在內的端到端工作流程,這些是開發者建立一個完整模型所需要的全部過程。

TensorLayer倡導更靈活且可組合的範式:神經網絡庫可以與本機引擎交換使用。這允許開發者輕鬆地利用預建模塊,而且不會影響可見性。這種非侵入性也使得與其他TF的包裝器如TF-Slim和Keras合併成為了可能。並且開發小組認為,靈活性不會影響性能。

該小組在文檔中中強調了許多應用,其中還提供了有關每個模塊、整體架構和當前開發的詳細信息。應用包括生成對抗網絡、深層加強學習、最終用戶環境中的超參數調優。自去年GitHub發佈以來,TensorLayer已經被用於多模式研究、圖像轉換和醫療信號處理。

TensorLayer正處於積極的發展階段,而且從開放社區獲得了許多貢獻。它已被倫敦帝國理工學院,卡內基梅隆大學,斯坦福大學,清華大學,加州大學洛杉磯分校等大學研究人員廣泛使用,還包括谷歌,微軟,阿里巴巴,騰訊,ReFULE4,彭博等許多工程師。

TensorLayer安裝:

TensorLayer需要一些預安裝庫,如 TensorFlow , numpy 和 matplotlib。對於 GPU 加速,需要安裝 CUDA 和 cuDNN。

如果你遇到麻煩,可以查看 TensorFlow 安裝手冊 ,它包含了在不同系統中安裝 TensorFlow 的步驟。

如需瞭解更多關於TensorFlow的相關功能,請點擊:TensorLayer 中文文檔。

本文由北郵@愛可可-愛生活老師推薦,@阿里云云棲社區組織翻譯。

文章原標題《Managing Deep Learning Development Complexity》

作者:Nicole Hemsoth 譯者:袁虎

相關推薦

推薦中...