日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MatConvnet工具箱文档翻译理解(4)

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MatConvnet工具箱文档翻译理解(4) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第3章 包裝器和預訓練模型

這是很容易的組合第4章“手動”的計算塊,但通常通過一個包裝器來使用它們可以實現CNN架構給定一個模型規范通常更方便,可用的包裝器總結在3.1節。?
MatConvNet還附帶了許多用于圖像分類的預訓練模型(其中大多數?
在ImageNet ILSVRC挑戰上訓練),圖像分割,文本點樣和面部識別。 這些使用非常簡單,如3.2節所示。

3.1包裝

MatConvNet提供了兩個包裝器:用于基本鏈塊鏈(3.1.1節)的SimpleNN和用于更復雜的直接非循環圖(參見3.1.2節)的塊的DagNN。

3.1.1 SimpleNN

SimpleNN包裝器適用于由計算塊的線性鏈組成的網絡。 它主要由vl_simplenn函數(對CNN及其派生的評估)以及一些其他支持函數(例如vl_simplenn_move(移動CPU和GPU之間的CNN)和vl_simplenn_display(獲得和/或打印關于CNN的信息)實現)。

vl_simplenn接收表示CNN的結構網絡作為輸入,以及輸入x和潛在輸出導數dzdy,這取決于操作模式。 有關輸入和輸出格式的詳細信息,請參閱vl_simplenn函數的內聯幫助。 實際上,vl_simplenn的實現是如何可以一起使用基本神經網絡構建塊的良好示例,并且可以作為更復雜實現的基礎。

3.1.2 DagNN

DagNN包裝器比SimpleNN更復雜,因為它必須支持任意圖形拓撲。 它的設計是面向對象的,有一個類實現每個層類型。 雖然這增加了復雜性,并且使得微小的CNN架構(例如MNIST)的包裝器稍微更慢,但是實際上它更加靈活和更容易擴展。?
DagNN由dagnn.DagNN類(在dagnn命名空間下)實現。

3.2 Pre-trained models

vl_simplenn易于使用預訓練模型(見主頁下載一些)。?
例如,以下代碼下載在ImageNet數據上預先訓練的模型,并將其應用于MATLAB庫存圖像之一:

% setup MatConvNet in MATLAB run matlab/vl_setupnn % download a pretrained CNN from the web urlwrite(... 'http://www.vlfeat.org/matconvnet/models/imagenet-vgg-f.mat', ... 'imagenet-vgg-f.mat'); net = load('imagenet-vgg-f.mat') ; % obtain and preprocess an image im = imread('peppers.png') ; im_ = single(im) ; % note: 255 range im_ = imresize(im_, net.meta.normalization.imageSize(1:2)) ; im_ = im_-net.meta.normalization.averageImage ;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

請注意,在運行網絡之前應對圖像進行預處理。 雖然預處理規范取決于模型,但預訓練模型包含描述預期預處理類型的網絡規范化場。 特別要注意的是,該網絡將固定大小的圖像作為輸入,并且需要去除平均值; 此外,圖像強度在[0,255]的范圍內歸一化。?
下一步是運行CNN。 這將返回一個res結構的輸出網絡層:

%run the CNN res = vl_simplenn(net, im_) ;
  • 1
  • 2

最后一層的輸出可用于分類圖像。 為了方便起見,類名稱包含在網絡結構中:

% show the classification result scores = squeeze(gather(res(end).x)) ; [bestScore, best] = max(scores) ; figure(1) ; clf ; imagesc(im) ; title(sprintf('%s (%d), score %.3f',···net.meta.classes.description{best}, best, bestScore)) ;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意,幾個擴展是可能的。 首先,圖像可以裁剪而不是重新定標。 第二,多種裁剪可以喂給網絡和結果平均,通常為改進的結果。 第三,網絡的輸出可以用作圖像編碼的通用特征。

3.3學習模型

由于MatConvNet可以使用反向傳播計算CNN的導數,因此使用它實現學習算法很簡單。 因此,隨機梯度下降的基本實現是簡單的。?
示例代碼在examples / cnn_train中提供。這個代碼是足夠的,以允許在NMINST,CIFAR,ImageNet和其他許多數據集上訓練。相應的示例在examples /目錄中提供。

3.4運行大規模實驗

對于大規模實驗,例如為ImageNet學習網絡,強烈建議使用NVIDIA GPU(至少6GB內存)和足夠的CPU和磁盤速度。 例如,要在ImageNet上訓練,我們建議如下:?
1.下載ImageNet數據http://www.imagenet.org/challenges/LSVRC。 安裝它在某個地方,并從數據/ imagenet12鏈接到它?
2.考慮預處理數據以將所有圖像轉換為高度為256像素。這可以通過提供的utils / preprocess-imagenet.sh腳本來完成。 在這里方式,訓練不必每次都調整圖像的大小。 不要忘記指向將訓練代碼轉換為預處理數據。?
3.考慮將數據集復制到RAM磁盤(前提是您有足夠的內存),以便更快地訪問。 不要忘記將訓練代碼指向此副本。?
4.編譯MatConvNet與GPU支持。 有關說明,請參閱主頁。?
一旦你的設置準備好了,你應該能夠運行examples /cnn_imagenet(編輯并根據需要更改任何標志以啟用GPU支持和多個映像預取線程)。如果一切順利,你應該期望能夠訓練與200-300圖像/秒。

總結

以上是生活随笔為你收集整理的MatConvnet工具箱文档翻译理解(4)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。