欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于pytorch實(shí)現(xiàn)對(duì)圖片進(jìn)行數(shù)據(jù)增強(qiáng)

 更新時(shí)間:2024年01月05日 10:22:44   作者:草莓橙子碗  
圖像數(shù)據(jù)增強(qiáng)是一種在訓(xùn)練機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型時(shí)常用的策略,尤其是在計(jì)算機(jī)視覺領(lǐng)域,具體而言,它通過創(chuàng)建和原始圖像稍有不同的新圖像來擴(kuò)大訓(xùn)練集,本文給大家介紹了如何基于pytorch實(shí)現(xiàn)對(duì)圖片進(jìn)行數(shù)據(jù)增強(qiáng),需要的朋友可以參考下

背景

在進(jìn)行機(jī)器學(xué)習(xí)的任務(wù)中,我們的訓(xùn)練數(shù)據(jù)往往是有限的,在有限的數(shù)據(jù)集上獲得較好的模型訓(xùn)練結(jié)果,我們不僅要在模型結(jié)構(gòu)上下功夫,另一方面也需要對(duì)數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)

圖片數(shù)據(jù)增強(qiáng)

圖像數(shù)據(jù)增強(qiáng)是一種在訓(xùn)練機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型時(shí)常用的策略,尤其是在計(jì)算機(jī)視覺領(lǐng)域。具體而言,它通過創(chuàng)建和原始圖像稍有不同的新圖像來擴(kuò)大訓(xùn)練集。 數(shù)據(jù)增強(qiáng)的主要目標(biāo)有以下幾點(diǎn):

  •  解決過擬合:過擬合是指模型在訓(xùn)練集上表現(xiàn)得過于優(yōu)秀,但是在測(cè)試集(即未見過的新數(shù)據(jù))上表現(xiàn)差的現(xiàn)象。一個(gè)常見的解決過擬合的策略是增加訓(xùn)練數(shù)據(jù)。數(shù)據(jù)增強(qiáng)通過在原有訓(xùn)練數(shù)據(jù)的基礎(chǔ)上增加各種變化的數(shù)據(jù),有效地增大了訓(xùn)練集。
  • 提高模型的泛化能力:一些數(shù)據(jù)增強(qiáng)手段(如旋轉(zhuǎn)、縮放、平移等)可以模擬一些真實(shí)場(chǎng)景中會(huì)產(chǎn)生的視覺變化,有助于訓(xùn)練模型對(duì)這些場(chǎng)景變化更具有魯棒性,從而提高模型的泛化能力。
  • 引入可控制的噪聲:一些數(shù)據(jù)增強(qiáng)方法,如隨機(jī)裁剪、像素值噪聲、顏色偏移等,可以在一定程度上模擬真實(shí)環(huán)境中的噪聲。以這樣的方式引入的噪聲可以使模型更健壯,并且增強(qiáng)模型的噪聲容忍力。
  • 視覺不變性:通過像翻轉(zhuǎn)、旋轉(zhuǎn)這樣的變換,數(shù)據(jù)增強(qiáng)可以幫助模型在任何視覺角度下都能正確地識(shí)別出相同的對(duì)象,輸入圖像進(jìn)行各種方式的扭曲后仍能被模型準(zhǔn)確識(shí)別出來,增強(qiáng)了模型的視覺不變性。 總的來說,圖片數(shù)據(jù)增強(qiáng)可以讓模型學(xué)習(xí)到更多樣性的數(shù)據(jù),可以在一定程度上提升模型的識(shí)別準(zhǔn)確率,更好的適應(yīng)實(shí)際環(huán)境中樣本的多樣性,從而提高模型的泛化能力。

代碼實(shí)現(xiàn)

我們使用torchvision的transforms庫(kù)對(duì)圖片數(shù)據(jù)進(jìn)行數(shù)據(jù)增強(qiáng),使用一張卡比巴拉的圖片

首先讀取圖片數(shù)據(jù),以下是準(zhǔn)備工作

from PIL import Image
import numpy as np
import torchvision.transforms as tfs
import matplotlib.pyplot as plt
 
img_path = r"D:\CSDN_point\1_4\kabibala.jpg"
img = Image.open(img_path)
print("the shape of img is {}".format(np.array(img).shape))

圖片伸縮

img_re = tfs.Resize((500,1000))(img)
plt.imshow(img_re)
plt.show()

tfs.Reszie((500,1000))把圖像的高和寬分別拉伸到500像素和1000像素

圖片裁剪

img_crop = tfs.RandomCrop(500)(img)
plt.imshow(img_crop)
plt.show()

tfs.RandomCrop(500)隨機(jī)截取圖片500\times500大小的區(qū)域

中心裁剪

img_crop_cen = tfs.CenterCrop(700)(img)
plt.imshow(img_crop_cen)
plt.show()

tfs.CenterCrop(700)裁剪圖片中心位置700\times700大小的區(qū)域

隨機(jī)水平翻轉(zhuǎn)

# 隨機(jī)水平翻轉(zhuǎn),概率是0.5
img_hori = tfs.RandomHorizontalFlip()(img)
# 隨機(jī)垂直翻轉(zhuǎn),概率是0.5
img_ver = tfs.RandomVerticalFlip()(img)
 
plt.subplot(1,2,1)
plt.imshow(img_hori)
plt.title("RandomHorizontalFlip")
plt.subplot(1,2,2)
plt.imshow(img_ver)
plt.title("RandomVerticalFlip")
plt.show()

隨機(jī)改變圖片亮度、對(duì)比度和色相

img_j = tfs.ColorJitter(brightness=0.5,contrast=0.5,hue=0.5)(img)
plt.imshow(img_j)
plt.show()

tfs.ColorJitter(brightness=0.5,contrast=0.5,hue=0.5)中參數(shù)的含義:

  • brightness=0.5:亮度的浮點(diǎn)數(shù)系數(shù),brightness系數(shù)在 [max(0, 1 - brightness), 1 + brightness] 的范圍內(nèi)隨機(jī)選擇。例如,brightness=0.5,就表明亮度在 [0.5, 1.5] 的范圍內(nèi)隨機(jī)選擇。
  • contrast=0.5:對(duì)比度的浮點(diǎn)數(shù)系數(shù)。對(duì)比度系數(shù)在 [max(0, 1 - contrast), 1 + contrast] 的范圍內(nèi)隨機(jī)選擇。例如,contrast=0.5,就表明對(duì)比度在 [0.5, 1.5] 的范圍內(nèi)隨機(jī)選擇。
  • hue=0.5:色相的浮點(diǎn)數(shù)系數(shù)。色相系數(shù)在 [-hue, hue] 的范圍內(nèi)隨機(jī)選擇。例如,hue=0.5,就表明色相在 [-0.5, 0.5] 的范圍內(nèi)隨機(jī)選擇。

多變換整合

可以使用Compose模塊將多個(gè)變換進(jìn)行整合

# 將多個(gè)變換整合到my_trans
my_trans = tfs.Compose([tfs.Resize(800),tfs.RandomHorizontalFlip(),tfs.RandomCrop(500),tfs.RandomVerticalFlip(),tfs.ColorJitter(brightness=0.5,contrast=0.5,hue=0.5)])
 
_,fig = plt.subplots(3,3)
for i in range(3):
    for j in range(3):
        fig[i][j].imshow(my_trans(img))
        plt.axis('off')
plt.show()

以上就是基于pytorch實(shí)現(xiàn)對(duì)圖片進(jìn)行數(shù)據(jù)增強(qiáng)的詳細(xì)內(nèi)容,更多關(guān)于pytorch圖片數(shù)據(jù)增強(qiáng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python3編寫ThinkPHP命令執(zhí)行Getshell的方法

    python3編寫ThinkPHP命令執(zhí)行Getshell的方法

    這篇文章主要介紹了python3編寫ThinkPHP命令執(zhí)行Getshell的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • Python基本語法經(jīng)典教程

    Python基本語法經(jīng)典教程

    這篇文章主要介紹了Python基本語法,較為詳細(xì)的分析了Python基本語法所涉及的流程控制語句,表達(dá)式,函數(shù),對(duì)象,類型,數(shù)學(xué)運(yùn)算等概念與使用技巧,需要的朋友可以參考下
    2016-03-03
  • Pyinstaller打包Pytorch框架所遇到的問題

    Pyinstaller打包Pytorch框架所遇到的問題

    Pytorch在python界用得比較多,打包容易失敗,本文主要介紹了Pyinstaller打包Pytorch框架所遇到的問題,文中介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Python pip安裝如何切換國(guó)內(nèi)源

    Python pip安裝如何切換國(guó)內(nèi)源

    在Python開發(fā)中,pip是一個(gè)非常重要的工具,它允許我們安裝和管理Python包,本文將介紹如何切換pip的國(guó)內(nèi)源,并推薦幾個(gè)常用的國(guó)內(nèi)源,感興趣的朋友一起看看吧
    2024-04-04
  • Python中串口操作的實(shí)現(xiàn)示例

    Python中串口操作的實(shí)現(xiàn)示例

    本文主要介紹了使用Python的pyserial庫(kù)進(jìn)行串口通信,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • 總結(jié)分析python數(shù)據(jù)化運(yùn)營(yíng)關(guān)聯(lián)規(guī)則

    總結(jié)分析python數(shù)據(jù)化運(yùn)營(yíng)關(guān)聯(lián)規(guī)則

    本文內(nèi)容主要介紹了python數(shù)據(jù)化運(yùn)營(yíng)中關(guān)聯(lián)規(guī)則的一般應(yīng)用場(chǎng)景,以及關(guān)聯(lián)規(guī)則的實(shí)現(xiàn),并例舉了適應(yīng)的應(yīng)用示例,方便大家更直觀的理解應(yīng)用
    2021-08-08
  • 在Python中使用模塊的教程

    在Python中使用模塊的教程

    這篇文章主要介紹了在Python中使用模塊的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • Python中的numpy數(shù)組模塊

    Python中的numpy數(shù)組模塊

    這篇文章介紹了Python中的numpy數(shù)組模塊,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • 關(guān)于adfuller函數(shù)返回值的參數(shù)說明與記錄

    關(guān)于adfuller函數(shù)返回值的參數(shù)說明與記錄

    這篇文章主要介紹了關(guān)于adfuller函數(shù)返回值的參數(shù)說明與記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 使用python實(shí)現(xiàn)rsa算法代碼

    使用python實(shí)現(xiàn)rsa算法代碼

    RSA算法是一種非對(duì)稱加密算法,是現(xiàn)在廣泛使用的公鑰加密算法,主要應(yīng)用是加密信息和數(shù)字簽名。本文給大家介紹python實(shí)現(xiàn)rsa算法代碼,感興趣的朋友一起學(xué)習(xí)吧
    2016-02-02

最新評(píng)論