- PyTorch深度學習實戰
- (美)伊萊·史蒂文斯 (意)盧卡·安蒂加 (德)托馬斯·菲曼
- 968字
- 2022-02-25 15:14:39
第2章 預訓練網絡
本章主要內容
- 運行預先訓練好的圖像識別模型。
- 簡要介紹生成式對抗網絡和循環生成式對抗網絡。
- 可以為圖像生成文本描述的字幕模型。
- 通過Torch Hub分享模型。
由于種種原因,計算機視覺無疑是受深度學習影響最大的領域之一。對自然圖像的內容進行分類和解釋的需求已經存在,非常大的數據集變得可用,新的結構(如卷積層)被發明出來,可以在GPU上以前所未有的精度快速運行。所有這些因素都與互聯網“巨頭”想要了解數百萬用戶用移動設備拍攝并在其平臺上管理的照片的愿望相結合。原因太多了!
我們將通過下載和運行非常有趣的模型來學習如何使用計算機視覺領域研究人員優秀的研究成果,這些模型已經在開放的大規模數據集上訓練過。我們可以把預訓練的神經網絡看作一個接收輸入并生成輸出的程序,該程序的行為是由神經網絡的結構以及它在訓練過程中所看到的例子決定的,即期望的輸入-輸出對,或者期望輸出應該滿足的特性。使用現成的模型是快速啟動深度學習項目的一種方法,因為它利用了設計模型的研究人員的專業知識,以及花費了訓練權重的計算時間。
在本章中,我們將探討3種常用的預訓練模型:一種可以根據內容對圖像進行標記的模型,一種可以從真實圖像中生成新圖像的模型,還有一種可以使用正確的英語句子來描述圖像內容的模型。我們將學習在PyTorch中加載和運行這些預先訓練好的模型。我們還將介紹PyTorch Hub,它是一組工具,通過這些工具,我們將要討論的、預先訓練好的模型就可以通過一個統一的接口輕松地獲得。在此過程中,我們將討論數據源,定義標簽之類的術語,并參加斑馬競技。
如果你是從其他深度學習框架轉過來學習PyTorch的,并且你想直接學習PyTorch的基本原理,那么你可以直接跳到第3章。我們將在本章中討論的內容比基礎內容更有趣,并且在某種程度上獨立于任何給定的深度學習工具。這并不是說它們不重要!但是如果你在其他深度學習框架中使用過預先訓練好的模型,那么你應該已經知道它們是多么強大的工具。如果你對生成式對抗網絡(Generative Adversarial Network,GAN)游戲很熟悉,就不需要看我們的解釋了。
盡管如此,我們希望你能繼續閱讀,因為本章的樂趣之下隱藏著一些重要的技巧。學習使用PyTorch運行預先訓練好的模型是一項有用的技能。如果模型是在大型數據集上訓練的,那么這一點特別有用。不管我們是否訓練過模型,我們要習慣于在真實數據上獲取和運行神經網絡的機制,然后進行可視化和評估其輸出結果。