溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

TensorFlow 中怎么實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)操作

發(fā)布時(shí)間:2021-08-12 17:07:53 來(lái)源:億速云 閱讀:206 作者:Leah 欄目:大數(shù)據(jù)

這篇文章給大家介紹 TensorFlow 中怎么實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)操作,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

數(shù)據(jù)擴(kuò)充是現(xiàn)有訓(xùn)練數(shù)據(jù)集的大小和多樣性的增加,而無(wú)需手動(dòng)收集任何新數(shù)據(jù)。通過(guò)對(duì)現(xiàn)有數(shù)據(jù)執(zhí)行一系列預(yù)處理轉(zhuǎn)換,可以獲取此增強(qiáng)數(shù)據(jù),對(duì)于圖像數(shù)據(jù),這些轉(zhuǎn)換可以包括水平和垂直翻轉(zhuǎn),傾斜,修剪,旋轉(zhuǎn)等??偠灾?,與僅復(fù)制相同的數(shù)據(jù)相反,這種擴(kuò)充的數(shù)據(jù)能夠模擬各種細(xì)微不同的數(shù)據(jù)點(diǎn)。這些“附加”圖像的細(xì)微差別應(yīng)該足以幫助訓(xùn)練更魯棒的模型。同樣,這就是想法。

本文的重點(diǎn)是在TensorFlow中第二種方法的實(shí)際實(shí)施,以減輕少量圖像訓(xùn)練數(shù)據(jù)(數(shù)據(jù)增強(qiáng))的問(wèn)題,而稍后將對(duì)轉(zhuǎn)移學(xué)習(xí)進(jìn)行類似的實(shí)際處理。

圖像增強(qiáng)如何幫助

當(dāng)卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)圖像特征時(shí),我們希望確保這些特征以各種方向出現(xiàn),以便使經(jīng)過(guò)訓(xùn)練的模型能夠識(shí)別出人的雙腿可以同時(shí)出現(xiàn)在圖像的垂直和水平方向。除了增加數(shù)據(jù)點(diǎn)的原始數(shù)量之外,增強(qiáng)功能在這種情況下還可以通過(guò)采用諸如圖像旋轉(zhuǎn)的變換來(lái)幫助我們。作為另一個(gè)示例,我們還可以使用水平翻轉(zhuǎn)來(lái)幫助模型訓(xùn)練識(shí)別貓是直立的貓還是被倒置拍照的貓。

數(shù)據(jù)增強(qiáng)不是萬(wàn)能藥;我們不希望它能解決我們所有的小數(shù)據(jù)問(wèn)題,但是它可以在許多情況下有效,并且可以通過(guò)將其作為一種全面的模型訓(xùn)練方法的一部分,或者與另一種數(shù)據(jù)集擴(kuò)展技術(shù)(例如,轉(zhuǎn)移學(xué)習(xí))

TensorFlow中的圖像增強(qiáng) 

在TensorFlow中,使用ImageDataGenerator類完成數(shù)據(jù)擴(kuò)充。它非常易于理解和使用。整個(gè)數(shù)據(jù)集在每個(gè)時(shí)期循環(huán),并且數(shù)據(jù)集中的圖像根據(jù)選擇的選項(xiàng)和值進(jìn)行轉(zhuǎn)換。這些轉(zhuǎn)換是在內(nèi)存中執(zhí)行的,因此不需要其他存儲(chǔ)(盡管save_to_dir如果需要,該參數(shù)可用于將增強(qiáng)的圖像保存到磁盤)。

如果您正在使用TensorFlow,則可能已經(jīng)使用了ImageDataGenerator簡(jiǎn)單的方法來(lái)縮放現(xiàn)有圖像,而沒(méi)有進(jìn)行任何其他擴(kuò)充??赡芸雌饋?lái)像這樣:

TensorFlow 中怎么實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)操作

ImageDataGenerator執(zhí)行增強(qiáng)的更新可能如下所示:

TensorFlow 中怎么實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)操作

這是什么意思呢?

  • rotation_range-隨機(jī)旋轉(zhuǎn)的度數(shù)范圍;在上述示例中為20度

  • width_shift_range-總寬度的一部分(如果值<1,在這種情況下),以隨機(jī)地水平轉(zhuǎn)換圖像;上例中為0.2

  • height_shift_range-總高度的一部分(如果值<1,在這種情況下),以垂直方向隨機(jī)平移圖像;上例中為0.2

  • shear_range-逆時(shí)針?lè)较虻募羟薪?,以度為單位,用于剪切轉(zhuǎn)換;上例中為0.2

  • zoom_range-隨機(jī)縮放范圍;上例中為0.2

  • horizontal_flip-用于水平隨機(jī)翻轉(zhuǎn)圖像的布爾值;在上面的例子中為真

  • vertical_flip-布爾值,用于垂直隨機(jī)翻轉(zhuǎn)圖像;在上面的例子中為真

  • fill_mode-根據(jù)“常數(shù)”,“最近”,“反射”或“環(huán)繞”填充輸入邊界之外的點(diǎn);在以上示例中最接近

然后,您可以使用該ImageDataGenerator flow_from_directory選項(xiàng)指定訓(xùn)練數(shù)據(jù)的位置(以及選擇是否進(jìn)行驗(yàn)證,如果要?jiǎng)?chuàng)建驗(yàn)證生成器),例如,使用選項(xiàng),然后使用fit_generator在訓(xùn)練過(guò)程中流向您網(wǎng)絡(luò)的這些增強(qiáng)圖像來(lái)訓(xùn)練模型。此類代碼的示例如下所示:

TensorFlow 中怎么實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)操作

關(guān)于 TensorFlow 中怎么實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)操作就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI