官术网_书友最值得收藏!

2.6 深度學習框架簡介

2.6.1 深度學習框架的優勢

深度學習憑借著強大的功能和出色的表現吸引了大量程序員前來學習,對于學習者來說除了硬件(GPU)的基礎環境外,與開發相關的軟件資源也尤為重要。在這一浪潮下各大公司和高校紛紛開源了自己的深度學習框架,這些深度學習框架被應用于計算機視覺、語音識別、自然語言處理等領域,并獲得了極好的效果。本節將首先為大家介紹深度學習框架的主要優勢。

1.簡化計算圖的搭建

計算圖(Computation Graph)可以看作一種描述函數的語言。圖中的節點代表函數的輸入,邊代表這個函數的操作。計算圖本質上是一個有向無環圖,它可以被用于大部分基礎表達式建模。

在深度學習框架中包含許多張量和基于張量的各種操作,隨著操作種類的增多,多個操作之間的執行關系變得十分復雜。計算圖可以更加精確地描述網絡中的參數傳播過程,自己編寫代碼來搭建計算圖需要程序員學習大量的知識,并且會耗費很多時間,而深度學習框架可以幫助你很容易地搭建計算圖。這是人們使用深度學習框架進行開發的一個重要原因。

2.簡化偏導計算

深度學習框架的另一個好處是讓求導計算變得更加簡便。在深度學習的模型搭建過程中,不可避免地要計算損失函數,這就需要不停地做微分計算。有了深度學習框架,程序員不再需要自己反復編寫微分計算的復雜代碼。神經網絡可以被視為由許多非線性過程組成的復雜函數體,而計算圖則以模塊化的方式完整表達了這一函數體的內部邏輯關系,因此對這一復雜函數體求模型梯度就變成了在計算圖中簡單地從輸入到輸出進行一次完整遍歷的過程。相比傳統的微分計算,這一方法大大簡化了計算過程。自2012年后,絕大多數的深度學習框架都選擇了基于計算圖的聲明式求解。用計算圖求偏導過程如圖2-14所示。

圖2-14 用計算圖求偏導

3.高效運行

深度學習框架的另一個重要的優勢是具有靈活的移植性,可以將同一份代碼幾乎不經過修改地部署到GPU或CPU上,程序員不必將精力消耗在處理內存轉移等問題上。目前對于大規模的深度學習來說,巨大的數據量使得單機很難在有限的時間內完成訓練。這就需要使用集群分布式并行計算或使用多卡GPU計算,因此使用具有分布式性能的深度學習框架可以使模型訓練更加高效。

主站蜘蛛池模板: 新昌县| 宣城市| 襄垣县| 当雄县| 洮南市| 贵港市| 马公市| 巴青县| 连江县| 石城县| 铜鼓县| 衡阳县| 彰武县| 邵阳市| 纳雍县| 沈丘县| 鸡泽县| 肃南| 盈江县| 嵩明县| 旺苍县| 江油市| 中超| 林周县| 龙州县| 佛坪县| 广河县| 旬阳县| 赫章县| 汾阳市| 崇信县| 玛纳斯县| 稷山县| 宜兰市| 卫辉市| 阿拉善右旗| 岳西县| 高台县| 平凉市| 威海市| 保定市|