網友評分: 5分
Matlab2017b破解版是一款非常好用的商業數學軟件,此版本包括MATLAB和Simulink的若干新功能、六款新產品以及對其他86款產品的更新和修復補丁,軟件從數據標注、模型搭建、訓練與推斷還有最后的模型部署方面都能夠完整地支持深度學習開發流程。
1、【深度學習支持】
R2017b中的具體深度學習特性、產品和功能包括:
Neural Network Toolbox增加了對復雜架構的支持,包括有向無環圖(DAG)和長短期記憶(LSTM)網絡,并提供對 GoogLeNet 等流行的預訓練模型的訪問。
Computer Vision System Toolbox中的Image Labeler應用現在提供一種方便和交互的方式來標記一系列圖像中的地面實況數據。除對象檢測工作流程外,該工具箱現在還利用深度學習支持語義分割、對圖像中的像素區域進行分類,以及評估和可視化分割結果。
新產品GPU Coder可自動將深度學習模型轉換為NVIDIA GPU的CUDA代碼。內部基準測試顯示,在部署階段為深度學習模型產生的代碼,比TensorFlow的性能提高7倍,比Caffe2的性能提高4.5倍。
與R2017a推出的功能相結合,可以使用預訓練模型進行遷移學習,包括卷積神經網絡(CNN)模型(AlexNet、VGG-16 和 VGG-19)以及來自Caffe的模型(包括Caffe Model Zoo)。可以從頭開始開發模型,包括使用CNN進行圖像分類、對象檢測、回歸等。
“隨著智能設備和物聯網的發展,設計團隊面臨創造更加智能的產品和應用的挑戰,他們需要自己掌握深度學習技能或依賴其他具有深度學習專長但可能不了解應用場景的團隊,”MathWorks的MATLAB市場營銷總監David Rich表示,“借助R2017b,工程和系統集成團隊可以將MATLAB拓展用于深度學習,以更好地保持對整個設計過程的控制,并更快地實現更高質量的設計。他們可以使用預訓練網絡,協作開發代碼和模型,然后部署到GPU和嵌入式設備。使用MATLAB可以改進結果質量,同時通過自動化地面實況標記App來縮短模型開發時間。” 2、其他更新:
除深度學習外,R2017b 還包括其他關鍵領域的一系列更新,包括:
使用MATLAB進行數據分析
o一款新Text Analytics Toolbox 產品、可擴展數據存儲、用于機器學習的更多大數據繪圖和算法,以及 Microsoft Azure Blob 存儲支持
使用Simulink進行實時軟件建模
o對用于軟件環境的調度效果進行建模并實現可插入式組件
使用 Simulink 進行驗證和確認
o用于需求建模、測試覆蓋率分析和合規性檢查的新工具
2、【數據標注】
對于計算機視覺來說,Computer Vision System Toolbox 中的 Ground Truth Labeler app 可提供一種交互式的方法半自動地標注一系列圖像。除了目標檢測與定位外,該工具箱現在還支持語義分割,它能對圖像中的像素區域進行分類。陳建平說:「我們現在的標注工具可以直接半自動地完成任務,它可以像 Photoshop 中的魔棒工具一樣自動標注出像素層級的類別,我們選中圖片后工具會自動將對象摳出來。在我們完成初始化的圖像語義分割后,工具會使用自動化的手段把后續行駛過程中的其它元素都摳出來。因為中間和后續過程都是以機器為主導完成的,所以我們只需要在前期使用少量的人力就能完成整個標注過程?!?/p>
這種半自動方法確實可以大大提升標注的效率,特別是標注車道邊界線和汽車邊界框等視覺系統目標。在這種自動標注框架下,算法可以快速地完成整個數據集的標注,而隨后我們只需要少量的監督與驗證就能構建一個精確的數據集。如下所示,MATLAB 文檔向我們展示了如何創建車道線自動標注。
3、【模型構建】
在模型構建方面,Neural Network Toolbox 增加了對復雜架構的支持,包括有向無環圖(DAG)和長短期記憶(LSTM)網絡等,并提供對 GoogLeNet 等流行的預訓練模型的訪問方式。陳建平表示:「其實 MATLAB 在 2016 年的時候就已經支持一些深度學習模型,而現在不僅支持 VGGNet 和 GoogleNet 等流行的預訓練模型,同時還支持使用 Caffe Model Importer 直接從 Caffe 中導入。」
因為我們可以直接從 Caffe Model Zoo 中導入各種優秀與前沿的模型,所以 MATLAB 在模型方面可以提供廣泛的支持。但直接從 Caffe 中導入模型又會產生一個疑惑,即如果我們在 Python 環境下使用 Caffe 構建了一個模型,那么導入 MATLAB 是不是需要轉寫代碼,會不會需要做一些額外的工作以完成導入?對此,陳建平解答到:「假設我們使用 Python 和 Caffe 完成了一個模型,并保存以 Caffe 格式,那么 Caffe Model Importer 會直接從保存的 Caffe 格式中讀取模型。在這個過程中,Caffe 并不需要為 MATLAB 做額外的工作,所有的轉換結果都是 MATLAB 完成的?!?/p>
在導入模型后,我們可以直接使用類似于 Keras 的高級 API 修改模型或重建模型。下面將簡要介紹如何導入預訓練 AlexNet,并修改完成遷移學習。
首先我們需要導入 AlexNet,如果 Neural Network Toolbox 中沒有安裝 AlexNet,那么軟件會提供下載地址。net =alexnet;net.Layers
上面的語句將導入 AlexNet,并如下所示展示整個 CNN 的神經網絡架構。其中 MATLAB 會展示所有的操作層,每一層都給出了層級名、操作類型和層級參數等關鍵信息。例如第二個操作層『conv1』表示一個卷積運算,該運算采用了 96 個卷積核,每一個卷積核的尺寸為 11×11×3、步幅為 4,該卷積運算采用了padding。
這種描述不僅有利于我們了解整個神經網絡的架構,同時還有助于調整架構以匹配特定的任務。由上可知最后的全連接層、softmax 層和分類輸出層是與 ImageNet 任務相關聯的配置,因此我們需要去除這三個層級并重新構建與當前任務相關聯的層級。MATLAB 可以十分簡潔地實現這一過程:layersTransfer =net.Layers(1:end-3);numClasses =numel(categories(trainingImages.Labels))layers =[layersTransferfullyConnectedLayer(numClasses,'WeightLearnRateFactor',20,'BiasLearnRateFactor',20)softmaxLayerclassificationLayer];
由上面的代碼可知我們只提取了 AlexNet 預訓練模型的前 22 層,而后依次新建了全連接層、softmax 層和分類輸出層。完成整個層級重構后,剩下的就只需使用以下代碼訓練新的模型。其中 trainingImages 為當前任務的訓練樣本、layers 為前面修正的層級,而 options 是我們設置的一組訓練參數,包括優化算法、最小批量大小、初始化學習率、繪制訓練過程和驗證集配置等設定。
由上,我們發現 MATLAB 的深度學習代碼非常簡潔,調用高級 API 能快速完成模型的搭建。陳建平說:「MATLAB 上的高級 API 是一個完整的體系,它們完全是針對深度學習而設計的。當然我們還是會用基礎的運算,因為 MATLAB 這么多年的累積可以充分體現在基礎運算上,但是深度學習這一套高級 API 確實是新設計的?!?/p>
其實不只是 AlexNet,很多 Caffe 模型都能夠導入到 MATLAB。那么,MATLAB 為什么會選擇 Caffe 作為對接的深度學習框架,而不是近來十分流行的 TensorFlow?
4、【訓練與推斷】
對于模型訓練來說,最重要的可能就是能支持大規模分布式訓練。因為目前的深度模型都有非常多的參數和層級,每一次正向或反向傳播都擁有海量的矩陣運算,所以這就要求 MATLAB 能高效地執行并行運算。當然,我們知道 MATLAB 在并行運算上有十分雄厚的累積,那么在硬件支持上,目前其支持 CPU 和 GPU 之間的自動選擇、單塊 GPU、本地或計算機集群上的多塊 GPU。此外,由于近來采用大批量 SGD 進行分布式訓練的方法取得了十分優秀的結果,我們可以使用 MATLAB 調用整個計算機集群上的 GPU,并使用層級對應的適應率縮放(Layer-wise Adaptive Rate Scaling/LARS)那樣的技術快速完成整個模型的訓練。
在模型訓練中,另外一個比較重要的部分就是可視化,我們需要可視化整個訓練過程中的模型準確度、訓練損失、驗證損失、收斂情況等信息。當然 MATLAB 一直以來就十分重視可視化,在上例執行遷移學習時,我們也能得到整個訓練過程的可視化信息。如下所示,上部分為訓練準確度和驗證準確度隨迭代數的變化趨勢,下部分為訓練損失和驗證損失隨迭代數的變化趨勢,該遷移學習基本上到第 3 個 epoch 就已經收斂。
對于推斷來說,新產品 GPU Coder 可自動將深度學習模型轉換為 NVIDIA GPU 的 CUDA 代碼。內部基準測試顯示,GPU Coder 產生的 CUDA 代碼,比 TensorFlow 的性能提高 7 倍,比 Caffe2 的性能提高 4.5 倍。
5、【模型部署】
在 MATLAB 部署模型其實也很簡單,MATLAB 很早就支持生成獨立于其開發環境的其它語言,比如利用 MATLAB Coder 可以將 MATLAB 代碼轉換為 C 或 C++代碼。而該最新版提供了新的工具 GPU Coder,我們能利用它將生成的 CUDA 代碼部署到 GPU 中并進行實時處理,這一點對于應用場景是極其重要的。
1、安裝完成后,打開破解文件夾“R2017b”,將將破解補丁復制到安裝目錄覆蓋源文件
將:“R2017b”復制到\MATLAB目錄下覆蓋源文件
將:“license_server.lic”和“license_standalone.lic”復制到\MATLAB\R2017b\licenses\目錄下
2、安裝完成,運行桌面快捷方式就可以體驗新版MATLAB2017B帶來的魅力了